ThinkPad 560E + OpenStep 4.2

Photo of Thinkpad 560E System, running OpenStep 4.2
One Fancy Commercial Unix Portable Battlestation, ca. 1997

I’ve now tried out a few of the things I bought the Thinkpad 506E I posted about a while ago to try, and there are some interesting notes to share before the semester gets underway and I run out of energy again.

I decided amid some resultant discussions (Hi HN!) from my last post on this machine to give myself a conduct of not physically opening the hardware while I play with it, unless the HDD dies or the like. Doing so is making me exercise some long-dormant skills, which has been extremely fun.

So far I’ve amassed a pile of compatible accessories, booted into NetBSD and imaged off the original HDD contents, installed OpenStep 4.2, fixed the drivers, updated to Patch4, and very briefly taken it online before an irritating networking problem arose. I’ve also run into a problem getting RhapsodyDR2 on, which will likely be the next time-sink.

How much has this dumb lark cost me?

I’ve been keeping a running total because it’s funny. It also serves as an equipment list.

  • ThinkPad 560E: $19.99 (Shopgoodwill)
  • CR2025 Battery $0.55 (1@$10/5.50) (Amazon)
  • ThinkPad External Floppy 05k2643 (one with the 17mm connector) $12.95 (eBay)
  • Appropriate IBM branded 16v/3.5A power supply $6.37 (eBay)
  • 64MB 60ns 144pin 3.3v EDO SODIMM $9.99 (eBay)
  • Adaptec SlimSCSI 1460D PCMCIA card $20.50 (eBay)
  • SCSI2SD V5.1 + 4-pin Molex to Berg Cable $71.19 (Inertial Computing)
  • IDC50 SCSI Cable $15 (cablesonline)
  • HPDB50 to IDC50 adapter $11.95 (cablesonline)
  • 3Com EtherLink III LAN Card – 10BASE-T & Coax 3C589D: $26.18 (eBay)

So my $20 cheap old laptop has turned into a $200 project – strictly $194.67, but I also used some RS232 adapters, SD cards, floppies, cables and such that I already had – so let’s round to $200 for a literal 10x what the machine cost. Fortunately the most expensive part there (The SCSI2SD) is something I’ll use in several other projects.

Backing up the Original System

While I was playing with the installed Windows95 system I was pretty pleased with it, so I decided I wanted to keep the system image.

At first I moved some files on and off with HyperTerminal (Not fully installed when I got it, but the files were present so I could just activate it) and good old zmodem transfers to a USB-Serial adapter with a level shifter talking to picocom on a modern Linux host. I forget just how slow 115200bps is, and that’s the highest it wants to negotiate (Oddly, it will go higher on the IRDA port). Note that with the BIOS in the stock configuration, COM1 is the IRDA port, COM2 is the physical serial port. Don’t spend half an hour trying to zmodem files from the ether on an IRDA port pointed nowhere, wondering what is wrong with your adapters. But that process wasn’t fast, and wasn’t giving me a way to get a full restorable image.

Photo of the cable nest with the backup scheme that worked.
SCSI2SD + NetBSD = Backup


…So I used NetBSD 5.1 Install Floppies (ca. 2010; last version that could boot from only 2 floppies) with the SCSI PCMCIA card and SCSI2SD to image the original Windows95 install in case I wanted to restore it later. That process was a little fiddly, documented:
On one of my Linux boxes, I made a 4GB partition on my SD card, zeroed it out with dd, configured the SCSI2SD to match, attached it to the 560E via the Adaptec 1460B SCSI adapter, the HD40 cable, and a HD50 to IDC50 adapter meant to be used in the other direction in a card slot, and formatted the partition FAT32 from Windows on the 560E just to make sure everything was working.

APA1460D initialization on NetBSD 5.1 in this configuration is a little touchy for reasons I haven’t determined, it didn’t initialize properly on the first boot, I booted into Windows 95, checked that the controller and SD card initialized properly, hot-rebooted, and the 2nd time it was fine. On later boots I ran into more issues initializing that would come and go.

Watching dmesg, the internal disc comes up as wd0, the virtual SCSI HDD comes up as sd0, and neither had BSD disklabels, so I could do a mount /dev/wd0e /mnt2 (To check that it is in fact my Windows install; partitions without labels are enumerated starting at e).
So I did a (Don’t do this)
umount /mnt2
mount /dev/sd0e /mnt
dd if=/dev/wd0e of=/mnt/tp506win95.img

and watched the blinkelights for half an hour.

