Linux on the Toshiba Satellite 2755DVD

Author: Michael Minn (see www.michaelminn.com for current contact info)

June 22, 2007

Describes how to set up an Ubuntu 7.04 operating system on a Toshiba Satellite 2755DVD notebook computer.

1. Introduction

The following document describes how I set up an Ubuntu 7.04 (release name "Feisty") system on my Toshiba Satellite 2755DVD notebook computer.

The Toshiba 2755DVD is a mid-range laptop built in mid-2000:

Laptops are released on very short marketing cycles and Toshiba's frequent offerings generally involve multiple extremely similar models and incremental (rather than revolutionary) changes from earlier models. As such, various parts of this document may apply to a wide variety of Toshiba models. I am providing this information to help others avoid the problems I encountered.

I provide no guarantees for any procedures stated in this document. I performed most of these tasks only once and wrote all this down as I went along. As such, there are probably inaccuracies. Although some of the instructions given hereafter may be unnecessary (or perhaps not the best way to perform a given task), they worked for me and I'm not going to mess with a good thing.

The definitive source for Linux laptop information is the Linux on Laptops Page. Much of this information was gleaned from pages linked by this site.

Many of the problems associated with installing previous versions of Linux on this machine have been solved in the current distributions. If you are installing an earlier version or another distribution, you may want to consult my other Linux laptop pages:

This document assumes some minimal UNIX/LINUX knowledge. You're more than welcome to e-mail me if you've got a problem, but I can't guarantee a prompt or helpful reply. Like many things in the Linux world...freedom comes with a price and you're on your own. I would, however, appreciate any errata that you can point out so I don't mislead anyone else.


2. Hardware Upgrades

There are a couple of hardware upgrades you can make to this or any other old machine to dramatically increase performance. While neither of these will give you the performance of a 3Gig Xeon, this old machine can move with surprising alacrity.

Memory Upgrade: This machine can and should be upgraded to a maximum of 192MB of memory. More memory is better, especially for popular memory-intensive applications like Gimp or OpenOffice. Unfortunately, you may have difficulties finding a compatible module. I have been told that currently manufactured modules use the same PC100 standard but have a different SPD chip based on new JEDEC standard from November 2004. Before purchasing any memory, make sure that the module is specifically listed as compatible with this machine. You may also want to search Ebay for modules pulled from compatible machines.

Hard Drive Upgrade: The 6GB hard drive that shipped with this system is small, slow and noisy by contemporary standards. The primary cause of slow performance on this machine is not the slow processor, but actually hard drive access time. Upgrading to a new, larger hard drive will give a stunning improvement in performance while giving you ample space for applications and data. The BIOS is recent enough to accept hard drives up to 80GB. (ref).

Contemporary laptop hard drives almost always have a standard physical size and 44-pin IDE connector (as opposed to a 40-pin connector used with desktops that does not incorporate power supply lines). You can go to any of numerous sites on the web and buy hard drives relatively cheaply - although you may not want to entrust your precious data to the most inexpensive drives. The only trick is it has to be a 2.5" laptop hard drive, not a 3.5" desktop hard drive. I cannibalized a 40GB drive from my Toshiba 1905 when I blew out the motherboard and I didn't even have to reinstall the Linux OS.

The drive is located in a compartment under the floppy on the front of this machine.

Be careful not to cut yourself on the sharp edges of the cradle.

External Mouse: While this does not improve performance, some people prefer a traditional mouse or trackball to the touchpoint device incorporated into the 2755 keyboard. If you want to connect the external mouse to the PS/2 port, you need to change the BIOS settings to enable that port. Press <ESC> when booting and change the BIOS settings for "Pointing Device" from "Auto-Select" to "Simultaneous."


3. Disk Partitioning

This section describes how to set up the hard drive partitions for a dual-boot Linux/Windoze installation. I did the partition split when I previously installed Fedora Core 5 on this machine, so the software available with Ubunto may differ, although the general approach is the same. If you are still using the small hard drive that came with this machine, you may want to seriously consider a Linux-only installation...in which case you can skip this section

The Toshiba 2755DVD comes with Windoze 98 (2nd edition) preinstalled on a single partition. As such, FDISK can't be used to create a partition for Linux. However, most distributions ship with FIPS (a DOS utility) that permits you to split your single partition into two partitions.

The first trick is getting all of your windows files on the lower part of the partition so it can be split. To minimize the size of your Windoze partition, you should uninstall all the junk programs (ISPs, games, MS Outlook Express, etc) Don't forget to empty the recycle bin when you're done.

