28 June, 2014

Installing Ubuntu Server 14.04 on Intel SS4200 NAS


Some years ago I bought an Intel SS4200 NAS, specially for the purpose to install custom "firmware" on it. It has a standard PC hardware with an 1.6 Ghz Celeron processor, 4 bays for SATA drives and it has a community dedicated to HW and SW modifications.

Originally I have installed Ubuntu Server 10.04 on it using an external flash drive, but recently I refreshed the system to Ubuntu Server 14.04 on a Compact Flash card connected to the internal IDE connector using adapter.

Here I will describe how I have installed 10.04 and how I did it for 14.04. I did the installation only once, I have some toughs that were I could have done it more easy, but after the system became operational I did not go back and test if the simplifications working in theory would work in practice.

EDIT:
Unfortunately after a lot of experimenting, it turned out, that the pata_legacy driver is painfully slow and the normal drivers coming with Ubuntu 14.04 doesn't recognize the parallel ATA interface in the SS4200, so I gave up using the CF card and returned to use a 4 Gbyte Flash drive. If you still want to experiment with the CF card, the results of the experiments were, that if you restart the unit with the reset button held down, then the PATA interface is detected and the ata_piix driver is used. There may be two directions to go forward, somehow shortcut the reset button, that the device starts always in "reset" mode, or probably there is only a small patch needed to ata_piix to recognize the PATA interface even in normal mode.

Ubuntu 10.04 installation

First time I was installing I had nothing but the bare SS4200. Somehow I could figure out, that if I removed the internal PATA disk on module (DOM), the the box would boot automatically from the USB Flash drive. (Actually if none of the internal disks has a bootable partition, then it tries to boot from USB). This made the method clear - install Ubuntu on a Flash Drive, the plug it in, and go.

In practice I used VMWare Player to install the base system from an intall cd ISO image, by connecting the pendrive directly to the virtual machine image. The only problem I had, that there was no network connection to the box, so still in the virtual machine I had to add the following 2 lines to /etc/network/interfaces:

auto eth1
iface eth1 inet dhcp

because 10.04 when recognizes new ethernet hw assigns a new eth number to it.

When this is done then simply boot up the SS4200 from the pendrive and log in with SSH.

Ubuntu 14.04 installation

When doing this I have connected an external VGA card using a "PCI-E Extension Cable 1X To 16X Riser Extender Card" ordered for $2,85 and an USB keyboard. This setup was much easier, because I could access the bios, see what Ubuntu is writing out and generally be able to use the SS4200 as a normal computer. For the root disk, this time I have decided to use a Compact Flash card with and adapter to connect to the IDE port, where originally the DOM was installed. With the CF adapter it turned out that it needs a floppy style power adapter, but I was lucky because I had an IDE HDD power to floppy power adapter at home, which I could use.

First problem was that Ubuntu by default did not see the IDE drive, I had to load the pata_legacy module to make it available for linux. After fixing this I could make an install from an Ubuntu Server installation pendrive on the SS4200 itself (by loading the pata_legacy module during install, when no hard disk was detected on the second terminal Alt-F2), but somehow, it did not boot. After some unsuccessful attempts to fix it, I decided to start over again and use the good old method with a virtual machine.

So I put the CF card with the adapter into and old PATA to USB HDD enclosure, connected it to my Windows PC and set up a virtual machine with no HDD but the USB HDD connected to it. I booted it up from the Ubuntu 14.04 server image and simply installed the system on the CF card. When selecting the SW components I have selected LAMP, OpenSSH and Samba, these are the most important packages to start with.

When it was ready, I tested it on the virtual machine, but VMWare Player is not able to boot from USB so I used Plop boot manager to boot from the USB disk and it worked (download Plop boot manager iso file, boot from the iso and select boot from USB). The next step is to add pata_legacy to the modules loaded at boot otherwise the CF card or any other IDE device will not be recognized during boot on the SS4200. To do this add the line pata_legacy to /etc/initramfs-tools/modules and run update-initramfs. (Ok actually this is the theory and it is the easier way to do it, but I have edited the file /config/modules in initramfs manually based on this article.)

After this I plugged the CF card with the adapter to the SS4200 IDE port and the machine booted up normally.

There may be one more problem if you are doing this without an actual monitor, that it seemed that when booting the CF card from the virtual machine using Plop, the grub boot loader detected it as an unsuccessful boot attempt and reverted to manual boot (wait for a key press to start booting). You can handle this in 2 ways: either connect an USB keyboard, and when the led on the CF adapter goes off for a longer period press the enter key or you can try to boot the pendrive directly on a different computer. If the boot is sucessful, grub reverts to automatic mode (start the operating system after a short timeout), then you don't need to do this to boot again.

From here on I did the pretty normal Ubuntu Server for NAS installation as described in my earlier blog here.

Honestly the CF card was not a good choice, it has the advantage that it is inside the box and it was rather cheap, but it is very slow and a pendrive would do the same thing on a better speed and without the necessity to struggle with the pata_legacy module.

Solving the "no talloc stackframe at ../source3/param/loadparm.c:4864, leaking memory" problem

After logging in to the fresh install these messages are coming when executing some commands with sudo. The solution is to run "pam-auth-update" and remove "SMB password synchronization". Got that solution from Thomas (reusch) on https://bugs.launchpad.net/ubuntu/+s...a/+bug/1257186

If you do a sw upgrade (sudo apt-get upgrade) on the box then the error is corrected without any configuration changes.

No comments: