Debian on Dell D420 laptop


h1 11/12/2006 02:56:00 AM

I recently got a new laptop from the lab. It's a Dell D420, and it came with a Dell flat panel 20" WXGA UltraSharp. Bored with Gentoo, I decided to install a Debian on it.

The Debian CD I had was too old and didn't detect the wifi card, which is bad for a netinstall. So I booted a Ubuntu CD, and everything was detected. But I still wanted a Debian. So I followed this guide to install Debian from the LiveCD. That made the move from Gentoo less sad, looked familiar...

Although I didn't do an usual install, the next steps might be valuable for others, or me later. I installed Debian etch, got a kernel 2.6.17.

Nothing to say about wired network. It worked out of the box.

Sound worked fine as soon as I installed and dpkg-reconfigured alsa-base, ran alsaconf. Related useful packages here were alsa-tools and vorbis-tools. But I guess this is useless for a normal Debian install.

Video was a bit tricky. The video BIOS is broken on these machines. Just install 915resolution and reboot. This tools detects the actual screen resolution at startup and patches the BIOS so that X detects it fine. Problems arise when you plug the external screen: its resolution isn't detected either. The solution I found, which works with or without the external screen, is a bit dirty. Just add the following line at the end of /etc/defaults/915resolution: 915resolution 54 1680 1050 -- assuming you've got a 1680x1050 external screen.

One trouble with wide screens is that mplayer will stretch the videos. To fix this, edit /etc/mplayer/mplayer.conf to set monitoraspect=16:10.

The wifi is the hardest bit. First it depends on whether or not you have a dual core. With a single core you usually get a Broadcom card which requires ndiswrapper.. see other install-notes for that. With a dual core you can't get this card, and you usually get an Intel Pro Wireless: ipw3945. Unfortunately the driver is not free. I followed these notes for the installation of the ipw3945 module and ipw3945d daemon, including the edition of /etc/modprobe.d/ipw3945.

The problem, then, is that when the module is launched during boot, these magic lines are not used, so the daemon isn't started, and the wireless doesn't work. What I did is add a service to reload the module, and wait a bit for the server to initialize correctly. Edit /etc/init.d/ipw3945:
#! /bin/sh

set -e

PATH=/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Intel PRO/Wireless 3945"
NAME=ipw3945
SCRIPTNAME=/etc/init.d/$NAME

# Exit if not root
if [ $(id -u) -gt 0 ]
then
echo "This script must be run as root."
exit 99
fi

# Gracefully exit if the package has been removed.
test -x $SCRIPTNAME || exit 0

case "$1" in
start|restart)
echo -n "Starting $DESC: $NAME"
rmmod ipw3945
modprobe ipw3945
sleep 3
echo "."
;;
stop)
echo "Stopping $DESC: $NAME"
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
exit 1
;;
esac

exit 0


Then add a link so that it starts before networking: ln -s /etc/init.d/ipw3945 /etc/rcS.d/S38ipw3945. Configure eth2, reboot, that's ready.

0 commentaires:

Un commentaire ?

< Accueil