If you ever need to recover your Windoze system, there is a recovery disk that is shipped with the new computer.

Disable virtual memory from the Windoze control panel. I believe the Windoze swap file is kept on the high part of the partition and that's the section that's going to be moved to Linux

	control panel->system properties->performance->virtual memory

Reboot. Then run the Windoze defrag and scandisk utilities from an MS-DOS prompt (so you can use the command line options). This will move everything down to the lower part of the partition. When the defrag window comes up, click the "Settings" button and turn off "rearrange so programs start faster" and "Check the drive for errors." Using these command line options speeds up the process, but it still might take a while to finish...perhaps even an hour or two. If you click the "Show Details" button, you get an interesting looking screen that graphically shows the clusters being moved.

	defrag /p /q
	scandisk

You now need to create a boot disk containing the FIPS utility. Insert a blank floppy and create a bootable CD from an MS-DOS prompt:

	sys a:

You can now insert Installation CD # 1. From DOS or the Windoze Exploder you can copy RESTORRB.EXE, FIPS.EXE, and ERRORS.TXT from d:/dosutils/fips20/ to your floppy. You must do this all on a floppy because DOS cannot see the CD-ROM drive.

Leave the FIPS floppy in the drive and reboot your system. The computer will boot to a DOS prompt. Type FIPS to start the FIPS utility.

You will pass through a Welcome screen to a Partition screen. You will get a warning about physical start/end sector not matching logical start/end sector. This is okay, press any key to accept.

You will be told Partition table adapted to current drive geometry. Press any key to accept

At this point, the first time I ran FIPS, I got an Error...last cylinder not free message. After I turned off virtual memory and reran defrag, this problem was solved. Hopefully it won't happen to you. Obviously, if it does, FIPS stops here and doesn't split your partition. There is a help file in the d:/dosutils/fips20/ directory on the distribution disk that may be of help. There are also Windoze programs available for creating disk partitions. But FIPS usually works works, and you can save yourself the ca$h.

Provided you don't have the last cylinder problem, you will be asked to make backup of root & boot sector. Type 'Y' to accept.

You will then be asked to enter start cylinder. You can use the arrow keys to move the partition split around. I chose to leave a minimal amount (1.1GB) of Windoze space. Your numbers will vary depending on what is on you Windoze partition.

	old: 1106.0MB, cylinder 141, new 4620.3mb

FIPS will gives you new partition table. Type 'c' to continue.

Ready to write new partition scheme to disk: Do you want to proceed:. Type 'y'.

As befits a DOS application, FIPS will crash with a memory allocation error. You can ignore it.

Press ctrl-alt-delete to reboot. Run scandisk (from DOS or the program launcher) and turn your virtual memory back on.

You now have two partitons on your disk and you can start the installation of Linux.

References:


4. Installation

Download Ubuntu: Download a CD ISO of Ubuntu from the download page of Ubuntu.com. Ubuntu comes on a single CD and the ISO is a disk image that should be burned to create that CD. The software you use to burn that CD will depend on the system, although if you are using another Linux system, you should use cdrecord.

FYI - when burning with Linux cdrecord on some drives, you may get a message like this when the disk:

	Fixating...
	cdrecord: Input/output error. close track/session: scsi sendcmd: no error
	CDB: 52 01 00 00 00 FF 00 00 1C 00
	status: 0x2 (CHECK CONDITION)
	Sense Bytes: 70 00 05 00 00 00 00 12 00 00 00 00 24 00 00 C0
	Sense Key: 0x5 Illegal Request, Segment 0

It is a driver bug of some kind with fixation process, where the CD-R session is completed by by writing Lead-In (table of contents) and Lead-Out information. The problem seems especially prevalent with disks that are filled close to capacity. The solution for me was to change hardware and use an old external USB hard drive.

Boot from the CD: If, for some reason, the BIOS is setup with floppy or hard drive as the primary boot device, you will need to change it. Hold down the ESC key while rebooting the computer. Press F1 when prompted and you will be at the BIOS setup screen. Boot device order is at the top of the left side of the screen. Unlike many other distributions, the Ubuntu CD is a "Live CD" that boots up into a fully functional Linux desktop. On this ancient machine, booting takes around five minutes or so.

Start the Installer: The installer program is an icon on the desktop that you should double click to start.

