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:

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:

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.