A quick mount of the SD Card (I’m using the first partition as the HDD, so it just mounts) to extract the image, a sudo mount -o loop -t vfat tp560win95partition.img /mnt/ to verify the data is there, and … then realized I’m dumb, and need the boot sector for a useful image,
The second boot required I remove and re-insert the PCMCIA card a couple times to get a good initialization (Failed with probe(aic1:0:n:0) generic HBA error aic1: SCSI bus reset messages for 6 IDs on times it didn’t) but it did eventually initialize successfully, which is better than needing to first boot another OS to do the initialization.

I then did a (Do this)

dd if=/dev/rwd0d of=/mnt/TP506HDD.img

to get the whole disk. That took a little looking up, I’m not quite clear why the raw wd device shows up at rwd0d (why the d?) under NetBSD, but it was documented and it worked.

Another slightly alarmingly long copy process later, I pulled my HDD image, did a quick
qemu-system-i386 TP506HDD.img
on a copy of the image and booted it just to make sure it was OK.

I’ve made a copy of the disk image to my backup server, and now we’re on to installing fun OSes!

Installing and Configuring OpenStep 4.2

Photo showing the last screen of the "NeXT Mach Operating System" installer.
The nest of cables (and existing desk mess) at the end of the OpenStep Install

I got media from “the internet” – it’s easy to find but I don’t want to link grey-ware here just to avoid hassle. You’ll need an “Install” floppy (boot disk) a “Driver” floppy (has storage drivers and such) and a CD in a compatible drive for the install process.

I’m using my IBM 17mm external floppy drive populated with some old 1.44MB discs I that went over with ufiformat a couple times in my external USB floppy drive before dding the floppy images on, and the SCSI2SD+SlimSCSI 1460D as the CD and drive.

The SCSI2SD is pretty easy to set up one volume on, and pretty klutzy to set up multiple volumes on, particularly if they have different block sizes. I decided to do my backup drive (above) and install CD in one go, on ID 0 and 1 respectively, so I set up an SD card and entered the matching settings in scsi2sd-util (Set device 0 to type Fixed Hard Drive, start sector 0, 8388608 sectors, 512 bytes per sector, with the default 63 sectors per track, 255 heads per heads per cylinder)

For the 4GB backup volume,

sudo dd if=/dev/zero of=/dev/sdb count=8192K bs=512

some math
(8388608*512)/2048
2097152.000000

which means the CD goes on with

sudo dd if=~/Downloads/OSes/OPENSTEP_4.2.iso seek=2097152 of=/dev/sdb bs=2048

And set device 1 in scsi2sd-util to type Optical Drive, start sector 8388608, 250086 sectors, 2048 bytes per sector, and otherwise default. After this round I switched to just using one drive at a time since I didn’t need more than one (and I cooked my setup trying to add the CD image I had the Patch4 files on).

Then do the install and driver floppies as normal, select drivers when prompted:
CDROM: Adaptec PCMCIA to 6030 SCSI adapter
HDD: EIDE and ATAPI Device Controller
and let the installer run. It will not be quick, and there will be a few prompts and one reboot.

Once installed, pop into the configuration manager and do some driver adjustment.

Sound is an ESS 1×88 Audio device, I saw an IRQ conflict on IRQ5 when I went to add the ES1x88 audio driver, since the PCIC (Intel 82365 PCMCIA controller) already has it – I moved the latter to IRQ3 and everything seems happy.

Video card probed as Trident Generic PCI Display adapter, which only got me 640×480 black and white. This is because the 760ED driver (supports 760E,ED, and 560) from NeXTanswer #2507 is not on the installer, grab it from an archive, get it on the machine (I used an HFS formatted floppy since it seems to be the most compatible shuttle medium), install, add the ThinkPad 560 adapter in the display settings, reboot, and receive full 800×600 16bpp color.

…So How is OpenStep on Period Hardware?

The experience is … surprisingly bad. It’s extremely sluggish compared to other things I’ve booted on this machine, especially when it hits the disk. Very little software is actually available for x86 OpenStep (Most of the available archived stuff is for NextStep 3.x on 68k). The UI has odd quirks (eg. OS components are full of textboxes that don’t save changes unless you hit enter, which doesn’t produce a character). The user experience is not making me reconsider my wonder that Apple looked at this in ’96 and thought “yeah, this is the best option for the future.” It is, however, not a bad Unix for the time. The default csh is feeble, but it ships with a decent zsh and a pretty competent set of utilities.

Getting things on and off the OpenStep system without Ethernet is a bit annoying. Modern Linux does not appear to know how to write NEXT UFS format floppies, so you get FAT or HFS as interchange formats. HFS is preferable, while modern Linux is a little idiosyncratic about HFS (you might have to mount/write as root), it works and doesn’t mangle like FAT (8+3 only). Also, remember you have to do Workspace>Disk>Check for Disks to mount a floppy, OpenStep doesn’t autodetect insertions.

