Ubuntu and Linux kernel seem to suffer from a cpu state bug which completely freezes the system when doing graphics intensive tasks such as playing games or videos. Many processors suffer from this bug including the following Intel processors:
cat /proc/cpuinfo | grep 'model name'
This bug can easily be fixed by installing proper Microcode files and changing c-state flag for Linux kernel.
First step is to make sure you have Ubuntu microcode package installed by putting the following command in the terminal:
sudo apt-get install intel-microcode
Then, remove the existing microcode files by running the following command in the terminal as they are not recent:
sudo rm /lib/firmware/intel-ucode/*
After then, install Intel Microcode files by downloading Microcode package from the following site:
https://downloadcenter.intel.com/download/26798/Linux-Processor-Microcode-Data-File
Download the microcode*.tgz file and extract it in the Home folder. Now copy the extracted microcode files to system folder by opening a terminal in intel-ucode folder and running the following command:
sudo cp * /lib/firmware/intel-ucode/
Now edit the grub file to change c-state kernel flag by opening grub file in /etc folder by putting the following command:
sudo gedit /etc/default/grub
In the grub file under the line containing GRUB_CMDLINE_LINUX_DEFAULT=, add the following intel_idle.max_cstate=2, so the line should look like the following line:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=2"
Now, save and close the grub file and put the following command in the terminal to update boot loader to reflect kernel flag:
sudo update-grub
Done! Now just reboot the system and check whether microcodes are loaded properly by running the following command in the terminal:
dmesg | grep microcode
- Celeron J1900
- Celeron N2940
- Celeron N2840
- Celeron N2930
- Pentium N3520
- Pentium N3530
- Pentium N3540
cat /proc/cpuinfo | grep 'model name'
This bug can easily be fixed by installing proper Microcode files and changing c-state flag for Linux kernel.
First step is to make sure you have Ubuntu microcode package installed by putting the following command in the terminal:
sudo apt-get install intel-microcode
Then, remove the existing microcode files by running the following command in the terminal as they are not recent:
sudo rm /lib/firmware/intel-ucode/*
After then, install Intel Microcode files by downloading Microcode package from the following site:
https://downloadcenter.intel.com/download/26798/Linux-Processor-Microcode-Data-File
Download the microcode*.tgz file and extract it in the Home folder. Now copy the extracted microcode files to system folder by opening a terminal in intel-ucode folder and running the following command:
sudo cp * /lib/firmware/intel-ucode/
Now edit the grub file to change c-state kernel flag by opening grub file in /etc folder by putting the following command:
sudo gedit /etc/default/grub
In the grub file under the line containing GRUB_CMDLINE_LINUX_DEFAULT=, add the following intel_idle.max_cstate=2, so the line should look like the following line:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=2"
Now, save and close the grub file and put the following command in the terminal to update boot loader to reflect kernel flag:
sudo update-grub
Done! Now just reboot the system and check whether microcodes are loaded properly by running the following command in the terminal:
dmesg | grep microcode
You should be able to see something like following as output of above command:
[ 3.168100] microcode: CPU0 sig=0x30678, pf=0x8, revision=0x829
[ 3.168138] microcode: CPU1 sig=0x30678, pf=0x8, revision=0x829
[ 3.168445] microcode: Microcode Update Driver: v2.01 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
Cheers!
Imam
[ 3.168100] microcode: CPU0 sig=0x30678, pf=0x8, revision=0x829
[ 3.168138] microcode: CPU1 sig=0x30678, pf=0x8, revision=0x829
[ 3.168445] microcode: Microcode Update Driver: v2.01 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
Cheers!
Imam
sudo * /lib/firmware/intel-ucode/
ReplyDeletethe correct command in the /intel-ucode folder is:
sudo cp * /lib/firmware/intel-ucode/
Thanks!
Delete