Latest News:
*New 11.2 series Release:
2019-06-20: XigmaNAS 11.2.0.4.6766 - released!

*New 12.0 series Release:
2019-06-20: XigmaNAS 12.0.0.4.6766 - released!

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

Producing and hosting XigmaNAS costs money Please consider donating for our project so that 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: 747
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”