NETGEAR is aware of a growing number of phone and online scams. To learn how to stay safe click here.
Forum Discussion
fastfwd
Jan 16, 2017Virtuoso
Problem getting Intel microcode to load early on my Frankenstein NAS
So... After running multiple legacy ReadyNAS boxes on OS4 for 5+ years, I've decided to upgrade to OS6. I wish I knew who made the decision to include software support for legacy devices in OS6 (and...
- Jan 18, 2017
Ok, I've answered my own question. It is NOT necessary to lzma-compress the initramfs file on the boot flash.
As described in my previous post, I created a cpio archive just like the one inside initrd.gz, except that it also contains the /kernel/x86/microcode/GenuineIntel.bin file with my CPU's microcode update. Copied it to the boot flash without lzma-compressing it first (called it "initrduc"), edited SYSLINUX.CFG to load it along with my new kernel ("k4-1-30.uc") as a boot-menu option, and boom:
root@NAS3:~# dmesg | head [ 0.000000] microcode: CPU0 microcode updated early to revision 0xd0, date = 2010-09-30 [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 4.1.30.x86_64.1 (root@NAS3) (gcc version 4.9.2 (Debian 4.9.2-10) ) #2 SMP Tue Jan 17 01:33:26 PST 2017 [ 0.000000] Command line: initrd=initrduc reason=normal BOOT_IMAGE=k4-1-30.uc [ 0.000000] KERNEL supported cpus: [ 0.000000] Intel GenuineIntel [ 0.000000] Disabled fast string operations [ 0.000000] e820: BIOS-provided physical RAM map:
Now my NAS not only has a CPU updated to the latest microcode, it's also running a kernel built specifically for its hardware (Core2 Duo CPU, Yukon2 Ethernet chip) and with a few other optimizations for that hardware.
If everything's still running fine a few days from now, I'll make this kernel/initramfs combo the default, and make the original combo a boot-menu option. Then I'll run through the process again for my main NAS, and maybe also for the Atom D525 in my little Ultra 2 Plus.
Sandshark
Jan 17, 2017Sensei - Experienced User
There is a BIOS update that runs on OS 4.2.x that lets other CPU's run OS6. I have the E6600 on two of my units and an E7500 on one. I've seen instructions for updating by extracting the update from the .bin package and using Linux toold to update, but downgrading back to 4.2.x and using the .bin package could be easier. Just put in a small spare drive to downgrade, update BIOS, and go back to OS6. I'm afraid I don't have a pointer to the package, but it's called BIOS_Update_Package_0.5-x86.bin, so try a search.
There were some very early Pro BE and Pioneer units that have a different revision motherboard, and you are out of luck if you have one of those. But I don't think that one ran the E6600 even on OS4.2.x.
Take a look at bios_ver.log in the logs download .zip. If it says 10/03/2008 FLAME6-MB V1.6, as most of the Pro BE/Pioneer units did, you are in luck. The update will move you up to 07/26/2010 FLAME6-MB V2.0, which has the required microcode. If it says something else, you are on your own. But the package seems to be pretty good at recognizing your system and only updating when it can.
mdgm-ntgr
Jan 17, 2017NETGEAR Employee Retired
The system is already running the 07/26/2010 BIOS as stated in the opening post of the thread.
- SandsharkJan 17, 2017Sensei - Experienced User
Hmmm. I missed that.
Maybe he mistakenly got the Pentium E6600 instead of the Core 2 Duo E6600. The Pentium does need additional microcode over the Core 2 Duo. I have two that are running the Core 2 Duo E6600 and they need no microcode mods, even with the previous BIOS version. I have no idea what Intel was thinking re-using the E6600 moniker,
Besides the microcode issue, the BIOS may not select the proper frequency multiplier for that Pentium chip. The Core 2 Duo E7500 is definately a better choice than the Pentium E6600 for a ReadyNAS. Similar performance with full support in the BIOS (provided you have the latest update). They're under $5 on eBay these days. I got the E6600's when the E7500 was a lot more. The E7500 is a huge step up from the Pentium E2160 in the original Pro BE/Pioneer. Not as much from the Pentium E5300 of the Pro6/Ultra6Plus. The Core 2 Duo E6600 is still a sizable step up from the E2160, but negligable from the E5300.
FWIW, the datasheet on the E5000/E6000 says "The Intel® Pentium® dual-core processor E5000 series operates at a 800 MHz FSB frequency (selected by a 200 MHz BCLK[1:0] frequency). The Intel® Pentium® dualcore processor E6000 series operates at a 1066 MHz FSB frequency (selected by a 266 MHz BCLK[1:0] frequency). Individual processors will only operate at their specified FSB frequency."
That last statement differs from the usual "Individual processors operate only at or below the rated frequency." (which is what's in the E7500 spec sheet.) Perhaps Netgear chose an E5000 series for the newer systems over an E6000 because the motherbord won't do a 266MHz BCLK needed for the 1033MHz FSB.
- fastfwdJan 17, 2017Virtuoso
Thanks, Sandshark. I guess I should have been clearer about my setup: My 6-bay ReadyNAS devices have been running on Core2 Duo E6600 SL9ZL CPUs with the 07/26/2010 BIOS since early 2013. They're functional, but the BIOS only brings them up to update "cb" while Intel's microcode-update package will bing them to "d0".
More news on my progress:
I now know just enough about initramfs and the syslinux loader to be really dangerous. Yesterday I discovered that syslinux since version 3.71 has had the ability to load multiple initramfs files specified in the SYSLINUX.CFG file, so I planned to use that facility. Unfortunately, I later discovered that syslinux on my boot flash is only version 3.31:
root@NAS3:/media/INT_FLASH# strings ./LDLINUX.SYS SYSLINUX 3.31 v1.07 Tue Feb 15 11:31:02 PST 2011 fBf9 Load error - Debug Serial Port Enabled ....
So that idea's a non-starter.
My current plan is to modify a copy of the existing initrd.gz to include kernel/x86/microcode/GenuineIntel.bin so everything can be loaded at once, in the single file that syslinux 3.31 supports. I've unpacked the existing LZMA-compressed initrd.gz into a cpio achive, unpacked that into the initramfs directory tree, added the kernel directory, and repacked the tree into a cpio archive. But now I'm stuck because lzma has a ton of options and I haven't found the right ones to replicate what Netgear used for their initrd.gz.
So I have two new questions:
1. Executing "file" on Netgear's original initrd.gz produces "initrd.gz: LZMA compressed data, streamed", and 7-Zip identifies the compression method as "LZMA:26". Does anyone know what lzma options will produce that format?
2. Alternatively, does the initramfs file on the boot flash even need to be compressed with lzma, or will syslinux load a raw cpio archive?
- fastfwdJan 18, 2017Virtuoso
Ok, I've answered my own question. It is NOT necessary to lzma-compress the initramfs file on the boot flash.
As described in my previous post, I created a cpio archive just like the one inside initrd.gz, except that it also contains the /kernel/x86/microcode/GenuineIntel.bin file with my CPU's microcode update. Copied it to the boot flash without lzma-compressing it first (called it "initrduc"), edited SYSLINUX.CFG to load it along with my new kernel ("k4-1-30.uc") as a boot-menu option, and boom:
root@NAS3:~# dmesg | head [ 0.000000] microcode: CPU0 microcode updated early to revision 0xd0, date = 2010-09-30 [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 4.1.30.x86_64.1 (root@NAS3) (gcc version 4.9.2 (Debian 4.9.2-10) ) #2 SMP Tue Jan 17 01:33:26 PST 2017 [ 0.000000] Command line: initrd=initrduc reason=normal BOOT_IMAGE=k4-1-30.uc [ 0.000000] KERNEL supported cpus: [ 0.000000] Intel GenuineIntel [ 0.000000] Disabled fast string operations [ 0.000000] e820: BIOS-provided physical RAM map:
Now my NAS not only has a CPU updated to the latest microcode, it's also running a kernel built specifically for its hardware (Core2 Duo CPU, Yukon2 Ethernet chip) and with a few other optimizations for that hardware.
If everything's still running fine a few days from now, I'll make this kernel/initramfs combo the default, and make the original combo a boot-menu option. Then I'll run through the process again for my main NAS, and maybe also for the Atom D525 in my little Ultra 2 Plus.
Related Content
NETGEAR Academy

Boost your skills with the Netgear Academy - Get trained, certified and stay ahead with the latest Netgear technology!
Join Us!