Linux on a Toshiba Satellite 2595XDVD
Linux on a Toshiba Satellite 2595XDVD
$Id: index.html,v 1.34 2003/05/11 22:53:52 nemesis Exp $
After getting screwed by Dell, (I wanted an Inspiron 7000, but they cancelled
the line the day after we called them) I purchased a Toshiba Satellite 2595XDVD.
Toshiba pulled the specs on this laptop, which is a shame, but at least you
can still get software updates for the thing.
These are the specifications significant to me:
- Celeron 400MHz (128K L2 cache) The machine is fast enough to do hard work
but I wasn't as satisfied with its snappiness. I think a PII 300Mhz is
much nicer (like my ThinkPad).
- 196M Ram (I added the 128M memory chip)
- 6.4G IDE drive (Ultra DMA? EIDE? Whatever, I'm a SCSI bigot)
- 2x DVD/20x CDROM drive (Windows software DVD decompression)
- Floppy (both CDROM & floppy are built IN. They are not an interchangable
unit like on a some other laptops.)
- Eraser-mouse (TrackPoint? Not the touch-pad, not the roller ball). PS/2
port on the side for mouse/keyboard.
- 14.1" TFT screen
- Trident Cyber9525 video chipset with 2.5M video memory (1024x768 16bpp)
SVGA out on the back but NO Svideo connector! :( This video
card is also a little slower than I would have liked.
- Maestro 2E sound chipset (built-in stereo speakers, headphone out,
line in, mic in)
- Serial port 1 out on back. Parellel port out on back.
- Battery life seems to be between 2.5 hours and 3.5 hours, depending on
usage. Only ONE battery fits in the Toshiba.
- 2 Type II (or 1 Type III) PCMCIA slots.
- Cool thing I hadn't seen before: PCMCIA card lock and power button lock.
Disappointments
Let's get this section out of the way right now, since the laptop over-all
is pretty nice. Here are some things I've been disappointed with:
- No SVideo out
- No middle mouse button
BIOS
update: There are a number of fixes that Toshiba released for the BIOS. It is
available from the above "software updates" link, or you can grab
my copy of the 8.0 2595XDVD BIOS.
I also recommend hitting "ESC" during the Toshiba Logo, and setting the
PCMCIA mode (page 2) to "PCIC compatible". I had some trouble with loading
the PCMCIA drivers under Linux without this.
Install Linux
Redhat 6.1+ seems to install without a hitch. When I originally got the
laptop, only 6.0 was out. Here's what happened:
I installed RedHat 6.0. Since RedHat
offers LOTS of support on how to install their OS, I'll just give you my
list of steps:
- Resize the FAT32 partition: I copied FIPS.EXE from the RedHat CDROM
and rebooted to DOS mode, and split the partition in half. I want to
keep Windows around so I can watch DVDs; Linux can't do that yet. :)
- Change the boot device: On reboot when the giant "TOSHIBA" logo is
displayed, I hit ESC to bring up the BIOS. From there, you can select
the boot device search order. I selected the CDROM as the primary
boot device.
- Boot and install RedHat: This was straight forward. I booted off
the CDROM, and followed all the regular install steps. I have two notes
following...
- DO NOT START gpm: Something about the keymaps and/or gpm interact
poorly with keyboard initialization on boot. If you're not pressing keys
while Linux boots up, the keyboard will not get initialized properly.
However, if you just disable gpm, there doesn't seem to be any problems
at all.
- Select a dummy X Windows configuration: The RedHat 6.0
version of the X server doesn't support the Toshiba's video chipset (but
a new version does; see the X Windows section below). Because of this,
just select any SVGA device, pick dummy settings for X, and do not
probe the server. Skip as much of the X Windows configuration as you can;
you'll be doing it later.
Disk Performance
update: I added the following line to /etc/rc.d/rc.sysinit before it mounts all
the filesystems:
action "Running hdparm" hdparm -c3 -d1 /dev/hda /dev/hdc
This kicks on the DMA and 32-bit access for the disk. It seems to GREATLY
reduce the system-stalls during heavy disk IO.
Install X Windows
Redhat 6.1+ comes with XFree86 3.3.5+.
When I originally got the laptop, I needed to compile it. Here's
what happened:
The X Windows that comes with RedHat 6.0 wasn't a high enough version to
work with the Toshiba. Support for the Trident Cyber9525 video chipset was
added in X server version 3.3.5 of XFree86.
I used another RH6 box to compile XFree86 3.3.5 from the
Redhat Rawhide
Source RPMs. However, since RH6.1 is out now, the 3.3.5 version of the server
comes with by default. My steps to getting X Windows working were:
- Install 3.3.5 version of XFree86: I installed all the following
pieces, but it's possible that all you might need is the 3.3.5 version of
the SVGA server.
- Get the screen and card configured: I cheated and used a pre-fab
XF86Config file, specifically made for this
laptop. Replace the one in /etc/X11. Once that's done, you should be
able to use "startx" or set your default init level to 5 to run XDM
automatically. UPDATE: I found a few extra "Option" lines that
DRASTICALLY speed up the video under X. I've updated the above config
file to include them.
- Fix the mouse speed: Since my other laptop is an IBM ThinkPad,
I was used to a REALLY SLOW mouse. The Toshiba mouse is seriously
accelerated, and I couldn't take it. I found two ways to slow down
the mouse:
- Use the Gnome configuration tool and crank the mouse speed
all the way down.
- Use "
xset m 2 80
" to reduce the acceleration.
Check "man xset
" for more details.
Keyboard repeat
PROBLEM: people have reported keyboard repeat problems (getting
too many letters when they shouldn't be) at times. This seems to happen
more with Shift/Ctrl/Alt+[letters], and happens only occasionally.
It's not known
if this is limited to X, or if it is a console bug, Gnome bug, or what.
UPDATE: After playing with it myself for some time, I've decided that
this bug is really a problem with the Toshiba keyboard itself. I've
reproduced the bug both in X and on the console. By turning off keyboard
repeat altogether, it's more obvious. I tested it with "ctrl-c" since the
bash prompt will scroll once each time that sequence is hit. If you press
down the C, and then ever so slightly raise your finger, you can get it to
send the keyboard code about 6 times. So my guess is that the power-users
on the Toshiba are going to be typing rapidly, and at times will depress
the key to the "not quite enough" position, and end up with 6 codes. This
is REALLY annoying, and I haven't been able to repeat it on any other
keyboards. Damn shame, really. Your Milage May Vary.
UPDATE: This email to the linux kernel
mailing list might be a fix (or if that's no good, this
post is an earlier version).
update: Here is Andrei Pitis' most
recent posting to the kernel mailing list.
New Kernel
I don't like the default RedHat kernels, so I always recompile with a new one.
Some notes, not including the specifics for APM, Frame Buffer support, and PCMCIA support:
- Get the kernel: I usually grab my kernels from the
US Mirror of ftp.kernel.org.
I used the 2.2.12 kernel. If you need help recompiling your Linux
kernel, check with the
Linux Documentation Project.
- vi Makefile (to comment in the /boot install path)
- vi /etc/lilo.conf (to make a new section for the new image)
- make menuconfig
- make dep
- make modules
- make bzlilo
- make modules_install
- Set the Processor correctly: The celeron is a PII-class CPU,
so you can use the 686 instruction set.
- Strange Thing: after the recompile, I used to get an unusual error
"net-pf-1: signal 11" from the kernel module loader. I can't imagine
what's causing it to segfault, but it doesn't seem to break anything (yet).
This went away when I upgraded to RedHat 6.1.
Advanced Power Management
APM on the Toshiba seems to behave rather well. The steps to use it under Linux:
- Configure the kernel to use APM: In the 2.2.x series kernel, the
APM options are located under the "General" section. I selected:
- PM on boot
- Make cpu idle calls
- Power off on shutdown
- Ignore multiple suspends
- Ignore multiple suspend/resume cycles
- Set up APM on the Toshiba: By default my Toshiba came with some
weird settings for APM. For example, closing the lid did NOT suspend
the laptop. Don't get me wrong, I prefer that behavior, but it still
surprised me. According to the Toshiba manual, you can configure the
events that suspend the laptop using the TSETUP.EXE program
under DOS or Windows. I haven't found a way to do this under Linux
yet, but it shouldn't be something you do every day, I'd hope. I didn't
make any changes to my suspend settings.
- Redhat 6.0: DO NOT SUSPEND WHILE IN X Windows: Something is screwed with
the video mode X Windows drives the laptop in. If you suspend with
X Windows running on the screen, you'll lose the ability to switch
back to X Windows. It seems safe to suspend and resume, but you'll
have to switch to a virtual console (ctrl-alt-1) to regain control of
Linux. It breaks X Windows pretty hard, and the card too. I couldn't
start a second copy (
startx -- :1
) in the hopes of resetting
the video card. Looked basically like the video card (in that mode) got
wedged and nothing was able to reset it short of a reboot.
This works fine under RedHat 6.1+. Might be an X server thing?
- Test suspend mode: Go to a virtual console (not X Windows), and
(as root) type
apm -s
to toss the machine into suspend
mode. While in suspend mode, the "suspend light" on the front edge
of the laptop should be slowly fading on and off in amber. To get out
of suspend mode, you'll need to press the power button until the
"suspend light" goes green again.
- Test hybernation mode: I haven't done this yet.
- UPDATE: I got word on one way how to make suspend work correctly with RedHat 6.0. Thanks!
Frame Buffer
I wanted to have the Linux penguin in the corner during boot, so I needed
to set the VESA video mode on the /etc/lilo.conf "vga=...." line. Should
be easy to test.
I tried it with "vga=0x317" and the frame buffer DID work,
but when X loaded, it crammed the screen into the top 1/4th of the LCD for
some reason. However, other people have had
success with this. update: looks like it's an X server problem.
The build that ships with RedHat 6.1 and better appear to deal with the frame
buffer just fine.
PCMCIA
RedHat 6.1's most recent kernels seem to run fine after I set "PCIC"
compatibility on page 2 of the BIOS. Before that, I did:
PCMCIA on the Toshiba hasn't given me any trouble.
I downloaded the latest
version of the pcmcia source
code (which for me was version 3.1.0), compiled it against my new kernel
and it ran fine. So far I've tested only an OLD 3com 10MB card, and
a Hawking
PN656 combo card. It works quite well with Linux
as a 10/100 Ethernet card. I've used it as a 56k modem card, and it works,
but I always get the feeling it's not really at 56k. (But it's a REAL modem, not a stupid WinModem!)
Internal Modem
The internal modem is, of course, a "WinModem". However, it's a Lucent, and
the lucent-released drivers WORK for it.
There is open-source development under way though. Check here for linmodem code as it becomes
available. Here is one person's way to make the Lucent driver work. I just do:
Initial install
- mknod /dev/ttyS14 c 62 78
- chgrp uucp /dev/ttyS14
- chmod 0666 /dev/ttyS14
Kernels that aren't 2.2.12-20 need the "-f" flag for insmod
- insmod -f ltmodem.o
Infrared Port
I haven't even taken the small sheet of protective plastic off the "lense" yet.
I think it's supposed to work fine, but I haven't had a chance to play
with it.
VGA to TV
When I originally purchased the Toshiba I had misread the specifications, and
I thought it came with an SVideo port. It does not, so I have to come up with
some other way to watch DVDs on my TV. I spent about $80 for a "TV Magic" VGA
to video converter unit (needs to be plugged in). It has SVideo and composite
video output, and does a good enough job for viewing DVDs. It's a basic
VGA to NTSC/PAL converter. I got it at a local computer shop, but Toshiba
sells the same thing for $189 in their catalog, so watch out for the price.
Sound
Sound under Windows on the Toshiba is flawless. The speakers are crisp and
clear, and the headphone outputs are without interference from RAM,
Floppy, HD, or DVD/CDROM. Sound under Linux was not good. When I started this
project, only the OSS Commercial driver could provide playback, but the sound
quality was terrible. Since then, however, the free version has developed to
the point where I think it's surpassed the Windows sound driver.
Here are the options for sound:
- There is an
OSS-style version
of the Maestro 2E driver. This module seems to be totally stable now,
and I highly recommend it. update: Hey! This link is broken now!
The driver was added into the 2.2.14 and better kernels. If you take
this Makefile and the maestro drivers from the
2.2.14 kernel, you should be able to compile the driver and install
it fine. Put the resulting "maestro.o" into /lib/modules/`uname -r`/misc,
and add the line "alias sound-slot-0 maestro" to /etc/conf.modules.
- There is also the OSS Commercial
drivers. You have to
purchase OSS and the Maestro 2E option, totalling $30. It works,
but like I said above, the output has some problems with treble.
And why bother, since the free version works better? :)
Here is what my maestro.o loading looks like in dmesg:
maestro: version 0.13 time 11:14:50 May 28 2000
maestro: Configuring ESS Maestro 2E found at IO 0xFC00 IRQ 11
maestro: subvendor id: 0x00011179
maestro: AC97 Codec detected: v: 0x414b4d00 caps: 0x0 pwr: 0xf
maestro: 1 channels configured.
update: it seems that after extended playing, the speakers start to
freak. There is static in the output, but if you let them "cool-off" for
about 5 minutes, it goes away. I need to check the "line-out" portion
and see if the static appears there.
DVD
Well, DVD playing under linux sure is an evil legal subject what with all
the CSS troubles. However, the
project does go on. The LiViD group
has come leaps and bounds towards a functioning DVD player. Right now it
works. However, it's still a little top-heavy, and DVDs are unplayable
on the laptop: just not enough CPU. However, they're optimizing their code
all the time, and hopefully soon, there will be a fully-featured DVD
player for linux.
Toshiba Utilities
For fun, you can play with the
Linux Toshiba Utilities to turn your fan on and off.
The "development" version of this code didn't work for me, but the old (1.1)
versions at least let me control the fan on the back of the laptop. I still
haven't figured out if the Toshiba BIOS is turning this fan on and off by
itself. I don't think so, and since the laptop does get rather hot while
running, I just turn the fan on when I boot up (fan -n
).
Special Thanks
- Steve Hsieh for information about the Maestro 2 drivers.
- mmb@marlboro.edu for the gpm note. I'm sure that problem would have pissed me off to no end if I didn't know what was causing it.
- dlozupone@741systems.com for the XF86Config file. That made my life much easier.
- Zach Brown for working on the new Maestro driver on a Saturday morning.
- Andrei Pitis and
Daryl Lozupone for mentioning the
keyboard repeat bug.
- Eric Keyser for giving me this laptop back, so I can further beat my
head against the wall trying to get it to work right.
- Tony Brummett for reminding me that "hdparm" greatly improves IDE
access. I'm such a SCSI junkie normally; I totally forgot.
Kees Cook.