Installation of RedHat 9 on Dell i8500

In early months of the summer 2003, I finally got my first laptop, a Dell inspiron 8500. It didn't take more than a day before the preinstalled MS Windows was replaced with a lovely RedHat Linux.

HD-Controller

The standard kernel shipped with RedHat 9 doesn't allow my laptop to enable DMA on the laptop's disk, which results in the system only being able to read 3mb/s from the disk. The 2.4.20-18.9 kernel allows the system to use DMA and a lot of other things has been improved that will make the system run more smoothly.

Testing the disk's performance can be done using the hdparm tool

$ hdparm -t /dev/hda

The first step is to fetch the new kernel and the kernel source as well, since we need it to compile the net card and graphic card drivers.

$ rpm -Uvh kernel-2.4.20-18.9.rpm
$ rpm -Uvh kernel-source-2.4.20-18.9.rpm

Restart the computer to load the new kernel

$ hdparm -t /dev/hda

The disk performance should have increased approximately 10x.

X-Windows

During the installation I choose a Dell 1600x1200 Panel as my monitor, however it wasn't possible to run X with a resolution higher than 800x600. The graphics card was automaticly probed to be a NVIDIA GeForce 4, which works fine.

To get the TFT display to run the optimal resolution at 1680x1050 a few changes has to be made to the X-Windows configuration file (/etc/X11/XF86Config)

In the monitor section add the following:
ModeLine "1680x1050" 147.1 1680 1784 1968 2256 1050 1051 1054 1087

which tell the monitor to use the 1680x1050 resolution.

Then the following is added to the screen section to enable different resolutions (used when connecting the laptop to projectors and external monitors:

Modes "1680x1050" "1024x768" "800x600" "640x480"

It is possible to jump between the resolutionsby pressing ctrl + alt + +

3D-acceleration
In order to be able to use the graphic card's hardware acceleration for e.g. 3D-games and screensavers :) it is necessary to install the NVIDIA binary driver, since the Open Source driver doesn't include support for 3D hardware acceleration.

Fetch the newest driver from NVIDIA's website (Download Drivers -> Linux driver -> Linux IA32)

The driver is installed by running:
$ sh NVIDIA-Linux-x86-1.0-4363.run

The installer will then compile the driver and install it.

Netcard

The next step is to get the laptop's onboard Broadcom 4401 netcard to work, since this just like the harddisk controller isn't supported in the kernel shipped with the RedHat 9 distribution.

The kernel source code was previously installed and it is necessary since we need to compile the driver for the netcard. Fortunately some friendly people have already created a driver, so this article won't be about kernel hacking, that will have to wait for another time.

Fetch the driver source code

Extract the source code
$ unzip -x bcm440.zip

Go to the Linux drivers folder
$ cd Linux/src

Compile the driver
$ make

Install the driver
$ cp bcm440.o /lib/`uname -r`/kernel/drivers/net

Load the driver
$ insmod bcm440

Configuration of the netcard can be done using e.g. gnomes netcard configuration tool found in the System settings menu.

  • Add a new device
  • The tool will automatcly suggest a broadcom card.


The rest should be pretty straight forward.

Multimedia keyboard

The Inspiron 8500 is equiped with a total of 7 multimedia keys, which can easily be set to work in Linux. The first step is to figure out what key codes the different keys uses, this is done using the xev tool

(update: the logitech navigator keyboard article descripes this more in depth.)

Volume down: 174
Volume up: 176
Volume mute: 180

Play/Pause: 111
Stop: 123
Back: 124
Forward: 125

After having found the key codes the X-server has to be told what key identifiers each key code should resolve to. This is done using the xmodmap tool.

$ xmodmap -e "keycode 174 = XF86VolumeLower"
$ xmodmap -e "keycode 176 = XF86VolumeRaise"
$ xmodmap -e "keycode 180 = XF86VolumeMute"

In the Window Manager, which is standard on RedHat 9 and the one I use, Metacity, it is possible to bind a key press to an action

XF86VolumeLower aumix -v -10
XF86VolumeRaise aumix -v +10
XF86VolumeMute aumix -v 0

It is furthermore possible to e.g. use the keys in the multimedia player Mplayer.

Battery status

Currently I jump out into the bios to check the battery status by pressing fn + F3, this however isn't very conviniet and it isn't possible to have the battery status displayed at all times.

Powerdown when shutting down