Solaris 2009.06 (and 2008.10) on an HP nc4010 Laptop

This laptop is a delightful little machine, and borders on being a “netbook” though it has better specs than what would normally be called a netbook. Last night, I overwrote my Solaris 2008 install (of no more than a week or two) with the very latest Solaris 2009.

Since I had problems with running the LiveCD with a full X display, I opted for the text console and began the installation from there. Installing from text mode is simple, but mostly undocumented:

  1. Find an X server to use. There are nice X servers out there, not to mention the ones included with every UNIX and Linux installation. I use the Xming server for Windows.
  2. Boot the OpenSolaris LiveCD into text mode.
  3. Configure the OpenSolaris client to use the remote X server display. This could be as simple as logging in as root (password opensolaris) and setting the DISPLAY variable. This, of course, is not secure: to be secure, log in as root, start the ssh server, and log in over the network using the command ssh -X.
  4. Start the install process. This involves the code: pfexec /usr/bin/gui-install. After this, the GUI install process should appear on the remote display and the expected install process can begin.

Installing OpenSolaris this way onto the HP nc4010 was smooth, and the environment works well and is clean. There is a lack of official applications, but this may be expected, though disappointing: open source focus on OpenSolaris is not what it is for FreeBSD or for Linux.

The machine has a 1.7GHz Pentium M and 1Gb of main memory; this seems sufficient – so far. This machine is likely to become my secondary: the primary is Linux Mint – with all of the applications that a Debian/Ubuntu derivative can count on.

FreeBSD 6.3 RC-2 on a Compaq Armada E500

FreeBSD 6.2 has been on this machine for a while, but then I tried to upgrade all of the applications using the ports tree. This almost worked, except upgrading to Xorg turned out to be a massive headache and nothing worked.

It was then that FreeBSD 6.3 RC-2 was announced. I thought, why not? So off I went.

It installed well – if you don’t count my not providing enough room for /usr/local. With my “full-featured” (ha!) list of software, I wound up needing more than the original 2 Gb I originally alloted for /usr/local; with 4 Gb it worked. I also had to change the boot options, as it was still set to use 6.3-RC1 instead of 6.3-RC2. Changing the name in the options screen worked just fine.

Then after loading, I had to load the proper kernel – it couldn’t find the kernel. I selected /boot/GENERIC/kernel and all was well. At the boot loader prompt:

load /boot/GENERIC/kernel
boot

I had to configure Xorg. This was another headache. There was an excellent article from Julien Valroff about instaling Debian GNU/Linux on this machine. Despite the difference in operating systems, the fundamentals were similar. Another fantastic resource was this old page by Frank Steiner. Despite the age, the descriptions are relevant and useful (though, again, it is about Linux). There is a page on the Gentoo Wiki that describes the machine as well, though the other pages are more descriptive.

The screen display descriptions turned out to be the easiest; the problem was the mouse. Some descriptions suggest that the synaptics driver should work. However, this never did work for me. Using the standard PS/2 mouse driver and protocol worked just fine.

I also had to up the maximum files available, though for what reason I forget. Add this line to /etc/sysctl.conf to fix this problem:

kern.maxfiles=10000

Sound was another matter. It took a bit to figure out. First off, all the Linux directions suggested using lspci to see if it was there; this is Linux-specific. The FreeBSD counterpart is pciconf. Running pciconf -lv presents this:

pcm0@pci0:8:0:   class=0x040100 card=0xb1120e11 chip=0x1978125d rev=0x10 hdr=0x00
    vendor     = 'ESS Technology'
    device     = 'ES1978 Maestro-2E Audiodrive, ES1970 Canyon3D'
    class      = multimedia
    subclass   = audio

Thus, I knew that the sound was recognized. I just had to figure out how to get things to work with it. This means kernel support, da?

First attempts to load a driver turned up short; nothing is found in /boot/modules (!). The search path had to be changed to /boot/GENERIC:

kldconfig -i /boot/GENERIC

After this, load the snd_maestro driver:

kldload snd_maestro

After this, sound will work! Amarok is great…… and sound on this machine is excellent too!

