Diese Seite wurde komplett neu geschrieben, da der Inhalt auf der alten
Seite großteils veraltet war. Aufgrund vieler Anregungen und
Hinweise in englischer Sprache habe ich mich entschlossen, die Seite
nun auf englisch zu verfassen. Mein Zielpublikum sind auch eher
fortgeschrittene Anwender, die damit hoffentlich kein Problem haben. ;-)
Die alte Seite ist noch abrufbar, wird aber nicht mehr aktualisiert:
Alte TM800-Seite.
I bought the Travelmate 800 LCi as a replacement for the old IPC TopNote (report is german only). I think it's a good choice. Nowadays, there are better ones available but it has been bought in may 2003.
This page is obsolete with current linux distros.
Everything (maybe except for the modem, I didn't try) works just
fine out of the box nowadays.
This page is kept up and running for historic reasons. If you want to tell
your grand-children how much fun it was to get your laptop to work properly,
you are free to use it. :-)
This review contains some generic how-tos, mostly gentoo-related but I hope it can also be helpful for others. If you read something about "emerge", "portage" or "USE-flags" and don't know what the hell this should be, you have to figure out what your distro provides for installing and configuring packages.
last update of this page: 2008-04-30
Available sections on this page:
This laptop contains the following hardware components:
| CPU: | Intel Pentium-M 1300 MHz | |
| RAM: | 512 MB DDR-RAM | |
| Video card: | ATI Radeon 9000 Mobility (64 MB RAM) | works with recent kernels and XFree 4.3 |
| Hard disk: | 40 GB IDE | |
| Optical drive: | DVD/CD-RW-Combo (6x / 24x/10x/24x) in MediaBay (may be replaced by a second battery) | |
| Soundcard: | Intel AC'97 | (OSS or ALSA) |
| PCMCIA: | Generic (CardBus, yenta socket) | |
| NIC: | Broadcom Corporation BCM4401 100Base-T | works with recent kernel |
| Built-in WiFi: | Intel Corp. PRO/Wireless LAN 2100 3B mini-PCI adapter | |
| 56K-Modem: | Intel Corp. 82801DB AC'97 Modem Controller | |
| Infrared: | FastInfraRed (F-IR) |
aragorn root # lspci 00:00.0 Host bridge: Intel Corp. 82855PM Processor to I/O Controller (rev 03) 00:01.0 PCI bridge: Intel Corp. 82855PM Processor to AGP Controller (rev 03) 00:1d.0 USB Controller: Intel Corp. 82801DB USB (Hub #1) (rev 03) 00:1d.1 USB Controller: Intel Corp. 82801DB USB (Hub #2) (rev 03) 00:1d.2 USB Controller: Intel Corp. 82801DB USB (Hub #3) (rev 03) 00:1d.7 USB Controller: Intel Corp. 82801DB USB2 (rev 03) 00:1e.0 PCI bridge: Intel Corp. 82801BAM/CAM PCI Bridge (rev 83) 00:1f.0 ISA bridge: Intel Corp. 82801DBM LPC Interface Controller (rev 03) 00:1f.1 IDE interface: Intel Corp. 82801DBM Ultra ATA Storage Controller (rev 03) 00:1f.3 SMBus: Intel Corp. 82801DB/DBM SMBus Controller (rev 03) 00:1f.5 Multimedia audio controller: Intel Corp. 82801DB AC'97 Audio Controller (rev 03) 00:1f.6 Modem: Intel Corp. 82801DB AC'97 Modem Controller (rev 03) 01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R250 Lf [Radeon Mobility 9000 M9] (rev 01) 02:02.0 Ethernet controller: Broadcom Corporation BCM4401 100Base-T (rev 01) 02:04.0 Network controller: Intel Corp. PRO/Wireless LAN 2100 3B Mini PCI Adapter (rev 04) 02:06.0 CardBus bridge: O2 Micro, Inc.: Unknown device 7114 (rev 20) 02:06.1 CardBus bridge: O2 Micro, Inc.: Unknown device 7114 (rev 20) 02:06.2 System peripheral: O2 Micro, Inc.: Unknown device 7110 02:07.0 FireWire (IEEE 1394): Texas Instruments TSB43AB21 IEEE-1394a-2000 Controller (PHY/Link)
I got many emails asking for XFree or kernel configuration files, so I decided to put them here so that everyone can have a look at it.
Like everything else on this page, it's just one snapshot of my current configuration. If you want to customize your computer, you wil lhave to change something. If your computer explodes because of my config files, you'd better adjusted something. :-) In clear words: No warranty about anything here!
If you would like to have another config file listed here, just tell me about it.
| Kernel configuration |
This is about kernel 2.6.8.1 (vanilla, LVM enabled). config_linux-2.6.8.1.bz2 |
| X.org config file |
Yeah, it's done, I switched to X.org and it runs fine. Take care to really install the synaptics-driver, it's not included in X.org's distribution. xorg.conf.bz2 |
| XFree config file (unmaintained) |
I used XFree 4.3, but it should fit on other versions too. Perhaps you have to take care you really have a synaptics-touchpad driver. It's default in Gentoo. XF86Config.bz2 |
This will help you deciding which drivers and kernel options are needed to get this laptop to work properly.
| CPU: |
As of GCC 3.4, there finally is a suitable option, you can use -march=pentium-m. Thanks to the GCC-guys! If you use an older compiler, just use -march=pentium3 as stated earlier on this site. |
| ACPI: | Praise Marcello, he put the new and rewritten ACPI support in kernel 2.4.23, so you won't have to do any patching for ACPI support regardless if you use 2.4 or 2.6. |
| Speedstep / cpufreq: |
The Pentium-M processor supports SpeedStep technology, known from
P3-mobile and P4-mobile. But different from them, P-M supports 5
performance states. If you use cpufreq, you also have to run a daemon that really does the work of calculating system load and switches performance states. I only found daemons that switch between high and low and that do not support more than two speeds. So I had to write my own one. :-) As I relayed on the ACPI performance interface, this program became useless in kernel 2.6. Hanno did a rewrite of my sources so that it relays on cpufreq on kernel 2.6. The source code is available here: speedstep.py version 0.3, license: GPL This program uses the /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies interface to determine which processor speeds are supported. This file is not created by the centrino's speedstep driver as found in the kernel 2.6.4. So you have to apply a small patch: speedstep_updates.diff.bz2. Update: The kernel 2.6.7 has this patch included, you don't have to do anything if you use this one. |
| AGP: | You can use Intel Chipset drivers and AGP in kernel configuration. |
| Radeon framebuffer: | The kernel's radeon framebuffer has been fixed. Now (since kernel 2.6.4), I have a working radeon-fb. You just have to turn it on. I recommand setting automatic DDE-detection, it works fine. You don't have to set any kernel parameters for it. |
| Network adapter: | Since kernel 2.6.0 and 2.4.23, you don't have to care about the NIC, only select the "Broadcom 4400" driver in kernel config. |
| WiFi: |
You definitely read something about Intel's WiFi chip and their mysterious
driver support. The first solution available was the (proprietary) thing
called "driverloader" from Linuxant. DO NOT USE THAT ONE! The second was the free pendant called "NDISwrapper" which is (like the driverloader) a framework for loading Windows-drivers under the linux kernel. Believe me, your system's stability does not benefit from this behaviour. NEW: Now, there is a real driver available, supported by Intel. It's a free (GPLed) project started by a Intel developper. It's kind of beta but supports Ad-Hoc-mode, WEP encryption and Monitor mode. Get it here: http://ipw-2100.sf.net/ |
| 56K modem: |
I don't really have a use for it, but I tried to get the modem to work. I used the "slmodem" driver and got it to recognize the modem. But when I tried to dial my ISP's number, I did not get a connection. The modem dials the number (it does, I tried dialing my mobile's number) but when it comes to handshake, pppd complains the hardware is not able to use ppp connections. I never got an error like this before, so I don't even know what it's about or how to fix it. So if anyone has a trick for me, I'd be glad. But okay, I don't need this modem. There is a new driver about "Intel Modems" in menuconfig since kernel 2.6.5 prerelease. Is that about this device? I don't know... |
| Sound card: |
As I use kernel 2.6, I use ALSA sound. Before that, on kernel 2.4, OSS also worked. No problem at all, but I recommnd ALSA. Just use the generic intel8x0 driver. |
| PCMCIA: |
This one is a generic CardBus, so you can use the default driver. You will get two sockets listed in cardmgr, but the machine has only one. The other is reserved for the integrated SmartCard reader which uses a PCMCIA socket internally. I did not get that to work in any way. |
| USB / USB 2.0: |
In order to use the USB-port, you must use the UHCI host controller.
If you want to use USB 2.0 (you want!), also enable (aditionally) the
EHCI controller driver. If you do that and select you proper USB drivers, it works great. |
| CD burner: | In kernel 2.6, everything is fine because you can use the internal CD burner as generic ATAPI burner. Don't use ide-scsi any more (it also worked but it's ugly)! |
| Infrared: |
I'm proud to say that now IrDA works. With kernel series 2.4 and kernel
series 2.6. The only thing I forgot was to enable ISA Support
in kernel configuration. But the driver nsc-ircc depends on that so it is not selectable when ISA support is turned off. Once you have a module named nsc-ircc and two other ones called ircomm and ircomm-tty, you can go on. First, you must turn off UART mode for the serial device node: setserial /dev/ttyS1 uart none To load the module, it's necessary to give it some parameters. Load it via modprobe nsc-ircc io=0x2f8 irq=3 dma=1. After that, you can run irattach irda0 -s (you net the package irda-utils for this). Now you can use the phone via /dev/ircomm0 with e.g. scmxx (command line, GUI named gscmxx is available) or kandy (part of KDE) I do not own such a device but some people told me that in order to use some infrared devices, you have to switch to SIR mode (throttle connection speed). To do so, you can manually do an echo 115200 > /proc/sys/net/irda/max_baud_rate or if you have to do this more often, you can change your /etc/modprobe.conf (on most systems) to contain the following lines: alias tty-ldisc-11 irtty
alias char-major-161 ircomm-tty
# see also http://www.cl.cam.ac.uk/Research/SRG/netos/coms/unix.html
#
options nsc-ircc irq=3 dma=3 io=0x2f8 dongle_id=0x09
alias irda0 nsc-ircc
pre-install nsc-ircc setserial /dev/ttyS1 port 0 irq 0
# limit max baud rate to 115200 to avoid MIR/FIR bug.
# !! This has to be done BEFORE doing 'irattach irda0 -s' !!
#
post-install nsc-ircc echo 115200 > /proc/sys/net/irda/max_baud_rate
Thanks to many of my visitors for pointing me to http://www.kcore.org/?menumain=4&menusub=1
|
In order to get a X-server to work smoothly, you can do some tuning.
| Radeon DRI: |
To enable DRI (hardware accelleration), you must compile radeon DRI driver
into your kernel (or as a module). For XFree or X.org, you can use the built-in radeon-driver, it works with this card. In order to get software-suspend to work, you have to patch it. FIXME: I don't know how this works! ;) TV-out: After many tries, I got TV-output to work. On the page http://www.guilds.net/machines/600m/, there is a tutorial for any DELL laptop with the same video hardware. The only remaining problem is that the picture on the TV "hops" up and down one line very fast. I got no solution for this. |
| Synaptics touchpad: |
This touchpad has a scroll-key (horizontal and vertical) and some other
funny things available (scrolling at the ide of the touchpad,
multi-finger-tap, ...). In order to use these features, you must use the
synaptics driver in X. In XFree 4.3 ( you don't want any older), this is fully integrated. While switching to the X-server of the X.org-project, I noticed that it's not included there, so if you use X.org (nowadays, you surely want to do this), just install the synaptics-driver (Gentoo-package: x11-misc/synaptics). Just use the following setup: Section "InputDevice"
Identifier "Touchpad"
Driver "synaptics"
Option "Device" "/dev/misc/psaux"
Option "ZAxisMapping" "4 5"
Option "XAxisMapping" "6 7"
Option "Edges" "1900 5400 1800 3900"
Option "Finger" "25 30"
Option "MaxTapTime" "150"
Option "MaxTapMove" "220"
Option "VertScrollDelta" "100"
Option "MinSpeed" "0.05"
Option "MaxSpeed" "0.15"
Option "AccelFactor" "0.0005"
Option "SHMConfig" "on"
Option "UpDownScrolling" "on"
Option "Protocol" "auto-dev"
Option "CorePointer" ""
Option "Buttons" "7"
EndSection
Now you can middle-click when you tap the touchpad with two fingers.As a great goodie. I now use syndaemon. This utility monitors the keyboard activity and turns off the touchpad (or just the tapping) whenever you use the keyboard. Because this daemon uses the SHM-config interface and the X-Server to determine keyboard activity, it must be started by the user that runs X. So I put the folloing line in my ~/.xprofile: /usr/bin/syndaemon -d -i 1 -tThe options are: run as a daemon, idle-timeout 1 sec, just disable tapping but not movement. |
| Multimedia keys: |
This laptop has three multimedia keys, two for volume control and one
for muting. It's easy to get them to work if you use a desktop environment like Gnome or KDE. They bring their own daemons that can handle those key codes. If you only use a window manager like IceWM, you have to do it manually. You have to find out the key codes for the keys. In case ofthe TM800, they are Volume up (Fn + Cursor up): 176 Volume down (Fn + Cursor down): 174 Muting (Fn + F8): 160 To use them, you have to assign an action via xmodmap. First, export the old table via xmodmap -pke and redirect the output to a file (xmodmap -pke > new.map) Now, edit this file and set proper actions for the desired keycodes. The most important lines for the TM800 are: keycode 160 = XF86AudioMute keycode 174 = XF86AudioLowerVolume keycode 176 = XF86AudioRaiseVolume Via xmodmap new.map, you can activate you new keymap. Propably you will put this command in your ~/.xsession so that it's executed when you start X. Now, your keys send the right X-server-signal but they still don't do what we want. It's now the window manager's turn to execute any command when X-server events arrive. I only know about IceWM, ther you have to append the following lines to the file ~/.icewm/keys: key "XF86AudioLowerVolume" setmixer vol -3 key "XF86AudioRaiseVolume" setmixer vol +3 key "XF86AudioMute" /home/bernd/bin/audio_muteYou can execute any custom commands here, I used to use setmixer. For XF86AudioMute I did not find a program that toggles audio muting, so I have written a script to handle this: if [ "`setmixer -V|grep -e '^[ ]*vol'|awk '{print $3;}'`" == "0,0" ];
then if [ -f /tmp/mixer_prev_val ];
then
setmixer vol `cat /tmp/mixer_prev_val`;
else
setmixer vol 50;
fi
else
echo "`setmixer -V|grep -e '^[ ]*vol'|awk '{print $3;}'`" > /tmp/mixer_prev_val;
setmixer vol 0,0;
fi;
|
In daily use of this computer, there are some other things I really don't want to miss any more. Many of them had been some kind of hard to discover how to do it. So I want to write it down here to help others finding it.
| USB mouse and touchpad in parallel use: |
Because the daily use of the touchpad can be really annoying, I bought a
external USB-mouse (I really recommand optical mice!). The mouse itself i quite easy to set up, just enable Full HID support and HID input layer support in kernel configuration. After that, you should get /dev/input/mice which is a combined device that gives all mouse movements from all connected USB mice. To be able to plug it in and out whenever I like it, I had to change a few lines in XFree's configuration. First the normal setup for an USB mouse (with wheel): Section "InputDevice"
Identifier "USB-Mouse"
Driver "mouse"
Option "Protocol" "ImPS/2"
Option "Emulate3Buttons"
Option "ZAxisMapping" "4 5"
Option "Device" "/dev/input/mice"
Option "Buttons" "5"
EndSectionNow you have two mice configured, the Touchpad and the USB-Mouse. We can assume that the touchpad will never be removed, so we define it as CorePointer in section ServerLayout. To get the USB-Mouse to work in parallel, we add another line. It now looks as following: InputDevice "Touchpad" "CorePointer"
InputDevice "USB-Mouse" "SendCoreEvents"
Now you should be able to use them both however you want. Hint: The Touchpad of the TM800 can be switched off via Fn + F7. this is BIOS driven and does not neet any OS support. |
| NPTL: |
The kernel series 2.6 introduce a newer sort of process/thread management
calles NPTL or "Native Posix Threads Library".
I don't know the facts about this, so don't bug me about it but I use some
NPTL enabled systems and I would say that it really is faster. If you want to enable NPTL in your system, you cannot use a kernel earlier than 2.6 any more. But who wants this? :) In order to use the following, your portage version must be 2.0.50 or greater. If you have an older portage version, you should update this before. Okay, using Gentoo, it's quite simple to setup NPTL. Just set the USE-Flag called nptl in your /etc/make.conf, unmask linux-headers-2.6* in your /etc/portage/package.keywords (by adding -* as accepted keyword) and also enable the use of ~x86-glibc. This won't have any effect unless you re-bootstrap your system. Remember that you must use bootstrap-2.6.sh for NPTL. Because it will likely break your system, I don't recommand using bootstrap on a already working system. If it's possible, you should do a clean reinstallation. After bootstrapping, you can see if your system is NPTL enabled by executing /lib/libc.so.6 as an executable. On a generic NPTL enabled system, it should look like this: bernd@aragorn bernd $ /lib/libc.so.6
GNU C Library stable release version 2.3.3, by Roland McGrath et al.
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 3.3.2 20031218 (Gentoo Linux 3.3.2-r5, propolice-3.3-7).
Compiled on a Linux 2.6.4 system on 2004-03-22.
Available extensions:
GNU libio by Per Bothner
crypt add-on version 2.1 by Michael Glad and others
NPTL 0.60 by Ulrich Drepper
BIND-8.2.3-T5B
NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
Thread-local storage support included.
Report bugs using the `glibcbug' script to <bugs@gnu.org>.
If it throws a 2-line error message (don't remember the words), you must recompile glibc. On some systems, a bootstrap did it for me on some it didn't. But after a emerge glibc, it was okay on all of them. If you do a clean install, you propably won't find a boot-cd with kernel 2.6 and therefore, your bootstrapping will fail because the generated binaries won't run with kernel 2.4. I did the following steps:
|
| Prelink system libraries: |
You can get another performance boost by prelinking your system. That means
that a cache is generated that stores the exact offsets of functions in
libraries, so that they don't have to be looked up on each access. As far as I know, it's safe, even if your library changes because it's just an additional cache. Using gentoo, you simply have to emerge prelink, then you can run prelink -afvR to run prelink on all of your system's binaries. |
| libidn: |
You propably want libidn. This library is needed in order to use the new
internationalized domain names. If you speak german, think about umlauts in
Domainnames. You should emerge libidn in an early
state because some tools will only use it if it's present at compile time. Konqueror for example is able to use it if it's present, no need to recompile kdebase. |
| crypted filesystem: |
In order to really secure your data, you may want to work with an encrypted
filesystem. Gentoo and kernel series 2.6 already have everything you need for
that. Just make sure, you enable support for loop-devices and the sub-option for cryptoloop-devices. and at least one of the cipher algorithms. I always used aes-256, but this should work with any other one too. First of all, you must have something you want to encrypt. It's not possible to encrypt a partition which is already in use, you have to reformat it after encryption is set up. Though we are working with loop-devices, it's no matter if your new, cypted filesystem is stored on a real disk partition or if it's a regualr file (container). If you don't have a really unused partition around, I would recommand using a regular file somewhere a user cannot access it (only readable by root). To initialize such a container file, just decide how big it should be and create it via dd if=/dev/zero of=/path/to/container bs=1M count=1024 (this creates a 1GB file, change count-parameter for your size needs). If you're really paranoid, you could use /dev/random for initialization, but it will last a couple of hours to fill a GB. /dev/zero is enough, I think. ;-) From now on, I will use /container as the container file name. If you want to use a real partition, you can always use /dev/hda5 or whatever you want instead. Now you have to decide wether you want to type in a (long) passphrase every time or if you want to [...] |
...to be continued...
There are several other sites about linux on laptops and specifically linux on this laptop.
I will extend this page when I get new experiences or any hints. If you have one, mail me: bernd@bwurst.org. Or contact me via jabber: bernd@schokokeks.org.
Hier gibt es viele E-Mail-Adressen