$Id: index.html,v 1.33 2005/03/04 04:04:51 dean Exp $

IBM ThinkPad 560

This is a collection of information about running Linux (and a bit about FreeBSD) on the ThinkPad 560. Use it at your own risk, I accept no responsibilities for damage you cause as a result of using this page, more information is available regarding the copyright and liabilities of this page.

Note: I'm assuming that you are already familiar with running and configuring Linux. If you're confused by any of the details here you might want to peruse the HOWTO archives for more information.

New Stuff (Mar 3rd 2005)

Fredrik Eriksson provided an update XF86Config.

New Stuff (Aug 12th 1998)

Several people have had problems with the latest IBM bios. It appears IBM has changed things again, and it completely breaks Linux. Nobody has a patch for the kernel yet to support the bios. But Olin Shivers has written a note describing how he worked around the problem.

New Stuff (May 6th 1998)

Hi folks, I'm sorry I really would like to spend time and collect all this information into one simple guide for the 560 series. But I just don't seem to have the time for it. If someone else wants to take over the information and rearrange it all, that's great! For now I'll just keep appending email here with minimal editing. - Dean.

New Stuff (Mar 18th 1998)

New Stuff (Jan 30th 1998)

New Stuff (Jan 29th 1998)

New Stuff (Dec 27th 1997)

New Stuff (Jul 1 1997)

I should probably stop saying I'll merge this stuff in later.

New Stuff (May 22 1997)

I'll merge this section in later... I'm on a long vacation right now and only checking email periodically.

New Stuff (May 12 1997)

I'll merge this section in later, too busy right now. Some new data:

General Info

I have the 120Mhz model with 12.1" TFT display. I'm pretty sure this all applies to the other models (except the 16-bit colour LCD stuff). I've got 40Mb RAM. I flashed the latest BIOS as of September 1996, you have to dig around on IBM's web site to find the details.

Should you ever need it, the Hardware Maintenance Manual is online .

My machine is partitioned roughly half-and-half with a FAT partition for Win95 and an ext2 partition for Linux (plus 32Mb swap for Linux). You need the FAT partition if you ever intend to use hibernation mode. In any event you should always hang on to the PS2.EXE that comes with the system since it is used to configure the bios settings. I'm not 100% certain that PS2.EXE lets you do everything that the Thinkpad Features program does under Win95. I completely re-installed Win95 to remove most of the default crud that comes with the system.

I am presently running Linux 2.0.26 with this config file (you will probably want to disable some of the things I have compiled in). I use pcmcia-2.8.22. I've tried pcmcia-2.9.1 but it didn't work with my scsi card, but I didn't put any effort into figuring out why (it's probably just a configuration setting I'm missing). With this configuration I am able to suspend, or hibernate when on battery, or when on AC without any PCMCIA cards installed.

If you get tired of seeing the "unknown PCI device" warnings during boot, then apply this patch. I generated that by digging through Intel's site until I found the right tools and info. A side note, the 82371MX, unlike its big brother the HX, does not do IDE DMA (and to confirm that, the technical spec for the tp560 shows that the DMA line isn't even connected on the IDE interface). However the tp560 bios does set the 82371MX chip for the fastest PIO mode by default.

Jont Allen <jba@research.att.com> reports that he has configured his machine without any FAT partition. It crashed when running on DC power within a few minutes (but was fine on AC power). The solution he found was to disable CONFIG_APM_CPU_IDLE.

X11 Info

(All this X information applies to FreeBSD as well as Linux.) All the X servers I've run so far require a program named cy9382 to run in 800x600 mode, which I have available for download (thanks go to Greg Minshall <minshall@Ipsilon.COM> for writing this). Compile that and put the executable in /usr/local/sbin/cy9382 (or any place you prefer). If you use startx to start your X sessions then check Valery's page for tweaks. I actually run my system in init mode 4, so I'm always running under xdm. This is on a Slackware system, so it's probably slightly different on another system. I add /usr/local/sbin/cy9382 -b to /etc/rc.d/rc.4 right before the call to xdm.

XFree86 versions 3.1.2E through 3.1.2G worked fine, but have all expired. XFree86 version 3.2 works fine as well, except that switching back to the text console produces garbage on the screen. The fix for that garbage is to run the setfont program from the kbd-0.91 package once in text mode. The cy9382.tar.gz package contains a working /etc/XF86Config. At this time you can only run in 256 colours using XFree86.