Seeing as a I was trying to load KDE on here, the next step (once Xorg is working) is to add a startkde command to the .xinitrc file (in one’s home directory).

To make the system boot properly (and so you don’t have to load kernel modules manually all the time), the /boot/loader.conf file had to be created with this:

# Directory (in /boot) containing kernel and modules
kernel="GENERIC"
 
# Load maestro driver
snd_maestro_load="YES"

This then worked well.

I’m enjoying this machine again – though I am attempting to make it more of a usable desktop, which means more memory and all of the niggling setup work – like bootup splash screens, configuring kdm, and more – but hey, we’re system admins here, right?

Small (Tiny!) and Quiet PCs

Using a tiny, quiet, fanless personal computer has many benefits. My use scenario goes something like this:

Bring in the computer, plug into the network – turn on the computer and access the network. This necessitates Power over Ethernet (PoE) but we’re dreaming, right? It also doesn’t say anything about a keyboard and monitor and mouse – but hey, those are already taken care of, right?

This computer would be small enough to slide in a desk drawer, or under a desk, or hide in a bookcase. From this point, we can perform security analysis and penetration testing.

An alternate scenario might go like this:

Same computer but with wireless and battery operation: but now it is in our hands, in the data center. With a simple USB key attachment to a server, we are now accessing the server console over a wireless network link, with full access to the server and network.

There isn’t such a device yet – though some of the large PDAs like the Nokia 770 (and its successors, the Nokia N80o and the Nokia N810), the Sharp Zaurus, and others come close. However, PDAs are “embedded” devices which typically means: small size, battery power, limited memory, low power, limited secondary storage, and low speed CPU.

Small non-PDA computers tend to have massive “expansion” capabilities (that is, massive amounts of ports such as USB, Ethernet, Firewire, SVGA, and so forth). These computers tend to use the Mini-ITX form factor (Jeff Atwood has an excellent description of the various small to pico-sized form factors, including a relative size graph). Such a computer still tends to be less powerful than its desktop counterparts (especially if designed for a fanless environment), but remains much more powerful than the PDA-class machines currently available.

You can buy such machines premade, though they are not from the mainstream manufacturers normally:

  • CappuccinoPC makes many, but may be best known for its Cappuccino PC (about the size of a CD player). However, they have a vast array of others as well.
  • LinuTop sells a computer designed to run from a USB key (presumably, Linux-based)
  • The Kuro Box is a cheap computer (under $200) without hard drive, and is closer to the embedded system than the others – and is non-Intel based (either ARM or PowerPC currently). TheKuro Box is actually made by Buffalo but is sold in the United States by Revogear.
  • The fitPC is a low-power low cost computer in a book-sized unit.
  • The retailer Directron seems to have a lot of micro-sized computer equipment.
  • Stealth Computer Corporation has a wide range of tiny computers they call Little PCs.

Of special note is the site mini-itx.com which includes news about the Mini-ITX platform, a gallery of projects, a Mini-ITX FAQ, and a store to boot. The projects give you just a tiny idea of what can be done with such a small platform: you could embed it into a biscuit tin, or into an antique typewriter (an Underwood No. 5 – with working “keys”!), or into a teddy bear, or into a case made of Legos, or even into a Macintosh SE/30 case. There are dozens more – or you can create your own.

Of course, none of these tiny computers have monitors or keyboards or mice – all of which are big and require lots of space. There are a few alternatives:

  • Use a wireless connection from the tiny computer to a small handheld computer (like the Nokia and Sharp models listed above)
  • Use VNC on startup with a connection to a remote, listening, VNC client. This requires an advanced (or recent) server and client to use this special mode (connections are usually made from client to server, not the reverse).
  • Use a reverse shell connection, connection a shell on the tiny computer to a listening port on a remote computer. This requires special handling: methods of creating a reverse shell are explained nicely in this article by Julius Plenz.
  • Use a serial or wireless connection from the tiny computer to a laptop (but then you could use the laptop alone – or perhaps the laptop is older and slower…)

These are only some ideas; I’m sure that you can come up with your own. What could you do with a tiny but powerful computer with lots of ports and expansion?