Latest News:
2018-11-29: XigmaNAS 11.2.0.4.6229 - released!

We really need "Your" help on XigmaNAS https://translations.launchpad.net/xigmanas translations. Please help today!

Producing and hosting XigmaNAS cost money, please consider a donation to our project so we can continue to offer you the best.
We need your support! eg: PAYPAL

[SOLVED]Intel cpu microcode update

XigmaNAS Kernel Tune-up
Forum rules
Set-Up GuideFAQsForum Rules
Post Reply
Jack Foobar
experienced User
experienced User
Posts: 131
Joined: 07 Jul 2015 01:24
Status: Offline

[SOLVED]Intel cpu microcode update

#1

Post by Jack Foobar » 23 Nov 2015 02:29

Hello,

I'm more of a Linux guy, and I was wondering if any of you know how FreeBSD handles intel microcode updates. Linux uses iucode_tool, but I can't seem to find an equivalent for freebsd. Intel recently released a microcode update for Intel cpu's and wanted to see about checking in on it. I'm not sure how FreeBSD handles microcode updates to the cpu. Here is what I extracted from the microcode.dat file, for posterity. Thanks.

Addendum- Think I've gotten closer to figuring it out.

https://bugs.freebsd.org/bugzilla/show_ ... ?id=204689

Code: Select all

