Gentoo Linux on Dell Inspiron 1100

Summary

July 19, 2006 - upgraded to the new modular Xorg package setup for Xorg 7.0 and found that I could only run in 640x480 60 Hz using the i810 driver. Trying any other resolution just got a message in /var/log/Xorg.0.log saying "no mode of that name". Solution? Add these lines to the Monitor section of xorg.conf:

HorizSync 31.5-48.5
VertRefresh 59-75

Also, some of the kernel compile stuff below is now obsolete. I'm now running 2.6.16-gentoo-r12. For one, Gentoo now can use udev, so I no longer need devfs. Anyway, here's the current kernel .config.

Feb 18, 2005 - installed Gentoo Linux 2004.3 using stage3 tarball on my Dell Inspiron 1100 laptop. Followed the instructions in the Gentoo Handbook. The Gentoo LiveCD had drivers for the Broadcom 4400 built-in ethernet card, and the install went without a hitch. This was my first experience with Gentoo.

If you find any errors, or have feedback or additional info for this page, drop me a line at carl dot dellinux at meyerl0ewen dot net (replace the 0 with an o).

Installation choices: 2.6 kernel, ReiserFS filesystem, metalog system logger, vixie-cron cron daemon, GRUB boot loader, Gnome X desktop environment.

What works well:

What doesn't work:

Compiling the Kernel

Here's my kernel .config for 2.6.11-gentoo-r8. Key points:

Broadcom BCM4401 Ethernet

dellinux root # lspci | grep BCM
0000:02:01.0 Ethernet controller: Broadcom Corporation BCM4401 100Base-T (rev 01)

This card has worked flawlessly for me with the "b44" driver (marked as experimental) in kernels 2.6.9 - 2.6.11.

Intel AC'97 Modem Controller / Conexant HSF modem

dellinux root # lspci -v | grep -A 6 Modem
0000:00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 02) (prog-if 00 [Generic])
    Subsystem: Conexant: Unknown device 5422
    Flags: medium devsel, IRQ 7
    I/O ports at c400
    I/O ports at c080 [size=128]
    Capabilities: [50] Power Management version 2
dellinux root # lspci -nv | grep 1f.6
0000:00:1f.6 Class 0703: 8086:24c6 (rev 02)

The PCI ID (8086:24c6) is for the Intel AC-Link controller, which can control several different modems. The subsystem identifies it as a Conexant HSF modem. This modem had worked great previously in RedHat 9 using the drivers at linuxant.com. When I tried to emerge the "hsfmodem" package in Gentoo, it compiled the modules, but as soon as they loaded the kernel panicked. Same result if I downloaded the driver tarball and compiled it myself.

The solution (thanks Gentoo forums) is to recompile the kernel without 4k stacks (option found under "kernel hacking" in menuconfig). Now the modem works great at /dev/ttySHSF0 or /dev/modem (albeit only at 14.4Kbps with the free driver).

Intel 82801 AC'97 audio

dellinux root # lspci -v | grep audio
0000:00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 02)

Steps I took to get sound running (following instructions in the Gentoo Linux ALSA Guide):

Intel 82845G/GL chipset video

dellinux root # lspci | grep VGA
0000:00:02.0 VGA compatible controller: Intel Corporation 82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (rev 03)

Followed instructions in the X Server Configuration HOWTO. Make sure you've compiled the i915 AGP module. "Xorg -configure" generated a working xorg.conf.

Power management (ACPI and CPUFreq)

Most of what I did in this area came from the Gentoo Power Management Guide.

Power-save battery mode:

$ /etc/init.d/acpid start
$ rc-update add acpid default
$ cd /etc/runlevels
$ cp -a default battery
- create /etc/acpi/switch_runlevel.sh
- create /etc/acpi/events/pmg_ac_adapter, pmg_battery
- create /etc/acpi/actions/pmg_ac_adapter.sh, pmg_battery.sh

(The pmg_* scripts are part of the Power Management Guide). With this setup, the ACPI event for going on or off AC power should trigger a runlevel switch between the "default" and "battery" runlevels. It doesn't, and by watching /proc/acpi/event, it appears that no ACPI events are registered. From what I read, ACPI events don't work with the Dell Inspiron 1100. Maybe a new DSDT would fix it, but I haven't worked on it yet.

In the meantime, I can manually fake an ACPI event and force the system to decide which runlevel is appropriate using this command:

$ /etc/acpi/actions/pmg_battery.sh "battery/battery"

Until I can get ACPI events working, it's good enough to have this in /etc/conf.d/local.start, so it will go to the proper runlevel on boot, and have it in a script so if I do switch on or off AC power I can easily make it switch runlevels.

CPUFreq

If you don't see anything in /sys/devices/system/cpu/cpu0/cpufreq, you need to recompile your kernel with P4-clockmod module and do a modprobe p4-clockmod. To get any use out of it, you'll also need a governor besides "performance" - the one I use (and you'll probably want) is cpufreq-ondemand.

to enable ondemand CPUFreq switching:

$ modprobe p4-clockmod
$ modprobe cpufreq-ondemand
$ echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq

to watch the CPU frequency change in ondemand mode:

$ watch -n 1 grep \'cpu MHz\' /proc/cpuinfo

I created a cpufreq init script (with a configuration file)to switch to ondemand governor in battery runlevel and performance governor in default runlevel, and an hdparm init script (with config file) to set powersave options for the hard drive in battery runlevel.

Netgear MA401 16-bit PCMCIA wireless card

$ emerge pcmcia-cs wireless-tools
- recompile kernel with PCMCIA and card drivers (for the Netgear MA401 PC Card, I needed the Hermes and Hermes PCMCIA modules (called orinoco and orinoco_cs), under Wireless Networking.
$ cd /etc/init.d; cp net.eth0 net.eth1
- add "iface_eth1=dhcp" line to /etc/conf.d/net
- add ESSID to /etc/pcmcia/wireless.opts
$ service pcmcia start

Now that I won't be plugging in to the wired network all the time, I want something to automatically manage the status of my wired ethernet so it doesn't sit there trying to get a DHCP address when it's not plugged in. Fortunately, there's ifplugd:

$ emerge ifplugd Linux On Laptops

Powered by Apache and PHP