Installing Debian on a Toshiba Satellite L305

I recently purchased a Toshiba Satellite L305 because I needed a new computer to finish typing my dissertation on. I really didn't do too much research to ensure it would run with free software but decided to take a chance seeing as the machine is mostly intel architecture. I got the machine working with only a few self inflicted headaches, but think it's important to share what I know especially since the chipsets involved look rather standard for lower end laptops these days. I am, in fact, quite pleased with how well everything is working on this machine. It certainly is a big improvement from my powerpc laptop with an nvidia graphics chipset ( which never worked well ) and broadcom wireless card ( which took years to work). I will never buy from nvidia or broadcom again.
Toshiba Satellite L305 Picture

The System

/proc/cpuinfo

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 15
model name	: Genuine Intel(R) CPU             585  @ 2.16GHz
stepping	: 13
cpu MHz		: 2161.454
cache size	: 1024 KB
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca 
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss tm pbe syscall nx lm
constant_tsc up arch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl 
tm2 ssse3 cx16 xtpr pdcm lahf_lm
bogomips	: 4322.90
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:


lspci

00:00.0 Host bridge: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub (rev 07)
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)
00:02.1 Display controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)
00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 03)
00:1a.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2 (rev 03)
00:1c.4 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03)
00:1d.3 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 93)
00:1f.0 ISA bridge: Intel Corporation ICH9M LPC Interface Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation ICH9M/M-E SATA AHCI Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 03)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 02)
03:00.0 Ethernet controller: Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter (rev 01)

Back to Top

Which version of Debian to install?

The kernel version needed for the hard drive must be at least 2.6.26. Thus your choices are etchnhalf, lenny or sid if you want the installer to run smoothly. However, etchnhalf currently only installs kernel 2.6.24 so you'd need to do some extra work. The rest of the instructions here have only been tested on a lenny system ( Though I have installed etchnhalf and dist-upgraded to lenny). Architecture is an important choice too. If you have the Intel Celeron 585 then you should use amd64 (though x86 will also work). If you have an Intel Pentium Dual Core T3400 then you want x86.
Back to Top

Install Procedure

Obtain Debian http://www.debian.org/distrib/ and install. For lenny, the standard install procedure just works.
Back to Top

Wireless Internet / Custom Kernel

Early on I noticed the syslog messages
ath5k phy0: Support for RF2425 is under development.

and lspci reveals
03:00.0 Ethernet controller: Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter (rev 01)
So I concluded that the debian kernel version 2.6.26 does not include adequate drivers for this card yet. A quick check with the madwifi website revealed that the card is in fact supported. So I went to kernel.org and downloaded 2.6.28. Here is my kernel:
linux-image-2.6.28-amd64_custom.1.0_amd64.deb
config-2.6.28-amd64
This package will only work if you have a 64 bit Toshiba L305.
Back to Top

Getting Graphics Setup Correctly

Graphics on this machine will be VERY flaky if you do not install a much more recent xserver-xorg-video-intel driver. Add lines to include sid and experimental distributions to your /etc/apt/sources.list. Here is what mine looks like:

/etc/apt/sources.list

deb http://ftp.uwsg.indiana.edu/linux/debian/ lenny main contrib non-free
deb-src http://ftp.uwsg.indiana.edu/linux/debian/ lenny main contrib non-free

deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

deb http://ftp.uwsg.indiana.edu/linux/debian/ sid main contrib non-free
deb-src http://ftp.uwsg.indiana.edu/linux/debian/ sid main contrib non-free

deb http://ftp.uwsg.indiana.edu/linux/debian/ experimental main contrib non-free
deb-src http://ftp.uwsg.indiana.edu/linux/debian/ experimental main contrib non-free
Now to make sure the whole system does not become experimental or sid create an /etc/apt/preferences file.

/etc/apt/preferences

Package: *
Pin: release a=testing
Pin-Priority: 990

Package: *
Pin: release a=unstable
Pin-Priority: 500

Package: *
Pin: release a=experimental
Pin-Priority: 250
As root run #apt-get update. Next I ran aptitude as root and removed all of the packages that begin with xserver-xorg-video except xserver-xorg-video-intel. Now run the following command as root