[list]Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        11/22/2015   7:37 PM       2048 cpu00000650_plat00000001_ver00000040_date19990525.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000650_plat00000002_ver00000041_date19990525.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000650_plat00000008_ver00000045_date19990525.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000651_plat00000001_ver00000040_date19990525.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000652_plat00000001_ver0000002a_date19990512.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000652_plat00000002_ver0000002c_date19990517.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000652_plat00000004_ver0000002b_date19990512.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000653_plat00000001_ver00000010_date19990628.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000653_plat00000002_ver0000000c_date19990518.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000653_plat00000004_ver0000000b_date19990520.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000653_plat00000008_ver0000000d_date19990518.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000660_plat00000001_ver0000000a_date19990505.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000665_plat00000010_ver00000003_date19990505.bin
-a---        11/22/2015   7:37 PM       2048 cpu0000066a_plat00000002_ver0000000c_date19990505.bin
-a---        11/22/2015   7:37 PM       2048 cpu0000066a_plat00000008_ver0000000d_date19990505.bin
-a---        11/22/2015   7:37 PM       2048 cpu0000066a_plat00000020_ver0000000b_date19990505.bin
-a---        11/22/2015   7:37 PM       2048 cpu0000066d_plat00000002_ver00000005_date19990312.bin
-a---        11/22/2015   7:37 PM       2048 cpu0000066d_plat00000008_ver00000006_date19990312.bin
-a---        11/22/2015   7:37 PM       2048 cpu0000066d_plat00000020_ver00000007_date19990505.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000671_plat00000004_ver00000014_date19980811.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000672_plat00000004_ver00000038_date19990922.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000673_plat00000004_ver0000002e_date19990910.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000681_plat00000001_ver0000000d_date19990921.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000681_plat00000004_ver00000010_date19990921.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000681_plat00000008_ver0000000f_date19990921.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000681_plat00000010_ver00000011_date19990921.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000681_plat00000020_ver0000000e_date19990921.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000683_plat00000008_ver00000008_date19991015.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000683_plat00000020_ver00000007_date19991015.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000686_plat00000001_ver00000007_date20000505.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000686_plat00000002_ver0000000a_date20000504.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000686_plat00000004_ver00000002_date20000504.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000686_plat00000010_ver00000008_date20000505.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000686_plat00000080_ver0000000c_date20000504.bin
-a---        11/22/2015   7:37 PM       2048 cpu0000068a_plat00000010_ver00000001_date20001102.bin
-a---        11/22/2015   7:37 PM       2048 cpu0000068a_plat00000020_ver00000004_date20001207.bin
-a---        11/22/2015   7:37 PM       2048 cpu0000068a_plat00000080_ver00000005_date20001207.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000695_plat00000010_ver00000007_date20041109.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000695_plat00000020_ver00000007_date20041109.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000695_plat00000080_ver00000047_date20041109.bin
-a---        11/22/2015   7:37 PM       2048 cpu000006a0_plat00000004_ver00000003_date20000110.bin
-a---        11/22/2015   7:37 PM       2048 cpu000006a1_plat00000004_ver00000001_date20000306.bin
-a---        11/22/2015   7:37 PM       2048 cpu000006b1_plat00000010_ver0000001c_date20010215.bin
-a---        11/22/2015   7:37 PM       2048 cpu000006b1_plat00000020_ver0000001d_date20010220.bin
-a---        11/22/2015   7:37 PM       2048 cpu000006b4_plat00000010_ver00000001_date20020110.bin
-a---        11/22/2015   7:37 PM       2048 cpu000006b4_plat00000020_ver00000002_date20020111.bin
-a---        11/22/2015   7:37 PM       2048 cpu000006d6_plat00000020_ver00000018_date20041017.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006e8_plat00000020_ver00000039_date20051115.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006ec_plat00000020_ver00000054_date20060501.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006ec_plat00000080_ver00000059_date20060912.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006f2_plat00000001_ver0000005d_date20101002.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006f2_plat00000020_ver0000005c_date20101002.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006f6_plat00000001_ver000000d0_date20100930.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006f6_plat00000004_ver000000d2_date20101001.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006f6_plat00000020_ver000000d1_date20101001.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006f7_plat00000010_ver0000006a_date20101002.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006f7_plat00000040_ver0000006b_date20101002.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006fa_plat00000080_ver00000095_date20101002.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006fb_plat00000001_ver000000ba_date20101003.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006fb_plat00000004_ver000000bc_date20101003.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006fb_plat00000008_ver000000bb_date20101003.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006fb_plat00000010_ver000000ba_date20101003.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006fb_plat00000020_ver000000ba_date20101003.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006fb_plat00000040_ver000000bc_date20101003.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006fb_plat00000080_ver000000ba_date20101003.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006fd_plat00000001_ver000000a4_date20101002.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006fd_plat00000020_ver000000a4_date20101002.bin
-a---        11/22/2015   7:37 PM       4096 cpu000006fd_plat00000080_ver000000a4_date20101002.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f07_plat00000001_ver00000012_date20020716.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f07_plat00000002_ver00000008_date20001115.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f0a_plat00000001_ver00000013_date20020716.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f0a_plat00000002_ver00000015_date20020821.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f0a_plat00000004_ver00000014_date20020716.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f12_plat00000004_ver0000002e_date20030502.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f24_plat00000002_ver0000001f_date20030605.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f24_plat00000004_ver0000001e_date20030605.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f24_plat00000010_ver00000021_date20030610.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f25_plat00000001_ver00000029_date20040811.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f25_plat00000002_ver0000002a_date20040811.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f25_plat00000004_ver0000002b_date20040811.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f25_plat00000010_ver0000002c_date20040826.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f26_plat00000002_ver00000010_date20040805.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f27_plat00000002_ver00000038_date20030604.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f27_plat00000004_ver00000037_date20030604.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f27_plat00000008_ver00000039_date20030604.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f29_plat00000002_ver0000002d_date20040811.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f29_plat00000004_ver0000002e_date20040811.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f29_plat00000008_ver0000002f_date20040811.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f32_plat0000000d_ver0000000a_date20040511.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f33_plat0000000d_ver0000000c_date20050421.bin
-a---        11/22/2015   7:37 PM       7168 cpu00000f34_plat0000001d_ver00000017_date20050421.bin
-a---        11/22/2015   7:37 PM       5120 cpu00000f41_plat00000002_ver00000016_date20050421.bin
-a---        11/22/2015   7:37 PM       5120 cpu00000f41_plat000000bd_ver00000017_date20050422.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f43_plat0000009d_ver00000005_date20050421.bin
-a---        11/22/2015   7:37 PM       3072 cpu00000f44_plat0000009d_ver00000006_date20050421.bin
-a---        11/22/2015   7:37 PM       3072 cpu00000f47_plat0000009d_ver00000003_date20050421.bin
-a---        11/22/2015   7:37 PM       3072 cpu00000f48_plat00000001_ver0000000c_date20060508.bin
-a---        11/22/2015   7:37 PM       3072 cpu00000f48_plat00000002_ver0000000e_date20080115.bin
-a---        11/22/2015   7:37 PM       3072 cpu00000f48_plat0000005f_ver00000007_date20050630.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f49_plat000000bd_ver00000003_date20050421.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f4a_plat0000005c_ver00000004_date20051214.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f4a_plat0000005d_ver00000002_date20050610.bin
-a---        11/22/2015   7:37 PM       3072 cpu00000f62_plat00000004_ver0000000f_date20051215.bin
-a---        11/22/2015   7:37 PM       3072 cpu00000f64_plat00000001_ver00000002_date20051215.bin
-a---        11/22/2015   7:37 PM       3072 cpu00000f64_plat00000034_ver00000004_date20051223.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f65_plat00000001_ver00000008_date20060426.bin
-a---        11/22/2015   7:37 PM       2048 cpu00000f68_plat00000022_ver00000009_date20060714.bin
-a---        11/22/2015   7:37 PM       2048 cpu00001632_plat00000000_ver00000002_date19980610.bin
-a---        11/22/2015   7:37 PM       4096 cpu00010661_plat00000001_ver00000043_date20101004.bin
-a---        11/22/2015   7:37 PM       4096 cpu00010661_plat00000002_ver00000042_date20101004.bin
-a---        11/22/2015   7:37 PM       4096 cpu00010661_plat00000080_ver00000044_date20101004.bin
-a---        11/22/2015   7:37 PM       4096 cpu00010676_plat00000001_ver0000060f_date20100929.bin
-a---        11/22/2015   7:37 PM       4096 cpu00010676_plat00000004_ver0000060f_date20100929.bin
-a---        11/22/2015   7:37 PM       4096 cpu00010676_plat00000010_ver0000060f_date20100929.bin
-a---        11/22/2015   7:37 PM       4096 cpu00010676_plat00000040_ver0000060f_date20100929.bin
-a---        11/22/2015   7:37 PM       4096 cpu00010676_plat00000080_ver0000060f_date20100929.bin
-a---        11/22/2015   7:37 PM       4096 cpu00010677_plat00000010_ver0000070a_date20100929.bin
-a---        11/22/2015   7:37 PM       8192 cpu0001067a_plat00000011_ver00000a0b_date20100928.bin
-a---        11/22/2015   7:37 PM       8192 cpu0001067a_plat00000044_ver00000a0b_date20100928.bin
-a---        11/22/2015   7:37 PM       8192 cpu0001067a_plat000000a0_ver00000a0b_date20100928.bin
-a---        11/22/2015   7:37 PM      14336 cpu000106a4_plat00000003_ver00000012_date20130621.bin
-a---        11/22/2015   7:37 PM      10240 cpu000106a5_plat00000003_ver00000019_date20130621.bin
-a---        11/22/2015   7:37 PM       5120 cpu000106c2_plat00000001_ver00000217_date20090410.bin
-a---        11/22/2015   7:37 PM       5120 cpu000106c2_plat00000004_ver00000218_date20090410.bin
-a---        11/22/2015   7:37 PM       5120 cpu000106c2_plat00000008_ver00000219_date20090410.bin
-a---        11/22/2015   7:37 PM       5120 cpu000106ca_plat00000001_ver00000107_date20090825.bin
-a---        11/22/2015   7:37 PM       5120 cpu000106ca_plat00000004_ver00000107_date20090825.bin
-a---        11/22/2015   7:37 PM       5120 cpu000106ca_plat00000008_ver00000107_date20090825.bin
-a---        11/22/2015   7:37 PM       5120 cpu000106ca_plat00000010_ver00000107_date20090825.bin
-a---        11/22/2015   7:37 PM       4096 cpu000106d1_plat00000008_ver00000029_date20100930.bin
-a---        11/22/2015   7:37 PM       6144 cpu000106e4_plat00000009_ver00000003_date20130701.bin
-a---        11/22/2015   7:37 PM       7168 cpu000106e5_plat00000013_ver00000007_date20130820.bin
-a---        11/22/2015   7:37 PM       8192 cpu00020652_plat00000012_ver0000000e_date20130626.bin
-a---        11/22/2015   7:37 PM       3072 cpu00020655_plat00000092_ver00000004_date20130628.bin
-a---        11/22/2015   7:37 PM       5120 cpu00020661_plat00000001_ver00000104_date20091023.bin
-a---        11/22/2015   7:37 PM       5120 cpu00020661_plat00000002_ver00000105_date20110718.bin
-a---        11/22/2015   7:37 PM      10240 cpu000206a7_plat00000012_ver00000029_date20130612.bin
-a---        11/22/2015   7:37 PM      16384 cpu000206d6_plat0000006d_ver00000619_date20120522.bin
-a---        11/22/2015   7:37 PM      17408 cpu000206d7_plat0000006d_ver00000710_date20130617.bin
-a---        11/22/2015   7:37 PM      13312 cpu000206f2_plat00000005_ver00000037_date20130618.bin
-a---        11/22/2015   7:37 PM      12288 cpu000306a9_plat00000012_ver0000001c_date20150226.bin
-a---        11/22/2015   7:37 PM      21504 cpu000306c3_plat00000032_ver0000001e_date20150813.bin
-a---        11/22/2015   7:37 PM      16384 cpu000306d4_plat000000c0_ver00000022_date20150911.bin
-a---        11/22/2015   7:37 PM      13312 cpu000306e4_plat000000ed_ver00000428_date20140529.bin
-a---        11/22/2015   7:37 PM      11264 cpu000306e6_plat000000ed_ver00000600_date20130619.bin
-a---        11/22/2015   7:37 PM      15360 cpu000306e7_plat000000ed_ver0000070d_date20140529.bin
-a---        11/22/2015   7:37 PM      30720 cpu000306f2_plat0000006f_ver00000036_date20150810.bin
-a---        11/22/2015   7:37 PM      14336 cpu000306f4_plat00000080_ver00000009_date20150717.bin
-a---        11/22/2015   7:37 PM      20480 cpu00040651_plat00000072_ver0000001d_date20150813.bin
-a---        11/22/2015   7:37 PM      23552 cpu00040661_plat00000032_ver00000012_date20140703.bin
-a---        11/22/2015   7:37 PM      11280 cpu00040671_plat00000022_ver00000013_date20150803.bin[/list]

