Linux on the Toshiba Satellite Pro 6100
My particular model is the PS610A-03SRW, bought in Australia.

Many thanks to the quality pages that enabled me to get as far as I have.  The best that I came across:
generic
redhat centric
useful config files

They each have their nuggets.  I personally have installed Debian, so this HOWTO gives specifics of how to do things on Debian.  It should still be useful for the other distros tho.

Werner Heuser has a website that includes many more HOWTOs for the Satellite Pro 6100 which is worth a look.

Well, I've liked most things about this laptop.  I've only a few beefs.  One is a pixel on the sceen that is always aqua.  Guess that's an isolated fault with my laptop and it's not really too bad.  Another is the modem, which I still haven't been able to get working in linux.  The last is the sound under esd, but I suspect this is an esd problem.

Hardware:
Pentium 4 P-M 1.8GHz
256 MB DDR SDRAM
15" XGA TFT (1024x768)
nVidia GeForce Go 420
40GB HDD
DVD/CDRW combo drive
Modem (Intel Corp. 82801CA/CAM AC'97 Modem (rev 02))
Integrated 802.11b wireless network card
10/100 LAN (Intel Corp. 82801CAM)
Windows XP Pro and Windows 2000 Pro included
Yamaha YMF753 Sound chip

Kernel

Under Debian, you can get your hands on the latest kernel source by installing the kernel-source-X.X.XX.deb package, where X.X.XX is the version you're interested in.  Then you can change directories to /usr/src and you'll find a .tar.bz2 with your kernel source.  Uncompress it with tar xvjf <filename> and link the created directory to linux (eg: ln -s kernel-source-2.4.19 linux).

cd /usr/src
tar xvjf kernel-source-X.X.XX.tar.bz2
ln -s kernel-source-X.X.XX linux

Then you can copy the configuration you're currently using (the one from the binary package) from /boot to use as a starting point.  The binary deb that I used as a starting point was kernel-image-2.4.19-686 which worked well.  If you want to use it, just go ahead and install it.  Then do:

cp /boot/config-X.X.XX /usr/src/linux

Now it gets interesting.  To tweak the configuration:

cd /usr/src/linux
make menuconfig

CPU

Processor type and features ---> (Pentium 4) Processor Family
Processor type and features ---> MTRR (Memory Type Range Register) support

Keyboard

The keyboard suffers from annoying "key-bounce" in X. This results in you getting the occasional spurious double letter every few keystrokes. Extremely annoying. To get around this, I use a little utility called Freeware AccessX. You just need to download and install Freeware AccessX, then use the following lines in your .bashrc:
<path to ActiveX binary>/ax +bouncekeys
<path to ActiveX binary>/ax -timeout
<path to ActiveX binary>/ax bouncedelay 1
You may need to open and close one terminal before it works for all future terminals you open. I'm not sure why.

Modem

This is supposedly supported by a binary driver.  I haven't managed to make it work, in fact when I insert the binary kenel module, it stops the soundcard from working.  I assume that this is something to do with the fact that this winmodem uses the soundcard or something.  So I guess I'll be plugging in my external modem.  Got myself a SwannSmart Turbo 56k external modem which works fine, but it's extra weight to lug. I might come back to this later.

If you want to connect to the internet, I'd recommend checking out wvdial.  It's a nifty proggie that lets you connect to the internet almost as easily as in windoze.  Oh, and check out "Stupid Mode = on".  It can be configured with dpkg-reconfigure wvdial, and detects your modem (provided you have an external modem or have already installed the drivers for your internal modem).  The other thing worth noting is the Debian configurator for pppd which is called pppconfig, strangely enough.

Wired Network

Network Device Support ---> Ethernet (10 or 100Mbit) ---> EtherExpressPro/100 support (CONFIG_EEPRO100)
Insert the module eepro100

Wireless Network

Network Device Support ---> Wireless LAN (non-hamradio) ---> Hermes Chipset 802.11b support (Orinoco/Prism2/Symbol)
Insert the modules ds, hermes, orinioco and orinoco_cs.

Make sure that the switch on the side of the computer is _on_ (the one for the wireless network card), otherwise, this won't work at all.  If you're a debian user, man /etc/network/interfaces should get you going.

XFree86

kernel drivers

Need to download and install the binary driver from nVidia.  Docs and stuff come with it.
Also need special options when you insert the driver.  If you don't set this up correctly, you might find that you can't run the screen in anything other than 640x480, and there's a black bar down the right hand side of the screen.  Which sucks. To fix this, you need to pass the nVidia driver some options when you insert it.  You can do this on the command line when testing thusly:

modprobe nvidia NVreg_SoftEDIDs=0 NVreg_Mobile=2

that should let you run the thing in your native resolution.

You can make it permanent by creating a file:

/etc/modutils/nvidia.chandev

with the following contents:

options nvidia NVreg_SoftEDIDs=0 NVreg_Mobile=2

then running the command "update-modules".

This will update the file called modules.conf, which contains the options passed to kernel modules on boot.

XF86Config-4

You are running XFree86 v4.2, right?  If you're not, go ahead and upgrade.  I've only done this on the unstable distro (sid) but I've heard that it's possible in testing (sarge) too.  Doing an apt-get update && apt-get upgrade should give you this on sid.  O...K.  So now you need to set up your XF86Config file.  I do this through debconf: dpkg-reconfigure xserver-xfree86.  This gives you some nice menus and stuff and makes life real easy.  Then you can go into /etc/X11/XF86Config-4 and do some tweaking.  Anyhow, here's mine.  Several sections are of note:

Section "InputDevice"
    Identifier  "Configured Mouse"
    Driver      "mouse"
    Option      "CorePointer"
    Option      "Device"        "/dev/gpmdata"
    Option      "Protocol"      "ImPS/2"
    Option      "ZAxisMapping"      "4 5"
EndSection

This bit sets up the mouse.  This is where the magic begins.  I've set this thing up using gpm as the back end.  gpm is the mouse server for the normal text consol.  You can set it to repeat the mouse info onto another quasi-device, /dev/gpmdata.  This allows us to do the configuration once, and reap the rewards twice.  Now, you can see above that we've set the mouse device to be /dev/gpmdata.  Here's the configuration of gpm (gpmconfig as root).

Current configuration: -m /dev/psaux -t imps2 -Rraw
Device: /dev/psaux
Type: imps2
Repeat_Type: raw

The advantage of using gpm is that if your mouse stops responding for any reason, then you can just go to a text consol, and type /etc/init.d/gpm restart and you should be back in business.  You don't even have to kill X.

Once you've got the mouse working in X, you'll probably want to paste something.  That's all fine with our current setup, if you've plugged in an external mouse with three buttons.  Mouses with wheels usually allow you to press in the wheel as the middle button.  But, you will have noticed that your integrated AccuPoint II doesn't have a middle button.  It's got the two big buttons, which are the left and right buttons, and the two small buttons which are the same as scroll up and scroll down on a mouse wheel (ie: they're buttons 4 and 5).  There's no middle button.  But don't despair.  This script:

#!/bin/sh
# remap the buttons on the accupoint to make the top left little button be
# the equivalent of the middle button.
xmodmap -e "pointer = 1 4 3 2 5"

and this one:

#!/bin/sh
# remap the buttons on the accupoint to the default
xmodmap -e "pointer = 1 2 3 4 5"

might just come in handy.

Section "Device"
    Identifier  "Geforce 4 420 Go"
    Driver      "nvidia"
    VideoRam    32768
    Option      "UseFBDev"      "true"
EndSection

yep.  This bit's pretty self explanitory.  The only thing worth noting is the Driver line.  That nvidia driver is the one that works with the binary-only kernel modules from nVidia, as distinct to the open-source nv driver.  The nv driver doesn't have support for the GeForce 4 Go yet, so you have no choice at this time.  Which reminds me that MicroSoft have bought the patents for OpenGL from SGI and are currently in the process of stopping us open source ppl from using it.  God they suck.  So much.

Section "Monitor"
    Identifier  "Toshiba 1024x768"
    HorizSync   30-60
    VertRefresh 50-120
    Option      "DPMS"
EndSection

Dunno where those HorizSync and VertRefresh lines came from.  I couldn't find the actual values in the manual.  Actually I think I got them from the second of the two howtos listed at the top of this page.  They seem to work, so *shrug*.

*update* I've got myself a logitech USB mouse.  I can use this at the same time as the intellipoint II in X, using the setup in this XF86Config-4 file.

Sound

I'm a GNOME user, and I've noticed that the sound is significantly worse under esd.  Therefore, when I'm listening to music in XMMS, I always kill esd first.  This results in much more satisfactory sound.  It's funny, but whenever I play anything from a command line program, like mp3blaster, it plays too fast... about 20% too fast.  Sounds kinda funny and it's fun to listen to music like this.  For a while. :)

The kernel modules you'll need to insert to get sound working are:

i810_audio
soundcore
ac97_codec

*UPDATE*17/6/03 I've got ALSA working; wasn't too hard. ALSA is much better than OSS because it actually plays things at the correct sampling rate. It also gives you more control over your hardware (things like 3D sound and bass/trebble controls).

Here's how I did it:

I'm running a kernel compiled from source so I can support the nVidia drivers, so I got the alsa-source debian package. This will put alsa-driver.tar.bz2 in /usr/src. So, as root, go to /usr/src, and do a "tar xvjf alsa-driver.tar.bz2". This will give you a /usr/src/modules/alsa-driver directory. Change to it, and read the file "INSTALL". In it is a section titled "Quick Install". Read it.

You'll need to remove the i810_audio and ac97_codec modules if you were previously running them.
Summary (for the VERY lazy/impatient:)
USB

This works fine.  It's usb-uhci.  Just load these modules:

usb-uhci
usbcore

I'd also recommend checking out the hotplug package, which will let you plug in and remove devices from the USB ports with greater ease.

Floppy drive

The laptop comes with an external USB floppy drive.  This shows up as /dev/sda, but otherwise behaves just like a normal floppy drive (/dev/fd0).  Here's my /etc/fstab entry:

/dev/sda            /mnt/floppy  auto    user,noauto                    0 0

Kernel:
USB Support ---> USB Mass Storage support
Block Devices ---> Normal PC floppy disk support

DVD/CD-R/RW

To switch on DMA for the hard drive and the CD-ROM, add the following lines to the /etc/init.d/bootmisc.sh file.  This will speed up access, and reduce CPU usage.

#
# Set up DMA transfers
#
hdparm -d1 /dev/hda
hdparm -d1 /dev/hdc

Add these lines above the line with

: exit 0

on it.

The next thing you need to make sure is that you're loading the SCSI emulation drivers for the cd-rom.  All CD burning software under linux expects a SCSI drive.  We have an ATAPI drive, so we need to load the driver that'll pretend it's scsi.

The modules in question are:

sg
ide-scsi
sr_mod
scsi_mod
cdrom

You'll also need to create the file /etc/modultils/cd-writer with the following contents:

# stuff to get the cd-writer to work

options ide-cd ignore=hdc            # tell the ide-cd module to ignore hdb
alias scd0 sr_mod                    # load sr_mod upon access of scd0
#pre-install ide-scsi modprobe imm    # uncomment for some ZIP drives only
pre-install sg     modprobe ide-scsi # load ide-scsi before sg
pre-install sr_mod modprobe ide-scsi # load ide-scsi before sr_mod
pre-install ide-scsi modprobe ide-cd # load ide-cd   before ide-scsi

alias scsi_hostadapter ide-scsi

Then run update-modules.

After a reboot, you'll need to update your /dev/cdrom symbolic link.  Your cdrom is no longer IDE, remember?  The old IDE device file was /dev/hdc.  Now that it's pretending to be SCSI, the same device can be found under /dev/sr0.  So:

cd /dev
rm cdrom
ln -s sr0 cdrom

Now fire up XCDRoast and burn baby, burn!


Author: Robert Hutton <rwh@helms-deep.cable.nu> Any suggestions are welcome. Spammers stuff off.
Last updated: 5/8/2003