[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Debian/GNU Linux on the Toshiba Tecra S1




Installing Debian/GNU Linux on a Toshiba Tecra S1 Notebook
----------------------------------------------------------

by Michael Holzt, <kju@debian.org>



* 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.



Reply to: