Normally, a processor firmware update comes in the form of a BIOS upgrade. These can be a bit of a pain and often rely on your BIOS/chipset vendor putting out an update specific to your hardware. Intel processors, however, have the ability to update their microcode from userspace after boot time. This update is volatile - it has to be done every time the machine is rebooted - but this can be trivially automated.
Microcode updating in Linux is handled by the microcode-ctl utility. But before installing it let's make sure that the kernel supports microcode updates. This is controlled by CONFIG_MICROCODE, which you can find at
Processor type and features ---> /dev/cpu/microcode - Intel IA32 CPU microcode support(despite the name, it does work on both x86 and x86_64)
You can build it right into the kernel or as a kernel module. The advantage of using a module is that it's loaded to do the update and then unloaded automatically afterward.
Rebuild, reboot, etc. if you need to.
Next emerge sys-apps/microcode-ctl. This installs both the utility and a copy of the microcode data. However, Intel began making updates available for the general public through their Download Center recently, and rather than duplicate the effort the author of microcode-ctl has decided to not update the data file included in the package anymore. So we'll have to get the latest version from Intel.
Go to http://downloadcenter.intel.com/def
# mv microcode-20080401.dat /etc/microcode.datNow you're set. Run
# /etc/init.d/microcode_ctl startto update the processor firmware. You should see something like this in dmesg:
IA-32 Microcode Update Driver: v1.14a <firstname.lastname@example.org>Finally, make the update happen automatically on every boot by running
# rc-update add microcode_ctl default