Resources for Debian GNU/Linux on a Dell Inspiron 5100 laptop

This is a compilation of resources for a Debian GNU/Linux installation on a Dell Inspiron 5100 Laptop. Hopefully, it provides a starting point for those interested in getting a working installation. Please use the information and links presented here at your own risk.

Specifications

Debian GNU/Linux Installation

To get the laptop running Debian, I downloaded the first installation ISO using jigdo. Although a network installation is a viable option, I suggest burning the image onto a CD. Having the CD will give you more flexibility and can be used to boot a system without network capabilities.

A very, detailed description of the installation process can be found over at OSnews – The Very Verbose Debian 3.0 Installation Walkthrough. If you have interest in compiling a kernel the Debian way, make sure to check out OSnews – The Very Verbose Guide to Updating and Compiling Your Debian Kernel.

Ethernet Cards

If you’re interested in finding a wireless Ethernet card with good support on the Linux platform, check out AbsoluteValue Systems’ WLAN Adapter Chipset Directory for more information.

Broadcom BCM4401 Ethernet Card (built-in)

Version 2.6.3 of the Linux kernel includes the driver for the Broadcom Ethernet Card as a module called b44. I compiled the driver as a module. To load the module automatically, insert the module name into /etc/modules. Because I use more than one network interface, I prefer to load the modules when I need them by typing (as root)

modprobe b44

If you want this module loaded automatically at boot time, put it into your /etc/modules file. Make sure to include the network interface in /etc/network/interfaces. To bring up the interface, type (as root)

ifup eth0

Replace eth0 with the name of your network interface. For other versions of the kernel or more detailed instructions, take a look at Matt Perry’s Inspiron 5100 site in the Ethernet card section. His site is very informative and was an enormous help to me.

Netgear MA521 Wireless Ethernet Card (PCMCIA)

The MA521 uses the Realtek 8180 chipset. Digging around newsgroups and discussion boards produced just about no native solutions to get this card working on a Linux platform. Searching for “8180″ on the Realtek site directs you to page harboring the drivers for this proprietary chipset. I did not have success getting the Linux drivers working. In addition, specific versions of the kernel and gcc are required by the driver.

I didn’t like being locked into a particular version of the kernel and gcc, so I tried NdisWrapper — this works beautifully. The developers have written a kernel module that can load NDIS (Network Driver Interface Specification) drivers. In other words, it can make use of a Windows driver! Download the Win2K MA521 driver from Realtek. The INF file inside the ZIP file is needed by NdisWrapper. Follow the documentation included with the NdisWrapper source code to compile the module and load the INF file.

Make sure you have PCMCIA support in your kernel. After you’ve verified the kernel has support, type or put the commands below in a script (as root):

modprobe yenta_socket ndiswrapper
iwconfig wlan0 mode Managed
iwconfig wlan0 key restricted XXXXXXXXXX
iwconfig wlan0 essid NetGear
ifup wlan0

I believe yenta_socket has something to do with PCMCIA support. It is not loaded by default for my configuration. The iwconfig command is used to to configure the card. Replace wlan0 with the alias for your network interface. My wireless access point is configured to be a DHCP server and to use WEP keys.

If you encounter difficulty, try using the iwlist command to scan for access points. It’s a good starting point.

iwlist wlan0 scanning

iwconfig and iwlist are part of the wireless-tools package.

Linuxant offers a similar product called wireless LAN DriverLoader. It loads the Windows driver on a Linux platform. I haven’t tried this approach, and you are required to purchase a license after the free trial period.

Netgear MA111 Wireless Ethernet Adapter (USB)

The MA111 is a big headache to get working on a Linux platform. From my own experience, it’s also troublesome on Windows XP. The WinXP driver included on the CD produces a BSOD (blue screen of death!) after a few minutes of surfing. This adapter uses the Prism2 chipset, and AVS has a wireless LAN driver for it called linux-wlan-ng. I’ve gotten this working with the 2.4.24 and 2.6.3 kernels. I used version 0.2.1-pre20; pre21 didn’t work for me on the 2.6.3 kernel.

Download pre20 and run the Configure script. The script asks a few questions about PCMCIA and PCI — answer no to those questions. Answer yes to the USB question. For the rest of the configuration questions, I used the defaults. In order for the driver to compile successfully, /usr/src/linux must point to a copy of the kernel source code tree (providing you accepted the defaults during the configuration script). If you don’t have the source tree, use apt to get yourself a copy. After completing the configuration, type (as root)

make install

The make script installs the p80211 and prism2_usb modules into /lib/modules/<kernel_version_number>/kernel/drivers/net. The scripts used to make this interface work use the /etc/wlan/ directory. You’ll need a /etc/wlan/wlan.conf. My wlan.conf works with the ESSID set to NETGEAR. In the wlan.conf file, make sure to substitute your ESSID for the SSID_wlan0 option. You’ll also need a /etc/wlan/wlancfg-NETGEAR file where NETGEAR is your ESSID. My wlancfg-NETGEAR works with a 64-bit WEP key; substitute your WEP key for the dot11WEPDefaultKey0 option in the file. You should be ready to load the module and bring up the interface. Type the following commands or put them into a script (as root)

