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.

Hardware Design and the User

A good piece of (computer) hardware shows attention to the user and to user interface design (although not in the software sense). I have had an experience in contrasts of late that show what a difference good hardware engineering can make.

I have been working with the Toshiba Portege M100 laptop, and have found its design to be “interesting” to say the least. The LED lights that describe all of the various details commonly found on the outside cannot easily be seen when the system is in operation: they are pointing towards the ceiling on the top of the open display lid. The mouse buttons are confusing: there is no left/right button – rather, the “right” button is on the bottom and the “left” button is on the top of the two larger buttons. The purpose of the two tiny buttons are unclear.

The batteries and their installation is also an interesting study. The latch to “unlock” the battery is a slider with a locking mechanism in the middle: it is hard to describe. You’ve never seen anything like it, and operating it can be, at least initially, mystifying. There is also no way to determine whether a battery is charged or dead by looking at it.

This machine, the Toshiba Portege M100, can be contrasted with the HP nc4010. Batteries on the nc4010 have a four-LED light display which not only shows the state of the battery, but also provides (for the battery wizards!) an error display (but good luck determining what the error displays are…). The batteries snap into place and are set to go; removing a battery is a matter of moving a spring-loaded latch right next to the battery that shows a battery symbol. The battery symbol is built into the case itself in relief: this prevents the logo from “rubbing off”. Similar symbols can be found for RAM, hard disk, battery #2 (travel battery), and keyboard.

The capability of using a second battery shows foresight on the part of the designers as well: there is no obvious way that the M100 could take a second battery.

Instead of a sliding catch to unlock the top lid like the M100, there is the more commonly seen pushbutton latch. Several LEDs are built into the front edge of the machine – on the corner, so that the displays can be seen both from the top and from the front – that is, these LEDs can be seen easily by the user whether the machine is in operation or not.

Even the logo on the top of the computer itself shows attention (or lack thereof) to detail. The logo on the Portege M100 is only readable to the user (who presumably owns the machine); the HP, like Apple, has their logo large and in the middle and readable to passersby when the machine is open. Apple took this one step further and lit up the logo!

Another common mistake is the port cover on the back of the machine. The Compaq Armada E500, for instance, like so many of its kind, has a large one that goes nearly the entire length of the back of the laptop. Toshiba uses a small one with no obvious way to open it: instead of pulling it down from the top, it is opened by pressing down near the hinge, though there is no description of how to do this on the machine itself.

In all cases, these “latches” or covers will often get broken off and disappear. The HP nc4010 has no cover/latch in the back – thus nothing to break off.

Once again, all ports on the back of HP nc4010 are labeled by labels in relief built directly into the plastic; the Toshiba M100 labels nearly all of them with painted on labeling.

Even the plastic itself shows an attention to detail: the M100 uses a silver-painted white plastic; the nc4010 uses black plastic with no paint. This means that as the machine gets older, the Toshiba M100 will show evidence of the white plastic underneath as the paint is worn away – and the HP shows none of this.

The HP nc4010 is not without its mistakes: there are several painted labels, and there is a PCMCIA insert that can be lost. On the nc4010 the speakers point to away from the listener to the left and to the right – the Compaq Armada E500, though bigger, put them in the front pointing directly up at the listener on the left and right sides.

This sort of engineering can be seen in other areas as well: how hard is it to repair the product, for instance? Many servers – Sun and HP servers in particular – can be easy to maintain. However, consider the Apple laptop: pulling one apart (to replace a hard drive for instance) can require removing 30 or more screws – a definite mistake. Does pulling the system apart require special tools – or any tools at all? Some servers can be maintained, at least in part, without any tools at all – replace PCI cards, install memory, install or replace hard drives – all without tools.

All of this design is not specifically user interface design, but the fundamentals are the same: consider the user, consider what will happen in the future, and consider how the system will be used. In my experience, HP and Compaq have both been excellent in their design engineering.

What are your thoughts and experiences?

(Not) Installing OpenSolaris 200805 onto a Compaq nc4010

Solaris is by all accounts a great operating system (I continue to think so) but OpenSolaris 200805 on this laptop does not show any of the excellence that Solaris is supposed to have.

I have tried Solaris x86 in the past, including installing Solaris 2.6 onto an aging 486, and installing Solaris 8 onto several different machines, including laptops. None of these installs have had as many problems as installing OpenSolaris 200805 onto this machine. Installing OpenSolaris 200805 into a VirtualBox virtual machine was slick; not so this system. (I still don’t know why a complete install description is required for virtual environments; it’s just another computer system after all.)