User avatar
TeoLinuX
Starter
Starter
Posts: 24
Joined: 25 Jun 2012 17:29
Location: Milan, Italy
Status: Offline

Re: Intel cpu microcode update on FreeBSD

#2

Post by TeoLinuX » 31 Mar 2016 17:34

I think I found something here: https://www.freebsd.org/doc/faq/compati ... ssors.html

Code: Select all

4.2.3. What is microcode? How do I install Intel® CPU microcode updates?

Microcode is a method of programmatically implementing hardware level instructions. This allows for CPU bugs to be fixed without replacing the on board chip.

Install sysutils/devcpu-data, then add:

microcode_update_enable="YES"
to /etc/rc.conf
I wonder if burning a USB key with a live Linux distro just for that microcode update (through the method you posted above) is equivalent.
After that you could reboot into the NAS.
An interesting read: https://wiki.archlinux.org/index.php/microcode
AMD A4-4000 on ASRock FM2A75M-DGS mobo + 16GB RAM + 3x 2TB Seagate Barracuda Green in ZFS raidz + 1x Samsung Spinpoint M8 500GB (UFS)
Nas4Free 10.2.0.2 x64 embedded - CIFS ; NFS ; miniDLNA ; bittorrent;
UPS: APC BE700G ; Player: mede8er MED600X3D , ChromeCast

