$Id: index.html,v 1.33 2005/03/04 04:04:51 dean Exp $
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.
Fredrik Eriksson provided an update XF86Config.
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.
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.
linux-laptop
mailing list.
I'm now installing Accelerated X on a thinkpad 560X and there are a couple of details I can add to the description there. Yes, it works with the two updates mentioned. You should choose Micron Transport XPE with 1.93 meg for the card type and "single frequency 800x600 @ 60hz" for the monitor type. On my second try I installed redhat 5.0 with no X stuff at all, but even so it decided to install ghostscript which requires XFree86-libs. I removed them, then installed Accelerated X and then some of the redhat packages like fvwm. You have to install these packages with rpm's --nodeps flag, in some cases because packages explicitly require XFree86-libs, in other because the shared library dependency code in RPM doesn't quite work.He later added:I installed 96 meg, but if you tell lilo you have 96 meg the machine hangs during boot. I put append="mem=92M" in my lilo.conf file and it now sees 92 meg. I think this has to do with the init ramdisk in the default redhat kernel. If you build a custom kernel this problem should go away. I have to do this anyway for the APM features.
By the way, the machine comes with two 2 gig partitions, and I used FIPS to split the first one in half. It worked fine, but you probably have to do it straight out of the box.
When you bring the system out of suspend by opening the case, the image on the screen is shifted to the right by about an inch. Switching out of the X server (CTRL-ALT-F1) and then back in again (CTRL-F7) fixes this.Occasionally the machine locks up tight on resume and you have to use a pencil to hit the recessed reset switch on the bottom.
Fn+F11
can be used to cycle through high power,
custom, and slow modes (which are configured through PS2.EXE or the
win95 bios utilities. There's no easy way to know what mode you're
currently in however.
Summary: - Toshiba 3.2G MK3205MAV works ($217 at PCProgress) - Chipset "tgui96xx" might work better with DSTN - No luck with the APM patch I bought a 560 with DSTN, 100Mhz, 800M HD last summer. Installed Slakware 3.2 with no problems, Pisarski's XF86Config worked right away. Only problem was that after using the PC card or floppy, I couldn't suspend. Tried applying your patch, but it couldn't apply 6 of 7 hunks, didn't have time figure out why. Recently bought the 3.2G Toshiba drive (MK3205MAV) and installed it. Only problem was a I9990302 error (No OS found) with LILO on the MBR. Worked fine with LILO on a partition. Great deal at $217. Haven't tried suspending to disk yet. Installed Slakware 3.4 (2.0.30 kernel), but the same XF86Config (with the Chipset commented out) file didn't work at all, even though I was using XFree 3.3.1, same as before. (flat gray screen until reboot). If I uncomment 'Chipset "cyber938x", it worked (with visible flicker) until a suspend, when there was strong striping. Same behavior as reported by Cheema. This problem seems to be fixed by setting the chipset to tgui96xx. The variety of XF86Config's needed may be due to software differences rather than changes in the DSTN screens. Applied your APM patch by hand, but it didn't help, even with recent BIOS.
I could get my Thinkpad 560X to work with the MetroX server in 640x480 4 bpp (click here for /etc/X11/XMetroconfig file) and in 320x200 8 bpp (click here) The other alternative is to buy the Accelerated X server from XInside to get 800x600 resolution.
Just FYI, I discovered that the erratic problems I've been having with suspend happened after I used the floppy and kerneld removed the floppy module automatically. If I did "rmmod floppy" manually as soon as I was done with the floppy drive, I could suspend without problems.
I'm now installing Accelerated X on a thinkpad 560X and there are a couple of details I can add to the description there. Yes, it works with the two updates mentioned. You should choose Micron Transport XPE with 1.93 meg for the card type and "single frequency 800x600 @ 60hz" for the monitor type. On my second try I installed redhat 5.0 with no X stuff at all, but even so it decided to install ghostscript which requires XFree86-libs. I removed them, then installed Accelerated X and then some of the redhat packages like fvwm. You have to install these packages with rpm's --nodeps flag, in some cases because packages explicitly require XFree86-libs, in other because the shared library dependency code in RPM doesn't quite work.
I installed 96 meg, but if you tell lilo you have 96 meg the machine hangs during boot. I put append="mem=92M" in my lilo.conf file and it now sees 92 meg. I think this has to do with the init ramdisk in the default redhat kernel. If you build a custom kernel this problem should go away. I have to do this anyway for the APM features.
By the way, the machine comes with two 2 gig partitions, and I used FIPS to split the first one in half. It worked fine, but you probably have to do it straight out of the box.
I was able to verify that the 560X does need my linux-apm patch. It has the same problem with apmd that the other models do.
I tried out a 560X with an unpatched linux-2.0.27 kernel, and it appeared to have absolutely no suspend/resume problems. So my patch below may no longer be required with recent Thinkpad 560 bioses. In my Copious Spare Time I intend to look into it some more.
Many folks choose to get rid of the FAT/win95 partition entirely.
I'd like to recommend some caution regarding this. There are two primary
reasons: hibernation, and PS2.EXE
. I personally wouldn't want
to be without hibernation, I use it frequently when I'm not on AC power.
PS2.EXE
is available on one of the Thinkpad Utility
Diskettes, the ones available for DOS. The Thinkpad BIOS has no
configuration utility built in, you muse use either PS2.EXE
or the windows Thinkpad Features program to control your bios.
As shipped 560s have the serial port disabled. You'll also find other
settings you may want to tweak. So at a bare minimum I suggest creating a
FAT partition which is memory size + 20Mb (i.e. for my 40Mb machine
I'd create a 60Mb partition). You should install DOS into that partition,
install PS2.EXE
, and perhaps you may want some linux recovery
tools (like a copy of the redhat boot/supp diskettes and
rawrite.exe
).
Scott Mottonen wrote to tell me about the Thinkpad 560X model:
I just spent a couple of days getting a ThinkPad 560X working with Linux and since you seem to have the most recently maintained Linux and ThinkPad 560 page, I thought I'd share with you what I learned.
The most important finding is that the TP560X has a different video chipset than the previous TP560 machines. It uses a NeoMagic chipset. I spent a couple of days trying to get XFree86 3.3.1 to work using Trident settings before I figured that out. From my reading of the newsgroups, there are no NeoMagic drivers for XFree86 and there aren't likely to be any anytime soon since the company apparently won't release specs. The Laptop Accelerated-X Display Server v4.1 from Xi Graphics (which is now a clearly differentiated product which costs twice as much as Accelerated-X Server costs) does work. An evaluation version is available on their web site (www.xinside.com). It only runs for 10 minutes and is intended to verify compatability before you buy (which is a good thing since the package costs $200). Two patches (update_4100.002.tar.gz and update_4100.012.tar.gz, also available on the web site) are needed for the TP560X.
The other finding is related to the unknown PCI devices. The 2.0.32 kernel from RedHat 5.0 reports only 3 unknown devices (as opposed to 8 reported as unknown in 2.0.18). I haven't applied your kernel patch, so I'm not sure if it resolves the remaining 3.
Mubashir Cheema has another set of X config files for the DSTN models, visit his page if you're interested. I suspect there's a few different models of DSTN based on all the various feedback I get on the DSTN configs not working.
Rob Robertson sent me more Xstone data for XFree86-3.3.1, I've merged it into the table below.
Brian N. Handy sent a message to freebsd-mobile indicating that he has his 560C working at 800x600 on an external monitor with these modelines:
Modeline "640x480" 28.32 640 664 760 800 480 491 493 525 ModeLine "800x600" 40.1 800 848 1000 1056 600 605 607 633
I switched from using AcceleratedX 2.1 to XFree86 3.3.1, mostly because I wanted to play with the LBX extensions in XFree86 3.3.1. I also started using the external monitor a lot, and found that it worked with both the AcceleratedX settings and XFree86 3.3 settings listed below. The big trick is that after each restart of the X server I would have to use Fn-F7 to move the display from external to internal and then back again. I also started using an external mouse and keyboard with a splitter, works like a charm.
FWIW I'm running the most recent BIOS as of September 1997, I find that upgrading the BIOS helps with a lot of the glitches, and may even be necessary to get my APM patch to work right. If you've got an older model you should dig around on IBM's site for the upgrade files.
A lot of people have asked about upgrading/replacing the hard drive, so I wrote up the steps I went through for replacement.
Ian Collier sent me mail indicating he's had mild success using my APM patches below with a Thinkpad 380D. He still has some problems though -- the console cursor disappears, and the sound stops working (the second seems to be a bios problem as it occurs under win95).
I should probably stop saying I'll merge this stuff in later.
Tony Parand Darugar has put together an XF86Config that runs 800x600 in 16 bit colour under XFree86-3.3 (TFT models). It's on his page, or right here. You do not need the cy9382 program when using XFree86-3.3.
Robert D. Pisarski sent me an XF86Config for XFree86-3.3 which he reports works at 800x600 on the dual-scan models. Give it a try.. It only works in 8-bit colour, but that's all that the internal screen can handle on dual-scan models. You do not need the cy9382 program when using XFree86-3.3.
Nathan J Kurz also has a method of getting 800x600 on the dual scan models. His method works with the older XFree86-3.1.2G and 3.2. Instead of using the cy9382 program below, use his set_DSTN_size program, docs included.
Rob Robertson did some benchmarking of XFree86-3.3 versus Xinside 2.1 under FreeBSD. I merged the results into the benchmark table below.
The apm patch below still has problems with suspends after the floppy drive has been used. I suggest building the floppy drive as a module. Additionally, after a single suspend/resume the text consoles remain blanked until a reboot, but X consoles seem to work fine. I plan to work on this a bit more when I can, but at the moment my tp560 is a little sick and needs repairs.
When trying to suspend, if you are on AC power then you will have to "cardctl suspend" or "cardctl eject" any pcmcia cards before it will succeed. Note that pcmcia-cs (up to 2.9.6 at least) is kind of anal about suspending network cards -- if you have any ESTABLISHED tcp/ip sessions it will refuse to suspend. I just commented out the netstat test in /etc/pcmcia/network.
I'll merge this section in later... I'm on a long vacation right now and only checking email periodically.
I have had two reports of people who can't get 800x600 to work on dual scan models. The cy9382 program doesn't help. If anyone has a solution please send me mail.
Notes about the suspend/resume patch: I forgot to mention that with
an ethernet card inserted you may have problems suspending. This is
because of how pcmcia-cs determins if the card is busy. You should be
able to suspend if you "cardctl eject" the card. Or, you can do what
I did, and hack /etc/pcmcia/network
to remove the
netstat
test down near the bottom. I'll provide a patch
later...
I'll merge this section in later, too busy right now. Some new data:
Newer ThinkPad 560s come with the Cyber 9385 video chip instead
of the Cyber 9382 video chip. The cy9382
program I had
on this page wouldn't work with the 9385. But I've tweaked it a bit and
I think it'll work now. Give it a try.
I've flashed the BIOS up to the april/97 rev. No problems to report.
My machine is now running RedHat 4.1, with pcmcia-cs-2.9.5, and a well hacked 2.0.30 kernel.
I've replaced my hard drive with the 2.1 Gb model from IBM (DTNA-22160). This is what all the new tp560s come with. It seems quieter and faster than the 800Mb model I originally had. No problems to report with this drive. A friend bought the Toshiba 2 Gb disk for his tp560, which is a bit cheaper than the IBM model, and he had no problems (except that hibernation only works on IBM drives).
I think I've solved most of the suspend/resume problems. You can try out this kernel patch.
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
.
(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.)
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
.
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.
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.