On Tue, Jan 18, 2011 at 8:16 AM, Mark Knecht <markkne...@gmail.com> wrote: > On Tue, Jan 18, 2011 at 7:38 AM, Paul Hartman > <paul.hartman+gen...@gmail.com> wrote: >> On Mon, Jan 17, 2011 at 10:29 PM, William Kenworthy <bi...@iinet.net.au> >> wrote: >>> The bios microcode update is likely an enable setting rather than the >>> bios actually updating the cpu. You need to do some reading/asking of >>> the manufacturers (not here) if it bothers you. >> >> Thanks for the links, I didn't realize they made the microcode data >> available separately. >> >> From Intel's download site for the microcode data: >> >> "The microcode data file contains the latest microcode definitions for >> all Intel processors. Intel releases microcode updates to correct >> processor behavior as documented in the respective processor >> specification updates. While the regular approach to getting this >> microcode update is via a BIOS upgrade, Intel realizes that this can >> be an administrative hassle. The Linux Operating System and VMware ESX >> products have a mechanism to update the microcode after booting. For >> example, this file will be used by the operating system mechanism if >> the file is placed in the /etc/firmware directory of the Linux >> system." >> >> > Thanks for the info Paul. > > For kicks I tried it on an Intel DH55HC MB running an Core i5-661. > > 1) Created /etc/firmware > 2) Downloaded the Intel microcode-20101123.tgz file > 3) Enabled the /dev/cpu/microcode option under Processor Types and Features > 4) Rebuilt the kernel and rebooted > > I see this in dmesg: > > mark@firefly ~ $ dmesg | grep micro > [ 0.495337] microcode: CPU0 sig=0x20652, pf=0x2, revision=0x9 > [ 0.495436] microcode: CPU1 sig=0x20652, pf=0x2, revision=0x9 > [ 0.495535] microcode: CPU2 sig=0x20652, pf=0x2, revision=0x9 > [ 0.495635] microcode: CPU3 sig=0x20652, pf=0x2, revision=0x9 > [ 0.495751] microcode: Microcode Update Driver: v2.00 > <tig...@aivazian.fsnet.co.uk>, Peter Oruba > mark@firefly ~ $ > > On this machine the message doesn't change whether the microcode file > is located in /etc/firmware or not so I don't know how to tell if the > process worked but the processor doesn't need any updates or whether > it didn't work at all. > > - Mark >
OK, I got it to load by hand: 1) emerge microcode-ctl which also emerges microcode-data. Unfortunately microcode-data looks to be out of date. Add microcode_ctl to the boot level: rc-update add microcode_ctl boot 2) Unzip and untar the microcode file from Intel. 3) The above emerge placed the microcode.dat file in /lib/firmware, not /etc/firmware as suggested by the kernel, so I loaded the newer one from Intel by hand using microcode-ctl: firefly firmware # microcode_ctl -f /etc/firmware/microcode-20101123.dat microcode_ctl: writing microcode (length: 430080) microcode_ctl: microcode successfuly written to /dev/cpu/microcode firefly firmware # dmesg | grep micro [ 0.495755] microcode: CPU0 sig=0x20652, pf=0x2, revision=0x9 [ 0.495853] microcode: CPU1 sig=0x20652, pf=0x2, revision=0x9 [ 0.495952] microcode: CPU2 sig=0x20652, pf=0x2, revision=0x9 [ 0.496050] microcode: CPU3 sig=0x20652, pf=0x2, revision=0x9 [ 0.496168] microcode: Microcode Update Driver: v2.00 <tig...@aivazian.fsnet.co.uk>, Peter Oruba [ 2647.731262] microcode: CPU0 updated to revision 0xc, date = 2010-06-10 [ 2647.731982] microcode: CPU1 updated to revision 0xc, date = 2010-06-10 [ 2647.732815] microcode: CPU2 updated to revision 0xc, date = 2010-06-10 [ 2647.733608] microcode: CPU3 updated to revision 0xc, date = 2010-06-10 firefly firmware # Now the microcode revision appears to be updated. I suspected that if I renamed the file in /etc/firmware to 'microcode.dat' maybe it would load automatically at boot time but it didn't so I moved it to lib/firmware where microcode_ctl does load it. NOTE: There is a /etc/conf.d/microcode_ctl config file but it doesn't see to include a path for microcode so I guess at this time I'm stuck overwriting the /lib/firmware directory until I learn more. Cheers, Mark