Xi Graphics' Accelerated X server version 2.1 will let you run in 800x600 with 65536 colours on the LCD (on the TFT models). It doesn't list the Cyber 9382 video chip explicitly, but you can choose another Trident chip, the TGUI9680 (w/1Mb) that matches close enough. You still have to use the cy9382 program. I have included a working /etc/Xaccel.ini configuration file. This is a $100 product that I feel is worth the money, you can try the demo version from their site to decide for yourself. (Look for product code AX-LINE-D for Linux and AX-FBSD-D for FreeBSD. They also have a laptop version of the product which I couldn't find on their order forms.)

Here are some xbench X11 benchmark results. The machines used to do these benchmarks were both 40Mb, 120Mhz, active matrix models (the cy9382 models from August 1996).

Xinside 2.1
16 bpp
Linux 2.0.30
Xinside 2.1
8 bpp
Linux 2.0.30
XFree86 3.3
16 bpp
FreeBSD 2.2.2
Xinside 2.1
16 bpp
FreeBSD 2.2.2
XFree86 3.3.1
16 bpp
FreeBSD 2.2.2
lineStones 183183 234686 136893 178081 106394
fillStones 11475 55977 5299 11578 8068
blitStones 2847 47109 2862 2861 2634
arcStones 3070880 6722866 1685725 2501563 4733926
textStones 210375 492500 67500 197312 75625
complexStones 10000 105424 7307 10000 16470
xStones 11046 105837 8657 11087 9750

At times your screen will blank and keystrokes will not restore it. This happens predictably with the Accelerated X server when switching to a text console, but can occur at other times and with the XFree86 server. This is related to the CONFIG_APM_DISPLAY_BLANK setting, and this patch corrects the behaviour in all cases that I've experienced so far. If the patch doesn't help then the reliable method I've found to restore the screen is to press Fn-F3 and then hit any key.

If you've enabled Fn-F8 640x480 magnifier using PS2.EXE, it won't work with the cy9382 settings above.

I've never used an external monitor with X, and I'm not really sure how to go about configuring X to support an external monitor.

Many X programs use fonts which waste a lot of screen real-estate when running in 800x600. You can tune most of them through X resources. In particular, here's my ~/.Xresources file. With this Netscape Navigator will use 10pt instead of 12pt fonts for its menus and such. (You may have to tinker with your ~/.xsession to get this to work, see /usr/X11R6/lib/X11/xdm/Xsession for the sequence of events that starts X.)

PCMCIA Info

I've successfully used a Megahertz 4288XJ modem, a 3com 3c589 ethernet card, and an Adaptec SlimSCSI 1460A under Linux. I doubt there's any specific problems with any PCMCIA cards, I only mention those so you know some that do work.

As I mentioned earlier, suspend while using AC power doesn't really work properly when a PCMCIA card is inserted. If you're on DC and resume with the ethernet card in (or the SCSI card) it may not be properly reconfigured. You should always "cardctl eject" a SCSI card before suspending (or use the cardinfo utility). It doesn't really matter if you eject a ethernet card first. But when you've resumed, you have to re-insert the card. This is actually a general Linux networking "feature" -- when an interface is deleted, all static routes for that interface are deleted. Linux is oddball this way (I'm not saying it's wrong), most other Unixes leave the static routes lying around.

If your sound is configured for IRQ 5 then you should add "exclude irq 5" to /etc/pcmcia/config.opts.

Sound Info

The one problem I've experienced with sound is that the internal microphone seems to feedback with the internal speaker if you turn the volume too loud. The kernel config I gave above depends on the settings you've used in the Thinkpad Features program (under Win95). Here's the /etc/soundconf file I use. I get sound from realaudio and quake just fine.

Jont Allen reports that the xmixer program can be used to avoid the feedback.

Misc Info

If you didn't know already, you have to play with the Thinkpad Features program or use PS2.EXE to enable your serial port, change your parallel port settings, or customize your APM settings. I've successfully used the serial port under Linux, and never tried the parallel port. I've also never used an external keyboard, but have used an external ps/2 mouse and trackball.

Try using the hdparm program (which is included in most distributions) to tune your disk spindown time. I added this to /etc/rc.d/rc.local:

if [ -x /usr/local/sbin/hdparm ]; then
	/usr/local/sbin/hdparm -c 1 -S 12 /dev/hda
fi;

To also assist with the disk spindown you should disable cron. You probably don't need any cron or at jobs on a laptop anyhow. In Slackware cron is started in /etc/rc.d/rc.M. syslogd also will cause the disk to spin up, but I prefer to leave it running.