Miscellaneous


Debian on Dell Latitude D630

My system


Steps for dual system

My system came with Windows Vista Basic installed. First I removed all the partitions with fdisk. After that, I installed Windows Vista Business on a 30GB partition that I created at the beginning of the disk.
If you ever get a blue screen when booting the system, remove the DVD Drive from the bay, reboot the system, install all the drivers, specially the Intel Mobile Chipset drivers and make all the updates (just to have an updated Vista system).

If you don't install the Intel Mobile Chipset drivers, you'll probably get another blue screen when the system reboots. If so, insert the DVD Drive in the bay and start Vista normally.

If you don't want the diagnostics partition to reappear, don't install "Dell 32-Diagnostics Utility Partition Contents Upgrade Tool". Grub seems to dislike that partition!

Linux installation

For Linux, I used the "Lenny" Official Snapshot - NETINSTALL - i386 - 2007/08/15 - Daily build.
This is my partitioning scheme: When tasksel appears, if you are using the laptop as a regular production system, select: Install Grub Legacy on the MBR (You may install Grub2, but I don't recommend it.)
Reboot the system.

(2009/01/12) Start of Old Section - Recent Debian builds don't need to do the steps below for wifi because everything works out of the box.
By now, you don't have wireless networking.

Getting the latest kernel:
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.1.tar.bz2
tar xjvf linux-2.6.23.1.tar.bz2

Using aptitude or apt, install: then:
ln -s linux-2.6.23.1 linux
cd linux
make menuconfig

I include my .config, but this are some of the most important changes I made:
Processor type and Features -> Processor Family -> Core 2/newer Xeon
-> Maximum number of CPUs -> 2 (only to save some memory)
-> Preemption Model -> Voluntary Kernel Preemption
-> Timer frequency -> 1000 Hz

Device Drivers -> Sound -> ALSA -> PCI devices -> hda_intel compiled in the kernel (not module!)

Networking -> Networking support -> Wireless -> Generic IEEE 802.11 Networking Stack (mac80211)

After all the fine tunning (or having my .config copied into /usr/src/linux), lets compile and install the kernel:
make-kpkg clean
make-kpkg --append-to-version=.d630 kernel_image --initrd
cd..
dpkg -i linux-image...

Reboot with new kernel and let's configure the wireless card:
//getting the firmware
wget http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-4965-ucode-4.44.17.tgz
tar xvf iwlwifi-4965-ucode-4.44.17.tgz
cp iwlwifi-4965-ucode-4.44.17/iwlwifi-4965.ucode /lib/firmware/iwlwifi-4965-1.ucode
NOTE*: the destination filename has an extra "-1".

//getting the driver
wget http://www.intellinuxwireless.org/iwlwifi/downloads/iwlwifi-1.1.17.tgz
tar xvf iwlwifi-1.1.17.tgz
cd iwlwifi-1.1.17
make //if you get any error repeat the make command
make install

./load debug=0
ifconfig wlan0 up
iwconfig wlan0
iwlist scan //this is just to test if it finds the available wireless networks
*The driver version 1.1.17 tries to load the microcode from  /lib/firmware/iwlwifi-4965-1.ucode so, if we don't append the "-1" to the name of the microcode file, the firmware won't be loaded.
End of old section

Fingerprint reader

Download ThinkFinger-0.3 and make sure make sure you have installed libtool, pkg-config, libusb-dev and libpam0g-dev.
tar xzvf thinkfinger-0.3.tar.gz
cd thinkfinger-0.3
./configure --prefix=/usr --sysconfdir=/etc --with-securedir=/lib/security --with-birdir=/etc/pam_thinkfinger
make
make install
mkdir /etc/pam_thinkfinger
To configure PAM to use ThinkFinger, edit file /etc/pam.d/common-auth so it look like this:
auth    sufficient      pam_thinkfinger.so
auth required pam_unix.so nullok_secure try_first_pass
//adding a user to thinkfinger
tf-tool --add-user your_username

to unlock xscreensaver/gnome-screensaver using the fingerprint reader:
groupadd fingerprint
Create /etc/udev/rules.d/60-thinkfinger.rules with the following content:
#BEGIN OF FILE

# udev rules file for the thinkfinger fingerprint scanner
#
# gives access to the fingerprint reader to those in the "fingerprint" group
#
# SGS Thomson Microelectronics Fingerprint Reader
SYSFS{idVendor}=="0483", SYSFS{idProduct}=="2016", SYMLINK+="input/thinkfinger-%k", MODE="0660", GROUP="fingerprint"
# the also-needed uinput device
KERNEL=="uinput", MODE="0660", GROUP="fingerprint"

#END OF FILE
//Add the user to the group*
gpasswd -a your_username fingerprint
//Make him owner of his bir-file
chown your_username:root /etc/pam_thinkfinger/your_username.bir
//Give him read-only access to his bir-file:
chmod 400 /etc/pam_thinkfinger/your_username.bir
//Give "execute only" access to everyone for the /etc/pam_thinkfinger/ directory:
chmod o+x /etc/pam_thinkfinger (WARNING: this opens up security a little).
Now edit /etc/modules and add uinput to the last line. REBOOT!!!

I only added the normal user. User root can be added but it will have problems with gksu/gksudo.
For more details see ThinkWiki.

Hardware list

lspci

00:00.0 Host bridge: Intel Corporation Mobile Memory Controller Hub (rev 0c)
00:02.0 VGA compatible controller: Intel Corporation Mobile Integrated Graphics Controller (rev 0c)
00:02.1 Display controller: Intel Corporation Mobile Integrated Graphics Controller (rev 0c)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #4 (rev 02)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #5 (rev 02)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI #2 (rev 02)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 02)
00:1c.5 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 6 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #3 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI #1 (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f2)
00:1f.0 ISA bridge: Intel Corporation Mobile LPC Interface Controller (rev 02)
00:1f.1 IDE interface: Intel Corporation Mobile IDE Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation Mobile SATA AHCI Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 02)
03:01.0 CardBus bridge: O2 Micro, Inc. Cardbus bridge (rev 21)
03:01.4 FireWire (IEEE 1394): O2 Micro, Inc. Firewire (IEEE 1394) (rev 02)
09:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5755M Gigabit Ethernet PCI Express (rev 02)
0c:00.0 Network controller: Intel Corporation Unknown device 4229 (rev 61)

lsusb

Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 001 Device 003: ID 413c:8140 Dell Computer Corp.
Bus 001 Device 001: ID 0000:0000
Bus 005 Device 004: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader
Bus 005 Device 001: ID 0000:0000
Bus 005 Device 003: ID 0b97:7761 O2 Micro, Inc.
Bus 005 Device 005: ID 0b97:7772 O2 Micro, Inc.
Bus 006 Device 001: ID 0000:0000
Bus 007 Device 001: ID 0000:0000

Working

Screen with 1440x900 resolution.
Fingerprinter scanner works!!!
The DVD burns.
Brightness  (fn+arrows) works with OSD.
WiFi and bluetooth work fine.
Sound works and the sound volume buttons work with OSD. Cool!


Problems

Ambient light sensor is not working.
The main problem I found is that the WiFi and Bluetooth leds don't lit. (2009/01/12) Fixed on recent builds!
WARNING: Shutdown command may not be unloading the heads of the disk! (see here) (2009/01/12) Fixed on recent builds!)