Saturday, April 28, 2012

TrimSlice server project completed.

   It took a couple of weeks and several false starts, but my new home file server is running fine and sipping power.  

   The TrimSlice is an Nvidea Tegra development board, enclosed in a solid aluminium case.  The case is the heatsink for the chips, at least the top of the case is.   The board has most of the silicon on the bottom, and is installed in the case with the bottom up, making contact with the top of the case.  I believe this was done intentionally, to allow the heat from the chips to radiate away, rather than be trapped beneath the unit and build up.

   I bought the bare bones unit, which does not come with wifi, or a built in SSD.   It does have ample connectivity though, with four USB2 ports, a single HDMI port, a micro serial port, one internal micro SD slot, one external standard SD slot, audio out, video in, spidif digital out, and gigabit ethernet.   Power is via an included wall wort rated at 12volts at 2 amps.

   Internals:  an ARM dual core cpu, 1 gigabyte of memory, with almost 200M set aside as shared video memory for the nvidea tegra2 graphics.

   There are several guides online for installing several of the major linux distros.   CompuLabs also provides their own ubuntu remix in live CD image form.  You can burn their image to an SD card, boot the device and install to another SD card or Micro SD for use as your system drive.

   I had a rough start.   Compulabs download links for their installer was an early version based on ubuntu 10.04, and it is a bit buggy on the bare bones model.  What I discovered over time was that their original image was based on the standard model and some assumptions were made about an internal SSD.  
   Initially, I couldn't get it to install to any media I tried.  It would randomly pause and eventually time out during the archive extraction phase, aborting with an error, "can't write".  

    After several tries, I went to their forums and discovered a link to a just released updated version, based on ubuntu 11.04.   This image did install ok, and I could boot the unit up as a desktop OS and use it.   I played around with it a bit, browsing the web, running libre office, etc.  It works well enough, but there is huge delays due to very poor I/O performance to the micro SD I was running off.   I eventually installed to a catagory 4 SD card and got better performance, but still very poor compared to other systems I've run off flash memory media.

   I also had problems with filesystem corruption.  Over time, the system would get very crashy and unstable.  Pulling the card and running fsck against it on my desktop would reveal LOTS of file system errors.   This was very disturbing, but I eventually figured out what was going on.

  When you shutdown the TrimSlice, it goes into a standby state of sorts, and doesn't appear to sync the file system.   That leads to bad corruption.   My work around has been to manually do a sync before shutting down, and I have no more file system issues.

   My application for this little box is a home server, so I really don't need all of the desktop stuff.  Using tasksel, I trimmed the OS down to a simple server, and began configuring.   Either the arm version of tasksel is a bit broken, or their build of the OS is just a bit too far away from the original.  Several services had to be re-installed, and a few things fixed.

  Samba:    Although samba was still installed, nmbd does not start automatically on boot.  I simply added it to /etc/rc.local.  I ended up adding a few things there.     Now, I could share directories with samba, but found that I couldn't mount shares from other machines.   CIFS support is not present in the kernal!   I may eventually build a new kernel to get around this, but it's only a minor omission in my particular application.

  NFS:  I had to install nfs-kernel-server, but it worked as expected.

  The ARMel repositories have most of the popular software present, so I was easily able to install ntp, mpd, inyadyn, rtorrent and a few other things.   I ended up having to add them to rc.local to get them running at boot.

   One note regarding video.   The CompuLabs supplied OS does work well for a desktop OS, but I had trouble with both of the DVI capable LCD monitors I own.  The display would come up at the wrong sync rate sometimes, only allowing a quarter of the screen to be viewed across the full monitor.  Sometimes unplugging and replugging the hdmi cable would fix it, othertimes not.   In my final setup, I don't need video, so it's not a big deal for me.

   The built in serial port is useful.  A root terminal is present there at boot, so a simple null modem cable and laptop always gives you a way in to the machine if you're having video or networking trouble.

   Overall, it's working great as a server.  It only draws 180-250 milliamps during operation, and doesn't get very warm at all.   I suplement it's power source with overflow from my hobby solar setup, so most of the day, it's running completely off solar.   The TrimSlice and my external 1TB HD together only draws around 800 milliamps total at 12 volts.   Pretty amazing really.

No comments:

Post a Comment