Linux on the Dell Inspiron 5150 (With Gentoo)

Welcome! There appears to be several other "Linux on the Dell Inspiron 5150" guides out there, but the 5150 is a rather broad model, and I didn't see any close to my configuration. So I created this guide. Also, while most of the information here is pretty generic, I am using Gentoo, and a few sections deal with Gentoo-specific issues.

Specifications (On My Laptop At Least)



lspci Output

0000:00:00.0 Host bridge: Intel Corp. 82852/855GM Host Bridge (rev 02)
0000:00:00.1 System peripheral: Intel Corp. 855GM/GME GMCH Memory I/O Control Registers (rev 02)
0000:00:00.3 System peripheral: Intel Corp. 855GM/GME GMCH Configuration Process Registers (rev 02)
0000:00:01.0 PCI bridge: Intel Corp. 855GME GMCH Host-to-AGP Bridge (Virtual PCI-to-PCI) (rev 02)
0000:00:1d.0 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)
0000:00:1d.1 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)
0000:00:1d.2 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)
0000:00:1d.7 USB Controller: Intel Corp. 82801DB/DBM (ICH4/ICH4-M) USB 2.0 EHCI Controller (rev 01)
0000:00:1e.0 PCI bridge: Intel Corp. 82801 PCI Bridge (rev 81)
0000:00:1f.0 ISA bridge: Intel Corp. 82801DBM LPC Interface Controller (rev 01)
0000:00:1f.1 IDE interface: Intel Corp. 82801DBM (ICH4) Ultra ATA Storage Controller (rev 01)
0000:00:1f.5 Multimedia audio controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)
0000:00:1f.6 Modem: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)
0000:01:00.0 VGA compatible controller: nVidia Corporation NV34M [GeForce FX Go 5200] (rev a1)
0000:02:01.0 Ethernet controller: Broadcom Corporation BCM4401 100Base-T (rev 01)
0000:02:02.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 02)
0000:02:04.0 CardBus bridge: Texas Instruments PCI4510 PC card Cardbus Controller (rev 02)
0000:02:04.1 FireWire (IEEE 1394): Texas Instruments PCI4510 IEEE-1394 Controller

Video (NVidia GeForceFX 5200 Mobile)

Works perfectly, though nvidia-kernel and nvidia-glx version 6106 are required at a minimum. As of this writing, 6106 is still masked in Portage, but works great. OpenGL and XV overlays work flawlessly, and glxgears gives me an average of 1725fps! My XFree86 configuration file is in the files section. FYI, I'm not using 2.6 on the laptop right now, but if you choose to try, supposedly 6106 is the first build that supports 4k stacks in the 2.6 kernel.

