A couple of years ago I managed to get a quite unknown NAS from Linksys: the MediaHub.
This device is available in 4 versions:
NMH-300: No disks
NMH-305: 1 x Seagate 500 GB disk
NMH-310: 2 x Seagate 500 GB disks
NMH-400: No disks
NMH-405: 1 x Seagate 500 GB disk
The only general difference between the 300 and 400 models is the little LCD screen and the cardreader which the 400 series have.
Since there is absolutely no information available on this device (yeah, the Linksys marketing information) and specially the underlying hardware, I’ve openened up the case to see what is inside:
The system specs are:
CPU: Marvell Orion 88F5182 running at 400 MHz (ARMv5)
RAM: 128 Mb (2 x 64 Mb)
LAN: Marvell 88E1116 Gigabit
ROM: 1 x SST 39VF040 512 Kb holding uBoot and 1 x Samsung K9F1208U0C 64 Mb holding the filesystem / settings / kernel
USB: 1 x front and 1 x back
HDD: 2 x SATA300 connectors for a maximum of 4 Tb (2 x 2 Tb disks)
EXTRA: The NAS has a RTC and RTC battery installed, therefore it will keep track of the system date and time, even when the device is turned off, that is a luxury thing you don’t see much on a NAS! Also, the LED’s are controllable via GPIO. It also has a fan that is controlled by uBoot.
The bootloader used is uBoot as is always the case with Marvell boards. This one is identified as a NMS300 and running uBoot 1.1.9.
Modifications:
Modifications to uBoot are possible, but limited as with the LaCie version, you cannot alter the boocmd variable and there is no good way to get this device booting your own OS with the stock settings. As the uBoot will check for a specific kernel image on a partition that may not be larger than 300MB (and holds the filesystem as well), modifications are limited. Also, if uBoot cannot locate the uImage on disk, it will start the setup script hold in the 64MB NAND chip and will wipe all contents from the disk.
UPDATE:
While the limitation of the 2nd partition remains at 300MB, it’s possible to set the boot parameters hardcoded in the kernel and therefore bypassing the cmdline uBoot handles over to the kernel. This means that uBoot by default will still load the kernel from the 2nd partition, but since that partition only has to be used to store the uImage file, the size of 300MB would be enough!
Running Debian on this box is therefore no big issue anymore, but would still require serial access, because you have to finish the installation on the device itself. Also, a custom kernel has to be built, another post will be covering this soon.
Performance:
The performance on the NAS is (for a device with this SoC) rather bad when using the stock Linksys software as it uses dm-raid to configure and setup the disks which is a cpu killer. The SoC is supposed to have a XOR engine for this kind of task, but it still seems to slow down the system as this engine is only used to speed up RAID5 calculations which this NAS cannot use.
Stock performance is about 8MB/sec for writing and around 11MB/sec for reading based on a reiser filesystem. Using RAID0 (softraid), this will go up around 2 / 3 MB/sec for the array.
When running the current Debian unstable the performance was cranked up to 13MB/sec for writing and 16MB/sec for reading on reiser as well, a great improvement! Using ext3 seemed to slow down the NAS to the speeds stated on stock software so it’s best not to use ext3 on this device. Using dm-raid on Debian has been tested, but did not result in a performance boost, so using RAID on a non-RAID optimized platform, especially for a slow CPU like this one, is not advised to use.
Eagerly waiting for the next part. Have a NAS NNMH-300 dead (unavailability of Linksys software, HW is ok) and wanted to revive it with something like NSlug.
Thanks for your work.
Vikas
I will try to upload the new kernel somewhere during the next coming weeks when I have some spare time left, it needs to be updated as well and have to perform some other optimizations before I release it. I will let you know once it’s online!
Hi, I’ve just finished uploading the files and article here, take a look on the homepage and let me know if it works!
Hi, I’ve recently created a post on how to install my custom kernel and Debian Wheezy on the device, have you tried it yet?
Hi,
Looking for alternative os for my NHM-410 I found this post on your blog.
Wondering if you could help me out on howto install Debian on this Linksys, as it’s not of any use due to the crapy FW by Linksys. You mentioned a custom kernel to be covered on another post.
I’m wondering if it should be possible to transform it to a MPD server using Voyage MPD (Debian based).
Hope you can help me out on this.
Thanks in advance
I will try to upload the new kernel somewhere during the next coming weeks when I have some spare time left, it needs to be updated as well and have to perform some other optimizations before I release it. I will let you know once it’s online!
MPD might be possible, haven’t looked into this, so I’m not sure at the moment. Also, your 410 has a small screen, my kernel won’t have any support for this screen, I hope that’s ok?
Thanks for your reply and your effort! Please take your time, there’s no hurry on my side.
Concerning my 410:
Knowing it’s Linux based, It would be very nice if it’s possible to transform it to a reliable (debian based) server for my music collection.
The screen is not important for me, so missing support for it is fine.
Hi, I’ve just finished uploading the files and article here, take a look on the homepage and let me know if it works!
Hi, It’s been a while ago, but I read your reply yesterday and I will try your workaround and certainly let you know if it works.
Many thanks in advance!
Hi, tried to make it work by using Mint live-usb. Created partitions using Gparted but I can’t get both the tgz extracted to the partitions on my drive…Is it possible to extract as root using live-usb?
Thanks in advance
Used Puppy linux to partition 1Tb hardrive and to extract both the files as in your instructions. Put drive in Mediahub, but no success. I can hear the drive start but that’s all; no IP, small screen keeps on and powerled keeps blinking..
Any help?
Thanx
Anyone had any luck yet. I also extracted both file using Ubuntu. But same issues, no IP and powerled keeps blinking…
John