Linux on a Toshiba Satellite 1805-S253
NOTE: I no longer own this laptop. The information was correct at the time I last updated this article, which was early 2004. I no longer maintain this information but will, if necessary, correct mistakes and schlep the page around for the time being.
I had no trouble installing recent Linux distributions on this laptop. My preferred distribution is Slackware (9.1, at this time), but it is heavily modified. The stock distribution installed just fine, but XFree86 had problems because it couldn't determine the TFT's horizontal and vertical sync. I'll cover the issues I had, most of which were easily solved.
Display Issues
In both text mode and in XFree86, the entire screen wasn't used, only a large block in the center. This is a potential source of trouble, but is easily solved. Do not use the BIOS option for stretching the screen, though, because doing so just warps the text and makes it unreasonably large.
Console Mode
In console mode, you can use the VESA framebuffer console. You can
run in 1024x768@16bpp (16 bits per pixel) or 1024x768@32bpp, either of
which gets you easily readable text and utilizes the full screen. To
load one of these modes, use the vga=0xnnn LILO
keyword, where nnn is the appropriate mode
number. Here is a stanza for /etc/lilo.conf at
1024x768@16bpp:
image = /boot/vmlinuz
root = /dev/hda2
label = linux
vga = 0x317
read-only
Here is a stanza for /etc/lilo.conf at 1024x768@32bpp:
image = /boot/vmlinuz
root = /dev/hda2
label = linux
vga = 0x318
read-only
I use vga = 0x318. Either option gives you a 128x48
size console, which I find a more efficient use of the screen space
than the standard EGA/VGA console.
If you find text scrolls too slowly for your preferences (I did), add one of the following lines to either LILO stanza shown above to tell the framebuffer driver to use a different method for scrolling (panning) the display:
append="video=vesa:ypan,mtrr,pmipal"
append="video=vesa:ywrap,mtrr,pmipal"
The video=vesa: token enables vesafb's protected mode
interface for setting VESA BIOS parameters. The other options are:
ypanpans the display, which makes full screen console panning fast because the visible screen is simply a window into video memory. I use this instead ofywrap.ywrapworks likeypan, except that instead of panning, the display wraps around to the beginning of video memory.mtrrsets up the memory type range registers for the vesafb framebuffer.pmipaluses the protected mode interface for changing the color palette, which is faster than using the standard VGA registers.
For more information, see Documentation/fb/vesafb.txt in the kernel source tree.
Again, this section only applies to the console, or text mode. You can use the VESA framebuffer with XFree86, but the current (4.3.0) XFree86 releases have a good driver for the CyberBlade video card in this laptop, so I recommend you use it rather than the VESA framebuffer.
XFree86
Getting the XFree86 X server working properly took a bit more work, but not much more. In theory, you can use the VESA framebuffer X server, but, as far as I know, it isn't accelerated. So, I opted to use the accelerated server available in the current release of XFree86. For those of you who want to cut to the chase, have a look at the XF86Config-4 file I use.
The system has a Trident CyberBlade Ai1d chipset, so XFree86 uses the trident driver. The driver detects the card as a cyberbladeAi1d. The VESA VBE detection code report the following (from /var/log/XFree86.0.log):
(II) TRIDENT(0): VESA VBE Total Mem: 8192 kB (II) TRIDENT(0): VESA VBE OEM: Trident CYBER 8620 (II) TRIDENT(0): VESA VBE OEM Software Rev: 2.0 (II) TRIDENT(0): VESA VBE OEM Vendor: TRIDENT MICROSYSTEMS INC. (II) TRIDENT(0): VESA VBE OEM Product: CYBER 8620 (II) TRIDENT(0): VESA VBE OEM Product Rev: BTT 7.0 (05.10)
The key pieces of information you'll need are, of course, the horizontal sync and the the vertical refresh rates. I've seen slightly different other values, but these are the ones that work for me, in the format used in the XF86Config file:
HorizSync 31.5-57.0 VertRefresh 50.0-90.0
The TFT panel is detected as shown here:
(II) TRIDENT(0): Manufacturer: TOS Model: 5082 Serial#: 0 (II) TRIDENT(0): Year: 1990 Week: 0 (II) TRIDENT(0): EDID Version: 1.3 (II) TRIDENT(0): Digital Display Input (II) TRIDENT(0): Max H-Image Size [cm]: horiz.: 29 vert.: 22 (II) TRIDENT(0): Gamma: 1.00 (II) TRIDENT(0): DPMS capabilities: StandBy Suspend; RGB/Color Display (II) TRIDENT(0): First detailed timing is preferred mode (II) TRIDENT(0): redX: 0.000 redY: 0.000 greenX: 0.000 greenY: 0.000 (II) TRIDENT(0): blueX: 0.000 blueY: 0.000 whiteX: 0.000 whiteY: 0.000 (II) TRIDENT(0): Supported VESA Video Modes: (II) TRIDENT(0): 640x480@60Hz (II) TRIDENT(0): 800x600@60Hz (II) TRIDENT(0): 1024x768@60Hz (II) TRIDENT(0): 1280x1024@75Hz (II) TRIDENT(0): Manufacturer's mask: 0 (II) TRIDENT(0): Supported Future Video Modes: (II) TRIDENT(0): #0: hsize: 1280 vsize 1024 refresh: 60 vid: 32897 (II) TRIDENT(0): #1: hsize: 1600 vsize 1200 refresh: 60 vid: 16553 (II) TRIDENT(0): Monitor name: TOSHIBA Inte (II) TRIDENT(0): Monitor name: rnal 1024x76 (II) TRIDENT(0): Monitor name: 8 Panel [...] (II) TRIDENT(0): TFT: Using hsync range of 31.50-57.00 kHz (II) TRIDENT(0): TFT: Using vrefresh range of 50.00-90.00 Hz
I also noticed that the the standard server would only use 4 of the
8 MB of the available video RAM, so I added the VideoRam
keyword:
VideoRAM 8192
I had odd problems with the cursor not displaying correctly, so I
disabled the software cursor (in the Device section:
Option "SWcursor" "No"
So, here's the Monitor section I use:
Section "Monitor"
DisplaySize 290 220
Identifier "TFT"
VendorName "TOSHIBA"
ModelName "Internal 1024x768 Panel"
Option "DPMS"
HorizSync 31.5-57.0
VertRefresh 50.0-90.0
EndSection
This should be enough to get you started. I've had no trouble using DRM and DRI once the agpgart modules are loaded.
Sound
Short version, it works using the ALSA ali5451 driver, but I haven't figured out how ALSA works, so I daren't try to tell you.
PCMCIA/CardBus
As far as I know, CardBus support works. I have not tried any CardBus cards, however.
USB
USB works fine. The stock Slackware USB-enabled kernel contained built-in support for the USB mouse I used at installation (a Microsoft USB Intellimouse) runs just fine using GPM and in X. If you want to use modules, I'm guessing you need to load the following modules:
- usb.o
- usb-ohci.o
- keybdev.o
- hid.o
- usbmouse.o
- input.o
- usbcore.o
I could be way off here, though, and, in any event, this reflects kernel version 2.4.22 as shipped in the stock Slackware kernel.
Ethernet
This laptop sports an Intel i8255x-based 10/100 network interface,
so you can use the standard EtherExpress Pro 10/100 module
(modprobe eepro100) that was written by Donald Becker and
modified by many others, or, if you are running a newer kernel, the
Intel Pro/100 driver (modprobe e100) that was written by
the good folks at Intel. Select
EtherExpressPro/100 support (eepro100, original Becker driver)
or the EtherExpressPro/100 support (e100, alternate Intel
driver) in the kernel configuration menu. I have used both the
newer Intel driver and the original Becker driver (on this system and
on others) and have had no problems of which I'm aware.
Reboot/Shutdown Problems
Out of the box, that is, on a freshly-installed Slackware 9.1
distribution (and on all the Red Hat versions I tried), I was unable
to get the laptop to shutdown or perform a soft reboot. The
shutdown command would shut down the OS just fine, but I
had to use the power switch to turn the machine off. It was as if the
process would hang when it go to sending the appropriate halt signals
to the hardware. I haven't worked this out, yet.
Other
I haven't tried to use the DVD drive, but the CD-ROM part of it works just fine. The built-in modem is one of those software-only winmodem abominations. It might be supported by one of the winmodem drivers that are available, but I really have no idea and haven't pursued it because I don't need modem support on this system.
Linkage
For more information about running Linux on laptops, see UniX With Mobile Computers, colloquially known as TuxMobil and formerly known as MobiliX. Of course, don't forget about the grandfather of all Linux on laptop sites, Linux on Laptops.
Contact Information
I can be reached via email at kwall@kurtwerks.com. Please contact me with corrections or additional information.