First, I installed OpenSolaris to a physical hard drive using the VirtualBox machine to do so. This worked beautifully. Installed, no problem.

However, booting the installed operating system provided a big problem: apparently the root filesystem definition is buried in the filesystem itself (ZFS) so that booting the disk from anywhere else in the system causes the boot to fail. This is not the problem – the problem is trying to find out how to fix it. With Linux, a kernel parameter and a fix to /etc/fstab is all that is needed.

In searching for the answer to this, there were a number of stumbling blocks – obvious ones – and there seemed to be no one who had answered this problem properly:

  • Boot into Failsafe mode and… When I see that, I always wonder what operating system they’re using: OpenSolaris 200805 has no failsafe mode. (Later on, I found out that OpenSolaris 200805 was the first Solaris to not have a failsafe mode…. nice.) This is not helpful, and rules out a majority of the responses right off the bat.
  • OpenSolaris 200805 uses ZFS as the root filesystem. This means that a) it is new and not well-tested; and b) most answers to this problem are irrelevant as they are assuming UFS as the root filesystem, not ZFS.

Having had such problems just getting the stupid drive to boot, I gave up: I tried to install directly, using a 3.5″ USB disk caddy with a CD/DVD ROM player in it. The system will boot from this, but the speed was very slow.

The first try resulted in the machine freezing at about 22% done. After rebooting, the system would continually hang right after the initial SunOS boot text. I was able to fix this (after many reboots and freezes) by booting into Linux and overwriting the half-baked install on the internal disk. Thus, the pre-existing data on the internal disk (unused) was enough to cause OpenSolaris to freeze up (I’d used the “entire disk” install option – which presumably wipes the DOS-style partition table clean off the drive).

The second try resulted in a complete install, but that was it. No reboot ever succeeded there after. The system froze first at the “zfs0 is …” text, then at “tz0 is …”, then another one. Trying the option “-B acpi-user-options=0x8” permitted the machine to boot long enough to shut itself off!

About then is when I decided I’d had enough. Maybe Solaris Express or Belenix will work, but OpenSolaris is extremely poor in this department – which is so disappointing. Did I mention that OpenSolaris does not support JumpStart installs either?

With this sort of track record, I cannot recommend OpenSolaris for laptops – nor for production x86 servers. Sad really – I’d been looking forward to getting OpenSolaris on one of my laptops – very much, as a matter of fact.

Overview: how to install UNIX/Linux to a machine with no bootable disk

Installing operating systems to the HP nc4010 ultralight notebook has been an excercise in how to accomplish the seemingly impossible: installing an operating system to a laptop with no removable disk and no bootable disk.

Generally, there are three different ways to do this:

  • Boot from the network using PXE.
  • Boot from an external add-on device such as USB CDROM or USB memory device.
  • Create a bootable disk in another system and install the disk afterwards.

Booting from the network requires several servers to be set up, including a TFTP server, a NFS server, and a DHCP server. Though they could all be on the same machine, it does represent a significant amount of set up and configuration in order to install, including the need to copy all installation parts to the NFS server to be served up to clients. In addition, there are special configurations needed for DHCP to get this started.

Booting from an external device is much easier, and can be done on the nc4010 and probably can be done on most laptops from the last 10 years or so. This method is probably the easiest to accomplish and without any fuss.

Alternately, it is possible to install the operating system normally in another system and then transfer the disk over to the new system. The biggest problem – the major problem – is that the disk locations all change. What had been /dev/hd1 is now /dev/hd0; all of this will need to be changed in order to have the new system boot properly.

The boot loader may also need to be changed to recognize the new location of the disk.

Linux has a parameter “root=/dev/zzzz” which allows the boot process to specify where the system root disk is. After this, then /etc/fstab will have to be changed (which is standard everywhere).

Solaris has UFS and ZFS, and UFS can be modified to reflect a new source disk location. ZFS is more troublesome and hard to do, as the filesystem is newer and has not been used as a boot drive for hardly any time at all. I still do not have an understanding of how to convert ZFS from using one boot disk to another (in name only) – once that happens, I’ll have OpenSolaris on an nc4010.

Running Kubuntu Intrepid Ibex Alpha 6 on a Compaq nc4010

e1000e driver in most recent Linux kernel causes corruption!

