GNU/Linux on the Toshiba Satellite 4005CDS

 stock photo of Toshiba 4000 series

Here's some notes on how I installed and configured Debian GNU/Linux on a Toshiba Satellite 4005CDS in January 2005. They might also be of help with other models of the 4000 series. These notes assume some familiarity with GNU/Linux in general; that, and/or an ability to type keywords into Google should be enough.

This particular 4005CDS had only 32MB RAM, but with a little stripping-down of Debian, that appears to be enough for writing academic papers using LaTeX, XDvi, and Emacs with AUCTeX. (The 4005CDS's memory can be expanded to 160MB by adding a 128MB PC66 SODIMM, but I wanted to see whether the owner would like Linux before suggesting the owner invest any more money in this aging laptop.)

Other specs: Mobile Pentium II 233MHz, 4GB hard disk, 800x600 Dual-Scan (yuck!) display, Chips & Technologies HiQVideo (65555) with 2MB, Yamaha YMF715 OPL3-SA3 sound, 24X CD-ROM, floppy, one USB port, 440BX chipset.

The main good thing to say about this series of laptop is that it has a TrackPoint (they call it AccuPoint or somesuch), and the one on this unit still worked fine once it was given a new cap.

First, the BIOS setup on the 4005CDS is accessed by holding down the Esc key while powering up, then pressing F1 when prompted.

Although the unit had both CD-ROM and floppy drives, two Debian CDs (3.0R4 and 3.0R1) that worked everywhere else refused to boot. Different problems prevented the Debian rescue floppy and my trusty FreeDOS floppy from booting. My new Knoppix CD booted, but most of its modes resulted in swap space thrashing, and it didn't want to release the CD-ROM device so that I could mount the Debian CD. (There was no network available for network install.) I finally had to pull the hard drive and pop it into a spare tower PC with a laptop HD adapter for the install.

I blasted the existing Winblowz installation, and partitioned the entire disk for Linux. Since I didn't know exactly how feeble the firmware, I made the first partition under 10MB, to use as a /boot filesystem. The second partition was approximately 300MB for swap. The third was for the main / filesystem.

The Debian installation was pretty uneventful, once I was satisfied that the hard disk was reliable. I shunned Linux 2.6.x and 2.4.x in favor of 2.2.x, since memory was tight, and I'd had great luck with 2.2.x on my 48MB RAM IBM ThinkPad 560E. I had mbr load lilo.

I used the tasksel step of the installer to select only the LaTeX and Laptop bundles. I wanted to install XFree86 manually, and not have Debian try to start it up before I was ready.

Once the installer was done, I removed the netenv package, the at package, and all network daemons that I could. I added exit 0 to the start of /etc/init.d/inetd. I also added exit 0 to the top of the annoyingly expensive /etc/cron.daily/find.

I installed emacs21, auctex, texmacs, xfig, transfig, and a few other applications. I removed emacs20. I had to adjust the fonts and/or geometries of some applications so that they'd fit on the small screen.

I didn't worry about power-saving measures, since the battery didn't hold a charge anyway, so the unit would only be used on line power. At this point, I haven't built a stripped-down kernel, nor disabled unnecessary XFree86 modules. I plan to test PCMCIA and USB if and when the need arises with particular devices.

I installed the x-window-system, fvwm, and rxvt packages, then removed the xdm package. I used update-alternatives --config x-terminal-emulator to select rxvt-xterm.

The XFree86 vesa driver configured for 2048K RAM, 800x600, and (if I recall correctly) 16bpp worked fine. I found likely-looking frequencies for the display on the Web, I think from http://www.superaje.com/~andreas/4070cds-xf86config-4.txt. (Note that the CDS models use a different LCD than the CDT models.) During X startup, the display looks corrupted, as if by a bad driver, for a few seconds, then is fine.

To avoid XDM overhead in VM, I had the user log in at a console login prompt, and wrote init scripts in their user's home directory to start X when logging in on tty1 (the first virtual console). I don't have the scripts available to share here, but, essentially, the login script sets up DISPLAY and xauth, then chains xinit with:

exec xinit -- "$DISPLAY" -deferglyphs all -nolisten tcp vt7

The user's ~/.xinitrc calls xsetroot, xrdb, xmodmap, and xset before doing an exec fvwm2.

The Debian default configuration for Fvwm required only minor adjustment. For this user, I made a new Fvwm menu, MainMenu, and changed all the "main menu" bindings to invoke that menu. This menu had items only for things like Emacs, Terminal, TeXmacs, logging off, and shutting down. A final menu item invokes the Debian official main menu, /Debian, just in case. I also enabled automatic window placement, and disabled edge-flipping of the virtual desktop.

© Copyright Neil Van Dyke      Contact