IBM ThinkPad 600E
openSUSE
10.2 HOWTO
By Jason Heise


The 600E was/is one of the most well-made, durable, and formidable
notebook computers ever built. It was extremely popular in
its era and, despite its age, is still a great laptop if you know how
to make the older hardware work with newer software so that it is
practical for use today. It's no quad-core, but it's no
slouch either.
I bought my 600E secondhand in 2002 and immediately went about
upgrading it to modern software. It was my front-line warrior
in my personal conversion to the open-source world. The
600E's many hardware eccentricities when it comes to Linux taught me a
lot.
Now that I am finally letting the old mule go, I
would be remiss if I did not document my now-extensive knowledge of
making a modern Linux distro work on this computer. My
favorite is Suse, so I am documenting the step-by-step of the
installation as I do it one last time on my 600E before it goes up for sale.
Here is what the hardware looks like as we get started:
400 MHz Mobile Pentium II CPU
192 MB PC100 RAM (1 x 128 MB module + 1 x 32 MB module + 32 MB soldered
onto the motherboard)
If I were keeping the laptop, I
would replace the 32 MB module with another 128, as this would achieve
the machine's max capacity of 288 MB)
Internal cold-swappable cd-rom
Internal cold-swappable LS-120 drive/floppy
External Floppy
20 GB IBM/Fujitsu Hard Drive
Microsoft Wireless Notebook Optical Mouse
TRENDnet TBW-101UB Bluetooth Adapter
Linksys USB Hub
Dell-branded
3Com 575CT 10/100 PC Card NIC
Belkin F5D7010 802.11G CardBus Wireless NIC
As you can see, this laptop is quite "decked-out" with some cool PC
gadetry. Since hardware support
is
dependent on the kernel and not the distribution, any distro should
work fine. I choose Suse because of its excellent hardware detection.
Now, let's get started!
Prepare the BIOS:
Hold down the F1 key while turning the computer on and keep
it held down until the BIOS screen appears.
Disable quick
boot, DO NOT INITIALIZE, and then restart. Without this step
the sound card will never work.
Partition the hard drive:
I am a little bit picky about how my hard drive(s) get(s)
arranged, so I always use a third-party partitioner instead of the one
included with an OS's installer to get it just the way I like it.
I also like installing from the hard drive whenever possible,
and this requires copying the contents of the install DVD to a
partition before I can start Suse's install. My favorite
partitioner is the Gparted
Live CD. I first zero-filled the hard disk to
ensure that there was no buggy data left in the MBR to hinder me and
that my personal data was gone for good (my wife was actually using the
laptop to do our company's books, so it has to be gone for sure).
Since we're not dual-booting, we have the ability to create 4 primary
partitions without it getting too complicated. This is
perfect.
- hda1: ~30 MB ext2
-
this will be used for /boot.
If something
wierd happens and we have to cold-boot the machine without properly
shutting down, knowing that the boot data is safely on its own
filesystem and immune from corruption due to the hard restart assures
us that the machine will almost certainly be able to boot back up
without a problem. 30 MB seems kind of big for nothing but a
bootloader and a tiny kernel image, until you decide to do a kernel
update...
- hda2: ~1 GB swap
- many
people will take issue with a swap
partition
this big on such an old computer. The fact is that the
computer has a small amount of physical memory, even when it is maxed
out. We are going to be seeing a lot of data being swapped in
and out of the virtual memory as this machine runs modern software and
it stinks to sit on your hands waiting for a simple web browser to open
while your swap partition thrashes into infinity. This way we
know we have plenty of virtual RAM to spare and Firefox will open with
zeal. Keeping the swap space this far to the outside of the
disk also improves performance.
- hda3: ~13 GB
Reiserfs -
While Mr. Reiser's future may be
uncertain as
of this writing due to a pending murder investigation, his file system
is still a good one. The lightning quick Reiser4 is stable
now, but Suse does not support it without a kernel recompile, which we
aren't going to futz with today. So we are using Reiserfs
3.X. I choose this because of its unparalelled ability to
recover from errors.
- hda4: ~4.3 GB XFS
- XFS
means one thing to me: fast.
This is
the partition where we are going to keep the install data, so the faster it
is, the faster we can install Suse and/or add packages in the future.
Copy Install Data to hda4:
(You will have to beg, borrow, or #$?&% an external DVD-ROM drive for this step if you don't have one)
The idea here is to not have to juggle a half-dozen CD's
or wait all day on an internet install, so we're copying all of the
install data from CD's to the hard drive. Plug in an
external DVD drive and boot the computer to a recent Knoppix CD
(using the internal CD-ROM). Don't just hit enter at the
boot: prompt. You need to pass a few parameters to the kernel
to make Knoppix play a little bit better:
boot: knoppix
nodma
acpi=off apm=on pnpbios=off
When knoppix finishes booting, click on the hda4 desktop icon to
mount/open it, then open a Konsole and type:
su
Followed by:
chmod 777
/media/hda4
Simply right-clicking on the desktop icon and selecting "Change
read/write mode" does not work with XFS partitions in Knoppix 5.0.1 for
some reason. Hopefully this minor bug will be fixed in future
versions.
Now place the openSUSE install DVD in the external drive, click on the
desktop icon and drag/drop to copy all ~4 GB of installation goodness
to the hard drive.
(If you only have an external CDROM and not a DVD, you can also copy those to the partition and it will work)
Begin the installation:
I prefer to install an OS with all of my hardware set up
before hand if possible. Sometimes it is easier to remove
everything and then add items one at a time after the install is
complete. Do what you like, but this HOWTO is going to assume
that the cardbus slots are filled by the Dell/3Com NIC and the Belkin
wireless card, and the USB port is occupied by a hub holding the mouse
receiver, the bluetooth dongle, and the DVD burner. Boot up
the computer using an Internet
Installation CD. Despite its name, it can be used
to perform installs from a network, hard disk, CD/DVD, or other
sources. The CD will produce a boot menu that defaults to
booting from the hard disk. We don't want this, of course.
Cursor down to "Installation" (quickly! Before it
times out and tries to boot to the hard disk!), hit F3 and select
1024x768 (this will look much better than the default 800x600), hit F4
and select Hard Disk, fill in the top blank with "hda4" (no quotes),
tab to the bottom one, type "/" (no quotes), and hit enter.
Now type:
acpi=off apm=on
pnpbios=off
(it should appear in the "Boot Options" at the bottom as you type it)
and hit enter. A moment later you will be presented with a
pretty blue screen warning that the system does not have enough memory
to run Yast. This is hooey. I have started 10.2
installs on this computer using the 10.1 Internet Installation CD and
Yast started fine. Only the newer 10.2 Installation CD has
this complaint. It offers to remedy the situation by
activating some swap space. I guess its a good thing we
already partitioned the hard drive! Hit enter and it will
activate hda2 and use it.
Language:
I live in Texas, so I let it default to English.
If you need to change it to something else, that means you
are at least bilingual, and I am impressed that you are reading this
HOWTO.
License Agreement:
Read this if you like. I have more exciting
things to do, like watching paint dry.
System Analysys:
Because there is an external DVD drive connected to the
USB port, you will be prompted to load the "usb-storage" kernel module.
This is not necessary for installation and you can hit cancel
(or load it if you want. it really won't matter).
When prompted to select a mode, bullet "New
Installation" and click "Next". It should evaluate your
install data that was copied earlier and move on.
Time Zone:
If I need to explain this step, you probably have no
business trying to install an operating system. I will
comment that I typically prefer to keep the hardware clock set to the
Local Time, instead of the default UTC/GMT.
Desktop Selection:
I like KDE, and so does an apparent majority of Linux
users. It also seems to be the one that most people
converting from Windows find comfortable. If you choose
"Other" and select "Minimal Graphical System" there will be a
substantial performance benefit. you just won't have some of
the user-friendly perks of a full-blown desktop environment like KDE or
Gnome. Pick your favorite and move along.
Installation Summary:
This will take a while to populate. Click on the
"Expert" tab at the top while you are waiting. This is where
the most important settings are configured. The parts we care
about right now are:
Yikes!
It wants to delete ALL of the partitions we created,
including the one it is running from right now! Click on it,
then bullet "Create Custom Parition Setup", click "Next", bullet
"Custom Paritioning (for experts), and click "Next" again.
You should see 5 items in the list: the top one is the hard
drive and the rest are our 4 partitions, no longer marked for deletion.
- Select
"/dev/hda1"
and click the "Edit" button.
Bullet "Format" (Ext2 should already be selected.
Select it if it isn't) and set the mount point to "/boot" (no
quotes). Yes, it was already formatted by Gparted, but
openSUSE's installer is happier if it gets to do the format.
Click "OK".
- "/dev/hda2"
is our swap space. We
can't reformat it because it is already in use by Yast. It
should already be set to be mounted as "swap".
- Select
"/dev/hda3"
and click the "Edit"
button.
Bullet "Format" (Reiser should already be selected.
Select it if it isn't) and set the mount point to "/" (no
quotes). The same applies here as it does on hda1 for the
formatting we did with Gparted.
- "/dev/hda4"
can't be mounted right now because
it is in use by the installer. We'll add a mount point later.
You
could spend
hours digging around in here for the packages you want or don't want.
We're going to focus on a few key items in this HOWTO, and
you can play with the rest of the packages to your heart's content.
- When
you first click on "Software" it will
only
show the installation "Patterns". Change the patterns "Novell
AppArmor" and "Enterprise Software Management (ZENworks Linux
Management)" to "Taboo" (a red circle instead of a checkmark).
They are resource-hungry components that don't serve much
purpose for this computer except to slow it down. Add the
"GNOME Desktop Environment" and "GNOME Base System" if you want to try
GNOME.
- Click
the "Details..." button and change the
filter to "Search". Search for "smart" and check the packages
in the results named "smart" and "smart-gui".
- Do
another search for "mwavem" and add the
resulting package. You will need this if you want to use the
600E's internal modem.
- One last search needs to be done for
"setserial" so that you can use the built-in serial port and irda port.
- Boot
Loader Type: GRUB
- Location:
/dev/hda1
- Sections:
openSUSE 10.2 (default), Failsafe --
openSUSE 10.2
- Added
Kernel Parameters: splash=silent acpi=off
apm=on pnpbios=off
Click
"Accept", then confirm/dismiss a few license
agreements and confirmation dialogues and wait a while.
Perform Installation:
It should take about the same amount of time that it
takes to watch
your favorite movie, then reboot itself.
Root Password:
If all goes well, the computer will reboot and prompt
you
for a root password. Enter it twice and click "Next".
Hostname:
The default is fine, but I chage it to something
like "600E" so that the command prompts are more relevant.
Network:
- Network
Mode:
- Since we are
using a
laptop with a wireless card, we want
to use NetworkManager so that we
can roam around between networks. It should be enabled by
default. Enable it if it isn't.
- Firewall:
- There really
isn't
much need for a software firewall in
an OS as secure as this, but it
also doesn't hurt to have one. Leave it enabled if you want,
disable it if you don't want to hassle with it.
- The same thing
goes
for the SSH port if you have the
firewall enabled.
- IPv6:
- IPv6 is not
widely
deployed (yet) and may interfere with
your network functioning, so it won't hurt to disable it, but I leave
it enabled anyway and only disable it when there are problems.
- Network
Interfaces:
- The Dell/3Com
card is
listed and configured with DHCP by
default. This should be fine in most cases.
- The Belkin card
is
pointedly absent. It will
appear later
after we add some software that it requires following the install.
- DSL
Connections:
- Only in the
rarest
cases will there actually be something
listed here, even if you are using DSL.
- ISDN
Adapters:
- If you are
using one
of these, I'll meet you with Doc
Brown and Marty by the DeLorean later...
- Modems:
- The Thinkpad's
internal modem will not be detected unless
the
IBM ACP modem daemon is configured and running, so we'll have to take
care of that after the installation is complete.
- VNC
Remote
Administration:
- Laptops are
usually
the VNC client, not the server, so
this will probably need to be disabled, which should be the default.
- Proxy:
- Configure this
if you
have a proxy server. I
don't and have never had to mess with it.
Test Internet
Connection/Running Internet
Connection Test:
If the PC Card NIC is connected to a DSL modem or a
network that has
internet access (and a DHCP server) you can tell it to test the
internet and it should download the latest release notes for you (which
you will be able to read later).
Online Update:
If the internet connection test was successful, go ahead and let this
run. It will take a while and finish with a little window
reporting the result. If the configuration was
successful,
go ahead and run an update when prompted. There will be
plenty of
them and it will take a while.
Users:
Local authentication and a single user with automatic
login works fine
for most people. I set up a pretty generic user name and
password for whoever buys the computer. They can change it
easily in Yast if they want.
Clean Up:
More paint drying.
Release Notes:
There is not much relevant to the 600E in the release
notes as of this
writing, but it never hurts to give them a skimming over.
Hardware Configuration:
- The NeoMagic
video
chipset is detected and configured
without incident.
- The monitor is
detected
as a Generic LCD panel.
You can safely change it to an IBM THINKPAD 1024X768 TFT LCD
if you want.
- Leave the display
resolution at 1024x768, or set it there
if it is not already.
- Increasing the
color
depth from 16-bit to 24-bit won't
hinder performance like it used to, so go ahead and do that too.
- Setting up my
networked
HP OfficeJet 7210xi via CUPS/HPLIP
is a breeze, but I didn't do it this time since the lappy is being
sold. If you are shopping, most HP and Epson printers are
well supported in Suse these days.
- The sound on a
600E is
perhaps the most cussed-out, googled,
twiddled, piddled, battled, wrangled, and despairingly given-up on
piece of hardware in Linux history. It took me several years
to get this figured out. Contrary to the widespread myth that
so many experienced users actually believe, there is no kernel
recompile necessary. The problem lies in that the 600E's PCI
Crystal 46XX sound chip does not have the standard codec accompanying
it. IBM engineers instead opted for a Crystal 4239 ISA codec
that supports SB audio, which was requisite for a lot of software back
when this computer was built. Consequently, you must force
Linux to use the correct driver for the codec. For this to
work, QUICK BOOT MUST BE DISABLED IN THE BIOS (as described in the very
first step above), and the system MUST HAVE BEEN BOOTED WITH THE KERNEL
OPTION pnpbios=off
(as described in the Installation Summary/Booting step above).
If both steps have been taken, click on the sound card link,
selected the "not configured" CS4610 sound card, and click the "Edit"
button. When prompted, bullet "Advanced setup with
possibility to change options" and click next. This issue is
spread so far and wide that the developers at the ALSA project have
configured ALSA to detect a 600E and prompt to try the CS4236 driver
(which is the driver that supports the 4239).
Tell it to do so and hold your breath. If all goes
properly, the sound chip will be detected and most of the module
parameters will
be properly detected/set by default. You only need to confirm
them against this screen shot and fill in the ones not already set:
When you hit next, the module will be loaded and you
should get a horizontal slider for adjusting
master volume. If you get an error message, either one of the
above parameters is not correct, quick boot is enabled in the
BIOS, or the kernel is trying to get pnp data from the chip itself
because the kernel wasn't booted with the pnpbios=off
option.
You'll have to fix it later if this is the case. If
you DO have a slider, turn it all the way up, turn the volume all they
way up on the keyboard (Fn+PgUp a few times), and put your ear close to
the speakers when you click the "Test" button. It will be
very soft, but you should hear the test music. After you get
back to the main "Sound Configuration" screen, click the "Other" button
at the bottom and select "Volume..." to get the mixer up in front of
you. Turn everything all the way up EXCEPT THE MIC!
Turn down the volume by the keyboard (Fn+PgDn a few times)
and test again. You should have good, clear, loud music.
If you accidentally turn up the microphone, you will get
good,
clear, loud, squealing feedback. Click the "OK" button, the
hit
"Other" again and select
"Start Sequencer". Confirm that you want to start the MIDI
sequencer when the sound card starts and then click "Finish" to get
back to the "Hardware Configuration" screen.
- Unless you have
one on
the USB or in the cardbus slots, you
probably don't care about the TV Card configuration.
- Click on the
Bluetooth
link to set up the bluetooth
adapter. Bullet "Enable Bluetooth Services", give your
computer a name (the default is "BlueZ %h (%d)" and works really well,
because devices discovering your computer will report it based on its
hostname that way, so your devices will see the very distinct name
"BlueZ 600E (0)" or something similar). Set "Security
Manager" to ask for a PIN to keep strangers from pairing with your
computer without your consent. Click on "Advanced Daemon
Configuration..." and enable all of the daemons, especially DUND if you
want to tether a bluetooth-enabled cell phone to the laptop for mobile
internet access (I have written a HOWTO for this task here:
http://litljay.com/howtos/tether). Click on "Device
and Service Classes..." and
enable all of the service classes. Be sure to change the
device class to "Laptop" before you click "OK", then "Finish".
Click "Next" and Yast will write all of the relevant
hardware settings
you just configured. Then it should boot to a desktop.
Congratulations!
Give your Install Data a path:
For the DVD data to be accessible, it needs to be
mounted to a path on the filesystem. You can do this manually
by editing the fstab, but Yast automates the procedure pretty easily.
- Open Yast.
Go
to "System", then "Partitioner".
- Dismiss the
warning
about how badly this utility can pooch
your system. It's true, but not if you follow these
directions properly.
- Select
"/dev/hda4" and
click the "Edit" button.
- In the "Mount
Point"
box type "/susedvd" (no quotes) and
click "OK".
- Click "Apply",
then
"Apply" in the window that pops up.
Yast will create the path and make the fstab changes for you.
- Open a Konsole.
Type "su" (no quotes), enter the
root password, "mount -a" (no quotes), "cd /susedvd" (no quotes), and
then "ls" (no quotes).
- You should see a
list
of the contents of the DVD.
Set up Smart to get
more/better packages:
Yast has a pretty good package manger in it, but it
is buggy on a good
day. I like Smart and use it instead.
This will
also help you get some of your multimedia capabilities fixed that Suse
has disabled by default.
- On the K menu,
click on
"Applications", "System",
"Configuration", "Package Management (smart)". Enter the root
password when prompted.
- Click on "Edit",
then
"Channels"
- Click the "New"
button.
Bullet "Provide channel
information", click "OK", then bullet "RPM MetaData" and click "OK"
- Type an Alias,
Name,
and Base URL, then click OK.
The following table is a list of the ones I use.
The first two in the table are critical for the Suse
DVD and
the wireless card. The last one will help you get DVD
playback
and other multimedia functions working that Novell has crippled by
default due to legal liabilities.
| Suse DVD |
Suse DVD |
/susedvd/suse |
| Madwifi |
Madwifi |
http://madwifi.org/suse/10.2 |
| Crauch |
Crauch |
ftp://ftp.gwdg.de/linux/misc/suser-crauch/10.2 |
| Gnome |
Gnome |
http://repos.opensuse.org/GNOME:/STABLE/openSUSE_10.2 |
| Guru |
Guru |
http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.2/RPMS |
| KDE Applications |
KDE Applications |
http://repos.opensuse.org/KDE:/Backports/openSUSE_10.2 |
| KDE Updates |
KDE Updates |
http://repos.opensuse.org/KDE:/KDE3/openSUSE_10.2 |
| Mozilla Updates |
Mozilla Updates |
http://repos.opensuse.org/mozilla/openSUSE_10.2 |
| Packman |
Packman |
http://packman.unixheads.com/suse/10.2 |
| Suse Updates |
Suse Updates |
http://suse.mirrors.tds.net/pub/suse/update/10.2 |
| VideoLAN |
VideoLAN |
http://download.videolan.org/pub/videolan/vlc/SuSE/10.2 |
- Click on the
"Update
Channels"
icon. This
will update all of the sources. Smart is intelligent enough
not to waste time updating ones that haven't changed, like the Suse DVD
on your hard drive. Close and restart Smart to ensure that
your changes have taken.
- Click on the
"Upgrade
all packages"
icon
at the top. It will take a minute
to resolve all of the upgradeable packages, because there will be a lot.
- Of particular
interest
is the valuable Packman version K3B,
which will allow burning MP3 files to a regular audio CD, a tool that
comes crippled with Suse by default.
- Confirm that you
want
to upgrade the packages and let it
run. It will take a while to download/install them all, and
then you are back to a
boring Smart window.
- Reboot when the
install
is complete. This will get the computer utilizing all
of the updated KDE packages/updated kernel and so forth.
Enable the Belkin Wireless
Card:
I chose the belkin wireless card in particular
because it has an
atheros chipset, which is well supported in Linux via Madwifi.
- Open Smart again.
- Search
for
"madwifi".
- Select the
packages
"madwifi" and "madwifi-kmp-default".
- Click the "Apply
marked changes"
icon
at the top to confirm your
selections and install them.
- After the install
is
complete, plug in (or remove and
re-plug) the Belkin wireless card into one of the PC Card slots.
- The
knetworkmanager
tray applet should now list nearby
wireless networks for you to connect to.
Oddly, I find that I get a better signal by inserting
the card in the bottom slot instead of the top one.
Disable/Enable services:
Suse enables a lot of services by default that the
600E can't/won't use
and only serve to slow it down, so turn those off. It also
leaves out a few services that benefit the 600E. Open Yast
(root password required), go to "System", then "System Services
(Runlevel)". Bullet "Expert Mode" at the top. Go
down the list selecting each of the following and click the "Set/Reset"
button,
then "Disable the service":
- acpid (The 600E
does
not support ACPI. It uses
APM, so it does nothing to to enable this service)
- boot.lvm (unless
you
are using any logical volumes, but we
aren't in this HOWTO)
- boot.md (this is
only
needed when managing software RAID
arrays on the computer)
- irq_balancer
(this is
only for machines with multiple CPU's)
- nfs
(odds are very likely that you will be using the Windows-compatible
samba/cifs for network shares, not the *nix only NFS)
- nfsboot
Now go
back through the list and ENABLE the following services via the
same button as the ones you disabled:
- hplip (only if
you plan
to use an HP printer or all-in-one)
- irda (if you plan
to
use the 600E's infrared port)
- mwavem and ntp (if you plan to use the
600E's internal ACP modem)
- smartd (if you choose
to later add the right package, this
service may help warn if the hard drive is failing)
Click
"Finish", authorize it to save changes to the runlevels, then
reboot and watch closely as it boots for failed/unused services.
You may have to go back and re-enable or re-diable a few that
didn't "take" the first time. The "irda"
service may fail until we get
the infrared port working.
Modem:
Unless
you will be using
your 600E to send faxes or use dial-up internet (God help you), you
probably won't be using the included ACP modem. We did
install
the driver when we set up Suse, so it is already there if you will need
it. Instead of just repeating it all, there are good
instructions here:
http://www.faqs.org/docs/Linux-mini/ACP-Modem.html.
Infrared Port:
This
has caused many
people headaches over the years, but Suse 10.2 handles it with ease.
Open Yast»Hardware»Infrared Device.
Bullet
"Start IrDA" and select /dev/ttyS0. Don't bother with the
"Test"
button, as this was broken for me. I just clicked "Finish",
let
it start the service, and then pointed my camera phone at the infrared
port (between the audio ports and the PC Card ports on the right side
of the laptop). Any digital camera will be able to see if the port is
working. You should see a white light blink about once every
second. If it is not working, you may need to rerun the setup
and
set the port to /dev/ttyS1.
- After
performing this
step, the computer no longer was able to start the Belkin wireless NIC
if it was in the top slot. I was able to get around this bug
by
one of 2 methods:
- Run "modprobe ath_pci" (as root) from
the command line
- Unplug
the card, insert
it into the bottom slot, wait for the module to start (you can tell by
clicking on the NetworkManager icon on the panel), then move the card
back to the top slot (if I really want it there, even though the signal
isn't as strong).
LS120/Floppy drive(s):
I have
an external floppy
drive and an internal (swappable with the CD-ROM) LS120/floppy drive.
I usually prefer to use the LS120 because it is connected to
the
IDE bus instead of the slower floppy port, so it performs much better
with floppy disks than a conventional floppy drive. The LS120
(aka SuperDisk) format never really got off the ground, so I
only use the drive for floppy disks. I even bought
it in the
first place with those two facts in mind. I only use the
external
floppy if I will be needing both the internal CDROM and a floppy drive
at the same time or if I need 2 floppy drives at the same time.
Either drive must be installed before the computer is powered
on, and can be easily accessed via the "My
Computer" icon on the desktop.
- NEVER
try to remove the internal CDROM or LS120 while the amber light on the
underside of the computer is lit!!!
- The
external floppy can
be unplugged/replugged (the port is on the right side of the laptop
just forward of the audio ports) as often as needed after booting is
complete.
|