Overview of problems -
BIOS update -
Preparing the hard disk -
Kernel update -
X-Server update -
Last changed: 18.01.2008
Red Hat Linux 7.3 on HP omnibook xe4500
In January 2003, I've bought an HP omnibook xe4500 notebook.
- CPU: Mobile Intel(R) Pentium(R) 4 - M, 1.7GHz
- Cache: 512KB L2
- Chipset: ALi M1671 (Aladdin-P4)
- IDE controller: ALi M5229 (ALi 15X3)
- Hard disk: 30GB HITACHI DK23EA-30 UDMA 100
- Combo DVD-CDRW: TOSHIBA SD-R2312 (Firmware 1905)
- RAM: 256MB DDR-SDRAM@266MHz
- Display: 14.1" TFT XGA (1024x768)
- Graphics: ATI Radeon Mobility M6 LY (AGP) with 32MB DDR-RAM
- Sound: ALi M5451
- USB: ALi OHCI USB 1.1 Controller, 2 ports
- Network: NatSemi DP83815 10/100 Mbit/s
- Floppy drive
- Parallel: 25 pin bi-directional ECP/EPP
- Serial: 9 pin RS-232
- Infrared: ALi M5123, 4Mbps
- Firewire: Texas Instruments IEEE1394 TSB43AB21
- VGA: 15 pin
- S-Video TV-out
- Headphone-out: 3.5mm
- Microphone-in: 3.5mm
- Modem: ALi M5457, RJ-11 Jack
- LAN: RJ-45 Jack
- 2x PCMCIA
- Docking port
I decided to install Red Hat Linux 7.3 Personal (it was cheap: 4 EUR for 8 CDs + 1 DVD, yeah! :-) ) and because I experienced some problems I searched the Internet for other pages that contain
information about Linux on a omnibook xe4500 and found the following two helpful pages:
It looks like there exist different versions of the omnibook xe4500 with different components (e.g. hard disk, chipset revisions),
because some things worked fine for my installation where the two pages describe problems and vice versa.
So I put this page online with a basic description what I did to get things working, additional information not provided on the other pages and the intention to be helpful for omnibook
xe4500 owners that want to install Linux.
This page is a quick & dirty hack (uhmm, not any more, I hope... ;-) ) and work in progress! Use the information provided here at your own risk!
This is no step-by-step instruction installation manual, so you should have a bid knowledge what you are doing. Some points will be
omitted because there exists enough documentation on the net (e.g. partition resizing, how to build a kernel etc.).
Consider this page as a collection of installation hints! ;-)
Most tips & solutions here should work for other Linux distributions aswell.
Overview of problems that may be experienced
First, I want to give an overview of possible problems (and solutions), so you know what oddities may happen during/after installation.
Generally, the system works not stable with the shipped kernel 2.4.18(!), but after updating to the latest stable version
(2.4.20 at the moment of writing this document) things work better/fine!
Conclusion: DO update the kernel!
Problems and solutions:
- Hard disk error messages when installing/loading Linux
I didn't experience this problem, so I can't say anything about that
- See ,  for more information & solutions
- Terminal keyboard lockups (Update 23.07.03: fixed, thanks to Erik Frederiksen!)
[ Old text:
- disable USB legacy support in BIOS
- the kernel loaded awfully slow when I disabled USB legacy support in BIOS(?!). The 'compact' option in lilo.conf fixed this
- give kernel option 'nousb' when booting. USB support seems to be broken for the xe4500 (kernel 2.4.18 & 2.4.20).
To make this kernel option resident, add it to the Linux boot loader config.
- with kernel 2.4.18: disable gpm (mouse support for terminal):
'/sbin/chkconfig gpm off' ]
- Screen display flickers
When X starts up or when switching X-Server <-> terminal (with <CTRL>+<ALT>+<associated function keys>) the screen display flickers
- update the kernel to at least 2.4.22
- use a recent version of XFree86 (4.3.0-42 from Fedora works fine. Maybe some earlier 4.3.0 releases work too...)
- X-Server lockups
- with XFree86 4.2.0: disable FBDEVHW and DRI support in /etc/X11/XF86Config-4
(comment out the corresponding 'Load' instructions in 'Section "Module"')
Lockups are gone with XFree86 4.2.99 (i.e. FBDEVHW and DRI work!)
- Long delay until X-Server starts, all keyboard LEDs are on (experienced with XFree86 4.2.99 & kernel 2.4.18)
- upgrade to the latest kernel (2.4.20 solved the problem here)
Update 02.08.04: BIOS KB.M1.94 (SP27515/SP29154/SP29155)
HP has released an BIOS update to version KB.M1.90
that solves problems with the display driver under WindowsXP.
The problem is hardware related AFAIK, so it may be a good idea to update the BIOS anyway before proceeding.
- SP23322 on 08.01.03 at ftp://ftp.hp.com/pub/softlib/software1/COL2189/ob-9940-1/ (dead)
- SP23460 on 22.01.03 at ftp://ftp.hp.com/pub/softlib/software1/COL2189/ob-9940-2/ (dead)
xe4500 drivers & updates can be found at http://h20000.www2.hp.com/bizsupport/TechSupport/DriverDownload.jsp?pnameOID=83759
There existed a page about the display driver problem at http://www.xe4500-crash.com
Older BIOS versions are available on HP's FTP-Server:
Look for files with names XE4KBxxx.exe
BIOS KB.M1.94 (Flash update from Windows #1):
BIOS KB.M1.94 (Flash update from Windows #2):
Preparing the hard disk for Linux
When shipped from HP, the hard disk has two partitions: a small hidden ~20MB partition (ID 0xa0, IBM Thinkpad hibernation) that holds the HP Diag Tools usually started with <F10> from BIOS splash screen and a second large
partition (ID 0x07, NTFS) with the pre-installed WindowsXP. In order to have space to install Linux you have to reduce the NTFS partition. There are several tools that can
resize the partition as desired (e.g. Powerquest's Partition Magic, ...) so choose the one you like best and go ahead :-)
Then you have to create at least a / (root) Linux partition and a Linux swap partition.
My partition layout looks something like this:
Partition Size File system Description
/dev/hda1 20MB IBM Thinkpad hibernation Hidden HP Diag Tools partition
/dev/hda2 5GB NTFS WindowsXP
/dev/hda3 24GB Win95 Ext. (LBA) Extended partition that holds the following partitions
/dev/hda5 5GB Linux ext3 Linux / partition
/dev/hda6 128MB Linux Swap Linux swap partition
/dev/hda7 8GB Win95 FAT32 8GB space for data; FAT32 because Linux NTFS write support is experimental!
/dev/hda8 10GB Win95 FAT32 10GB space for data; FAT32 because Linux NTFS write support is experimental!
Nothing special to say here:
The installation took about 45 minutes for me, one reason for this is probably because of disabled DMA for HD & CD-RW combo drive (see Enable DMA)
- Select IMPS/2 as the mouse protocol
- Do a laptop-installation. Optionally deselect unwanted packages (my installation without Gnome takes about 2GB disk space).
- When configuring the X-Server, select "Generic Laptop Display Panel 1024x768".
The installer lets you choose the boot loader for Linux, either GRUB or LILO. I chose LILO because I'm more familiar with it.
Install to the MBR (Master Boot Record) of the hard disk. As a consequence you won't be able to start the HP diag tools by pressing <F10>
from BIOS splash screen. But there's a solution, see Re-enable HP Diag Tools below.
Update 13.11.03: update to at least kernel 2.4.22 which fixes the screen flicker problem!
I won't describe the full process of building a new kernel, only some important hints. Search the web for documentation, e.g. the Kernel-HOWTO...
Update 07.07.03: Red Hat has released an updated X-Server (XFree86-4.2.1-13.73.3) that fixes console/X-Server switching lockups, but if you use gpm on console the mouse will be unusable if you switch back to X.
Update 11.11.03: Red Hat is now Fedora, Red Hat Raw Hide is now Fedora Development and the new link is http://download.fedora.redhat.com/pub/fedora/linux/core/development/
Download the latest XFree86 Red Hat Rawhide RPM packages (that was the XFree86 4.3.0 preview release 4.2.99-3-20021230.4 for me) from
ftp://rawhide.redhat.com/pub/redhat/linux/rawhide/. Rawhide packages are (experimental) development releases that may not work and may contain
severe bugs, but most of the time they work :-) The new XFree86 4.2.99 has more separate packages than 4.2.0 from Red Hat 7.3, but there's no problem to install them
because RPM will tell you which dependencies are not fulfilled.
If you want to rebuild the XFree86 packages (as I did - i686 optimized stuff is reason enough for doing that ;-) ) you must also download and update fontconfig and freetype.
Here is my X-server configuration file: XF86Config-4
DRM/DRI (Direct Rendering Manager/Direct Rendering Infrastructure) (19.04.2003)
DRM/DRI is unstable, better skip this section... (Hint: in case of problems with DRI comment out 'Load "DRI"' in XF86Config-4 to disable it (again)! DRI also causes problems with swsusp (software suspend)!)
Direct rendering does not fully work, because the kernel module is too old.
/var/log/XFree86.0.log shows the following warning messages:
(WW) RADEON(0): [dri] Some DRI features disabled because of version mismatch.
[dri] radeon.o kernel module version is 1.1.1 but 1.3.1 or later is preferred.
(II) RADEON(0): [drm] failure adding irq handler, there is a device already using that irq
[drm] falling back to irq-free operation
(II) RADEON(0): [drm] Kernel module too old (1.1) for agp heap manager
A new radeon driver from http://dri.freedesktop.org/snapshots/ fixed this:
/var/log/XFree86.0.log now shows:
- download radeon-xxxxxxxx-linux.i386.tar.bz2 (it was radeon-20030407-linux.i386.tar.bz2 with radeon.o kernel module 1.8 for me) and extract it to a temporary directory, e.g. /tmp
- cd /tmp/dripkg/drm
- make -f Makefile.linux
- copy the new radeon.o driver to the kernel module directory, that is e.g. /lib/modules/2.4.20/kernel/drivers/char/drm/
- /sbin/depmod -a
- switch to console and shut down X with 'telinit 3'
- '/sbin/rmmod radeon' to unload the old radeon kernel module
- restart X with 'telinit 5'
(II) RADEON(0): [drm] dma control initialized, using IRQ 9
(II) RADEON(0): [drm] Initialized kernel agp heap manager, 5111808
Update 02.05.03: With XFree 4.3.0-6 lockups are gone (XFree86-4.3.0-radeon-irq-gen-lockup-from-cvs.patch: works around a lockup that can occur on server shutdown/restart with the radeon driver due to bugs in DRM IRQ handling in the kernel).
ATI has its own 'Linux and XFree86 Information page' that can be found at http://www.ati.com/support/faq/linux.html
- Full screen terminal
Adding 'vga=790' to '/etc/lilo.conf' gives a VGA resolution of 1024x768 pixels with 32768 colours (VESA frame buffer). Don't forget to update LILO with '/sbin/lilo' after changing the configuration!
The radeon frame buffer module (radeonfb) 1.8.0-ben of kernel 2.4.22 that could be used too does not work well (strange artifacts when rebooting, drawing in frame buffer seems to broken sometimes).
- Enable DMA for HD and CD-RW/DVD Combo drive
Update: DMA enabled for the hard disk on kernel boot was fixed in a pre-version of kernel 2.4.21. DMA for CD drives is disabled by default with the rc.sysinit script from Red Hat to avoid possible problems!
DMA (Direct Memory Access) is disabled and causes poor hard disk & CD-RW performance. So far I've had no problems with enabled DMA setting so here's the description how to enable it:
/etc/sysconfig/harddisks contains parameters to enable/disable some functions for ALL IDE drives of the system
A second possibility is separate parameter files for each drive, so we need a file for /dev/hda (HD) and /dev/hdc (CD-RW/DVD combo) that enable DMA.
The advantage of this possibility is that if you experience problems later you can disable DMA separately for each drive.
- cd to /etc/sysconfig
- move 'harddisks' to 'harddiskhda'
- edit 'harddiskhda' and uncomment USE_DMA=1
- copy 'harddiskhda' to 'harddiskhdc'
To activate the changes reboot and you should see
Setting hard drive parameters for hda: [ OK ]
Setting hard drive parameters for hdc: [ OK ]
Verify the DMA setting with hdparm: type '/sbin/hdparm /dev/hda' and '/sbin/hdparm /dev/hdc'; 'using_dma = 1 (on)' should be shown for each drive
Speed: '/sbin/hdparm -t /dev/hda' shows ~28MB/sec for my HITACHI DK23EA-30 hard disk with enabled DMA
- Battery status display
aKpi - a QT/KDE acpi frontend works fine for me
Binary & source RPMs:
akpi-0.4-1.i686.rpm (71 KB)
akpi-0.4-1.src.rpm (643 KB)
akpi-0.3.4-1.i386.rpm (92 KB)
akpi-0.3.4-1.i686.rpm (92 KB)
akpi-0.3.4-1.src.rpm (53 KB)
Another nice program to display the battery status is wmacpi
Binary & source RPMs:
wmacpi-1.34-2.i386.rpm (14 KB)
wmacpi-1.34-2.i686.rpm (14 KB)
wmacpi-1.34-2.src.rpm (18 KB)
- Enable the five One-Touch buttons and the audio buttons
Some of the One-Touch buttons work without further actions, some have to be activated. This will be done by the omnibook kernel module.
- Go to http://sourceforge.net/projects/omke and download the omnibook source tarball
- compile the source and install the module ('make && make install')
- add 'modprobe omnibook' to /etc/rc.rc.local so it will be loaded on bootup
- add the following lines to /etc/X11/Xmodmap that map the One-Touch & audio buttons keycodes to function keys F13->F20:
keycode 236 = F13
keycode 243 = F14
keycode 178 = F15
keycode 241 = F16
keycode 240 = F17
keycode 160 = F18
keycode 174 = F19
keycode 176 = F20
- either type 'modprobe omnibook' and restart X or reboot to activate the changes
- to test if it works type 'xev' that will show received X events. Try the One-Touch and audio buttons. For each pressed key you should see a KeyPress and a KeyRelease event that should look something like this (example output for the "mail" button F13):
KeyPress event, serial 22, synthetic NO, window 0x2a00001,
root 0x48, subw 0x0, time 11773632, (68,145), root:(904,180),
state 0x0, keycode 236 (keysym 0xffca, F13), same_screen YES,
XLookupString gives 0 bytes: ""
KeyRelease event, serial 22, synthetic NO, window 0x2a00001,
root 0x48, subw 0x0, time 11773643, (68,145), root:(904,180),
state 0x0, keycode 236 (keysym 0xffca, F13), same_screen YES,
XLookupString gives 0 bytes: ""
- to associate KeyPress events with actions I use xevact. After X login xevact should be started from a startscript or autostart folder depending on the desktop environment.
I've created binary & source RPMs:
xevact-1.0d-2.i386.rpm (11 KB)
xevact-1.0d-2.i686.rpm (11 KB)
xevact-1.0d-2.src.rpm (42 KB)
And here is a configuration example for xevact that associates
- the "mail" button (F13) with no action
- the "tv" button + Control (F14+Control) with Konsole
- the "tv" button + Shift (F14+Shift) with KWrite
- the "tv" button (F14) with Konqueror
- the "www" button (F15) with Mozilla
- the "lock" button (F16) with xscreensaver that blanks and locks the screen
- the "help" button (F17) with no action
- the "mute" button (F18) with aumix that sets audio volume to 0
- the "-" button (F19) with aumix that decreases audio volume by 5
- the "+" button (F20) with aumix that increases audio volume by 5
KeyPress - 0,0 1 Test_KeyCode "F13" NoAction
KeyPress S 0,0 2 Test_KeyCode "F14" Test_State Control System /usr/bin/konsole &
KeyPress S 0,0 2 Test_KeyCode "F14" Test_State Shift System /usr/bin/kwrite &
KeyPress - 0,0 1 Test_KeyCode "F14" System /usr/bin/konqueror &
KeyPress - 0,0 1 Test_KeyCode "F15" System /usr/bin/mozilla &
KeyPress - 0,0 1 Test_KeyCode "F16" System /usr/X11R6/bin/xscreensaver-command -lock &
KeyPress - 0,0 1 Test_KeyCode "F17" NoAction
KeyPress - 0,0 1 Test_KeyCode "F18" System /usr/bin/aumix -v 0 &
KeyPress - 0,0 1 Test_KeyCode "F19" System /usr/bin/aumix -v -5 &
KeyPress - 0,0 1 Test_KeyCode "F20" System /usr/bin/aumix -v +5 &
Another program you may want to take a look at: xhkeys
- DVD, media & audio playback
Red Hat 7.3 comes with xine DVD player, but you have to install some additional libraries to be able to play encrypted DVDs.
Download and install the following libraries (in this order):
A good media player that will play almost every media format is mplayer
Red Hat 7.3 comes with xmms, the X MultiMedia System that plays the most common audio formats
Update 11.11.03: With v6.00+ Linuxant decided to release 2 versions of the modem driver: a free version limited to 14.4 Kbps and a full version with 56 Kpbs and fax support. You can still try a Google search to find the old free hsflinmodem driver v5.xx that works at full speed 56 Kbps.
Modem works with HSF softmodem kernel modules from http://www.linuxant.com/drivers/hsf/
- Infrared port/IrDA (19.11.2003)
The infrared device controller is an ALi M5123 FIR (Fast InfraRed).
For more information about Linux and infrared see the Infrared-HOWTO.
- FIR mode - not tested
- If the serial port driver is built into the kernel the infrared io-port will be allocated by the serial driver when booting the system (if the serial driver is a kernel module you can continue with modprobe, see below). 'dmesg' (/var/log/dmesg) should give you something like the output below:
Serial driver version 5.05c (2001-07-08) with MANY_PORTS MULTIPORT SHARE_IRQ SERIAL_PCI ISAPNP enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
ttyS0 at 0x03f8 is the serial port on the backside, port at 0x02f8 is the infrared port that we want to be controlled by the ali-ircc driver.
- Next step is to unload the serial driver/device ttyS1:
setserial /dev/ttyS1 uart none port 0x0 irq 0
- Now the infrared port at 0x02f8 can be used by the ali-ircc driver:
The syslog (/var/log/messages) should show something similar like below:
kernel: ali-ircc, driver loaded (Benjamin Kong)
kernel: IrDA: Registered device irda0
kernel: ali_ircc_open(), ali-ircc, Found dongle: HP HSDL-3600
- The infrared device irda0 should be ready now.
You can put the commands above in the startup script /etc/rc.d/rc.local so that the infrared port will be enabled every time you boot the system.
If you want to exchange files with Windows take a look at ircp of the OpenOBEX package.
- Software suspend (22.11.2003)
Software suspend (the Linux equivalent of Windows' hibernate functionality) from http://swsusp.sourceforge.net/
works for me out of the box (swsusp-2.0 kernel patch).
Be sure to disable DRI (comment the line 'Load "dri"' in XF86Config-4) if you want to suspend from X because DRI hangs the X server when resuming.
You can take a look at http://cpbotha.net/dri_resume.html
for more information about software suspend & Radeon DRI
For more information see:
Software Suspend HOWTO
Software Suspend FAQ
can be used to monitor ACPI events, e.g. power button press, battery status, and then start hibernation.
Here are my config files (they reside in /etc/acpid/events):
: hibernate if power button is pressed
: check battery status
: shell script, that parses remaining capacity of the battery and if the capacity is below a certain level (here: 300 mAh) the script starts hibernation
- Processor speed selection (22.11.2003)
The Intel Mobile Pentium 4 processor speed can be set to 1700 MHz or 1200 MHz (lower power consumption!). This is done by changing the performance state via /proc/acpi/processor/CPU0/performance:
- 'echo "0" > /proc/acpi/processor/CPU0/performance' sets state P0: 1700 MHz, 20000 mW, 250 uS
- 'echo "1" > /proc/acpi/processor/CPU0/performance' sets state P1: 1200 MHz, 10000 mW, 250 uS
- PCMCIA/Cardbus (02.08.2004)
The xe4500 has a Texas Instruments PCI1250 PC card Cardbus Controller that is controlled by the yenta_socket driver. To enable PCMCIA the /etc/sysconfig/pcmcia file must be edited.
But first an update of the kernel-pcmcia-cs package to 3.1.31-9 from Red Hat 8.0
is recommended, because the cardmgr command that initialises the PCMCIA slots caused error messages and a beep on bootup which is fixed with the update.
The /etc/sysconfig/pcmcia file should look like this:
Now the PCMCIA slots will be initialised automatically on bootup or it can be done manually with '/sbin/service pcmcia start'.
- Re-enable the HP Diag Tools
Because of installing LILO in the MBR (Master Boot Record) of the hard disk, the HP Diag Tools can't be executed any more.
It looks like the boot code in the original MBR is responsible for checking whether the BIOS has set a flag that <F10> was pressed, for unprotecting the first partition and for booting the Diag Tools or,
if <F10> was not pressed, the second partition (WindowsXP).
The trick is, that the Diag Tools partition is actually a FAT16 partition that can be booted by LILO! So let's re-enable the Diag Tools:
Some notes for WindowsXP:
- When booting WindowsXP it assigns a drive letter for the Diag Tools partition now, because it is never hidden! Remove the drive letter from the Diag Tools partition with the device manager (or whatever it is called...)
- In C:\DMI\HPDIAGS there is a tool HPSUPPT.EXE that is destined to copy the diagnostic results (aka "support ticket") from the normally hidden partition to the WindowsXP partition. This tools doesn't work anymore with the changed file system type,
but it isn't required anyway. If you want to copy the "support ticket" simply assign a drive letter to the Diag Tools partition, copy HPSUPPT.TXT (the "support ticket") to wherever you like and then remove the drive letter again to hide the partition for WindowsXP.
02.08.04: HP omnibook xe4500 with Red Hat Linux 7.3, kernel 2.4.26 + swsusp-2.0 patch, XFree86 4.3.0-42, omnibook kernel module 2004-07-01
What doesn't work (yet) or what I didn't test (yet):
- hard disk (of course :-) )
- touchpad, scrollpad (requires IMPS/2 protocol for X), click buttons, touchpad on-off button (requires ACPI)
- the five One-Touch buttons
- audio: volume up/down/mute buttons on the left side and the corresponding function keys (<fn>+<page up>, <fn>+<page down>, <fn>+<backspace>)
- network port
- mouse on PS/2 port
- floppy drive
- CD-RW/DVD combo drive: data CD/DVD, audio CD playback with kscd, audio ripping with cdparanoia & cdrdao (generic-mmc driver), DVD playback with xine & mplayer
- CD burning: tested with cdrdao (generic-mmc/generic-mmc-raw drivers)
- audio: trident & ac97_codec modules are used
- audio: playback with internal speakers
- audio: headphone port
- audio: microphone port
- switching of X display resolutions: works with <+> & <-> on keypad (hint: <fn>+<f8> locks/unlocks keypad!)
- brightness of TFT display: can be adjusted with function keys <fn>+<f1> & <fn>+<f2>
- S-Video port (TV output, PAL): works with atitvout and forced Rage Mobility/Rage 3D Pro LT mode (option -f), requires an S-Video to Composite video adapter for colour output.
- external monitor port: works, atitvout may be useful for switching displays
working modes with atitvout:
There's a Linux TV-out HowTo that discusses TV-out for several video cards.
- LCD only
- CRT only
- TV only
- LCD & CRT
- CRT & TV; the resolution of the CRT changes with TV output enabled at the same time, maybe that's the reason why the LCD stays black when trying to use LCD & TV
- modem: works
- USB: works with USB legacy support option turned off in BIOS (avoids keyboard lockups). Be sure to give option 'compact' for LILO, otherwise the kernel loads awfully slow(?!)
- PCMCIA: works
- system reboot: works
- system power off: works with ACPI patch
- Infrared port: works in SIR mode. Is recognized by the ali-ircc driver and should work with that in FIR mode (not tested).
- IEEE 1394 port: not tested yet
- Serial/parallel port: not tested yet, but I guess these work (ancient standard ports :-) )
- Starting HP's Diag Tools from BIOS splash screen with <F10> doesn't work because of the Linux bootloader sitting in the MBR instead of HP's Diag Tools loader
- the people of the HP Omnibook Mailing List
the authors of other Linux on xe4500 pages for great information (links below!), especially Martin Johnson, Jari-Pekka Heini, Marc Villegas
Some day, Linux will work perfectly on all our xe4500s! :-)