Welcome - Choose Language: Double-click the language of your choice.

Screen Size Problems: On this small LCD screen (800 x 600) the Continue/Cancel buttons will often be hidden by the edge of the screen. The problem can be worked around by dragging the toolbars at the top and bottom of the desktop to the side, providing more vertical space.

Where Are You: Select your time zone. The time display may be wrong since it seems to assume the system clock is GMT.

Keyboard layout: Choose what is appropriate for you.

Prepare Disk Layout: I chose to do this manually to make sure my Windoze partition didn't get overwritten and so I could have /home on a separate partition. The layout I chose with my 40GB replacement drive was as follows:

	hda1 /windoze	4129 MB
	hda2 /boot	106 MB (format)
	hda3 /		5239 MB (format)
	hda5 swap	1077 MB
	hda6 /home	29454 MB (format)

Migrate Documents and Settings: I assume this is for migrating from Windoze and/or a previous version of Linux. Never trust a utility like this - always work from verified backups.

Who Are You: I suggest never using your real name since you never know where this information goes and there are times on the web that you may want to remain anonymous.

Ready to Install: Start the installation, which took my system around an hour.


5. De-Ubuntuing Ubuntu

Ubuntu is designed to be a friendly and Windoze-like as possible. However, this results in a bloated system with alot of unnecessary services. I'm an old-school Unix guy and the following section describes tweaks I performed to simplify and speed-up my system.

Creating a Root Password: The "Ubuntu Way" is to promote security by not providing a superuser login and requiring system administration tasks to be done using the sudo command. Screw that...I want the power. Creating a root password can be done by sudoing the passwd command:

	sudo passwd root

Follow the prompts. I'd suggest using the same password as your main user password so you have one less password to remember...or forget, which would lock you out of the root account.

Removing Splash Screen / Text Login. I prefer to see what's going on with my machine rather than have the boot messages hidden behind a glitzy bitmap. Unlike RedHat, which provides a runlevel 3 text login, Debian distribution runlevels always start the GUI. So the process is a bit more complicated than changing /etc/inittab (which doesn't exist in Debian).

The splash screen is started by GRUB (the Grand Unified Boot Loader). To disable it, as superuser edit /boot/grub/menu.lst and change:

	# defoptions=quiet splash

	to

	# defoptions=quiet

Then, as superuser run the update-grub command to update the grub binary from the changed configuration file.

	update-grub

The graphical desktop is started in runlevel 2 at boot time with the script /etc/rc2.d/S13gdb. Delete it.

	rm /etc/rc2.d/S13gdb

After these changes, on boot you will see the system startup messages and then be greeted with a console login prompt. After logging in, you can use the startx command to start the graphical desktop.

	startx

Message of the Day. Text logins are greeted with a rather unfriendly message about copyright and the absence of warranty. True, but unpleasant. The file containing that message is /etc/motd. Change it to something more appropriate to a greeting.

