Linux on the Toshiba Satellite 1805-204
IntroductionThe Toshiba Satellite 1805-S204 is equiped with the following :
It comes preinstalled with WindowsXP and you get 3 CDROMs with a recovery install (duh : not even a default WindowsXP CDROM). Windows XP survived 7 minutes on my laptop, enough to log in, and to see that Windows starts more and more looking like an ugly KDE theme.
- a Celeron 1GHz
- with a 20GB disk
- and equiped with 256 MB RAM
- and a DVD drive
- 2 PCMCIA slots
- 13.3 inch LCD screen
- an internal modem and ethernet plugin
I finally got everything working; configuring X was the hardest part, not because X is so hard to setup, but because the videocard is not fully supported. But more about that later.
What are the drawbacks ?
I installed Debian 3.0 on it, and immediately upgraded to unstable. I will skip the basic parts of a Linux installation, and spend the most time on how to configure the hardware on this laptop.
- Rebooting the laptop sometimes hangs the machine right after the Toshiba boot screen.
- I experienced some problems with the PCMCIA card, where my network connection was gone. Can't reproduce it, though.
- The modem is a WinModem
- Some KDE programs, like konsole, segfault.
If you have any questions, you can contact me here.
Frame Buffer deviceNobody wants a 80x24 console nowadays; thanks to frame buffers, you can get a super high resolution console to work in. Besides, you get a boot penguin at startup ;) But boy, did I had trouble getting this thing allright ! After hundreds of reboots I got it finally working.
Let me first explain what the problem was : I could only get the console start in 640x480; working in 800x600 was possible, but the screen sometimes would overlap, or a part of the screen wasn't visible. Working in 1024x768 was impossible, though even the boot messages of the kernel announced the LCD display as a 1024x768 screen. Examining the boot messages revealed the source of my error :tridentfb: framebuffer size = 16384 tridentfb: Trident Microsystems CyberBlade XPAi1 board found tridentfb: 1024x768 flat panel found vesafb: abort, cannot reserve video memory at 0xfc000000Apparently, memory detection problems were the root of all evil. I finally feeded the memory size to the kernel as an optional parameter in lilo.conf :image=/vmlinuz label=Linux read-only append="video=vesa:memsize=16384,mtrr" vga=788I choose for a comfortable 800x600 screen, as I do like a minimum of unused border space.
X-WindowsConfiguring XFree4 has become a breeze in comparison with XFree3. However, if you have a recently supported card, it can be hard to get the most potential out of it. Same here : boo for Trident for not giving more specs to the XFree86 team. The videocard is a Trident CyberBladeXP and is only supported starting from XFree4.2.0. If you have an older distribution, you better upgrade X or you are stuck with the framebuffer driver.
The CyberBladeXP uses the SVGA XFree driver. However, you won't get 3D acceleration, and there are still some bugs in the XV drivers. As a result, you won't be able to play 3D games on this machine, and DVD playing won't work out of the box (though I managed to get the DVD drive working - more about that later).
I do use the accelerated drivers from Alan Hourihane. The pointing device is an Touchpad, and basically is a PS2 mouse.
Here is my /etc/X11/XF86Config. The most important part is repeated here :
Section "Device" Identifier "Trident CyberBlade (generic)" Driver "trident" Option "accel" Option "Display1400" Option "DPMS" Option "CyberShadow" "false" VideoRam 16384 Option "BackingStore" "on" Option "SaveUnders" "on" EndSectionWithout the Option parameters, you won't get the performance boost you need for DVD playing.
PCMCIAThe PCMCIA card I got, is a Xircom 28.8K modem + 10Mbit ethernet card. It is fully supported by Linux. It's really plug & play : inserting the card, automagically loads the drivers. Check your "dmesg" (or /var/log/messages) to verify it yourself :cs: memory probe 0x0d0000-0x0dffff: clean. xirc2ps_cs.c 1.31 1998/12/09 19:32:55 (dd9jn+kvh) eth0: Xircom: port 0x2e0, irq 11, hwaddr 00:80:C7:4C:A0:86 tty02 at 0x0af8 (irq = 11) is a 16450 eth0 media 10Base2, silicon revision 1
ModemIt's a WinModem, and therefore unusable. Besides, in this networked world, who needs modems anyway ?
ethernet -- PCMCIAJust add "ifconfig eth0 10.210.0.2", with the IP adress you like to enable networking. If you got a masquerading box somewhere on your network (let's sy 10.210.0.1), just issue "route add default gateway 10.210.0.1". Debian automatically starts the network when the card is inserted.
PLIPPLIP means Parallell Line IP, and is Linux implementation of a Laplink device. It's a 10$ cable you can use to connect 2 PC's through their parallell port. It works great, though not so fast as ethernet. Count on a 35K/sec speed, which is still reasonable (I even installed PC's that way). To activate this, you'll probably have to recompile your kernel :
In General Setup, define Parallell Port Support and PC style hardware as modules. It will create 2 modules called parport and parport_pc. IN Networking Device Support, define PLIP support as a module. It will create a module called plip. As I don't work continiously with PLIP enabled, I created 2 small scripts, which enable or disable PLIP :/sbin/plip-on : #!/bin/sh insmod parport insmod parport_pc echo "7" > /proc/parport/0/irq insmod plip ifconfig plip0 10.0.0.2 pointopoint 10.0.0.1 arp up /sbin/plip-off : #!/bin/sh ifconfig plip0 down rmmod plip rmmod parport_pc rmmod parportAfter you've load the parport* modules, you'll have to assign interrupt 7 (if you're using a i386) to your parallell port. Hence the line with "echo ...". It's quite straigthforward; read the PLIP-mini HOWTO for more info.If you're still using the 2.0 kernel (who does ?), beware that the plip interface will be called plip1. You will also have to add a route to the other computer (even though it's a pointopoint connection).
SoundThe card works out of the box; just use the "trident" driver :
The soundcard is an Trident 4DWave.
APMAPM is supported in the BIOS, so include APM support in your kernel. I tried to enable ACPI, but found out that the BIOS is on the ACPI's blacklist, so I stuck with APM.
DVDIt took a while to get the DVD working; luckily I found this page, where I got a bit more detail. Just use the Option parameters specified in the XFree section of this document, and dvd playing will be acceptable. There are different dvd players for Linux :
- Ogle is a nice GTK dvd player, but I got an overlapped screen while playing a dvd. Following the Ogle FAQ, this is due to a broken XV implementation of the video card.
- MPlayer works out of the box, but I could not get the subtitles working. MPlayer does not have DVD navigation support, which makes it rather useless as a dvd player in my opinion.
- Xine is a very nice dvd player, but at first, I did not have any sound, an sometimes the screen got garbled, or it crashed the X server. I found out that Xine placed default a "null" value in its sound driver section, so I replaced it with "oss" as driver. The garbled screen was due to using the Xv drivers. Use "XShm" and you're off. I now start Xine with "xine -A oss -V XShm" which works perfectly.