Linux on a Toshiba Satellite 310 CDS

Ángel Ortega

Note: this information is related to 2.2.x Linux kernel version series, so it can be outdated or inaccurate. Anyway, it can still be useful.

Installing Linux in a laptop computer isn't easy, mostly because of the vendor's usual obscurity and the usage of strange or poorly documented hardware. This page tells the thing I had to do to set up innsmouth.

The X Server to use is the XF86_SVGA and it should run straightforward as configured with the usual tools. The bundled video card is a Chips and Technologies VGA, as SuperProbe informs:

First video: Super-VGA
    Chipset: Chips & Tech F65555 (Port Probed)
    Memory:  2048 Kbytes
    RAMDAC:  Generic 8-bit pseudo-color DAC
        (with 6-bit wide lookup tables (or in 6-bit mode))

After visiting several pages with wrong information about the setting up of laptops like this, I found this configuration working for me. I have it directly compiled into kernel, but it should work as modules too.

<*> Sound card support
<*> OSS sound modules
<*> Support for Yamaha OPL3-SA2, SA3, and SAx bases PnP cards
(-1) Chipset (-1 for autoprobe, 2, or 3)
(530) OPL3SA2 audio I/O base (530 - F48 valid)
(9) OPL3SA2 audio IRQ 5, 7, 9, 11, 12, or 15
(1) OPL3SA2 audio DMA 0, 1, or 3
(0) OPL3SA2 second (duplex) DMA 0, 1 or 3
(370) OPL3SA2 control I/O base (100 - FFE valid)
(330) OPL3SA2 MIDI I/O base (300 - 334 valid)
(9) OPL3SA2 MIDI IRQ 5, 7, 9, 11, 12, 15

All this info (can differ) is available in the BIOS setup. You can get to it pushing Esc while it shows the stupid Toshiba splash screen (be fast).

For musicians, users of equipment like this: as you can see, there are two parameters that talks about a MIDI interface, concretely a base address and IRQ. This seems to say that the Yamaha OPL3SA2 chip includes complete support for controlling external syntesizers, but I didn't find a word about this in Toshiba (of course not) nor Internet. If anyone knows is it's possible to attach (modifying the external case, I suppose) a MIDI connector to this internal interface, please drop me a note.

To HotSync a Palm Pilot, you must correctly configure the messy IrDA stack protocols. PalmOS version must be at least 3.3, that lets you sync using the infrared port. The kernel options to set are as following:

IrDA (infrared) support --->
<M> IrDA subsystem support
--- IrDA protocols
<M> IrLAN protocol
<M> IrCOMM protocol
[*] Ultra (connectionless) protocol
[*] IrDA protocol options
--- IrDA option
[*] Cache last LSAP
Infrared-port device drives --->
--- SIR device drivers
<M> IrTTY (uses Linux serial driver)
<M> IrPORT (IrDA serial driver)
--- FIR device drivers
<M> Toshiba Type-O IR Port

As can be seen, everything is compiled as modules (I couldn't get them to work directly compiled into kernel). Also, for some reason, the modules aren't automaticly loaded; I have to force them to load with modprobe ircomm-tty, as told below.

Next, we must ensure that the necessary devices /dev/ircomm are created (these let us use the infrared port as a standard serial port, by the IrCOMM protocol). If not, you must create them using

mknod /dev/ircomm0 c 160 0
mknod /dev/ircomm1 c 160 1

Now, to force autoload of Toshiba's IrDA specific driver, we must add these lines to conf.modules:

alias char-major-161	ircomm-tty
alias irda0		toshoboe
alias tty-ldisc-11	irtty

The nightmare goes on. Now we must download the IrDA/Utils package from link://irda.sourceforge.net . The tool we need is called irattach, and is used this way:

modprobe ircomm-tty
irattach irda0

This has forced the toshoboe module to load. Running lsmod we can see:

Module			Size  Used by
toshoboe		5440   1 
ircomm-tty	       16832   0  (unused)
ircomm			5700   0  [ircomm-tty]
irda		       72225   1  [toshoboe ircomm-tty ircomm]

plus other modules not related. Now we can use /dev/ircomm0 as a serial port, we must only tell pilot-xfer or coldsync to use it as the communication port. Last but not least, I have to start the HotSync in the Palm first for this to work.

The chipset bundled with these laptops is automatically detected by the PCMCIA installer and I hadn't any trouble.

The X mouse cursor always was too small; in LCD laptops like this, it's not only small but impossible to find due to the blurry redraw of the screen. To substitute the original cursor with a bigger one, you can get Marc Quinton's BigCursor2.pcf. To install (as root):

cd /usr/X11R6/lib/X11/fonts/misc
mv cursor.pcf.gz cursor_old.pcf.gz
# copy BigCursor2.pcf here
gzip BigCursor2.pcf
ln -s BigCursor2.pcf.gz cursor.pcf.gz