Installation
I used the i386 etch netinst CD from http://www.debian.org/devel/debian-installer/, resizing the NTFS parition down to have a gigabyte or so of free space, and then divided the rest between the root partition (50GB) and the swap (3GB). I don't really need the Windows installation, but thought I might as well keep it anyway. One thing you might want it for is to remove the region coding from the bundled external DVD drive. The USB DVD drive that I got is a SONY DVD+-RW DW-Q58A, which it turns out you can use LtnRPC on to disable the RPC2. The DOS version won't work with a USB drive, but the Windows one seems to work fine. You should do this, of course, since DVD region is utter nonsense.
The installation went completely smoothly, having selected a fairly minimal set of tasks in tasksel ("desktop environment", "web server", "laptop" and "standard system"). The following notes mention some things you'll probably have to do once the system is up:
Graphics
- Change /etc/X11/xorg.conf to use the i810 driver for your video card instead of vesa.
- Install the 915resolution package, pick a BIOS video mode to
replace from 915resolution -l (I went for "3c") and
changed /etc/default/915resolution to be:
# # 915resolution default # # find free modes by /usr/sbin/915resolution -l # and set it to MODE # MODE=3c # # and set resolutions for the mode. # XRESO=1280 YRESO=768 # # We can also set the pixel mode. # Please note that this is optional, # you can also leave this value blank. BIT=32
- Add the mode 1280x768 to /etc/X11/xorg.conf
APT configuration
-
Change /etc/apt/sources.list to be:
deb http://ftp.de.debian.org/debian/ stable main contrib deb http://ftp.de.debian.org/debian/ etch main contrib deb http://ftp.de.debian.org/debian/ sid main contrib deb-src http://ftp.de.debian.org/debian/ stable main deb-src http://ftp.de.debian.org/debian/ etch main deb-src http://ftp.de.debian.org/debian/ sid main deb http://security.debian.org/ stable/updates main deb http://security.debian.org/ etch/updates main deb http://www.debian-multimedia.org stable main deb http://www.debian-multimedia.org etch main
... and /etc/apt/apt.conf to:APT::Default-Release "testing"; APT::Cache-Limit "16777216";
To get rid of the "signatures couldn't be verified" error for Marillat's key, do gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 1F41B907 (or if you can't get to the keyserver, apt-get install debian-keyring, add to ~root/.gnupg/gpg.conf the lines:keyring /usr/share/keyrings/debian-keyring.gpg keyring /usr/share/keyrings/debian-keyring.pgp
) then do gpg --armor --export 1F41B907 | apt-key add -
Kernel
- I fetched a recent 2.6 kernel (2.6.16.16 at the time) and configured and built it with this .config. (I've taken to creating Debian packages containing kernels, in this case with make-kpkg --rootcmd fakeroot kernel_image in the root of your kernel source tree, which creates a .deb of the kernel in the directory above.) That .config builds-in almost everything but there are a few things that need to be modules; for example, the ipw2200 driver must be built as a module if you want to load the firmware with udev.
Sound
-
The ALSA drivers for the built-in sound hardware work fine, so I
created /etc/asound.conf with the following:
pcm.dsp0 { type plug slave.pcm "dmix" } ctl.mixer0 { type hw card 0 }
... and checked that dmix works OK, works with aoss, etc. I also set up artsd to use ALSA and plug:dmix in kcontrol.
Device Management
- Installed hal, gnome-volume-manager, dbus, pmount and hal-device-manager and got them to work. (You can read some stuff I wrote about device management on another page.)
Miscellaneous Next Steps
- I generate a dsa key for SSH and set up passwordless logins to useful places, and made sure of ForwardX11 yes in /etc/ssh/ssh_config.
- Install the Macromedia Flash Player for Firefox (cp libflashplayer.so flashplayer.xpt /usr/lib/firefox/plugins/), and install useful Firefox extensions.
- Download J2SE 5.0 JDK and use java-package> to create a Debian package of the official Sun JDK.
- I installed lots of fonts with: apt-get install `( apt-cache search ^xfonts- ; apt-cache search ^ttf- ) | awk '{ print $1; }'` xfonts-abi- xfonts-biznet-iso-8859-2-100dpi- xfonts-biznet-iso-8859-2-75dpi- xfonts-biznet-iso-8859-2-base-. (The random packages followed by hyphens at the end were added manually to fix dependency problems. I also installed msttcorefonts. There really should be an "all fonts" metapackage...
- I created the scripts "noises-off" and "noises-on", which do echo 2 > /sys/module/processor/parameters/max_cstate and echo 2 > /sys/module/processor/parameters/max_cstate respectively in order to eradicate and restore (!) the annoying high-pitched beeping that the laptop emits by default.
Complete Packages
After any fairly minimal installation of Debian you have to apt-get install hundreds of packages by hand - rather than itemize these and the reasons I needed them, I've upload a list of my installed packages.
MMC / SD card slot
This works fine with the sdhci module in recent 2.6 kernels. (Well, with most cards anyway - I've tried a few that don't seem to work at all, but I suppose that might be the media.)
External DVD
The bundled external DVD player is just a USB mass storage device with an extra (proprietary) power connector, so it works fine out-of-the-box.
Bluetooth
I made sure the basic BlueZ utils (e.g. hcitool scan) worked OK (the hci_usb driver works fine).
gnome-bluetooth is very useful for OBEX file transfer but for some difficult-to-discern reason it isn't in Debian yet (although my memory is that it used to be...) So, I got the Ubuntu "Hoary" versions of the dependencies that aren't in Debian (python2.4-libbtctl, libbtctl1, libbtctl1-dev, libgnomebt0) and downloaded the source of gnome-bluetooth itself from the links on the Ubuntu gnome-bluetooth page. (You need to rebuild from source, since it depends on a later version of the python package than is available in Debian.) You should unpack the orig.tar.gz, patch with zcat gnome-bluetooth_0.5.1-1ubuntu7.diff.gz | patch --strip=0 --silent and make debian/rules executable. You probably need to try building it with dpkg-buildpackage -rfakeroot and then going back and satisfying the build dependencies. Build again (which should succeed) install the .deb file and check that gnome-obex-send and gnome-obex-server work OK.
Setting up dial-up networking over your mobile: Set a pin in /etc/bluetooth/pin and make the pin_helper application referenced in /etc/bluetooth/hcid.conf a script that does something like "echo PIN:1234". Use hcitool to find the bluetooth address of your phone and pair with your phone. Use sdptool to find the RFCOMM channel of the service that offers Dial-Up Networking on your phone and use rfcomm bind 0 <bluetooth-address> <rfcomm-channel>, create /etc/chatscripts/mobile as:
SAY "Starting /etc/chatscripts/mobile ..." "" ATZ OK ATD*99# CONNECT ""
and /etc/ppp/peers/mobile
connect "/usr/sbin/chat -s -v -f /etc/chatscripts/mobile" /dev/rfcomm0 115200 noipdefault usepeerdns defaultroute noauth nodetach deflate 9,9 debug
That works OK for me...
Networking
To stop the wireless and ethernet randomly swapping between eth0 and eth1, I used ifrename with an /etc/iftab of:
eth5 mac 00:13:72:6A:AA:C5 eth6 driver ipw2200
This doesn't quite work unless you make sure that you have a /etc/modprobe.d/ipw2200 file which contains:
install ipw2200 /sbin/modprobe --ignore-install ipw2200; /sbin/ifrename
... and the modules are loaded beforehand, so I added tg3 and ipw2200 to /etc/modules. Also the /etc/init.d/ifrename script in the Debian package uses the undesirable (in my situation) -d option, so I removed that option from the script and put the package on hold.
The above steps should be sufficient to make sure that your ethernet interface is always eth5 and the wireless is always eth6. There are about a thousand different ways of setting up networking for a laptop on Debian, most of which are far too complicated, or have undesirable default behaviour. My preference is to use ifupdown "interfaces" files in as simple a way as possible. This is to create a series of interfaces files in /etc/network for all the different networking environments I find myself in (e.g /etc/network/interfaces/wireless-house) and have a script called switch-network that just lowers the current interfaces, copies over the file for the new situation and raises the intefaces again.
For example, this is the /etc/network/interfaces.wireless-central file I set up for the Edinburgh University central wireless network runs a script bluesocket that logs in and out of the Bluesocket authentication system on raising and lowering the interface:
auto lo eth6 iface lo inet loopback iface eth6 inet dhcp wireless-essid central wireless-mode Managed post-up su - mark -c "bluesocket" pre-down su - mark -c "bluesocket --logout"Sometimes you need to use the post-up line to copy over a new /etc/resolv.conf, as in my /etc/network/interfaces.wireless.house:
auto lo eth6 iface lo inet loopback iface eth6 inet static address 192.168.2.3 netmask 255.255.255.0 gateway 192.168.2.1 wireless-essid house-network wireless-mode managed wireless-key1 XX:XX:XX:XX:XX post-up cp /etc/resolv.conf.wireless-house /etc/resolv.conf
This works pretty well for me. The other script which makes this system slightly less hassle is called guess-network, which uses mii-tool and iwlist scan to check whether it's possible to recognize a situation and call switch-network if so (like a very village guessnet). I call this in startup (as /rcS.d/S41guess-network) and after unsuspending (see below.) ifupdown stores the state when you shut down the computer, though, so I switch to the loopback only configuration on halting or rebooting via /rc6.d/S34switch-to-loopback and /etc/rc0.d/S34switch-to-loopback.
Suspend-to-RAM
The only type of power management I ever really use is suspend-to-RAM, which works fine with echo -n mem > /sys/power/state as long as you're not in X and you've removed a few of the more sensitive modules on your system (which includes the ipw2200 driver, so I switch to a loopback-only networking setup first):
#!/bin/sh set -e set -x chvt 1 switch-network loopback rmmod ipw2200 rmmod i2c_i801 rmmod i2c_core rmmod tg3 echo -n mem > /sys/power/state modprobe tg3 modprobe i2c_core modprobe i2c_i801 modprobe ipw2200 chvt 7 guess-network
... but after closing and opening the lid to unsuspend, the backlight isn't turned back on automatically, so you need to do Fn + ↑ to turn the backlight back up.
lspci -v
In case it's of use to anyone who's thinking of buying one of these machines and wants to know exactly what hardware is in there, this is the result of lspci -v:
0000:00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03) Subsystem: Dell: Unknown device 01a3 Flags: bus master, fast devsel, latency 0 Capabilities: <available only to root> 0000:00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03) (prog-if 00 [VGA]) Subsystem: Dell: Unknown device 01a3 Flags: bus master, fast devsel, latency 0, IRQ 169 Memory at dff00000 (32-bit, non-prefetchable) [size=512K] I/O ports at ec38 [size=8] Memory at c0000000 (32-bit, prefetchable) [size=256M] Memory at dfec0000 (32-bit, non-prefetchable) [size=256K] Capabilities: <available only to root> 0000:00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03) Subsystem: Dell: Unknown device 01a3 Flags: bus master, fast devsel, latency 0 Memory at dff80000 (32-bit, non-prefetchable) [size=512K] Capabilities: <available only to root> 0000:00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03) (prog-if 00 [Normal decode]) Flags: bus master, fast devsel, latency 0 Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 Memory behind bridge: dfd00000-dfdfffff Capabilities: <available only to root> 0000:00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03) (prog-if 00 [UHCI]) Subsystem: Dell: Unknown device 01a3 Flags: bus master, medium devsel, latency 0, IRQ 169 I/O ports at bf80 [size=32] 0000:00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03) (prog-if 00 [UHCI]) Subsystem: Dell: Unknown device 01a3 Flags: bus master, medium devsel, latency 0, IRQ 201 I/O ports at bf60 [size=32] 0000:00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03) (prog-if 00 [UHCI]) Subsystem: Dell: Unknown device 01a3 Flags: bus master, medium devsel, latency 0, IRQ 209 I/O ports at bf40 [size=32] 0000:00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03) (prog-if 00 [UHCI]) Subsystem: Dell: Unknown device 01a3 Flags: bus master, medium devsel, latency 0, IRQ 177 I/O ports at bf20 [size=32] 0000:00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03) (prog-if 20 [EHCI]) Subsystem: Dell: Unknown device 01a3 Flags: bus master, medium devsel, latency 0, IRQ 169 Memory at ffa80800 (32-bit, non-prefetchable) [size=1K] Capabilities: <available only to root> 0000:00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3) (prog-if 01 [Subtractive decode]) Flags: bus master, fast devsel, latency 0 Bus: primary=00, secondary=02, subordinate=03, sec-latency=32 Memory behind bridge: dfc00000-dfcfffff Prefetchable memory behind bridge: 0000000060000000-0000000061f00000 Capabilities: <available only to root> 0000:00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 03) Subsystem: Dell: Unknown device 01a3 Flags: bus master, medium devsel, latency 0, IRQ 169 I/O ports at ed00 [size=256] I/O ports at ec40 [size=64] Memory at dfebfe00 (32-bit, non-prefetchable) [size=512] Memory at dfebfd00 (32-bit, non-prefetchable) [size=256] Capabilities: <available only to root> 0000:00:1e.3 Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller (rev 03) (prog-if 00 [Generic]) Subsystem: Conexant: Unknown device 5423 Flags: medium devsel, IRQ 201 I/O ports at ee00 [size=256] I/O ports at ec80 [size=128] Capabilities: <available only to root> 0000:00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03) Subsystem: Dell: Unknown device 01a3 Flags: bus master, medium devsel, latency 0 0000:00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 03) (prog-if 8a [Master SecP PriP]) Subsystem: Dell: Unknown device 01a3 Flags: bus master, medium devsel, latency 0, IRQ 169 I/O ports at <ignored> I/O ports at <ignored> I/O ports at <ignored> I/O ports at <ignored> I/O ports at bfa0 [size=16] 0000:00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03) Subsystem: Dell: Unknown device 01a3 Flags: medium devsel, IRQ 10 I/O ports at 10c0 [size=32] 0000:01:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751 Gigabit Ethernet PCI Express (rev 01) Subsystem: Dell: Unknown device 01a3 Flags: bus master, fast devsel, latency 0, IRQ 169 Memory at dfdf0000 (64-bit, non-prefetchable) [size=64K] Capabilities: <available only to root> 0000:02:01.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b3) Subsystem: Dell: Unknown device 01a3 Flags: bus master, medium devsel, latency 168, IRQ 177 Memory at dfc00000 (32-bit, non-prefetchable) [size=4K] Bus: primary=02, secondary=03, subordinate=06, sec-latency=176 Memory window 0: 60000000-61fff000 (prefetchable) Memory window 1: 62000000-63fff000 I/O window 0: 00001400-000014ff I/O window 1: 00001800-000018ff 16-bit legacy interface ports at 0001 0000:02:01.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller (rev 08) (prog-if 10 [OHCI]) Subsystem: Dell: Unknown device 01a3 Flags: bus master, medium devsel, latency 64, IRQ 209 Memory at dfcfe800 (32-bit, non-prefetchable) [size=2K] Capabilities: <available only to root> 0000:02:01.2 0805: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 17) (prog-if 01) Subsystem: Dell: Unknown device 01a3 Flags: bus master, medium devsel, latency 64, IRQ 10 Memory at dfcfe700 (32-bit, non-prefetchable) [size=256] Capabilities: <available only to root> 0000:02:03.0 Network controller: Intel Corporation PRO/Wireless 2200BG (rev 05) Subsystem: Intel Corporation: Unknown device 2721 Flags: bus master, medium devsel, latency 64, IRQ 201 Memory at dfcff000 (32-bit, non-prefetchable) [size=4K] Capabilities: <available only to root>