Last Change: 14 Feb 2009, Upgrade to kernel 2.6.28.5, Now using PATA drivers for the harddisk (Changes are marked by a bar at the right)
Author: Lars Bamberger

URI of original document: http://lars-bamberger.gmxhome.de/linux/2155us.html


Linux on Compaq Presario 2155US Laptop

For questions concerning this document, contact me at:

l a r s [DoT} b a m b e r g e r {At) gmx (dOT} d e

(Please read the note at the end of the document before you do!)

SUMMARY:
This document describes how I installed Linux on the Compaq Presario 2155US Model Laptop.

TABLE OF CONTENTS:
Part One describes the laptop and its factory configuration.
Part Two is about how I installed Red Hat Linux 9.
Part Three goes into the details of getting the hardware to work as I install a LFS-System.
Part Four summarizes the most important configuration files and lists some initialisation scripts.
Part Five is a list of helpful links


Part One: Factory Laptop Configuration

Section A: Hardware

Model:
Compaq Presario 2155US
CPU:
Mobile AMD Athlon XP Processor 1800+ (1.53 GHz) with PowerNow! Technology
Display:
15.0 " XGA TFT Active Matrix (1024 x 768 Pixels)
Hard drive:
30 GB E-IDE IC25N030ATCS04-0 (29,997,559,808 bytes)
RAM:
256 MB DDR SD-RAM (1 x 256 MB) at 266 MHz;
Maximum Memory 1024 MB DDR SD-RAM (2 x 512 MB)
(up to 64 MB shared video memory, UMA. The amount of memory to share can be configured in the BIOS setup: 8, 16, 32 or 64 MB)
Video Card:
ATI Mobility Radeon IGP 320M 4x AGP, up to 64 MB UMA RAM
Graphic Chip:
ATI U1/A3 AGP (C6) with internal RAMDAC 350 MHz
Keyboard:
Standard 101/102 Key PS2 (or is it?), Presario laptop internet keyboard
Touch Pad:
Synaptics PS/2 Port 2 Button Touch Pad with Mouse Wheel
Synaptics Touchpad, model: 1, Firmware: 5.8, Sensor: 35 with new absolute packet format. Extended capability bits: multifinger detection and palm detection.
Battery:
ACPI-Compliant Control Method Battery
Motherboard:
ACPI-Compliant with Ali 7101 Power Management Controller
Ali M5229 PCI Bus Master IDE Controller Interface
ALi Corporation M1533 PCI to ISA Bridge [Aladdin IV]
ATI Northbridge.
CD-RW/DVD:
QSI CDRW/DVD SBW-241, Revision VX08
CD-read 24x; CD-write 8x; CD-rewrite 8x; DVD-read 8x
PS/2 Port:
1 Port for external Keyboard/Mouse
USB Port:
2 USB Ports with Ali PCI to USB Open Host Controller (USB 1.1 OHC)
Ethernet:
National Semiconductor DP83815/816 10/100 MacPhyther PCI Adapter
and RJ-45 Jack
S-Video:
1 S-Video Jack for external TV
Parallel Port:
ECP Printer Port
Serial Port:
Com Port with FIFO Buffer (16550 compatible UART)
Video Port:
1 Sub-D Video Port for external Monitor
Modem:
ALi Corporation Intel 537 [M5457 AC-Link Modem]
Probably with a Conexant Chipset
FIFO Buffer (16550 compatible UART), RJ-11 Jack
PCMCIA:
2 Type II Slots, O2Micro OZ6912 Card Bus Controller
Sound Card:
ALi Corp M5451 PCI AC-Link Controller Audio Device with microphone and headset jack and internal speakers
Chipset: Conexant Cx20468 rev 1
BIOS:
Phoenix BIOS Revision KAM1.39
Weight:
3.3 kg (7.25 lbs)
Dimensions:
329 mm (L) x 272 mm (W) x 40 mm (H)
[12.96 " (L) x 10.72 " (W) x 1.57 " (H)]

Section B: Software

The Compaq comes with a pre-configured Windows XP operating system and a set of other applications. There is an OEM recovery CD that simply restores the hard drive factory image which consists of only one single 30 GB NTFS partition. Needless to say that this will destroy any Linux installation. There's also a Compaq Operating System CD with which it is possible to re-install the OS on a user created partition after you have set up sensible partitions.

If you would like to continue to use Windows and want to configure your laptop as a dual boot machine, you could try either


Part Two: Installing Red Hat Linux 9

First, disable the Legacy USB support in the BIOS or neither the keyboard or the touch pad will function. The installation process runs uneventfully. Select text login when prompted for type of login, as XFree will not work out of the (Red Hat) box. At the first boot press 'I' to enter the interactive boot process and do not start the PCMCIA service. The PCMCIA service will lock up your system. To prevent this service from getting started on subsequent boots, edit the file /etc/sysconfig/pcmcia so that the first line reads PCMCIA=no.

The interactive configuration program xf86config will not create a working configuration file for XFree86. Instead, run XFree86 -configure and use that configuration file. I did not give this any further testing, so YMMV.

Here is the stock Red Hat kernel's ring buffer: RH-dmesg

Now with a basic Linux system installed, I will build my own Linux-From-Scratch-System.


Part Three: Installing a Linux-From-Scratch System

The LFS installation (version udev_update-20060413) went fine, so now comes the part where I try to get everything to work and fine tune all the hardware.

Hardware Status Overview

Hardware Status (Fully, Limited or Not Operational; WIP = Work in Progress)
Console FULL OP
Keyboard LIM OP, no special keys, WIP
Hard Disk Drive FULL OP
Touch Pad FULL OP
CD-RW/DVD LIM OP, CD-RW-Burning and encrypted DVD reading untested, WIP
Ethernet FULL OP
Graphics LIM OP, no 3D acceleration, WIP
Modem FULL OP
Sound Card LIM OP, external buttons NON OP, recording untested, WIP
ACPI Power Management FULL OP, not all features are tested, WIP
PCMCIA Unknown, WIP
Video Port (Sub-D) FULL OP
S-Video Port Unknown, WIP
Serial Port FULL OP
Parallel Port FULL OP
USB FULL OP
PS/2 Port Unknown, WIP
CPU FULL OP

Text Console

Only a portion in the center of the screen is actually used for the standard 80 x 25 text console and the virtual consoles if you don't configure the framebuffer device. I got a hint from Tony A. Edmond on how to configure the kernel properly for this to work. Take a look at my kernel configuration in part 4.

Keyboard

The 'special' keys on top of the main keyboard need special attention. Some combinations of the 'Function' key (the one with the blue 'fn' on it) and others keys don't work or give strange results.
Also see the ACPI section.

Thank you Doug Palmer for the hints on how to configure keyboards under X. Check his Unreliable Guide to XKB Configuration at http://www.charvolant.org/~doug/xkb/. This should help getting all the keys to work properly. WIP.

Hard Disk Drive

Standard IDE Drive, works.

Touch Pad

This is the Synaptics Touchpad, model: 1, Firmware: 5.8, Sensor: 35 with new absolute packet format. The Touchpad has the following extended capability bits set: - multifinger detection and - palm detection.

You might be interested in a specialized X11 driver at http://w1.894.telia.com/~u89404340/touchpad/index.html and a new version of GPM at http://www.geocities.com/dt_or/gpm/gpm.html.

To use the Touchpad with gpm (e.g. on text only consoles in runlevels 2 or 3), you need to get the patches for gpm (see above). You then need to create at least '/dev/input/event0' and '/dev/input/event1'. Before you start gpm, you need the kernel modules 'evdev.ko' and 'psmouse.ko' installed or built into the kernel.

The specialized X11 driver mentioned above works perfectly, just make sure you have the required kernel modules installed or built in before starting the X server. Check my system configuration for the appropriate XFree configuration.

CD ROM / CD RW / DVD ROM

Straight from the kernel documentation:

ide-scsi is no longer needed for cd writing applications! The 2.6 kernel supports direct writing to ide-cd, which eliminates the need for ide-scsi + the entire scsi stack just for writing a cd. The new method is more efficient in every way.

CD ROM reading

The drive works with the the kernel's IDE/ATAPI CDROM driver (ide-cd.ko as a module). If you use this as a kernel module, put 'alias block-major-3 ide-probe' in /etc/modprobe.conf.

The eject utility runs fine. Make sure that eject finds the correct drive to eject. Either define a default at compile time, link /dev/cdrom to the drive, modify your /etc/fstab file (eject also looks in this file for the default drive to be ejected) or define an alias in your shell. Also make sure that you have the proper permissions to read /dev/hdc or eject will not be able to eject the drive.

CDDA operations run OK.

CD-ROM Burning (data and audio)

CD writing at 8 times speed works with cdrecord 2.01 for data CD-ROMs TAO mode. The command line I use is: cdrecord -v speed=8 dev=ATA:1,0,0 -data cd_image. Audio CD buring not yet tested. DAO mode is not supported.

DVD reading

Reading data DVDs

Works fine. Remember to configure the kernel for the UDF filesystem but note that there are also DVDs with a ISO9660 filesystem.

Reading movie DVDs

You need software capable of playing back DVDs (e.g. mplayer). Unencrypted DVDs without region code are not a problem.

The DVD drive is a RPC-2 drive and has a hardware protection that allows 5 changes of region code only. You can flash the firmware of the drive and upgrade it to an RPC-1 drive.
See the following sites for more information:

Note that I have not flashed the firmware on my computer. Use caution!

ToDo:

Ethernet

Compile support for National Semiconductor DP8381x series PCI Ethernet as a kernel module and put 'alias eth0 natsemi' in your modprobe.conf file. If you hard-code it into the kernel, Ethernet will not work should you unplug the network cable and reconnect it again. 10 MBit Ethernet as well as 100 MBit Ethernet works fine.

GUI

The Video card works with X-org's X11R6.8.1 using the radeon driver which does not support 3D acceleration. Alternatively you can also specify the vesa driver or the ati driver (which will load the radeon driver).

X11R6.8.2 is out. There is a new ATI radeon driver.

I received a nice email from Philippe Coval, he tells me that accelerated 3D works. Check out http://rzr.online.fr/linux.htm. This is a site about Linux on Fujitsu/Siemens Amilo A7614-09GD with similar graphic hardware.

To get 3D hardware acceleration to work the first step is to configure the kernel for AGP and DRM. During kernel configuration, in the Character Devices section, enable AGP support ('agpgart.ko' if you choose modules) and ATI chipset support ('agp_ati.ko'). Also, enable either built-in or as modules the Direct Rendering Manager and ATI Readeon ('radeon.ko').

Read about the whole scoop at the DRI WIKI.

This is my current X11 configuration file: xorg.conf

ToDo:

Modem

The modem's PCI_ID is 10b9:5457, the subSystemID is 103c:0024, and the AC97 Modem codec ID is CXT41.

The Linux drivers for the Conexant (formerly Rockwell) Soft-modem HSF modem family from http://www.linuxant.com work.

Make sure that you get the very latest version of the driver (and all available patches) before upgrading your kernel. If you don't, you might be stranded with a non functional modem (or keep the old kernel around).

The latest hsfmodem driver version as of 18th May 2007 is: 7.60.00.09 and there are no patches.

Note that this driver is not published under the GPL. It's a proprietary driver and you have to pay to use the full modem speed. See the link above for further details.

You need to chmod +x /usr/lib/hsfmodem/modules/kernelcompiler.sh or hsfconfig will fail.

There seems to be a conflict with the pre 2.6.0 linux kernel's sound drivers. I have not had any problems with the now kernel ALSA's 'snd-ac97-codec.ko' driver module.

See also the Conexant+Rockwell-modem-HOWTO from The Linux Documentation Project.

Sound Card

The ALSA sounddrivers now come with the linux kernel. The module will be called 'snd-ali5451.ko'. Individual left/right muting is not possible, and the neither the external buttons nor the special keyboard sound control buttons work.

ToDo:

ACPI

Simply configure your kernel for ACPI. The system fan is now nice and quiet :-)

