Debian and Gentoo GNU/Linux on the Dell Inspiron 8000/8100

Table of Contents

Gentoo Linux 1.2

Introductory Material

Please read the Abstract, Disclaimer, and Configuration information in the below Debian portion before proceeding. For the curious, I am not running Debian anymore and Gentoo is my primary operating system (finally, a decent ports-based linux distribution). It is recommended that you begin the installation process about an hour or two before you want to retire for the night. You'll see why later... :)

A lot of how I learned to install Gentoo (as well as the notes below) came directly from the Gentoo Linux 1.2 Installation Instructions documentation. You should read the portage primer before proceeding as well. A correction to their portage user guide: instead of using emerge umerge package to clean up old packages, you should use the clean option.
[ Installation Instructions | Portage User Guide ]

Preliminary Steps

  1. Download the Gentoo Linux 1.2 (i686) ISO from
    [ gentoo-i686-1.2.iso ( | gentoo-i686-1.2.iso ( ]
  2. Follow the Preliminary Steps in the Debian guide below for partitioning information. NOTE: You only need to do this if you plan on installing Windows 2000/XP before Gentoo. Here is my partition table for the curious:
    Disk /dev/hda: 255 heads, 63 sectors, 3890 cylinders
    Units = cylinders of 16065 * 512 bytes
       Device Boot    Start       End    Blocks   Id  System
    /dev/hda1             1        13    104391   83  Linux
    /dev/hda2   *        14      1033   8193150    7  HPFS/NTFS
    /dev/hda3          1034      1164   1052257+  82  Linux swap
    /dev/hda4          1165      3890  21896595    5  Extended
    /dev/hda5          1165      2184   8193118+  83  Linux
    /dev/hda6          2185      3890  13703413+  83  Linux
  3. Install Windows 2000/XP now if you wish to dual boot (this can be done at a later time as noted above).
  4. Insert the Gentoo CD and reboot.

Pre-Stage 1 Installation

  1. Note: nano -w should be used as your text editor temporarily until you can emerge your favorite editor.
  2. Press enter at the boot: prompt.
  3. Press enter through the keymap and the PCI autodetection.
  4. Load the NIC driver: modprobe eepro100
  5. Load the PCMCIA stuff:
      insmod pcmcia_core
      insmod i82365
      insmod ds
    Remove the 0x800-0x8ff line via nano -w /etc/pcmcia/config.opts. Insert your PCMCIA cards and then run cardmgr -f.
  6. If you use DHCP, simply run dhcpcd eth0 or whatever ethernet interface you need. For static setups:
      /sbin/ifconfig eth0 netmask
      /sbin/route add -net default gw netmask metric 1
    Be sure to use your own correct IP address! Now modify resolv.conf:
    Again, make sure your domain and nameserver lines match your configuration.
  7. If you haven't already setup your partitions, now is the time to do so via fdisk. See above for an example partition table. I'm using ext3 for my linux partitions; you can use SGI's XFS or ReiserFS if you wish. Make the /dev/hda1 be the /boot partition.
  8. Now initialize your partitions (I'll use my partition table as an example):
      mkswap /dev/hda3
      mke2fs -j /dev/hda1
      mke2fs -j /dev/hda5
      mke2fs -j /dev/hda6
      tune2fs -i 0 -c 0 /dev/hda1
      tune2fs -i 0 -c 0 /dev/hda5
      tune2fs -i 0 -c 0 /dev/hda6
      swapon /dev/hda3
    Now we make mountpoints and mount the partitions:
      mkdir /mnt/gentoo
      mount /dev/hda5 /mnt/gentoo
      mkdir /mnt/gentoo/boot
      mount /dev/hda1 /mnt/gentoo/boot
  9. Now it's time to mount the Gentoo CD:
      mount /dev/cdroms/cdrom0 /mnt/cdrom -o ro -t iso9660

Stage1->3 Installation

  1. Using the Stage1 or Stage2 tarball is not recommended, instead you should go straight for the Stage3 tarball unless you really feel like bootstrapping or emerge'ing your system.
  2. To unpack Stage3:
      cd /mnt/gentoo
      tar -xvjpf /mnt/cdrom/stage3-i686.tar.tbz2
      mount -o bind /proc /mnt/gentoo/proc
      cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
      chroot /mnt/gentoo /bin/bash
      source /etc/profile
      emerge rsync
    The last line downloads the Portage tree (~10MB), it's not necessary but recommended.

Post Stage 3 Installation

  1. Set your correct timezone from /usr/share/zoneinfo:
      ln -sf /usr/share/zoneinfo/EST5EDT /etc/localtime
    The above sets Eastern Standard Time. Use your appropriate timezone.
  2. Time to compile the kernel:
      emerge sys-kernel/gentoo-sources
      cd /usr/src/linux
      make menuconfig
    Make sure Dell Laptop Support, APM, devfs, ext3, eepro100 are selected. Take time to look through the options and select the correct ones, alternatively you can use my custom kernel config (Debian users, do not use this config file!)
    [ config-2.4.19-gentoo-r7 ]
  3. Compile and install the modules:
      make dep && make clean bzImage modules modules_install
      cp /usr/src/linux/arch/i386/boot/bzImage /boot/kernel-2.4.19-gentoo-r7
  4. Install the system logger and cron package:
      emerge app-admin/metalog
      rc-update add metalog default
      emerge sys-apps/vcron
  5. Update your /etc/fstab file to correctly match your partition table (also add the user option to your cdrom line so non-root users can mount cd's).
  6. Change the root password via passwd.
  7. Update network files: /etc/hostname:
    /etc/hosts:       localhost    mymachine
    /etc/conf.d/net should be modified similar to how you configured it for Pre-Stage1 Installation, then run:
      rc-update add net.eth0 default
  8. Finally, it's time to configure grub. Type grub at the prompt and then enter in the grub commands:
      root (hd0,0)
      setup (hd0)
    Now create a grub menu list via /boot/grub/menu.lst:
      default 0
      timeout 10
      title=gentoo linux 1.2 (kernel-2.4.19-gentoo-r7)
      root (hd0,0)
      kernel /boot/kernel-2.4.19-gentoo-r7 root=/dev/hda5 hdb=ide-scsi
    If you are dual-booting to Windows, add:
      root (hd0,1)
      chainloader +1
  9. You're done installing the base Gentoo system! Type the following to reboot:
      cd /
      unmount /mnt/gentoo/boot
      unmount /mnt/gentoo/proc
      unmount /mnt/gentoo
  10. Run update-modules as soon as your system boots back up.

Post Installation

  1. Add a regular user via: adduser -m username. Add the user into all the groups via usermod -G wheel,audio,cdrom,video,cdrw,users username.
  2. We need to emerge a few things to get the Dell Fan and Buttons working:
      emerge dev-lang/tcl dev-lang/tk
  3. After Tcl/Tk has been compiled, get the i8kutils package. Untar the source, then:
      mv i8kmon i8kbuttons i8kctl /usr/bin
      ln -s /usr/bin/i8kfan /usr/bin/i8kctl
  4. Grab my /etc/i8kmon and /etc/init.d/i8kutils files and place them in the correct location. If you wish to get your Dell Buttons working, see the appropriate Debian section below (you will also need to emerge the aumix package). Then run:
      rc-update add i8kutils default
    [ Massimo Dal Zotto's Webpage (i8kutils) | /etc/i8kmon | /etc/init.d/i8kutils ]
  5. Enable the portmapper for RPC services like NFS:
      rc-update add portmap default
  6. Fix the pam error with cdwriter, modify /etc/security/console.perms, find the root.cdwriter line, modify to:
      <console>  0660 <burner>     0660 root.cdrw
  7. Update the /etc/modules.autoload file to contain the following lines (sound will be later):
    Of course, if you didn't compile the firewire module or SCSI emulation module then the above isn't necessary.
  8. Now is time to actually make your system useful. The window manager I will be using is KDE3. If you want to install something else, just emerge it.

Endless Compiling

  1. This is why I said earlier you should do this an hour or two before you go to sleep. It's time to download and "emerge" your system. :) For the curious, emerging my system took 12-13 hours! But the payoff is well worth it. KDE3 feels more responsive than the Debian packaged WindowMaker (due to a variety of factors, i.e. pre-emptive kernel, -10 renicing of X11, and optimizations for the i686 arch).
  2. Here is a listing of sources that I emerge'd: Make sure you fix the /etc/._cfg000* files and clean old packages!
  3. Add hdparm and apmd to your init scripts once everything finishes compiling:
      rc-update add hdparm default
      rc-update add apmd default
    [ /etc/init.d/hdparm ]

XFree86, KDE 3, and nVidia GeForce2 Go

  1. It's time to fix the X Server to run with the GeForce2 Go card. Grab the 2802 drivers, not the 2960 drivers!
    [ nVidia Linux Drivers | NVIDIA_kernel 1.0-2802 | NVIDIA_GLX 1.0-2802 ]
  2. Ungzip/tar these files into /usr/local/src and run make in each of the directories, however, it's suggested that you do the APM "hack" now. Read the Advanced Power Management information in the Debian section below. Remember to create the kernel driver first, then the GLX module.
  3. Create an XF86Config-4 file using the readme provided with the kernel driver, or use my XF86Config-4 file.
    [ /etc/X11/XF86Config-4 | apm_i8000.tar.gz ]
  4. Note with the above apm_i8000 script, you must modify the resume ifconfig and route lines to properly reflect your IP address settings.
  5. Modify /etc/rc.conf to load kdm on startup, find the DISPLAYMANAGER line:
    Now, update the startup script:
      rc-update add xdm default
  6. Before your reboot, get USB and sound working in working order first.

USB Setup

  1. USB should be working with a correctly compiled kernel, to mount the usbdevfs add to your /etc/fstab:
      none    /proc/bus/usb   usbdevfs    defaults    0 0

ESS Maestro3i and ALSA Sound Setup

  1. emerge the alsa-driver and alsa-utils sources if you haven't done so already. Modify the /etc/modules.d/alsa file, find the IMPORTANT: section and modify:
      ## ALSA portion
      alias snd-card-0 snd-maestro3
      ## OSS/Free portion
      alias sound-slot-0 snd-card-0
    Add the following lines to /etc/modules.autoload:
  2. Now run update-modules. Verify that the /etc/devfsd.conf file has the correct ALSA/OSS settings. Now it's time to set up the soundcard:
      modprobe snd-maestro3
      modprobe snd-pcm-oss
      /etc/init.d/alsasound start
      amixer set Master 80% unmute
      amixer set PCM 90% unmute
      rc-update add alsasound default
  3. Give your system a reboot. X, KDE3, USB, and Sound should all be working!

Firewire Setup

  1. If you added the lines into /etc/modules.autoload then we are almost to a point where we can use our firewire device (mine is a CD burner).
  2. Download the script and copy it into /usr/local/sbin.
    [ ]
  3. Plug-in your device and run the above script. Your devices should be automatically added/updated.

DVD Playback

  1. First, create a /dev/dvd link:
      ln -s /dev/scsi/host0/bus0/target0/lun0/cd /dev/dvd
  2. emerge xine or ogle to play DVDs (I personally use xine with xine-dvdnav).
  3. Run xine, change the memcopy method to SSE.
  4. That's it! Enjoy your DVDs!

Wireless Card Setup

Debian GNU/Linux


I primarily wrote this page because there was no resource on the web that showed a step by step method of installing Debian GNU/Linux and Windows 2000/XP Pro on a Dell Inspiron 8000. This guide should also work if you have the 8100 series. Hopefully, this guide can help those having installation/setup problems. This guide assumes that you have a general understanding of the Debian Install Process. This guide is particularly tailored to those who have an ethernet, broadband, or LAN connection (but there is a section under Miscellaneous dealing with the 56k modem). Let me also state here that Dell's so-called award winning customer service sucks. This Dell Inspiron Notebook (sic) is the first and last Dell I will ever purchase.

    DISCLAIMER: I cannot guarantee that my guide will work on your particular system. This is just a reference guide created from my personal experience installing Debian GNU/Linux. If your computer blows up, starts smoking, offers you pot, or stabs you in the chest, I am not responsible (for any damages that may arise while trying to install/use Debian GNU/Linux on your computer). There are many other fine distros that you can try if you cannot get Debian to work: Slackware, SuSE, Mandrake, RedHat, etc.

My Dell Inspiron 8000 Configuration:

Preliminary Steps

  1. New to Debian GNU/Linux? Read Dale Scheetz's Debian User's Guide!
    Dwarf's Guide to Debian GNU/Linux ]
  2. Make sure you are running the latest buggy BIOS from Dell.
    [ Dell Support ]
  3. Download the latest Debian Unstable (sid) distribution. You can also use the Testing (woody) distribution if you like. You can create your own disc or download a version. (Note: My guide is based on: Debian GNU/Linux x.x "Sid" -'s i386 Binary-1 with a datestamp of November 20, 2001).
    [ | Debian Mirrors | ]
  4. Download the mks2d and suspend utilties from Dell.
    [ Dell Suspend Utilties ]
  5. BACKUP your windows/linux data! If you plan installing Windows 2000/XP, download the latest drivers.
  6. Wipe your hard drive using your favorite partitioning program (fdisk, cfdisk, Dell's Suspend Utilties disk, partition magic, or your drive manufacturer's partitioning utility).
  7. Reboot your notebook with Dell's Suspend Utilities disk. Run mks2d.exe, this will create your suspend-to-disk partition.
  8. With your partitioning tool, partition your hard disk. My cfdisk output is:
    Name   Flags  Partition Type  FileSystem Type         Size (MB)
    hda1          Primary         OS/2 Hidden C: Drive    559.32
    hda2   Boot   Primary         Win95 FAT32 (LBA)       8496.72
    hda3          Primary         Linux ext2              2500.49
    hda5          Logical         Linux swap              518.20
    hda6          Logical         Win95 FAT32             19921.63
    Partitioning is completely subjective. Paritition your disk to fit your needs. If you plan on using suspend-to-disk, read the first bullet of the next section.
  9. If you wish, install Windows 2000/XP onto the partition you created for it.

Installing Debian GNU/Linux (sid)

  1. Boot the Debian install disc. Verify that your partitions are correct. Note: You cannot install LILO into the MBR if you wish to use suspend-to-disk capabilities. It is best to create a small /boot partition before the windows partition, make it bootable, and install LILO into that partition.
  2. Specify default install locations as necessary.
  3. Do not attempt to alter the PCMCIA settings or configuration. Doing so will lock up your computer.
  4. When you get to the kernel modules section, load the eepro100 module under net. This is for the Actiontec Network card.
  5. Create a boot floppy! Make sure you do this step! You can always use this in case of an emergency.
  6. Do not specify any additional apt sources. Leave this to the post-install.
  7. The rest of the install should go smoothly. Insert the Debian CD when prompted. If your notebook seems to hang on the reboot, see the first step below in fixing this problem. You can access a shell upon boot by holding the SHIFT key during the lilo prompt. Type: linux single and follow the instructions in the first step below.

Debian GNU/Linux (sid) Post-Install Configuration

  1. When you see the login prompt, login as root. You need to fix PCMCIA manager from hanging by removing the offending port. Inside /etc/pcmcia/config.opts, edit out port 0x800-0x8ff. The include port line should look like:
      include port 0x100-0x4ff, port 0xc00-0xcff
  2. We need to enable apt to download from the debian unstable mirrors. To do this, uncomment the deb lines inside the /etc/apt/sources.list file and make sure you reference the unstable archive also! If you are using the testing (woody) distribution, use testing instead of unstable in the deb lines. Your three deb lines for http sources should look something like this:
    deb unstable main contrib non-free
    deb unstable/non-US main contrib non-free
    deb stable/updates main contrib non-free
  3. After modifying sources.list, run:
      apt-get update
    You can also do an apt-get upgrade if you want to upgrade your packages.
  4. Let's apt-get a few things:
      apt-get install kernel-package bzip2 libncurses5-dev
      apt-get install kernel-source-2.4.17
  5. cd to /usr/src and unpack the kernel-source:
      tar jxvpf kernel-source-2.4.17.tar.bz2
      cd kernel-source-2.4.17
      make menuconfig
  6. You can configure kernel options using the Tcl/Tk GUI menuconfig. Remember to enable Dell Laptop Support, APM and ext3 support. Alternatively, you can use my kernel configuration file.
    [ config-2.4.17 ]
  7. Set the EXTRAVERSION flag in the top-level Makefile to something meaningful. This is to save the hassle of removing the modules directory if you plan on recompiling the same kernel over again. Alternatively you can set the --revision flag when making the kernel_image.
  8. To compile run these commands:
      make-kpkg clean
      make-kpkg kernel_image
  9. After the compile finishes, the kernel .deb will be found in /usr/src. Run dpkg -i on the kernel .deb in /usr/src.
  10. Make sure your /etc/lilo.conf file has all the proper options set. If you plan on using a parallel printer or an ATAPI CD-Writer, you should set lilo boot parameters. append="hdb=ide-scsi" makes /dev/hdb an emulated SCSI device. To add a windows entry into lilo:
    Make sure your /dev/hdaX is pointing to the correct windows partition. IMPORTANT: Run the following command: lilo -v.
  11. Create journals for our current ext2 filesystems:
      tune2fs -j /dev/hdaX
      tune2fs -i 0 -c 0 /dev/hdaX
    Update your /etc/fstab entries. Change the filesystem type from ext2 to ext3. Also, if you are using SCSI emulation, you should update your /etc/fstab file and symlink /dev/cdrom to /dev/sr0.
  12. Remove the eepro100 module reference (left over from the Debian install) in /etc/modules, since we will be using the driver compiled into the kernel. You can manually do this or use the modconf tool.
  13. Reboot your machine and boot the new kernel.
  14. We need to apt-get an additional tool:
      apt-get install i8kutils
    These utilties can control fans and fan speed as well as give you access to the Dell buttons. See the documentation that comes with this package for more information and the Dell Keys section at the bottom of this guide.
    [ Massimo Dal Zotto's Webpage ]

USB Setup

  1. If you have USB devices, you must mount the usbdevfs filesystem under /proc. To do this, edit your /etc/fstab file to include an entry:
      none  /proc/bus/usb  usbdevfs  defaults  0  0
  2. If you have a USB mouse, you must create a /dev device:
      mkdir /dev/input
      mknod /dev/input/mice c 13 63
    You must modify your XF86Config-4 file to take advantage of the USB mouse. Alternatively you can use my XF86Config-4 file.
    [ /etc/X11/XF86Config-4 ]

Sound Setup

  1. If you compiled your kernel with my kernel config options, then most of the setup is already complete. The kernel has experimental ESS Maestro 3i Drivers. I prefer to set up my sound this way over ALSA for convenience.
  2. Once you have recompiled your kernel and restarted, you must add yourself via root to the appropriate groups so you can play audio files.
      adduser username audio
      adduser username cdrom
      adduser username disk
    If you do not wish to add a user to the disk group, you can chown the cdrom device to cdrom instead.
  3. Next, we need to get xmms and some other packages:
      apt-get install aumix xmms-cdread vorbis-tools libmikmod2
    Note: If you are using Gnome/KDE, you probably don't need to get any of the above packages.

Wireless Card Setup

  1. The correct kernel options must be turned on prior to installing and configuring your hardware. You must turn on the option: CONFIG_NET_RADIO. My config-2.4.17 file already has this option turned on.
  2. Next you must get the wireless tools package:
      apt-get install wireless-tools
  3. For the Orinoco 802.11b wireless card, I compiled a kernel module. You must modify your /etc/pcmcia/config file to take advantage of the new module (orinoco_cs) that replaces the old one (wvlan_cs). Modify the Lucent WaveLAN/IEEE entry to match the new driver. Search for the lines:
      card "Lucent Technologies WaveLAN/IEEE Adapter"
        version "Lucent Technologies", "WaveLAN/IEEE"
        bind "wvlan_cs"
    Modify the last bind statement to:
        bind "orinoco_cs"
  4. /etc/pcmcia/network.opts must be configured properly for the wireless card to work (set BOOTP/STATIC/DHCP options, etc). The /etc/pcmcia/wireless.opts file must also be set to your wireless network configuration for the card to work!

XFree86 4 Setup for the nVidia GeForce2 Go

  1. Now it's time to fix the Xserver. Download the latest nVidia drivers.
    [ nVidia Linux Drivers | NVIDIA_kernel 1.0-2802 | NVIDIA_GLX 1.0-2802 ]
  2. Ungzip/tar these files and run make. Remember to create the kernel driver first, then the GLX module.
  3. Create an XF86Config-4 file using the readme provided with the kernel driver, or use my XF86Config-4 file.
    [ /etc/X11/XF86Config-4 ]
  4. Add users to the video group to take advantage of the /dev/agpgart:
      adduser username video
    You may also have to modify your XF86Config-4 Device section to take advantage of /dev/agpgart. Add a line: Option "NvAGP" "3" to the file. The above may adversely affect Advanced Power Management and the ability to suspend/resume successfully (see the APM section below).
  5. You may have to manually add:
      alias char-major-195 NVdriver
      options NVDriver NVreg_Mobile=1
    into /etc/modules.conf or into /etc/modutils/aliases.

Advanced Power Management

  1. Current status: suspend-to-ram works, even within X! (but AGP is completely disabled). Suspend-to-disk remains untested, but should work if you set your partitions/bootloader correctly.
  2. Make sure you configured APM into your kernel and that you have the APM daemon running.
  3. Note that the current nVidia driver prevents any APM activity. In order to activate suspend-to-memory or suspend-to-disk, you must edit the nv.c source file. First, search for the word "avoiding", you should come across a block of code like this:
    	case PM_RESUME:
            case PM_SUSPEND:
            //    printk("NVRM: avoiding suspend request, don't want to shutdown!!\n");
                return 1;
            //    printk("NVRM: received unknown PM event: 0x%x\n", rqst);
                return 1;
        return 0;
    Change both return 1 statements to return 0 statements. It should now look like this:
            case PM_RESUME:
            case PM_SUSPEND:
            //    printk("NVRM: avoiding suspend request, don't want to shutdown!!\n");
                return 0;
            //    printk("NVRM: received unknown PM event: 0x%x\n", rqst);
                return 0;
        return 0;
    Save the file and run make.
  4. In your XF86Config-4 file, make sure under the "Device" section that you have a line:
      Option "NvAGP" "0"
    My XF86Config-4 file already has this set. (I hope you didn't compile the AGP module into the kernel!)
    [ /etc/X11/XF86Config-4 ]
  5. Another problem with using APM under linux with the Inspiron 8000 is the Actiontec Network Card and 56k modem do not properly have their registers restored after resume.
  6. Marcel van der Goot has a nice program called pci-saveconfig that can save states of devices into files. I have repackaged his program with special modifications for Dell Inspiron 8000s.
    [ apm_i8000.tar.gz ]
  7. First, as root, cd to /var. Issue these commands:
      mkdir state 
      chmod 777 state
  8. Compile pci-saveconfig.c via gcc:
      gcc -Wall -O2 -o pci-saveconfig pci-saveconfig.c
      chmod 755 pci-saveconfig
      mv pci-saveconfig /sbin
  9. Also move the APM event.d script into the proper place:
      mv apm_i8000 /etc/apm/event.d
  10. Try doing a suspend-to-ram within X. After resuming, a faster keyboard rate will be restored and you must wait (initiated by any network activity) for an error message like:
      NETDEV WATCHDOG: eth0: transmit timed out
      eth0: Transmit timed out: status 0000  0000 at 668/696 command 00030000.
    before network connectivity is restored.
  11. Some power management key combos:
      Fn+Esc   Activates suspend-to-memory 
      Fn+A     Activates suspend-to-disk
      Fn+D     Turn off LCD 
      Fn+H     Spin down hard disk
  12. If you are on battery power, using suspend-to-disk may actually be "a bad thing" because of the tremendous disk use (which sucks down battery power).

Hard Disk Tuning

  1. First apt-get hdparm:
      apt-get install hdparm
  2. Create an /etc/init.d entry called hdparm. Inside /etc/init.d/hdparm should contain:
      echo "Optimizing Hard Disk performance... "
      hdparm -m16 -c3 -u1 -d1 /dev/hda
  3. Now issue the following commands to make hdparm run automatically at boot time:
      chmod 755 /etc/init.d/hdparm
      ln -s /etc/init.d/hdparm /etc/rcS.d/S01hdparm
    This will drastically improve I/O throughput of your hard drive and speed up the boot process.

Dell Keys and Hardware Monitoring (i8kutils)

  1. In order to use the Dell Keys, they must be mapped first. Edit /etc/X11/xkb/keycodes/xfree86 and fix the I01/I03 mappings:
      <I01> = 129;
      <I02> = 130;
      <I03> = 131;
      <I04> = 132;
  2. Edit /etc/X11/xkb/symbols/us (or the appropriate country keymap) and add lines to the pc104 section like these:
      key <I01> { [F13] };
      key <I02> { [F14] };
      key <I03> { [F15] };
      key <I04> { [F16] };
  3. Now the four right Dell buttons should be mapped to F13-F16. You can use your Window Manager's key mapping/binding utility (usually in some type of preferences or control center) to bind these buttons to something useful.
  4. If you are running Gnome, you can use Steven Lau's excellent volume-control-keys perl scripts in conjunction with xosd to control your soundcard's volume. (apt-get xmms-osd-plugin and xosd-bin)
    [ volume-control-keys.tar.gz ]
  5. For those running Window Maker, you're still in luck (and for anyone else, i.e. Gnome, KDE, etc.)! If you installed the i8kutils package, you can map the volume up/down to aumix. Grab the tarball above (volume-control-keys). Apt-get the aforementioned xosd packages.
  6. Copy osd, volume-up, and volume-down executables into /usr/local/bin. Create an /etc/init.d entry called i8kutils. Inside /etc/init.d/i8kutils should contain:
      echo -n "Loading i8kutils and settings... "
      i8kmon -d &
      i8kbuttons -u "aumix -v +1" -d "aumix -v -1" -m "aumix -v 0" & 
      echo "done."
  7. Now issue the following commands to make i8kutils run automatically at boot time:
      chmod 755 /etc/init.d/i8kutils
      ln -s /etc/init.d/i8kutils /etc/rc2.d/S90i8kutils
    Make sure the you replace rc2.d with the appropriate runlevel directory your notebook is set on! Alternatively, you can link i8kutils into each rcX.d (except for rcS.d).
  8. Copy the autoconfig file for i8kmon into /etc. You can change some of the temperature settings, but don't set them too high or your cpu will be toast; consult the manpages on i8kmon for more info before you modify this file!
    [ /etc/i8kmon ]
  9. You can run i8kmon interactively (with GUI) from the commandline.
  10. To enable on-screen display volume controls, cd into /usr/local/sbin and create a file called i8kvol:
      killall i8kbuttons
      i8kbuttons -u /usr/local/bin/volume-up -d /usr/local/bin/volume-down &
    Issue a chmod 750 to make it executable. The first time you load X, run this script. You can now change the volume with the volume being displayed on the screen when you change it.


Document Revisions

Many thanks to the people who have emailed me notes, corrections, suggestions, comments, and thanks! I appreciate all the nice emails!

If you feel there is an error in this document, or you want to help improve it, send me an email: park at


Valid XHTML 1.0! Valid CSS!

Last Updated: July 6, 2002
Document Author: Alfred Park
Homepage | park at