Slackware Linux on the IBM Thinkpad 560Z

Copyright © 2004-2006 by Zack T Smith
All rights reserved.

0. System Description

CPU Pentium II 233 MHz
L1 cache 16 kB data, 16 kB instruction
L2 cache 512 kB
RAM 32 MB base + 64 sodimm = 96 MB
HD 40 gig Hitachi (upgraded)
Video Neomagic NM2160 MagicGraph 128X
Sound CS4231?

1. Installation

The following is a description of how to install Slackware Linux 10 on the Thinkpad 560z, which is a Pentium II system.

Because the video performance of the system is significantly better under Windows than it is under Linux, I would recommend keeping Windows on the computer for things such as web browsing.

On my system, I upgraded to a 40 gig hard drive with 6 gig for Windows 98SE, and the remaining area for Linux. I had previously also used the stock 4 gig drive in a 2/2 arrangement.

  1. If you already have Windows installed and want to retain it, but your drive is one big FAT partition used by Windows, you can use the FIPS utility (from here) to reduce the size of your Windows (FAT16 or FAT32) partition. You will have to run that in MSDOS, so prepare an MSDOS boot floppy, put FIPS on it, and boot from that floppy to run FIPS.
  2. Download the three root/boot floppies from the following locations, also getting RAWRITE to write them to floppies.
  3. Run RAWRITE in at the MSDOS command-line to create the root/boot floppies.
  4. Download the A and AP series minimally from this directory. A utility such as the Windows program WS_FTP95 can make doing so easier. Write these to a USB flash drive.
  5. If you used FIPS or otherwise want to use the Linux fdisk to change your partitions, you can do that by booting from the boot floppy, then the root floppies; OR, you can download the "RIP" (rescue is possible) rescue disk for this purpose (google for it). Either way, you will eventually get to a login prompt (no password needed) and then to the Bash prompt. Using fdisk: At the Bash prompt, type fdisk /dev/hda and create your main Linux partition, set the boot flag on that partition and write the new partition table. You should also create a small Linux swap partition. Then reboot. Commands are as follows:
    p = print list of partitions
    n = create new partition
    t = change partition type
    w = write new partition table
    a = set boot partition
    x = edit
    
  6. To install Linux, boot from the boot floppy, proceeding through the root floppies as directed. Finally upon reaching the login prompt, log in as root. No password is required.
  7. Reboot and boot from the floppies again. This time, after logging in as root, do the following.
    1. Plug in the USB flash drive.
    2. Type mkdir /usb.
    3. Type mount /dev/sda1 /usb.
    4. Finally run "setup", which is Slackware's self-explanatory installation program, specifying that you want to install from a premounted directory.
  8. Note, do not install the LILO boot loader. It is incompatible with the 560z (oddly, because it works with the 560 and 560x) and you will need to boot Linux from MSDOS.

If you are using the stock 4 gig drive, you can create a Linux partition that is 1.8 gigs and that will be quite sufficient. I also created a Linux Swap partition of 80 megs. I installed most of the A, AP, D, and L series files as well as the Linux kernel sources for version 2.6.9, and I had 950 megs free afterwards. Mind you, to fit Linux in 1.8 gigs and have almost 1 gig free afterwards, you will need to delete junk you don't need e.g. Samba, Java, and the CD writing software.

2. Drivers

2.1. Video

The 560Z has a Neomagic Corporation NM2160 MagicGraph 128X.
2.1.1. X Windows
X seems to find the NM2160 and recognize it -- it's not clear however that there's any acceleration. In fact I would call it slow.
2.1.2. Framebuffer
Although the framebuffer driver "neofb.c" doesn't reject the NM2160 it seems that much of the chip's capability is ignored by the driver because it was written for subsequent chips. (Developers: if you're interested, some NM2160 registers are described here.)

Therefore, I suggest using the standard VESA driver because that driver is being continually improved and it is certainly fast enough.

Note! My in-kernel windowing system FBUI works well with the VESA interface and I've included routines for faster drawing.

To set the VESA mode in LILO to get the framebuffer console, firstly compile the kernel to enable the Framebuffer and the framebuffer console, then set the video mode in lilo.conf as vga=789 which is 24-bit RGB video, or as vga=788 for 16-bit RGB. Then, run lilo.

2.2. Sound

The sound chip is said by some people to be a CS4237b on the ISA bus. It is not a plug-and-play chip, but rather you can configure it under MSDOS using the PS2.exe utility.

Under Slackware 10.2's provided 2.4.31 kernel, the chip is automatically detected as a CS4231 and that driver is loaded, not the CS4236 driver. And the CS4231 driver works just fine. I have not gotten it to work under 2.6 yet.

You do not need to run alsaconf. To check if the CS4231 driver is loaded, do a "cat /proc/dma".

If you experience any profound problems, I would suggest that you turn the 506z off, turn it over, open the lithium battery slot and remove the battery for a few seconds, then reinsert it. This will reset the I/O devices to system defaults.

2.3. Power Management: ACPI

The ACPI driver in the 2.6.9 kernel works wonderfully. You can look at the status of various PM related devices in /proc/acpi.

2.4. Hard drive

Since this is an older machine, it is fussy about which newer drives it will accept, even if you update the BIOS to the final version which ought to know about bigger drives.

Key points:

  • LILO did not work with two 40 gig drives that I tried.
  • I did not try LILO with my 4 gig stock drive.
  • The 560z running Windows cannot see beyond roughly the 7 gig mark.
  • Linux can see the entire drive contents ... this was true for my two 40 gig drives and I did not try anything larger.
  • To run Linux: boot to MSDOS and use LOADLIN.EXE to boot Linux.

2.5. USB

USB flash drives work like a charm. I haven't tried printing.

2.6. Printing via lp0

Catting a file to lp0 is the method I have always used for printing. It works fine.

2.7. PCMCIA

Under kernel 2.4, PCMCIA works fine, although not all drivers are provided in that kernel that you may need.

With kernel 2.6.15, which is the latest I've tried, PCMCIA is more of a problem. It helps to run cardmgr.

Note, I have not seen Cardbus cards working properly. Only 16 bit.

This is a kernel dot-config file for 2.6.15 to permit use of PCMCIA.

3. Performance

3.1. Video

3.1.1. X Windows
The X server performance is not great, however Xine plays MPEG1 movies very fast indeed. If you plan to use X, you should disable the opaque window move feature.
3.1.2. Framebuffer
My FBUI in-kernel GUI is very fast in VESA mode.

3.2. Hard drive

Performance of my 4GB standard IBM hard drive is:

From hdparm -T:

/dev/hda:
Timing buffer-cache reads:   212 MB in  2.01 seconds =  105.47 MB/sec

hdparm -t:

/dev/hda:
Timing buffered disk reads:   24 MB in  3.05 seconds =  7.87 MB/sec

I have since put in a 40 gig Hitachi drive and the performance is as follows:

Buffer-cache: 212 MB in 2 seconds = 106 MB/sec
Buffered-disk reads: 84 MB in 3 seconds = 27 MB/sec

Clearly, upgrading the hard drive was worth it for the speed increase alone.

It's also always good to put these in your /etc/rc.d/rc.0 :

/usr/sbin/hdparm -f /dev/hda     [flush the hard drive cache]
/usr/sbin/hdparm -S 1 /dev/hda   [get it to spin down ASAP]

3.3. Processor

Running the BYTE drystone 2 without register variables, which is at http://www.anime.net/~goemon/benchmarks.html, I get:
TEST                                        INDEX
Dhrystone 2 without register variables      17.1

This is 25% faster than the 560X, which got an index of 13.6.

3.4. Memory Bandwidth

To ascertain memory performance, I wrote a utility called "bandwidth". You can see the results of testing this laptop here.

3.5. Power Utilization

Here is what I've measured using a Kill-A-Watt meter:

CPU load Screen brightness level Battery status Watts used
idle maximum fully charged 26 W
idle minimum fully charged 21 W
100% maximum fully charged 39 W
100% minimum fully charged 33 W

4. Manual

You've been searching for the hardware maintenance manual, and here it is: Link.

If that link is dead, search google for 56zhmm.pdf.

5. Thinkpad links

  • The perfect case for the 560Z. Just add foam.
  • I got a replacement for the Lithium coin battery at a Battery Plus retail store. The install took about 5 minutes and cost me only US$7. Link

eXTReMe Tracker

Links