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:)
- You need source for the kernel you're running in /usr/src/linux.
- You need to insert the soundcore module for anything to work. For
Debian, use modconf, otherwise add it to /etc/modules.
- do a ./configure
- do a make install
- do a ./snddevices
- do a "modprobe snd-intel8x0" for now and add snd-intel8x0 to
/etc/modules for later
- edit your modules.conf. If you're running Debian, you can avoid
this step by installing the alsa-base package which will make the
changes for you. For everyone else, here's the stuff you need (I think):
alias char-major-116 snd
alias char-major-14 soundcore
options snd major=116 cards_limit=4 device_mode=0660 device_gid=29
device_uid=0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
alias snd-card-0 snd-intel8x0
alias snd-slot-0 snd-card-0
alias sound-slot-0 snd-slot-0
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