User avatar
b0ssman
Forum Moderator
Forum Moderator
Posts: 2459
Joined: 14 Feb 2013 08:34
Location: Munich, Germany
Status: Offline

Re: Intel cpu microcode update on FreeBSD

#3

Post by b0ssman » 31 Mar 2016 20:55

or see if there is a bios update for your board. they contain the microcode as well.
Nas4Free 11.1.0.4.4517. Supermicro X10SLL-F, 16gb ECC, i3 4130, IBM M1015 with IT firmware. 4x 3tb WD Red, 4x 2TB Samsung F4, both GEOM AES 256 encrypted.

jandegr
Starter
Starter
Posts: 44
Joined: 23 Jun 2012 17:41
Location: Belgium
Status: Offline

Re: Intel cpu microcode update on FreeBSD

#4

Post by jandegr » 02 May 2016 20:32

Hi,

the microcode update has to be done at each boot, it is volatile, so the suggestion to do it once with a linux distro is not persistent.

However TeoLinuX already gave the real solution

Code: Select all

Install sysutils/devcpu-data, then add:

microcode_update_enable="YES"
to /etc/rc.conf
tested and working, btw. the package is only some 564 kB including all data for AMD's and Intel's

regards,
Jan

User avatar
b0ssman
Forum Moderator
Forum Moderator
Posts: 2459
Joined: 14 Feb 2013 08:34
Location: Munich, Germany
Status: Offline

Re: Intel cpu microcode update on FreeBSD

#5

Post by b0ssman » 03 May 2016 07:33

you can also patch your bios. though that is a bit risky.
Nas4Free 11.1.0.4.4517. Supermicro X10SLL-F, 16gb ECC, i3 4130, IBM M1015 with IT firmware. 4x 3tb WD Red, 4x 2TB Samsung F4, both GEOM AES 256 encrypted.

Jack Foobar
experienced User
experienced User
Posts: 131
Joined: 07 Jul 2015 01:24
Status: Offline

Re: Intel cpu microcode update on FreeBSD

#6

Post by Jack Foobar » 04 Jun 2016 11:00

Thanks guys.

User avatar
zoon01
Developer
Developer
Posts: 728
Joined: 20 Jun 2012 21:06
Location: Netherlands
Contact:
Status: Offline

Re: [SOLVED]Intel cpu microcode update on FreeBSD

#7

Post by zoon01 » 22 Sep 2017 06:04

This feature will be integrated for next release.
I can see the point some user could need this.
This will update microcode for AMD and Intel CPU's.

update:
Users can now enable/disable Microcode Update on webgui advanced from rev. 4607 and up.
System specs: XigmaNAS 11.2.0.4 -embedded on Samsung 860 EVO 256GB and Supermicro X10SL7-F w / Bios v3.2, IPMI v.03.77 / CPU E3-1241 v3 @ 3.50GHz - 32GB Crucial DDR3L 1600mhz ECC 1.35v , LSI 2308 on PH20.00.07.00 IT mode, Storage: 5x Western Digital Red (WD30EFRX) raidz

Development system is same system in virtualbox.

Post Reply

Return to “XigmaNAS Kernel Tune-up”