Before you try using Intrepid Ibex Alpha 6: there seems to be a problem with the e1000e driver that causes the hardware to be corrupted and could render the e1000e card useless – and even unrepairable. Even if you are using a Linux system that currently uses an e1000 driver, the new Linux kernel shifted some of the e1000 support to the e1000e driver. If you are using the Compaq nc4010 as this article describes, you should be fine: the nc4010 uses the tigon3 driver. There is a bug entry in the Ubuntu bug lists, and the linux-net mailing list has a thread on the bug. It also would appear that a fix went into the -mm kernel tree (a recognized Linus tree spinoff) as of 2.6.27-rc5-mm1. If you are hardy enough to run Ubuntu Intrepid, perhaps you could tangle with the experimental -mm kernel as well – and sleep better at night knowing your hardware won’t be wasted.

This turned out to be quite a challenge. Firstly, there was no way to install it directly – the previously mentioned Billix didn’t accomodate Intrepid and I didn’t have any large enough USB sticks to put a USB bootable image onto – assuming there is one for Intrepid.

However, remaining undaunted, I was able to install Intrepid without too much trouble – though any nontechnical user would have been stopped right up front. How’d I do it?

First, I installed VirtualBox onto another available system – using VirtualBox 2.0 – and then downloaded the Kubuntu install CD to that system. Installing Kubuntu Intrepid Ibis to VirtualBox was not a problem; everything went well. It was, however, quite slow! It turned out I had much less memory in the system than I thought – so between the 512 Mb in the system and the 300+ Mb that was allocated to the VirtualBox instance, I did a lot of waiting (sigh).

I made sure that the hard disk that was created in the virtual environment was smaller than the actual disk used by the system I was going to put Intrepid onto.

Once the virtual environment was complete and the install was finished, I stopped the environment and reconfigured for less memory. I then restarted the environment with a DSL disk (so as to not use the created virtual disk in any form).

I extracted the hard disk from the Compaq nc4010 that was to have Intrepid installed onto it, and removed it from the hard disk cage that notebooks like to use. I then connected the hard disk to a USB port using a cable adapter.

Now – with the virtual environment running DSL and a unused disk configured with Kubuntu Intrepid, and the host system running OpenSUSE 10.3 with the target disk attached via USB, the only thing left was a disk copy over the network. Using nc (or netcat) permitted the copy going direct from the virtual guest to the virtual host.

The networking had to be set up, and required the bridged mode. It appeared that the host had to already be configured for networking and active in order for the guest to be able to talk to the host (using NAT), but perhaps that was just me.

Once networking was set, the only thing that was needed was to copy from the guest:

# nc -p 4117 < /dev/hda

And copy to the host:

# netcat -l -p 4117 > /dev/sda

Note that this copy will copy the entire disk, including partition tables. This was by design and worked fine (apparently).

The biggest problem (aside from speed and memory overcommitment) was the fact that nc did not stop after copying all of the data from the hard drive – and there was no visible progress report anywhere. The destination disk had no activity light; nc had no progress report available; and so forth.

Another “problem” was the fact that the command nc did not exist on OpenSUSE but did in DSL: OpenSUSE used the full name for the command, netcat.

Once everything was copied, I could shutdown the virtual guest environment, and put the hard drive back into the original host (using the cage as mentioned before).

This did work and worked beautifully. The biggest problems came not from the installation, but from the fact that the installation is Alpha 6. Some of the programs on the task bar don’t have a proper background, several things crashed, icons are missing for some programs in the menu (including some programs that have icons shown elsewhere, like Amarok). I don’t know whether to be aghast or just patient – it is alpha software, after all. I’d just expected the most obvious bugs to be gone, but whatever.

Lastly, every time I hear that name…. am I the only one who thinks of the man called Intrepid?

Running Kubuntu on the Compaq nc4010

I’ve not been a big fan of Ubuntu in the past – and perhaps mainly from the aesthetics of it, as well as its reliance on Gnome – but I’ve neer felt I gave it a good test. Favoring KDE as I do, I loaded Kubuntu and gave it a run. I’m already a big fan of APT (through having used APT-RPM all these years) – and Kubuntu didn’t disappoint.

As I mentioned before, Kubuntu recognized everything on the system – bluetooth, PCMCIA, USB, wireless, ethernet, sound, video – it all worked.

Now after several weeks, how does it stack up?

I still don’t like the dpkg way of things: RPM is designed (and properly so, I say) to run unattended. If you use rpm to install, you don’t have to respond to any sort of install choices (there is no “partial install” – either it worked or it didn’t). APT is wonderful: dpkg is not – but that’s just my opinion.

I was surprised to see that, in Kubuntu at least, Synaptic seems to have given way to something called Adept. Not sure which I like better. I do know that I just despise the “dynamic search” that searches while you type. It slows everything down. I also don’t like the fact that I can’t sort things by groups – for instance, I’m always installing shells and languages of all sorts. Can’t I just look at those groups specifically?