Additional Software Packages: To fit on a single CD, the desktop version of Ubuntu contains a minimum number of packages. However Debian distributions are built around a fairly robust software package management facility and Ubuntu is pre-configured to use the Ubuntu repositories (http://us.archive.ubuntu.com/ubuntu/pool/main). Attempts to run available programs on the command line that are not yet installed will display a message giving the package that is needed to run that command.

Packages are installed and managed with apt-get. For example, to install the build-essentials compiler package:

	sudo apt-get install build-essentials

Before using apt-get the first time, you need to update the package list:

	sudo apt-get update

Otherwise you will get a message like:

	E: Couldn't find package xxx

MWM. I personally find desktops annoying. While X is needed for graphically oriented software (like Firefox or gimp), I generally start everything from an X command line terminal and keep files in my /home/username directory (eliminating the need for a graphical desktop). The Motif Window Manager (MWM) can be run with out a desktop (i.e. Gnome or KDE) and is available in the OpenMotif package:

	apt-get install motif-clients

Note that mwm is also available with LessTif (lesstif-bin) but has an annoying navigator panel and does not, by default, provide ALT-TAB for toggling between windows.

.xinitrc is a file that is executed when X is started. Create a .xinitrc in your home directory (/home/<username>) and type the following lines. This creates a single terminal window, puts a clock window at the bottom of the screen, sets the "desktop" color to blue and starts the window manager. When you type "startx", from the text login, it will start an xterm, in which you type commands to start other programs. You can create additional windows from a popup menu when you right-click on the desktop.

	xterm &
	xclock -d -update 1 -geometry +480+550 &
	xsetroot -solid navy
	exec mwm

Unneeded Services. By default Ubuntu starts alot of services that are unnecessary on a small, old, standalone laptop. All those additional services slow down boot times and, in some cases, may present unnecessary security risks. The update-rc.d utility is quite a bit less friendly than the Red Hat chkconfig utility. The simplest way to unconfigure services that start at boot time is to delete the links to the startup scripts in the /etc/rc* directories. Following are services I have turned off:

	/etc/rcS.d/S40networking (some unnecessary networking utility)
	/etc/rcS.d/S45waitnfs.sh (something having to do with network file systems)
	/etc/rcS.d/S46mountnfs-bootclean.sh (more network file system stuff)

	/etc/rc2.d/S05vbesave (some unnecessary video card software)
	/etc/rc2.d/S10acpid (unneeded power management)
	/etc/rc2.d/S10powernowd.early (unnecessary CPU speed control)
	/etc/rc2.d/S10xserver-xorg-input-wacom (drawing tablet support)

	/etc/rc2.d/S12dbus (some kind of application communications daemon)
	/etc/rc2.d/S13gdb (automatically starts desktop GUI)
	/etc/rc2.d/S19cupsys (printer services - not needed if you don't regularly use a printer)
	/etc/rc2.d/S19hplip (HP printer/imaging system)
	/etc/rc2.d/S20apmd (power management)
	/etc/rc2.d/S20powernowd (unnecessary CPU speed control)
	/etc/rc2.d/S20apport (program crash reporter...but to who?)
	/etc/rc2.d/S20hotkey-setup (hot keys, whatever they are)
	/etc/rc2.d/S20nvidia-kernel (this machine has an S3 chip, not Nvidia)
	/etc/rc2.d/S20rsyncd (support for dangerous rcp)
	/etc/rc2.d/S25bluetooth (BlueTooth support - way after this machine built)
	/etc/rc2.d/S90binfmt-support (some kind of support for other executable formats)
	/etc/rc2.d/S98usplash (turns off boot splash screen - no needed if you have no splash screen)
	/etc/rc2.d/S99acpi-support (some kind of support for power management)
	/etc/rc2.d/S99rclocal (runs rc.local, which does nothing)

USB Flash Drives: In the absence of all the desktop daemons to automount removable devices, you will need to manually mount flash drives. Toward that end, the following entry needs to be added to /etc/fstab

	/dev/sda1  /media/flash   auto  noauto,user,exec  0 0

A mount point directory must also be created in /media as superuser

	mkdir /media/flash

When a USB flash drive is inserted, it should be mounted as follows, with the contents visible under /media/flash

	mount /media/flash

Before removing the drive it must be unmounted or the contents may be corrupted.

	umount /media/flash
.vimrc syntax enable

6. Internal Modem

The internal Lucent Mars Winmodem is supported by the ltmodem/ltserial module, a rather old hybrid module that includes some proprietary code and is not installed by default. While there are a number of "unofficial" packages and source tarballs floating around on the web, many of the packages are poorly constructed and subtle changes to the kernel make compilation from source a major pain. You would be well advised to install the linux-restricted package from Ubuntu, which is fairly trouble-free:

	apt-get install linux-restricted-modules-2.6.20-15-386

Interestingly, this will also give you the "386" kernel rather than the "generic" kernel (which was installed by default).

The desktops all have graphical dialer applications which you can use to setup your dialer configuration. The modem device name is /dev/ttyLTM0. All the graphical dialers seem to be front ends for the command line dialer wvdialer...or, at least, they use it's configuration file, /etc/wvdial.conf. The easiest way to configure dailup parameters is to edit this file and add the following contents:

	[Dialer Defaults]
	Modem = /dev/ttyLTM0
	Init1 = ATZ
	Phone = (your ISP's access number)
	Username = (username supplied by ISP)
	Password = (your password)

To dial, type wvdial from the command line.

The browser of choice is firefox. For e-mail clients, you can choose between evolution or thunderbird. Thunderbird does not come with the default installation and must be installed from a package:

	apt-get install mozilla-thunderbird

7. The Windoze Partition

Booting to Windoze: The setup described in this configuration is a dual boot configuration. By default, GRUB (the GRand Unified Boot loader) loads Linux at boot time. However, you will get a GRUB screen briefly at boot time that will allow you to use the down/up arrow keys to select Windoze or Linux as the OS. Press RETURN after making your selection.

Accessing the Windoze Partition: The Windoze partition can be read seamlessly from Linux. If you have a Windoze partition set up at install time, the installer will detect it and should have offered you a name for the mount point (I chose /windoze).

You can manually edit the /etc/fstab file and modify the mounting parameters to make the /windows partition more accessible. If you open the file (as superuser) you will see six columns that should be more or less self-explanatory.

You should find the line with a mount point of /windows. In the fourth column you should add the following parameters so the line looks something like the following:

	/dev/hda1   /windoze   vfat   exec,dev,suid,rw,uid=500,gid=500,umask=0  0  0

The uid and gid should be set to the user that you want to own the partition. You can find a user ID (a three digit number) by typing "id" from a console when logged in as that user. Then remount the partition:

	umount /windoze
	mount /windoze

Accessing the Linux File System from Windoze: Supposedly there are ways to access the Linux partitions from Windoze - a terrifying thought I have never seriously explored.


8. True Type Fonts

Linux is notorious for it's ugly fonts. One of Apple's triumphs (stolen by The Beast) is TrueType fonts. They represent fonts as vectors and as such scale very cleanly. Linux includes support for TrueType fonts in X but since there are few non-proprietary fonts available, few TrueType fonts are not included in Linux distributions.

However, you can easily copy fonts from your Windoze partition for use by X - and take back from M$ what they took from Apple. You can, of course, also transfer .ttf files from other machines via floppy or CDROM. Note that there are different font files for the italic, bold, bold italic and regular versions of the fonts and some of the True Type files can be very large.

Copy the fonts from your windoze partition (or from disk if you have them there):

	cp -va /windoze/windows/fonts /usr/share/fonts/windoze

X requires information about the fonts in X specifically formatted data files (fonts.scale and fonts.dir), which you can create using the ttmkfdir and mkfontdir utilities. ttmkfdir is not installed by default so you will need to install the package

	apt-get install ttmkfdir
	cd /usr/share/fonts/windoze
	ttmkfdir > fonts.scale
	mkfontdir

Paths to XFS font files are specified in the configuration file, /etc/X11/xorg.conf. Add an entry near the other FontPath entries:

	FontPath "/usr/share/fonts/windoze"

Log out (and/or reboot) to restart X and the fonts should be available in your web browser.


9. Audio and Video

mplayer is the premier audio / video player for Linux. It supports most major audio and video formats and includes DVD support.

	apt-get install mplayer

mplayer is the command line version. gmplayer is a graphical front end.

Because only superuser can directly access /dev files, you will need to be superuser to play dvds.

gmplayer video defaults to the xmga (Matrox overlay), which is not available on this machine. Change video preferences to x11/xv.


10. Specifications

CD ROM
TEAC DV-28E
Firmware 7.0F
DMA

Disk Drives
Generic IDE Disk Type01
Generic NEC Floppy Disk

Display
S3 Inc. Savage/IX w/MV
Memory Range 000A0000 - 000AFFFF
Memory Range 000B0000 - 000BFFFF
Input/Output Range 03B0 - 03BB
Input/Output Range 03D0 - 03DF
Interrupt Request 11
Memory Range 18000000 - 1FFFFFF
Memory Range 000C0000 - 000CBFFF
Memory Range 20000000 - 2000FFFF

Floppy Disk Controller
Input/Output Range 03F0 - 03F5
Input/Output Range 03F7 - 03F7
Interrupt Request 06
Direct Memory Access 02

Lucent Microelectronics 56k WinModem
Toshiba Internal V.90 Modem
Port COM2
Interrupt Request 11

COM1 Port Properties
Input/Output Range 03F8 - 03FF
Interrupt Request 04

LPT1 Printer Port
Input/Output Range 0378 - 037A
Interrupt Request 07

Sound
ESS Technology ES1978 Maestro 2E

ESS Device Manager
Interrupt Request 11
I/O range FC00 - FCFF
Gameport Joystick
I/O range 0200 - 0207
Maestro DOS Games/FM Devices
I/O range 0220 - 022F 
I/O range 0388 - 038B
Interrupt Request 05
DMA 01
Maestro MPU401 Devices
I/O Range 0340 - 0341

USB
Intel 82371AB/EB PCI to USB Universal Host Controller
Interrupt Request 11
I/O Range FF80 - FF9F

In "Musical Theatre" and "Stage Management", never confuse the adjective and the noun.