Saturday, May 09, 2009

Cheap, Fast, Right: everything at once.

Recently I thought where/how to get a file-server, other services possible and a backup solution for my home that:
  • Is low voltage. So I don't need to pay 24" LED monitor price per a week year.
  • Is silent. So I will not get sick of the regular noise and won't suffer from sea sickness. :)
  • Is scalable. I want to add more disks in a future and/or replace them.
  • Is cheap. Thus I can afford more, once I need.
On the market there is available quite interesting piece of hardware: Asus EeePC Box. Engadget.com tagged it and you can find lots of explanation about the hardware itself. Shortly, it is Intel Atom N270 (1.6 GHz, FSB 533) processor, has DDRII 1 GB RAM (upgradable up to 2 GB), 2.5" size hard drive 80 GB capacity, 945GSE + ICH7M Chipset, on-board Intel GMA 950, 1600 x 1200 maximum graphic resolution. For network it has built-in 10/100/1000 Mbps LAN and 802.11n WLAN. It has 4 USB slots, one Mini SD slot and for sound Azalia ALC888 Audio Chip is used.

Installing an Operating System
Here in Tokyo, it comes with a Splashtop Linux which is kind of cool: you can use Skype and a Web right after two seconds later power has been turned on. And also an instance of a Japanese Windows XP with a worm inside right out of the box. :-)

In my case, as an OS I want to use OpenSolaris. Since machine has none of CD/DVD drive and I have none of USB one, installation was a bit tricky. Here is a sequence:
  1. Get at least OpenSolaris 111a build as USB image and make a bootable USB memory stick. If you are Solaris user, install SUNWdistro-const package and use usbcopy command to let it take your USB image and put into USB memory stick with a GRUB. Please note that filesystem should be ZFS. Due to a bug, UFS won't boot with memory sticks and you will get only a GRUB prompt.
  2. In BIOS, find your USB storage (appears as a hard drive) and select it as a primary drive, so in this way it will appear in a boot sequence menu. Select it and boot Solaris from USB drive, choosing VESA driver, otherwise monitor will be black due to frame buffer compression won't work with Intel card this time.
  3. In BIOS also turn off Splashtop Linux thingy, remove boot pause, remove logo on boot, enable quick boot, select appropriate bus speed etc. IOW, turn the machine to a regular PC without these bells and whistles.
  4. Process installation, blowing away everything on a disk (it is NTFS with Windows XP, originally).
  5. Remove USB memory stick, change boot sequence back to HDD and start your newly installed OpenSolaris.
That's basically it. Everything should work fine, including sound card.

Using static IP
OK, reader might be a n00b. :-) Here I shortly describe how it is done:
  1. Add a nameserver(s) to /etc/resolv.conf.
  2. Switch system to use DNS instead by renaming /etc/nsswitch.dns as /etc/nsswitch.conf.
  3. Restart DNS service:
    svcadm restart svc:/network/dns/client:default
  4. Use static IP by editing /etc/nwam/llp. For example, in my case, a physical device is "rge0" and was configured as "rge0 dhcp". I wanted internal IP to be 192.168.1.2, so I changed this to: "rge0 static 192.168.1.2/24".
  5. Restart network service:
    svcadm restart svc:/network/physical:nwam
  6. pfexec svcadm enable svc:/network/physical:default
  7. Add default router:
    pfexec vi /etc/defaultrouter
  8. ...and use it:
    pfexec svcadm restart network/routing-setup
List of all your network devices: ifconfig -a.

Compile MPlayer (for fun) :-)
I mean, why not? The thing has excellent sound card, why not use it? This one bit tricky (hello to Linux community), but nothing really special. Shortly:
  1. Install the following packages: SUNWgcc, SUNWgmake, IPSgawk (from a Blastwave) and SUNWxorg-headers.
  2. export PATH=/usr/gnu/bin:/opt/csw/gnu:/usr/bin:/usr/X11/bin:/usr/sbin:/sbin
  3. Get an MPlayer source: http://www8.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc2.tar.bz2
  4. Extract, configure, compile and install (use gmake instead of make):
    tar jxf MPlayer-1.0rc2.tar.bz2
    cd MPlayer-1.0rc2
    ./configure --prefix=/opt/mplayer/
    gmake
    gmake install
...and of course, you will miserably fail on first time gmake run, because Solaris's linker won't peacefully eat -rdynamic parameter, that is used to resolve symbols in the executable itself, when using dynamic loading. Well, simply delete this parameter from configure.mak file and link it successfully.

Yeeeah! :-)
P.S. Do not bother me and yourself why there is no decent package for MPlayer. I don't know, maybe a licence issues. If you cry about a package, then provide one.

Add Blastwave package repository (optionally)
I've added it, but don't use that much, since it blows my hard drive with duplicate packages. Just some packages only:
pfexec pkg set-authority -O http://blastwave.network.com:10000/ Blastwave
Some packages are good and MPlayer is also there. But if you willing installing from the packages, you will end up with a quite a big amount of duplicate software that you're already have on a disk.

Ready to go!
Now use your imagination. For example, I have few zones created on it for various services, like file server, backup, monitoring my home network that has more than 10 assets online and a jukebox.
Surprisingly, OpenSolaris on Atom CPU 1.6GHz with only 1GB RAM does all these tasks very well. And not just that: during these operations, it also happily plays a movie full-screen without any troubles.

No comments: