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:
  • Partitioning:
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.
  • Software
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.
  • Booting
    • 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  «these last three are important!
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.
That's it!  This old laptop is now ready to kick butt and take names in a modern computing environment!




Back to the HOWTOS Page

Back to litljay.com