Audio (Intel ICH4 AC'97)

Works perfectly with the i810_audio kernel driver. I have not tried the ALSA equivalent yet.

USB (Intel 82801DB UHCI/EHCI)

Works perfectly, though I wish the laptop had more than 2 USB ports. FYI, you must have both EHCI *and* UHCI loaded to make both USB 2.0 and 1.1 devices work. (It took me awhile to figure out why my USB 2.0 storage devices worked fine, but devices such as mice didn't even show up in dmesg.)

Firewire (Texas Instruments PCI4510)

I have yet to test this (I only have one or two Firewire devices, and I don't have that little Firewire-to-Mini-Firewire port adapter), but everything seems to suggest that it would work fine. I'll update when I know.

PCMCIA (Texas Instruments PCI4510)

Works fine with the standard PCMCIA/CardBus kernel drivers. Only quirk is when I insert an Orinoco Silver card, the PCMCIA tools send the "beep-boop" sound which indicates that something went wrong, but it works fine as far as I can tell. Other PCMCIA cards have worked fine as well, including the Linksys WPC54G when used under ndiswrapper.

Dell Diagnostics

On this laptop, Dell has a diagnostics package that is split up into two parts. The first part is called by pressing F12 during POST, and selecting "Diagnostics". That runs a very basic set of diagnostic tests from the BIOS. Then it proceeds to boot the second stage diagnostic utility, which is on the first partition of the hard drive. (Sidenote: It appears that the DVD-ROM drive is on the first IDE channel (hda), while the hard drive itself is on the second (hdc).) This diagnostic partition is very useful, and I'm glad I didn't follow my instinct to blow away all the partitions when installing Linux.

Anyways, after you install grub, the first stage diagnostics don't seem to be able to hand off to the second stage anymore. However, you can circumvent this by putting an item in grub that lets you boot directly into second stage diagnostics:

title=Dell Diagnostics
root (hd0,0)
chainloader +1

Ethernet (Broadcom BCM4401)

I am using the standard Broadcom ethernet drivers (Broadcom 4400 ethernet support (EXPERIMENTAL)). It doesn't seem to work with the cheap CompUSA switch at home, but it's not too much of a problem since I use wireless anyways. I will investigate later. However, it works fine connecting crossover to other machines, and was fine in hotels when I went to Defcon and Linux World Expo in summer 2004.

MiniPCI Slot (Intel 82801 Bridge)

My laptop didn't come with an installed MiniPCI card. However, the slot is easily accessible and includes antenna headers. I bought a Dell Truemobile 1300/1350 (802.11g Broadcom BCM94306MPSG) on eBay, and when used with ndiswrapper, it works great. (Hint: iwlist wlan0 scan works with all ndiswrapper-supported cards. It scans for APs for about 2 seconds, and will give you information about each AP it finds, much like the AP scanning feature in Windows XP.)


While I haven't tried 2.6 yet, 2.4.26's ACPI support with this laptop is excellent. Thermal zones (1 temperature point), processor (with BOTH CPU scaling and throttling), power and lid buttons, battery and AC adapter are support. This laptop also seems to support S4Bios sleep mode, but I have not tried it out yet.

On a related note, if you want to sacrifice speed for battery life, I am able to get over 8 hours battery life from the standard battery (doing normal things... wireless, web browsing, IRC, etc) when the ACPI settings are adjusted as low as they can go:

echo 5 > /proc/acpi/processor/CPU0/performance
echo 7 > /proc/acpi/processor/CPU0/throttling

And to set it back to full speed:

echo 0 > /proc/acpi/processor/CPU0/performance
echo 0 > /proc/acpi/processor/CPU0/throttling

The performance file allows you to step down the processor from 2.66GHz (0) to 1.6GHz (5), though it appears 1-4 don't do anything besides 2.66GHz. throttling is a series of 8 steps that artifically limits the number of instructions the processor does in an arbitrary amount of time. 0 is full-speed, and it steps down gradually to 7, which is 87% throttled (IE, 13% of the capable speed). Go ahead, play around with it.

I8K (Inspiron "8000" support)

I8K is a kernel module and set of utilities that were original for the Inspiron 8000 series, but also happened to work for many other Inspiron models. The 5150, however, does not seem to be one of them. I get this when I try to load the i8k module:

/lib/modules/2.4.26-2/kernel/drivers/char/i8k.o: init_module: No such device
i8k: unable to get SMM Dell signature
i8k: unable to get SMM BIOS version
/lib/modules/2.4.26-2/kernel/drivers/char/i8k.o: insmod /lib/modules/2.4.26-2/kernel/drivers/char/i8k.o failed
/lib/modules/2.4.26-2/kernel/drivers/char/i8k.o: insmod i8k failed

This essentially means you cannot read/control the fans. Oh well.

Touchpad (Synaptics)

Works fine with the Synaptics XOrg/XFree86 drivers. Since the 5150 does not contain a PS/2 port, the touchpad shows up as the only PS/2 device and you end up having no conflicts. I currently have 3 pointer devices plugged in to test (the built-in touchpad, a wired optical USB mouse and a wireless optical USB mouse), and they all work fine together. Please see my XFree86 configuration file in the files section.

BTW, the Synaptics driver is part of Gentoo's xfree-4.3.0 ebuild; no manual installation is necessary. (It took me awhile to realize this.)

I haven't tried getting gpm up yet.

Modem (Intel 82801DB AC'97 Modem)

Works fine, but requires 3rd party software from Smart Link. Gentoo has an ebuild, but it doesn't set everything up correctly. To install:

emerge net-dialup/slmodem
nano -w /etc/modules.d/slmodem (Uncomment the slamrmo and country=USA lines)
mknod /dev/ttySL0 c 212 0
modprobe slamrmo
At this point, /dev/modem should point to /dev/ttySL0 and running minicom should work out of the box:

Welcome to minicom 2.00.0
AT S7=45 S0=0 L1 V1 X4 &c1 E1 Q0


Ryan Finnie