#aptitude install xserver-xorg-video-intel/experimental

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Reading extended state information      
Initializing package states... Done
Reading task descriptions... Done  
The following packages are BROKEN:
  libdrm-intel1 xserver-xorg xserver-xorg-video-intel 
The following NEW packages will be installed:
  libpciaccess0{a} libxvmc1{a} 
1 packages upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 640kB of archives. After unpacking 854kB will be used.
The following packages have unmet dependencies:
  xserver-xorg-video-intel: Depends: libdrm2 (>= 2.4.3+git+20090105+a8c5480) but 2.3.1-2 is installed.
                            Depends: xserver-xorg-core (>= 2:1.5.99.901) but 2:1.4.2-10 is installed.
  libdrm-intel1: Depends: libdrm2 (>= 2.4.3+git+20090105+a8c5480) but 2.3.1-2 is installed.
  xserver-xorg: Depends: xserver-xorg-video-all but it is not installable or
                         xserver-xorg-video-2 which is a virtual package.
The following actions will resolve these dependencies:

Remove the following packages:
xserver-xorg-input-all
xserver-xorg-input-wacom

Install the following packages:
xserver-common [2:1.5.99.901-1 (experimental)]

Upgrade the following packages:
libdrm2 [2.3.1-2 (testing, unstable, now) -> 2.4.3+git+20090105+a8c5480-1 (experimental)]
libgl1-mesa-dri [7.0.3-7 (testing, unstable, now) -> 7.3~rc3-1 (experimental)]
libgl1-mesa-glx [7.0.3-7 (testing, unstable, now) -> 7.3~rc3-1 (experimental)]
libpixman-1-0 [0.10.0-2 (testing, unstable, now) -> 0.13.2-1 (experimental)]
xkb-data [1.3-2 (testing, now) -> 1.4-1 (unstable)]
xserver-xorg [1:7.3+18 (testing, unstable, now) -> 1:7.4~5 (experimental)]
xserver-xorg-core [2:1.4.2-10 (testing, unstable, now) -> 2:1.5.99.901-1 (experimental)]
xserver-xorg-input-evdev [1:2.0.8-1 (testing, unstable, now) -> 1:2.1.1-1 (experimental)]
xserver-xorg-input-kbd [1:1.3.1-1 (testing, unstable, now) -> 1:1.3.2-2 (experimental)]
xserver-xorg-input-mouse [1:1.3.0-1 (testing, unstable, now) -> 1:1.4.0-1 (experimental)]
xserver-xorg-input-synaptics [0.14.7~git20070706-3 (testing, unstable, now) -> 0.99.3-1
(experimental)]

Score is -451

Accept this solution? [Y/n/q/?] 
Accept the solution. Here is a copy of a no-frills working /etc/X11/xorg.conf
Back to Top

Suspend to Memory / Hibernate

Download the following file and place it in the indicated config file location. /etc/hal/fdi/policy/myprefs.fdi So far suspend to memory and hibernate work but suspend-hybrid I don't have working ?!?! go figure
Back to Top

Things I have confirmed are working

  • SD memory card reader
  • Sound + Volume Dial
  • Ethernet
  • Backlight adjustment+quick keys
  • DVD writer / reader

Back to Top

Unresolved Issues

  • Suspend-hybrid does not work. IMHO it seems like it should because both hibernate and suspend work. I've even enabled power_management.can_suspend_hybrid = true (bool) in hal.
  • When gnome-screensaver is set to turn on when idle gnome-power-manager likes to hibernate the computer even though it is not supposed to.
  • The volume state after resuming from suspend is reset
  • I have not tested the modem

Back to Top

Disclaimer

This document is licensed under the GNU GPL.

Note: I'm not responsible for any damage (software, hardware, emotional) this document could cause. The instructions contained here come with NO Warranty if you follow the instructions and your computer gives the missile launch code don't cry to me. Use them at your own risk! I'm also not responsible for the content of the hyperlinks here. If you follow a link, it's your own fault not mine.


Nate Iverson's Homepage


January 25, 2009 by Nate Iverson