I also found that with this hardware, the bluetooth adapter is always disabled (or seems to be) after hibernation. Using the key to re-enable it doesn’t help; the key is either intercepted or ignored by Linux. It’s not hard to make sure it is active after hibernation. First, make sure that the bluetooth is on at startup; if not, press the bluetooth button at the top. During the initial boot, the BIOS is in charge and it knows how to react to a press of this key – and the bluetooth light (blue) will come on.

If the bluetooth is not active after Kubuntu comes up entirely, it may be necessary to restart the bluetooth services:

/etc/init.d/bluetooth stop
/etc/init.d/bluetooth start

Don’t use bluetooth restart; it may be that more time is needed or something else. It may or may not be necessary to restart kbluetooth; if so, stop it from the task bar and run it from the System menu under the K menu.

With kbluetooth, you can tell if bluetooth is active or not: if the entire icon is gray (including the symbol) then there is no bluetooth adapter recognized. If the symbol is white, then there is an adapter present (though it may not be active).

There is also the Synaptics touchpad – but this is good stuff. The touchpad has capabilities that are not well-explained out there:

  • Using a two-finger tap or a three-finger tap results in a right-button click and a middle-button click respectively (at least that’s what it looks like).
  • Dragging your finger from top to bottom (or vice versa) on the extreme right side results in scrolling (similar to a mouse-wheel).
  • Dragging your finger from left to right at the top may result in scrolling left-to-right (I couldn’t test this out).
  • A double-tap and swipe is the equivalent of dragging an object – or at least, it is the equivalent of holding down the mouse button.

I found that both ksynaptics and touchfreeze (for configuring the Synaptics capabilities) are missing from repositories; only gsynaptics is present. There is good documentation from Ubuntu on how to set up a Synaptics driver; I recommend it.

The system as a whole does get hot – and, for whatever silly reason, has exhaust vents on the bottom (a silly idea in my opinion). No wonder people’s laps got hot. I have three film canisters that I set in a triangle to support the machine; it works beautifully. I plan to fill them with sand to keep them from moving around.

This combination of software and hardware is wonderful – the machine is nice, and the system is nice. Everything was integrated with a click: DVD playback, MP3 support, Flash support – it all came down with just a click. Everything is supported. I love this machine.

Putting Linux on a Compaq nc4010

The HP/Compaq nc4010 is a business-class laptop with no CDROM, no DVD, and no floppy – but with network, modem, USB ports, SD slot, and PCMCIA slot. The system has a 1.7GHz Pentium M – snappier than a Pentium II for sure. It will also boot from the network with PXE or from the USB ports.

Booting this platform is the most difficult part. I didn’t try using PXE, because although I was once set up for PXE on my home network, I don’t have the distributions (Kubuntu and Fedora) set up for installing from PXE and it seemed like a bigger headache than try to make it boot through USB. USB booting is not (apparently) enabled by default; it requires setting USB to use Legacy in the BIOS settings – and in my case, it also required playing with the setting for Quickboot: I had turned it off, but upon re-enabling it the system booted from a USB key.

I tried using Fedora 9, but the Live USB version come up in a lower resolution and crashed upon exiting. I tried also Kubuntu Hardy (8.04.1) and it worked beautifully.

Loading Kubuntu was a breeze – and recognized all of the capabilities of the laptop (amazing!). USB works, network works (albeit with proprietary drivers), PCMCIA works – it just works. Even hibernate works (although suspend may not).

I’ve never quite liked Ubuntu, and I mostly chalked that up to its standard themes (brown and orange) and its use of Gnome and so on – never fully experiencing Ubuntu and always wanting to get a better feel for it. I’ve tried running Kubuntu (which uses KDE) before, but never as an “active” desktop.

Kubuntu made a believer out of me. Everything works in the laptop. Even MP3s, Adobe Flash, Java – it all installed cleanly (upon demand) and works out of the box. Installation was extremely simple. The available packages are quite extensive, and include Debian’s packages.

I attribute some of this ease of support (specifically, MP3 support, Flash, Java, proprietary drivers) to the fact that the company behind Ubuntu (Canonical) is not an American company, but a South African company – which has different laws. So they can make it easy to get proprietary “parts” that they could not sell or support otherwise.

I’m switching from my FreeBSD laptop to this one for the most part: this system is smaller, lighter, faster, and has more memory. It was good to build a FreeBSD desktop though – and took more doing than I thought. I wonder what PC-BSD would be like….. Hmm….