Since ACPI is enabled, some of the special key-combinations (with the blue 'fn') started working, more testing is in progress.

The acpid daemon is considered to be outdated (by me). Many user space programms use ACPI's procfs and/or sysfs interfaces.

Check http://acpi.sourceforge.net/ for latest information on ACPI for linux.

ToDo:

Video Port (Sub-D)

In the BIOS, select either AUTO or BOTH for the external monitor. Just plug in you monitor and enjoy :-) Note that the laptop only detects the external monitor at system startup, so the monitor is not hot-pluggable.

Serial Port

Just compile the serial driver(s) you want. If you use modules, it's propably a good idea to put 'alias char-major-4 serial' in /etc/modprobe.conf. Don't forget the serial mouse driver if you want to use a serial mouse on this port.

Parallel Port

The standard parallel port works OK. You need parallel port support (parport) and PC-style hardware (parport_pc) compiled into the kernel or the kernel modules parport.ko and parport_pc.ko. Put 'alias parport_lowlevel parport_pc' in your /etc/modprobe.conf file if you use kernel modules.

NOTE: If you want to use the port for printing, also put 'alias char-major-6 lp' in /etc/modprobe.conf and compile parallel printer support (lp.ko as a module) with the kernel. See the documentation of your printing system (e.g. CUPS) for further details.

