Linux on HP Omnibook XE4500 laptops

TuxMobil - Linux on Laptops, Notebooks, PDAs and Mobile Phones
These old notes (from April 2003) describe Red Hat Linux 7.3. Some slightly more recent pages are:

This is all very old stuff now. My preference now would be for FreeBSD 6.x, or Ubuntu / Kubuntu, or the latest version of SUSE/Novell Linux. So what follows here is just for historical reference. Really, if you use an old XE4500 laptop on a recent Linux or BSD distribution, everything should just work right out of the box anyway :-)

I'll start by describing how to get Linux working in a basic way on the XE4500. Then, I'll describe some optional tweaks such as replacing the kernel.

Background: HP's Omnibook XE4500 laptop

In Summer 2002, HP introduced the Omnibook XE4500 laptop. For a laptop it's cheap and has a nice bright screen with a wide viewing angle. There's a 1.6 GHz Pentium 4 model which seems very quick in Visual C++ under Windows 2000/XP and offers a 30 Gb disk, 256 Mb DDR RAM, 14" TFT, CDRW/DVD combo, sound, LAN, modem, TV out, firewire etc for just over 1,000 UK pounds. Hard disk is removable (www.Dabs.com sell spare drive carrier slides). Floppy and CDRW/DVD drives are built in, and both credit-cardbus slots are empty by default.

There's also a cheaper XE4100 Omnibook with a 1.2 GHz Celeron - this looks similar but in fact it has a completely different chipset, so these notes do not apply to the XE4100.

HP's website offers no information about running Linux. HP's telephone support line is politely useless.

Step 1 - Flashing the BIOS

I don't know if this was necessary, but I went to the HP website and downloaded the latest BIOS instead of the v1.20 my laptop came with, as the new BIOS version fixes some bugs.

Step 2 - Preparing the hard disk partitions

Well of course, if you want to run only Linux, then it's easy - you just skip to step 3 and allow the Linux installer to delete all the partitions on the disk.

If you want to dual-boot RedHat Linux and Windows XP, then my recommendation is as follows...

  1. Start from the factory installation. You should have a small (24 meg) HP utilities partition, followed by a large NTFS partition for Windows XP. If you have corrupted this, you can restore it by booting the HP recovery CDs that came with the Omnibook, but of course this will destroy anything that was on your hard disk!

  2. Now let's shrink the factory NTFS partition to make room for Linux. 10GB should be enough for (say) Windows XP, Office XP and Visual C++. For resizing partitions, I once used Partition Magic, but it takes many hours, it's awkward, and it's expensive. An excellent new Win32 program is called BootIt Next Generation. Download it free from TeraByte Unlimited.com. Running the small download file generates a 1.44 MB bootable floppy disk that does everything. This includes an optional Boot Manager. If you keep the Boot Manager, you have to pay for it after 30 days. But for a quick partition resize, this is not needed. Just boot the floppy, hit Escape when prompted to install Boot Manager, and use the Utilities command to resize the second disk partition. The Boot Manager will not be installed.

  3. You might want to convert the NTFS partition to FAT, so that you can mount it Read/Write under Linux. Apparently Partition Magic 8.0 can convert NTFS to FAT.

  4. Now that we have some free space on the hard disk, we can install RedHat Linux (see steps below). On my 30 Gb hard disk, I gave 10 Gb to Windows XP, then let the Linux DISK DRUID system have 10 Gb. That will leave 10 Gb for when I get around to installing FreeBSD.

  5. Follow the steps later in this document to install Linux, and be sure to accept the default boot manager, GRUB. The only problem is that Linux always boots - never Windows XP! To fix this, just edit /etc/grub.conf and add an entry along the lines of "Bill Gates Dodgy Software" as shown below...
    	default=0
    	timeout=10
    	splashimage=(hd0,2)/grub/splash.xpm.gz
    	title Red Hat Linux (2.4.18-3)
    		root (hd0,2)
    		kernel /vmlinuz-2.4.18-3 ro root=/dev/hda5 hdc=ide-scsi idebus=50
    		initrd /initrd-2.4.18-3.img
    	# idebus=50 is a temporary kludge to fix IDE problem - really need later kernel.
    	title Bill Gates Dodgy Software (WinXP)
    		root (hd0,1)
    		makeactive
    		chainloader +1
    
    This grub.conf will work for you if you use the factory XP installation, after resizing the XP partition as described above. Of course it would be wise to back up any files first;-) You'll get a warning during Linux installation about using a boot floppy due to the hard disk geometry not necessarily supporting hard disk boot, but happily this can be ignored - though a boot floppy is probably not a bad idea, just in case you do manage to corrupt your boot sector.

Step 3 - Booting the RedHat 7.3 CD

