Installing Debian/GNU Linux on a Toshiba Tecra S1 Notebook ----------------------------------------------------------
by Michael Holzt, <[EMAIL PROTECTED]> * Revisions November 29, 2003 Initial Revision * Introduction This text describes my experiences with installing Debian/GNU Linux on a Toshiba Tecra S1. To make a short summary first: Linux is running mainly fine and i'm very satisfied with this notebook. * Hardware The configuration i am using is: - Processor: Intel Pentium M 1.3 GHz - Chipset: Intel Centrino - Graphic: ATI Radeon Mobility M9 (9000) - Optical Drive: DVD/CD-RW Drive - Screen: 15" TFT 1024x768 - Network: Intel PRO/100 VE 100 MBit Intel Pro Wireless 2100 802.11b 11 MBit * Installation I used a sarge (unstable) boot cd because i needed the e100-Driver for the builtin network adapter. I remember seeing stable bootdisks with an added e100.o, but couldn't find them when i installed. As i'm running Debian unstable i could use the sarge cd (which is now much more mature) anyway. I've done a pretty standard install which i wouldn't detail here. * ACPI Problems One of the biggest problems is - as usual - ACPI. The BIOS of a machine with ACPI-Support holds several data tables which are used by the ACPI Implementation in the Operating System. This tables are broken more or less on way too many machines and the Tecra S1 is now exception here. This fact is even more sad when you see that Toshiba is a core member of the ACPI consortium. Problem here is, that Microsoft Windows seems to be very (too) tolerant against errors in the tables. The Microsoft Compiler for the ACPI tables does only very relaxed checking and misses a lot of problems, and it seems this compiler is used by many vendors. The ACPI in the linux kernel on the other hand is originated by intel, and much more strict. Similar the Intel Compiler is stricter as well. ACPI problems with this notebook are mainly that you will get no battery readout with a stock kernel. Although i can say for sure that one of the ACPI tables in the BIOS of the Tecra S1 (the DSDT) is broken, it is for now unclear if this is sole due to a DSDT error. There are some reasons to believe that it might as well be a implementation error in the kernel ACPI. * ACPI Fix 1 However, with the help of some ACPI hackers i got a working hack (to cite the author: "It sucks like hell, though, but it should work" which enabled the battery readout. Add the following patch: http://www.kju.de/data/toshiba-tecra-s1/linux-2.4.23-rc4-ecdt-fake.patch It is against the 2.4.23-rc4, and may or may not work against other kernel revisions. It should at least patch against any 2.4.23-rc*. After adding the patch, recompile and add the following to your lilo.conf (or add the string to an already existing append line): append="ecdt_fake=0x66:0x62:0x10:-1:\\_SB.PCI0.LPCB.EC0" As far as i understood the fix, this will fake an ECDT (embedded controller description table) entry. It seems that this entry is optional, so it might not be a bug from toshiba but in the kernel acpi code. But i must admit that i did not really understand acpi. * ACPI Fix 2 I also got a fix for the broken DSDT. It seems that it is not really needed, but one might add it as well. You can find a fixed dsdt (with source and binary of original and fixed) here: http://www.kju.de/data/toshiba-tecra-s1/toshiba-tecras1-dsdt.tar.bz2 You can add this dsdt statically or in an initrd to your kernel. See the following helpful sites for instructions: http://www.cpqlinux.com/acpi-howto.html http://acpi.sourceforge.net/wiki/index.php/HowToOverrideTable As already said, this fix seems to be optional. I'm currently running for a test without the dsdt fix and it looks ok. Try it if you like. * Wired LAN (PRO/100) Works without flaws with the e100-Driver (original intel) in the linux kernel. I've installed the ifplugd-Package which will configure the network automatically upon insert or release of a lan cable. Make sure to add both network interfaces to /etc/default/ifplugd as in this example: INTERFACES="eth0 eth1" HOTPLUG_INTERFACES="all" Remove any 'auto eth0' or 'auto eth1' from your /etc/network/interfaces, as this part will now be done by ifplugd. Just keep: iface eth0 inet dhcp iface eth1 inet dhcp * Wireless LAN (Intel Pro Wireless [Centrino]) No open source driver is available. Intel is stating to have one in development but i didn't want to wait. Linuxant (www.linuxant.com) is providing a solution for this problem. They wrote a wrapper arround the Windows NDIS driver for the card. Sounds strange but works good and i think the price (US$ 19.95) is still acceptable. Your mileage may very but i have no problems with companies choosing a "classic" business model of pay-for-software for linux. However if you don't want to purchase a driver, check with the ndiswrapper-Project on http://ndiswrapper.sourceforge.net/. They are building a open source ndis wrapper. Currently the Intel Centrino Card is not supported, but this will probably change. This driver is for 2.6.x kernels only though. As said i ended with the linuxant driver and it works surprisingly well. I integrated the wireless adapter with the waproamd package which automatically detects available WLANs and can configure cryptography keys for known access points. Make sure that your /etc/waproamd/waproamd.conf contains the "-M" argument as in: ARGS="-wM" I'm still having some problems with this approach but it mainly works. * Touchpad This notebooks features a combined Touchpad and Trackingpoint, the usual ALPS hardware. X-Windows is said to contain a specialized driver for this hardware making use of its specific custom protocol. However i work a lot on the console and therefore used GPM which can only can use the standard PS/2 protocol. I had some problems with the pad/point stopping to work after stopping and restarting kernel. The problems gone away when adding a fix which changed the behaviour upon multiple open/close operations on the psaux device. I'm uncertain why this is related to my problems, but a fix is a fix. You can find the patch here: http://www.kju.de/data/toshiba-tecra-s1/psaux-combined-2.4.20.patch I still have some problems with the touchpad from time to time. Sometimes it simply doesn't work after booting. In this case you might need to stop and restart GPM a few times. Sad, but no fix currently known. * Sound I'm using the kernel contained i810 driver and everything works. * Graphics, Framebuffer and X-Windows For the console i'm using the radeon framebuffer driver from kernel and for X-Windows the ati/radeon driver. No problems here, although framebuffer is broken when booting linux after having running windows (without turning off the notebook first). As i get some other strange problems when i boot into linux after having used windows, i now always shutdown the notebook completely after using windows before booting linux. * Intel Enhanced Speedstep To save on battery i used the patch for adding Intel Enhanced Speedstep, which can be found here: http://www.kju.de/data/toshiba-tecra-s1/cpufreq-2.4.23-rc4.patch I installed the cpufreqd package which allows you to configure it in number of simple or complex ways. I have configured it to use the low speed always, even when on AC power. This is a personal preference as this will mostly keep the notebook silence as the fan will virtually never be turned on. I configured cpufreqd however to automatically switch to high speed when it detects running oggenc processes to speed up OGG encoding. You can add a lot of rules for similar approaches. With mostly running on low speed i get some very very good 4 to 5 hours of battery live out of the notebook, even a little more when using throttling (e.g. echo -n "5" > /proc/acpi/processor/CPU0/throttling). Test reports told that this notebook should be able to achieve 7 hours which i have not reached for now. Should be possible by reducing lcd background illumination and turning off wireless and wired lan adapters. * Modem Haven't tried it, as i don't need such outdated technology. However the following driver is said to be working with some tweaks: http://linmodems.technion.ac.il/packages/smartlink/slmdm-2.7.10.tar.gz See http://www.vgcomputing.com.au/lrtecras1.html for the magic needed. * Keyboard Default keyboard layout sucks as it is against all standards (e.g. with the AltGr not beeing directly next to the right side of the space key). I remapped some keys physically and in hardware (by changing the keypads). I now have: "<>|" directly left to the space key, "AltGr" directly right to the space key and "^°" on the far right after the Del-Key. This is a much more standard keyboard layout. I changed the keymap file for the console to reflect this changed but haven't yet changed the keymap under x-windows and microsoft windows. Should be possible though. * Other Hardware PCMCIA&USB work out of the box. I haven't yet tried video output. The fn-Keys do not work as they don't emmit scancodes. I specialised driver might be needed but is not available. * Conclusion In general the Toshiba Tecra S1 is a well designed and good working notebook with an outstanding runtime on battery. With some tweaking linux runs fine.