USB

You need at least 'Support for Host-Side USB' (usbcore.ko as a module) and 'OHCI HCD' (ohci_hcd.ko as a module) configured in the kernel.
Depending on what you want to connect to the USB ports, additional software is required. See the Linux USB Project for more information on USB. Note that the Compaq does not support USB 2.0

CPU

CPU Frequency Scaling seems to work. Remember to configure the kernel for the sysfs type filesystem, and mount it. Then read the documentation that comes with the kernel in the cpu-freq directory.
With the conservative governor the CPU stays at the slowest speed when playing MP3s in the background and doing other things (like writing this document). :-)
Look at the configuration below and also at the little scripts.

Part Four: My current system configuration files

This is my current kernel configuration file: linux-2.6.28.5.config
This is the kernel's ring buffer right after booting has finished: dmesg

This is my configuration file for the kernel module loader: modprobe.conf
This is my current X11 configuration file (experimental!): xorg.conf

Some initialisation scripts I wrote:

Part Five: Useful hyperlinks

Useful hyperlinks
Unreliable Guide to XKB Configuration http://www.charvolant.org/~doug/xkb/
Specialized X11 driver for Touch Pad http://w1.894.telia.com/~u89404340/touchpad/index.html
A new version of GPM http://www.geocities.com/dt_or/gpm/gpm.html
mplayer http://www.mplayerhq.hu/
The Firmware Page http://rpc1.org/
The QSI SBW-241 page http://forum.rpc1.org/dl_firmware.php?download_id=1439
QSI Firmware Patches http://etna.rpc1.org/qsi/index.html
Regionset tool http://linvdr.org/projects/regionset/
Site about Linux on Fujitsu/Siemens Amilo A7614-09GD http://rzr.online.fr/linux.htm
DRI WIKI http://dri.freedesktop.org/wiki/
Linux drivers for the Conexant Soft-modem HSF modem family http://www.linuxant.com
The Linux Documentation Project http://www.tldp.org/
ACPI for linux http://acpi.sourceforge.net/
Common Unix Printing System http://www.cups.org/
Linux USB Project http://www.linux-usb.org/
Linux on Laptops http://www.linux-on-laptops.com/
TuxMobil Laptop and Notebook Installation Guides Survey http://tuxmobil.org/mylaptops.html
Linux Mobile Guide http://tuxmobil.org/howto_linux_laptop.html

NOTE:

I am not a Linux professional, I spend parts of my free time on Linux. This document is intended only to share my experience with other users. Please keep that in mind if you should mail me. You are always welcome to contribute to this document. I will update this document as I progress and hopefully get more and more hardware to work unter Linux. It may also help to consult other documents dealing with similar laptop models. Check out the Linux on Laptops website for more links.

With respect to German law, this is the .