Likewise, there is no bundled serial terminal, much less one that can do file transfer, I installed Kermit, because Kermit is available on every half-rotten potato platform made in the last half century. However, serial port identification and permissions are special and I’ve never had it work reliably. There were some nice native terminal emulators available for NextStep and the weird serial ports on the black hardware machines, and a few for OpenStep on white hardware, but I haven’t found a usable (not commercial software from a long dead company that needs a license key) copy of anything suitable while browsing about.

At this point I decided I needed an Ethernet adapter that would work with the system. The only PCMCIA Ethernet chard I had around was a SMC8035TX, which is CardBus and hence incompatible with the 560E. There is a list on the preterhuman wiki of supposedly-supported PCMCIA cards, the most common supported flavor is the 3Com 3C589 family. Be careful on eBay, there are a ton of them floating around with missing dongles, mismatched dongles, broken xjack connectors, and other things that render them useless. I found a 3C589D with dongle in a BIN eBay auction for $27 shipped, and then a different kind of fun began.

Briefly Succeeding and Repeatedly Failing at Networking

Screenshot of successful network use.
A brief interval of sort-of working network.

The 3Com EtherLink III PCMCIA Adapter, 3C589D I ordered connected under OpenStep… twice. And with issues then. When it connected, it would mostly take settings (remember – no dhcp) from /etc/hostconfig, or from hand-issued ifconfig commands… except it didn’t want to let me change the netmask from 255.255.255.0 to suit the ranges in the house. That works properly in a VM, so there must be something particular to the configuration. Since then, it always selects the non-existent AUI connector instead of the 10Base-T, and lets you know it’s doing it in the syslog and by not turning on the link light. During the two times it did work, it’s an absolutely stock 4.3BSD TCP/IP stack with all the expected utilities… plus NeXT’s proprietary NetInfo thing trying to fight you help layered over top. It took Apple until OS X 10.4 to completely excise that unhelpful mess.

Always AUI.  Always.  Which be OK if there were an AUI connector.
Openstep “Helpfully” selecting the non-existent AUI connector on my 3C589D network adapter

After it stopped connecting I did verify the card and dongle are OK and match with, again, NetBSD 5.1 boot disks: zero trouble, brought the interface up, dhcp worked, traffic passed, all good.

Somewhere in my attempts to manipulate the NIC configuration, it hard-hung while I was messing around in the host configuration manager, and cooked the install. Completely cooked, the bootloader is there, but there are no configs for the kernel to load, and NetBSD couldn’t find the partition table, so I did the install process again. That’s pretty brittle, even for the era.

I can find several sources that say the 3C589D works properly in Rhapsody DR2, so I’m guessing there is a difference in the driver versions. I would test my “The v5.01 drivers from Rhapsody DR2 understand the D suffix cards’ media select behavior, but the v4.03 drivers in 4.2(Patch4) do not” theory, but..

Trying to install Rhapsody DR2

The install + driver floppies load fine, but the Adaptec PCMCIA 6030 SCSI Adapter driver on the DR2 discs doesn’t want to initialize my 1460D, so I can’t get the install CD to show up. It’s possible I have an issue with my SCSI setup since it was a little twitchy about initializing under NetBSD as well; somewhere on the “to try” list is just blowing everything out and carefully scrubbing the PCMCIA contacts with contact cleaner – it’s conceivable the flaky network behavior is also related.

Other and Future Fun

Before I settled on NetBSD floppies for doing the backup I was playing with old Linux boot floppy sets, especially tomsrtbt which always gives me nostalgia glow. Unfortunately, it was (as ever) a hassle to get extra drivers for things like the PCMCIA SCSI adapter in (y’all remember Linux<2.4? Hard times.), so while it worked perfectly well as a basic system, it didn’t help with the hacking at hand. Likewise, the experience under NetBSD seemed quite good, I might make a game of loading a modern NetBSD install on at some point, just to play with the old “NetBSD turns any given potato into a serviceable workstation” meme, like I used to do with a hand-me-down Centris 610.

I should probably try transplanting some drivers between the OpenStep 4.2 and Rhapsody DR2 systems to see if I can cobble a fully functional set of drivers for either, or find a network adapter that actually works under 4.2. Speaking of OpenStep/Rhapsody drivers, while I was poking around, I learned that some delightful people wrote a VirtualBox Video Driver for NeXTStep3.3-RhapsodyDR2 a few years ago, which makes it much more pleasant to work with under virtualization.

I’d also like to give the 560E a whirl under BeOS, since that’s always my preferred interesting OS of the ’90s, the apples-to-apples comparison (pun absolutely intended) would be fun. I think there are drivers for all the same accessories…

This entry was posted in Computers, DIY, General, Objects. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *