Skip to content

Dell Latitude D430

TuxMobil

Dell Latitude D430 Debian Lenny Installation Guide

last updated 04/01/2009 (Thunderbird/Iceweasel notes)
updated 28/11/2008 (xbindkeys notes – sound)
updated 23/11/2008 (gtk-related info in Miscellaneous notes)

General Information

This page summarizes the steps that had to be performed in order to get Debian Lenny running on this nifty piece of hardware (by the way, it has less than 1.4 kg including the battery). For installation, I used the amd64 version of the Debian Testing official netinst CD (Debian installer Lenny beta2). The net-based installation using internal Ethernet card proceeded without any problems.

Should you have any questions you can try to contact me and ask, I will try to help. For contact information please consult my CV.

Hardware configuration

Specs from the producer are (hopefully still) available here.

  • Intel Core2 Duo U7700 @ 1.33 GHz
  • Intel 945GM Chipset
  • 2 GB DDR2-SDRAM
  • 32 GB SSD
  • external DVD-RW
  • Intel 945GM graphics with shared memory
  • 12.1″ WXGA – 1280×800
  • Intel 802801G High Definition Audio soundcard
  • Ricoh R5C822 SD/SDIO/MMC/MS/MSPro card reader
  • Bluetooth v2, telephone modem, GSM modem
  • Ricoh RL5c476 II CardBus bridge
  • Ricoh R5C552 IEEE1394 adapter
  • 3 USB 2.0 ports
  • Intel ProWireless 4965 wireless card
  • Broadcom Corporation NetXtreme BCM5752 Gigabit ethernet controller
  • D/Port port replicator

Lspci and lsmod outputs are available here and here

SSD handling

In order to extend the life of the SSD in the notebook, I adopted some special settings. My two main sources of information were these two sites – page on tombuntu.com (Four tweaks for using Linux with solid state drives) and a Jason Perlow’s post on blogs.zdnet.com (Geek sheet: A tweaker’s guide to solid state drives and Linux).

Firstly, I am using the deadline scheduler (noop is the other option) – adding elevator=deadline to kernel options (line starting with #kopt= in /boot/grub/menu.lst) does the job.

In order to decrease the number of writes on the disk, I do not use swap partition (2 GB of memory are more than enough for me), I put all tmp and log directories on tmpfs, and the root filesystem is mounted with noatime,nodiratime options. The filesystem is ext3. Some people suggest using ext2, but I am a bit paranoid about losing my data, so I stay with ext3. My /etc/fstab contains (among others)

# root fs, i am using UUID instead of device name
UUID=11608a90-7408-4a81-825a-f4a598dca842	/ ext3 errors=remount-ro,noatime,nodiratime 0 1
...
# temporary folders
none		/tmp		tmpfs	defaults,size=128m	0	0
none		/var/log	tmpfs	defaults,size=64m	0	0
none		/var/tmp	tmpfs	defaults,size=64m	0	0

Please note that by putting logs on tmpfs, you loose them on reboot. Another thing is that some directories might be missing in /var/log. This has to be taken care of. Further modificaitons involve

  • /etc/rc.local – various changes
    • getting rid of apt error about nonexistent log directory mkdir -p /var/log/apt
    • setting caching for SSD: hdparm -W1 /dev/hda (discussed here)
  • /etc/syslog.conf change all entries for INN news system to use /var/log directory (omit the news subdirectory)
  • change log file in aptitude to /var/log/aptitude
  • /etc/X11/Xsession set path to error file ERRFILE=/tmp/.xsession-errors-${USER}
  • Firefox cache directory – set browser.cache.disk.parent_directory /tmp

Graphics

New version of the intel driver in Xorg works without any further configuration. Actually, the card isn’t even listed in the xorg.conf file. It seems that the RandR extension and the xrandr tool work out-of-box. At the moment, I just tested the clone mode, enabling/disabling the individual outputs.

In order to get my Wacom tablet and other things working, I had to do some modifications to the configuration – the final xorg.conf file can be downloaded here.

I am experiencing a funny but annoying problem – the external output (both VGA and DVI) jitters from time to time, and it also disappears completely from time to time. Xrandr shows the output as active, but I am getting only black screen. This doesn’t happen with the internal screen. The problem can be related to the fact that I am using the D/Port replicator – I will have to test this further. The internal screen works without any problems.

Sound

Sound output works out-of-box without any configuration needed. Microphone works as well. I just had to play a bit with the mixer settings. Does anyone know a small and simple application showing microphone input levels? It would really help. Here, I had to use trial-and-error procedure, using the Skype test call with different input levels. Anyway, I am using the following at the moment:

Capture             80 %
Capture Mux         50 %
Digital             50 %
Input Source        Mix

as shown in alsamixer. Most probably, this is internal microphone – I haven’t been able to sort the recording through the external mic yet…

In order to get rid of (very annoying) keyboard beeps (for example in vi or in the shell), I added

blacklist pcspkr
blacklist snd_pcsp

in /etc/modprobe.d/blacklist.local. This disables the internal PC speaker completely.

Volume keys do not seem to have any effect in the beginning. It is necessary to do modifications to .Xmodmap in order to get it working. The following should do the trick.

keycode 176 = XF86AudioRaiseVolume
keycode 174 = XF86AudioLowerVolume
keycode 160 = XF86AudioMute

The keys are then reported correctly, but I haven’t managed to get them all working in XFCE. At least one of them (RaiseVolume) doesn’t have any effect. I solved this by adding the following to .xbindkeysrc and starting xbindkeys on login:

# toggle mute
"amixer sset 'Master' toggle"
  m:0x0 + c:160
# XF86AudioMute

# increase volume
"amixer sset 'Master' 20%+"
  m:0x0 + c:176
# XF86AudioRaiseVolume

# decrease volume
"amixer sset 'Master' 20%-"
  m:0x0 + c:174
# XF86AudioLowerVolume

The output jack on the D/Port doesn’t work – no sound is coming out and plugging headphones/speakers to the D/Port connector doesn’t disable the internal notebook speakers. Connector on the notebook body works without any problems.

Networking

The ethernet card is recognized automatically and works without further configuration. In order to get the WiFi card working, it’s necessary to install the firmware-iwlwifi package from the non-free repositories. Wireless networking then works without any problems.

Other peripherals

I haven’t tested any of the other peripherals (telephone and GSM modem, Bluetooth, card reader, …). I expect the card reader to work (it did on my older laptop).

The D/Port port replicator provides some additional ports, for example VGA, DVI, S-Video, serial and parallel connectors, external plugs for telephone and network, and speaker jack. From those, VGA, DVI and ethernet work (tested). Headphone jack doesn’t work.

Power management

Frequency scaling works automatically (acpi_cpufreq module), no configuration was needed. The three available frequencies are correctly recognized (0.8, 1.0, 1.3 GHz) and change according to the computer load.

Suspend to RAM works without any problems. Issuing

echo "mem" > /sys/power/state

suspends the computer (note the pulsation of the power LED). After resume, there are no problems.

I haven’t had time to check the Suspend-to-disk yet. The situation is a bit complicated by the fact that I don’t have any swap partition to hibernate to. I will have to check the Suspend-To-File functionality in the future.

After installing the powersaved package, it’s good to edit /etc/powersave/events. In my case, I have

EVENT_BATTERY_CRITICAL="wm_shutdown"
EVENT_BUTTON_POWER="ignore"
EVENT_BUTTON_SLEEP="ignore"
EVENT_BUTTON_LID_OPEN="ignore"
EVENT_BUTTON_LID_CLOSED="suspend_to_ram"

Then, after closing the lid, the notebook goes to sleep (suspend-to-ram) automatically.

Miscellaneous notes

The following notes are related to my setup – you may find some of them useful, but don’t expect much.

  • showkeys is good for getting info about keys not recognized by the system
  • /etc/cups/cupsd.conf – various changes
    • disable browsing Browsing off
    • add Allow localhost to all “Location” sections in order to enable access to web interface
    • create printcap in order to enable printing from jedit Printcap /etc/printcap (discussed here)
  • Firefox/Iceweasel stuff
    • file picker: ui.allow_platform_file_picker false (applies to Thunderbird/Icedove as well)
    • not giving FF focus upon opening a page from Thunderbird: browser.tabs.loadDivertedInBackground true
  • Thunderbird/Icedove stuff (from here)
    • automatic downloading of attachments: mail.server.default.mime_parts_on_demand false
    • offline folders autosync
      mail.server.default.autosync_offline_stores true
      mail.imap.use_status_for_biff false
  • /etc/texmf/texmf.conf set TEXMFHOME, TEXMFVAR, TEXMFCONFIG to $HOME/.textmf-{local,var,config}
  • adding -dpi 100 to /etc/kde3/kdm/kdmrc: ServerArgsLocal
  • getting consistent font in gtk applications can be tricky, this should work (not tested myself yet):
    style "user-font" { font_name="Bitstream Vera Sans 11" }
    widget_class "*" style "user-font"
    gtk-font-name="Bitstream Vera Sans 11"

    the last part should affect Iceweasel font. Some people suggest installing gtk-qt-engine and controling properties through kcontrol. One more addition to the above snippet is
    gtk-theme-name="Qt"
  • bootchart – after installation, just add init=/sbin/bootchartd to the kernel params line…
  • test initng some day in the future?
  • reading books: pdftotxt $file.pdf $file.txt & festival -wav -i $file.txt -o $file.wav & lame $file.wav & cp -v $file.mp3 /media/mp3player
  • useful bash tips – check this page
  • for problems with USB device descriptor read try to add irqpoll to the kernel options as described here