modprobe uhci-hcd prism2_usb
wlanctl-ng wlan0 lnxreq_ifstate ifstate=enable
/etc/init.d/wlan start
ifup wlan0

Substitute wlan0 with your network interface. While DHCP tries to grab an IP, you’ll see output that begins with DHCPREQUEST. If you don’t grab an IP at this point, the output changes to DHCPDISCOVER. In my experience, it normally works during the DHCPREQUEST output. If the output changes to DHCPDISCOVER, I exit and try to bring up the interface again.

ATI Radeon Mobility 7500 Video Card

Getting X up and running is frequently a frustrating experience. For me, this process normally involves much trial and error. I’m sure my lack of familiarity with XFree86 contributes to the frustration. If you’re looking for a step-by-step tutorial describing a Debian installation of X, take a look at OSnews – The Very Verbose Debian 3.0 Installation Walkthrough. Steps 9 and 10 of the article describe the installation process.

Normally, I start with a very minimal configuration and slowly add more features. I usually start with a VESA driver. For this laptop, I finally got it working with the ATI driver. If you’d like to try it, my XF86Config-4 seems to work well for this laptop.

Pointer Devices

Synaptics Touchpad (built-in)

The built-in touchpad will work with the XFree86 mouse driver. However, the Synaptics driver adds much more functionality like vertical/horizontal scrolling, multi-finger taps, and corner bindings (there are many more options). Download the source code for the Synaptics driver and compile the source. After compilation and with your working directory set to the root of the source code tree, type (as root)

cp synaptics_drv.o /usr/X11R6/lib/modules/input/

With the driver in place, modify the mouse InputDevice section of your /etc/X11/XF86Config-4 file.

Section "InputDevice"
    Identifier  "Touchpad"
    Driver      "synaptics"
    Option      "CorePointer"
    Option      "Device"            "/dev/psaux"
    Option      "Protocol"          "PS/2"
    Option      "Emulate3Buttons"   "true"
    Option      "ZAxisMapping"      "4 5"
    Option      "TapButton1"        "1"
    Option      "TapButton2"        "2"
    Option      "TapButton3"        "3"
    Option      "MinSpeed"          "0.02"
    Option      "MaxSpeed"          "0.06"
    Option      "AccelFactor"       "0.0010"
    Option      "HorizScrollDelta"  "1000"
EndSection

Above is a snippet from my config file that maps two finger and three finger taps to the middle click and right click events, respectively. In addition, I’ve modified the horizontal scroll delta specifically for Mozilla Firefox. As of Firefox 0.91, the application responds to a button 6 and 7 event by going back and forward in the history, respectively. The HorizScrollDelta option was changed because the default setting was too sensitive — I would accidentally trigger the events.

Logitech Wheel Mouse Optical (USB)

If you’re like me, the touchpad gets irritating after a while, and you long for a traditional mouse. Make sure you have USB support in your kernel. Define the mouse in your XFree86 config file. Below is the section from my XF86Config-4 file that defines the USB mouse.

Section "InputDevice"
Identifier  "USB Mouse"
    Driver "mouse"
    Option "SendCoreEvents"  "true"
    Option "Device"          "/dev/input/mice"
    Option "Protocol"        "IMPS/2"
    Option "Emulate3Buttons" "true"
    Option "ZAxisMapping"    "4 5"
EndSection

As root, type the commands below to load USB support and the evdev module. Again, if you want these modules loaded at boot time, put them into your /etc/modules file.

modprobe uhci-hcd usbmouse evdev

I’m not clear on the function of the evdev module — if someone knows, please let me know. Both your touchpad and USB mouse should now work — my configuration supports both input devices simultaneously.

Intel AC’97 Audio (built-in)

I’m aware of two approaches to get this sound card (and many others) working. OSS (Open Sound System) is an older approach, and I have gotten it working with the 2.6.3 kernel. However, I prefer ALSA (Advance Linux Sound Architecture). Take a look at Matt Perry’s site in the Sound section for detailed instructions on getting either OSS or ALSA working. His instructions flawlessly worked for me.

I ran into a small bump with ALSA on the 2.6.6 kernel. Playing an mp3 worked perfectly with earphones. Oddly, it refused to play out of the speakers. I read a post that suggested enabling the External Amplifier Power Down option in gnome-alsamixer. With this option set (it’s a checkbox, so check it), the mp3 played correctly for both the earphones and speakers. Unfortunately, this option does not work well on the 2.6.3 kernel — make sure it is unchecked.

My preference for ALSA lies in its sound mixing abilities. In other words, you can have an mp3 playing and the sound of an instant message gets mixed into the sound stream. Those without sound mixing have no doubt experienced sounds playing immediately after an mp3 stops. My guess is the sounds are being queued.

The DmixPlugin using the complex approach worked for me. Follow the directions on the Dmix Plugin page. Although I guess you could put the configuration code in the system-wide /etc/asound.conf file, I put the configuration code for Step #6 in the howto into my ~/.asoundrc file.

In case you use Gaim, you might need to change the Sounds >> Sound Method preference to command. Then set the command to

aplay -q %s

For those rare times when I need Gaim, this crude modification works. If someone knows a better way, please let me know.

Original web page: Resources for Debian GNU/Linux on a Dell Inspiron 5100 Laptop.

Tags:

Leave a Reply