Due to the new IDE chipset, you will get bad hard disk errors during installation unless you boot the kernel with the parameter idebus=50. No problem, this is easy, but there are three stages to this. NB what follows assumes that you accept all the default boot manager options i.e. GRUB.

  1. When booting the RedHat CD, when you get to the very first screen, type "linux idebus=50" and hit Return. The installer will then run perfectly and RedHat will install in the normal way. I think this runs the kernel IDE driver in a more conservative mode, but a full install still only takes about 45 minutes (KDE, GNOME, developer stuff and games - all 3 CDs).

    If you have an external mouse in the PS/2 port, unplug it before you install Linux, otherwise the keyboard may not be detected correctly by the installer. Don't worry, you can plug the mouse in again once initial installation is complete.

    For Red Hat 8.0, you need to type: "linux idebus=50 nousb" as the installer seems to have a USB bug which locks up the keyboard.

  2. When booting your new RedHat system for the first time, when the kernel number is displayed at that 10-second prompt, type "e" to edit the boot parameters, then change the Kernel parameter line, adding "idebus=50" to the end.

  3. When you have logged in to your new RedHat system, you need to make the kernel parameter change permanent. Edit /etc/grub.conf and add that "idebus=50" parameter on to the end of the kernel parameter line.

Step 4 - Configuring XFree86

RedHat will autodetect the ATI Mobility Radeon M6 video chipset. We must change that, as it is very crashy with the default kernel. When the video type is shown, pick the list one down from "Generic", and choose "VESA". For the XE4500, I chose 1024 x 768, 32 Mb, 24 bit colour. Later on, when prompted about a monitor, I chose "Generic Laptop display 1024x768" with all defaults, and this was fine. No-doubt there's a faster driver we can use later, but this is a good stable starting-point for switching to and from X without problems.

Step 5 - Minor Tweaks

Some routine tweaks are as follows...

Step 6 - Install a new Kernel (optional)

The XE4500 hardware is quite new, so a newer kernel may be worth using. Installation hints below. It can be tricky to find a good stable kernel version plus a set of configuration options, so I recommend you start from my known working setup, which is as follows...

Step 7 - Update XFree86 and activate the ATI Radeon Mobility M6 video driver

This is worthwhile as it greatly speeds up the video display under X, especially when a "make" is scrolling by in an XTerm, or when you are scrolling down a web page in Mozilla.

  1. Back up your /etc/X11/XF86Config-4 file.

  2. Go to xfree86.org and download the patches to get from 4.2.0 to 4.2.1. Follow the upgrade process but don't bother to run the configurator.

  3. Copy this XF86Config-4 file to your /etc/X11 directory.

  4. Edit /etc/X11/XF86Config-4 to set up your keyboard type, if it is not the United Kingdom "gb" keyboard: search for "XkbLayout" and change "gb" to "us", "de" or whatever.

  5. Reboot and give it a try.

  6. Sometimes the display flickers at boot-up time. If this happens, use CTRL/ALT/BACKSPACE to kill the X server and it will restart. Or, you can try CTRL/ALT/F1 to get back to the text console, then CTRL/ALT/F7 to return to the X console.

Step 8 - Install Modem Driver

Look at Linux drivers for Conexant Modem Chipsets. Not sure if the original files are still there. Back in the day, I just downloaded a tarball and executed:

	gzip -d  hsflinmodem-xxxxxxxxxx.tar.gz
	tar -xfs hsflinmodem-xxxxxxxxx.tar
	cd hsflinmodem-xxxxxxxxxx
	make install
	hsfconfig
	hsfconfig --country
For a quick check, you might want to download Minicom, which is a Telix-like RS232 serial comms program. Start this with command-line "minicom --noinit" otherwise it hangs or reports "/dev/modem is locked". Once in Minicom, you can type "AT" and the modem will say "OK". Or maybe try "ATDTxxxxxxxxxxxx" to dial your cellphone. So far so good.

To quickly set up the parameters for a dial-up ISP, in RedHat's X menus you can just select "Programs, System, Network Configuration". Under "Devices", hit "Add", then "Modem Connection". It will try to probe for a modem but this will fail. Don't worry, just add /dev/modem as a generic modem, and enter the phone number, username and password for your ISP. Then hit "Activate" to dial - easy! You should then be able to PING a few internet sites. If you had a web browser open before you dialled your ISP, you might find that you need to close and restart the browser before it will resolve DNS names.

Taking Stock... What works so far

Acknowledgments

Many thanks to the users on the HP Omnibook Mailing List, including Jari-Pekka Heini, Rainer Kiehne, Angelo Marconi, Alexander Meindl, Andraz Tori.

Useful Links for Linux on the XE4500


My other pages (other old versions of Linux): Omnibook Configuration Tools & Patches. This area on SourceForge holds various add-ons for Linux on Omnibooks, including a very-recently released Omnibook kernel module. I have not yet used these myself, but in a recent posting to the Omnibook Mailing List, Soos Peter states that the XE4500 is at least partially supported. Once again this is no thanks to HP, who won't even provide the project with documentation.

Debian GNU/Linux 3.0 (woody) on HP OmniBook XE4500 laptops. Good page on the XE4500 for Debian followers, by Jari-Pekka Heini.

Red Hat Linux 7.3 on a HP omnibook xe4500 by Gerald Schnabel. Nice summary. Amongst other things this page explains DVD playback and special function key mapping rather nicely.

Linux drivers for Conexant Modem Chipsets. hsflinmodem driver for the XE4500's modem.  

Windows XP issues on the XE4500

There were some persistent crashing issues on this machine under Windows XP, traced to the video drivers. The fix was to update the BIOS from the HP website, then take the latest drivers you could find (not the ones on the HP CDROM). I did have some links here but they're all dead now ;-)

6th April 2003