OS X on PB 2400c

by Ivan Drucker

August 15, 2002

I have succesfully turned my 2400 into a Mac OS X machine. Unfortunately, its G3/320 card died (on September 11 in downtown Manhattan, mysteriously enough), so I'm on the 603ev/180, which is, I'm finding, too slow for everyday use. However, it makes an excellent server!

I had three goals. The first was installing OS X; the second was finding some kind of networking that would work for me; the third was figuring out external storage support, since I wanted a large file server.

First, phase one: installation. Being able to run OS X is provided by free software called XPostFacto, which is available from Other World Computing and which can be found at http://eshop.macsales.com/osxcenter/xpostfacto. However, I paid the $10 support fee, which has been more than worth it, as the author has been very helpful and I think the project should be supported. XPF (as it is abbreviated to) will allow you to run the Mac OS X software and installer on PowerSurge-family machines and their descendants, meaning 7300-9600 desktops and the 2400, 3400 and original PowerBook G3. It's very impressive.

First, I partitioned my 20GB drive with Drive Setup to have an X partition (which, like the beige G3 desktop and Wall Street, must reside in the first 8GB of the drive), a 9 partition, and a large empty partition. I then installed 9 as usual, added my wireless (and wired) networking extensions, and downloaded XPF. I then just ran XPF, put my OS X CD in the CD-ROM drive, and watched my 2400 begin to boot into X!

However, I didn't get very far. While I was able to start the OS X installer CD, the CD was in an older SCSI CD-ROM drive which was unrecognized by the Mac OS X driver (even though it had been patched to support more drives as part of XPF). So it would boot the installer CD up to a certain point, and then hang. I tried other methods, such as dittoing (see http://www.bombich.com) the CD to my hard drive and installing from that, but the 2400 would have none of it. I also tried to make an XPF boot CD, but that didn't work either.

Finally I took the drive out of my 2400 (never a fun process) and put it in a FireWire enclosure, and did a vanilla OS X install onto it from my iBook. Then I put it back in my 2400, and booted from the 9 partition, and ran XPF, which fortunately will install its extensions onto an OS X installation even after it's been installed. Success! I can't tell you how exciting it was to see the deep blue startup screen with the strobing progress bar and lovely drop shadows. I almost couldn't grasp it. It matched my blue Yu-Plan keyboard!

I set up my computer to boot into Open Firmware by default (XPF makes this easy, it's just a menu item to select), and that effectively gave me a boot-switcher: "boot" for X, "bye" for 9.

Now it was time for Phase II. In this day and age, a computer that isn't on the net isn't a computer at all. Practically every Mac ever produced has an Ethernet port, which Mac OS X supports...but not the 2400, of course. And because practically every Mac ever produced has Ethernet, it means that almost no manufacturer that I have found has OS X drivers available for their Ethernet PC cards; at any rate, Farallon/Proxim certainly don't for their EtherMac 10Base-T card, which is what I have. I was prepared to buy another if I could find one that was supported, but from who?

I thought I'd try to end run around the problem by using 802.11b with my Farallon/Proxim SkyLine 11Mbps card. I knew that there was an open-source driver available for a lot of wireless cards (http://wirelessdriver.sourceforge.net) and that I had seen it used successfully with my very card on a Pismo. Unfortunately, it caused a kernel panic at startup, which was confirmed by another 2400 user on the XPF forum. I looked around for other manufacturers with OS X support for their wireless cards, but the couple that I've found use drivers that are based on the same source, so I felt sure I'd get the same result.

Oh well, back to Ethernet, which is what I really wanted to use anyway. Supposedly X has built-in support for cards which use the DEC Tulip chipset. Unfortunately, even though it's a common chipset, it's not always obvious or easy to figure out what chipset is being used in a given card without buying it first (and sometimes not even then). The strongest candidate that I found was the MPC200 from MacSense, which apparently works in X without installing drivers, according to the manufacturer's web site. There were two problems with this. One was that the card was Cardbus (32-bit), and I hadn't Cardbus-enabled my machine; the other was that it was $100, which I didn't want to spend, and more importantly it wasn't at my local CompUSA, and I wanted to get it working that day! (In retrospect, I might have been able to find the MacSense card if I had called the Mac shops around town...but who knows.)

I also realized that I'd have to Cardbus-enable my 2400, if not for Ethernet, then certainly for FireWire, as their ain't no such thing as a 16-bit FireWire card. I would have had MCE do it, but I didn't want to wait! And thanks to the info and links on Mac2400, I learned which resistors needed to be broken off...I took a deep breath and did it. I figured a lot could go wrong here. I had no idea if I was doing the right thing, the right way. And I had no idea if XPF and/or OS X could support a hacked 2400!

A long time ago, I bought a PCAlly USB card which never worked for me; I was hoping it work on my unmodified 2400, as another Mac2400 reader found it did for his. I dug it out, and inserted it... and presto, I was using an Apple Pro Mouse with OS X! No drivers, no muss, no fuss, it just worked. I was amazed.

But, again, which Ethernet card? I did some research and it appeared to me that the MPC200 was identical to the PCMPC200 sold by Linksys. It was $60, which was more palatable, and they had it at CompUSA. I bou and excitedly put it in...nothing. I don't know whether it is a problem with X, with XPF, with the 2400, or in fact whether the cards are in fact identical at all. I just know that it didn't work and that I was bummed.

Back to the drawing board. I once again scoured the net for a manufacturer with OS X support for their Ethernet PC Card. I found no one except...Asante! They had an unsupported driver for their card. Their card was $68 (though I had a hard time locating for sale anywhere, even online). I downloaded their driver to check it out and discovered that it was not even theirs at all; it was written by Realtek and the documentation in no way specifically referred to the Asante card. I hadn't heard of Realtek but had come across their name many times while trying to find drivers; apparently they are an inexpensive and very common chipset, especially on lower-end cards, and so on other platforms (e.g. Linux) there are a lot of people who have put work into supporting them.

I went to Realtek's website (http://www.realtek.com.tw), and, sure enough, I found the same driver -- actually, a newer version. Well, I was excited -- here were specific drivers for a specific card. The only problem was that, again, I didn't know where I could get the Asante immediately. But I figured that if I could find another card (including the zillions which don't have Mac support) which used the Realtek chipset, that might put me in good shape. Using what the CompUSA website said was in stock at my store, I searched on every card to see if I could figure out anything definitive about its chipset.

In the end, the most promising candidate was CompUSA house brand 10/100 Cardbus card, which was based on the Realtek chipset. $20. No joke. I took back the Linksys, bought the CompUSA card, installed the driver (which I downloaded in OS 9, of course)...and omigod it worked. It worked! It registered itself as "Built-in Ethernet" in the Network System Preferences. I felt quite triumphant! Soon, I was on the web, rocking and rolling. I was really happy.

Well, now all there was to get working was FireWire. I figured most of the battle was over -- I'd enabled Cardbus, and seen it work with two different cards. I ordered the IBM 1394 card from Other World Computing (for $25, I decided I could wait a couple of days for it to arrive). When I received it, I plugged it in, and I plugged my external drive into that...voila! That worked too, easy as could be. Amazing! Next thing to try was my iPod. iTunes launched. Not quickly, mind you, but it launched.

Well, I was good to go, almost. I still wanted to use this machine with OS 9 sometimes, and as has been noted on this website, 9 freezes during startup if Cardbus cards are present. Even if I wanted to deal with that nuisance by remembering to eject them before starting up into 9, there was another problem: networking. I didn't have 9 drivers for the CompUSA Cardbus card, meaning I'd have to put my Farallon Ethernet or wireless card in instead whenever I was in 9. Not impossible, but hardly elegant.

Fortunately, Realtek also provides OS 8/9 drivers for their card! Who knew. I downloaded them, but one important detail in the readme said that the drivers specifically do NOT support PC Card hot-swapping -- therefore, the card must be present at startup. Catch-22 -- if the card is present at startup, Mac OS 9 can't boot. What to do? I remembered reading that OS 8.6 does NOT have the same startup issue with these cards that OS 9 does. I figured for my purposes, 8.6 would be fine. I installed it, and, sure enough, it booted. And the CompUSA Ethernet card worked too!

But I wasn't out of the woods yet -- what about FireWire? I downloaded the FireWire extensions for 8.6 from Apple (2.4 is the last version supported for that OS). They didn't do anything, which surprised me since the OWC site showed the card as working from 8.6 onward. A little research led me to discover that while Apple provided the interface support, they did not include driver support for third-party storage devices until FireWire 2.7, which surfaced in Mac OS 9.1. (Later, I noticed my OWC receipt, unlike their website, says the card works on 9.1 and up.) For earlier versions of the FireWire extensions, you have to use a third-party driver with an external drive. I didn't really WANT to install a third-party hard drive driver -- I like to keep things simple

-- so I instead I thought I'd try the FireWire 2.8.3 extensions from Mac OS 9.2.2 when someone on the net reported that they still work on older systems. I had to actually extract them from the Tome in the 9.2.2 updater, because the FireWire PC Card Enabler extension wasn't installed on my iBook! And that did it. Put in the card, up came the disk. Nice.

So now I had it all! Phase I: I got X installed. Phase II: I got networking working with. Phase III: I got FireWire storage working with it. And as a bonus, my 2400 is now Cardbus-enabled, and it all works in 8/9 as well.

If anyone wants to give this a shot, one key tip I have (especially since I can't reinstall without removing the drive) is to use Apple Software Restore with Disk Copy to make images of your X volume as you go along. For this reason, I suggest you keep your X partition under 2,047 MB (the max size imageable by Disk Copy 6.3.3). The technique is to image the volume with Disk Copy, and then if you wish to restore it, you first mount it with Disk Copy, and then launch ASR and drag the mounted image into it. Choose your X partition as your target, and tell it to wipe everything. If your X volume is over 2,047 MB, you can use ASR alone for creating your image, though I haven't done this. For more on this technique, check out http://www.bombich.com, which is where I learned about it.

If you run Norton Speed Disk (6.0 or later only!) with the Speed Disk 3.2 profile before imaging, it will help keep the image smaller because all the blank space at the end of the disk won't be saved as data in the image. Also, running Disk Warrior and/or Disk Doctor before Speed Disk is a good idea too.

It's great to be running OS X on my 2400, and it's amazing that as much work as it does. However, it obviously wasn't designed for the machine, and certain things simply don't work. Ryan Rempel, the author of XPostFacto, is working hard to try to support everything, but there will probably always be some things that won't quite go. Here are some issues:

- Speed. Without my much-missed G3 card, OS X is just too slow to use for anything but a server or for a Terminal window. There's no other way to say it. It's not so slow that you can't do anything, but it's definitely no fun. People say that Jaguar is faster, so maybe that will help things, but I still think the graphic demands are just more than the 603 will be able to handle. Some notable performance improvements can be had by running ShadowKiller and Tinkertool, and in the latter disabling font smoothing and the Desktop. But it's still slow.

- Memory. I'm fortunate enough to have 112 MB in my 2400, but it's no secret that OS X likes memory and that you're not going to want to run many applications at once lest you go into spasms of VM swapping. I imagine it would only be worse on the typical 80MB machine. Fortunately, Terminal is mostly what I've run.

- Sleep. It doesn't work at all, and can even cause bad things to happen. Therefore one of the first things to do after installing XPF is to tell Energy Saver to never sleep. The author is apparently working to fix this issue.

- Classic. The memory limitation precludes running Classic, so I simply don't. Even if I did have the memory, a common XPF issue is that Classic wants 9.2.x and the machine doesn't support it. There are various solutions for this. One is that that supposedly 9.1 will still work in Classic (though I am sure 8.6 doesn't). Another is that there are hacks (which look pretty ugly) to make 9.2.1 run on older machines. Still another is to install 9.2.x into Classic -- but it will only boot there, of course.

- Sound is at max and is unadjustable. This is a general XPF issue on all machines. I deal with it by just sticking a cable into the headphone jack.

- Backlight is at max and is unadjustable. I discovered that if I want to run in "server mode" that I can turn off the backlight by typing something into Open Firmware, and then I can "boot blind." You can still sort of see the screen if you shine a light on it. I can't remember the command off the top of my head but I'm sure I can figure it out again...simply typing " backlight-off" (that's a space after the first quote) might work, actually. Then you have to type "boot" to get things going.

- Color Calibration. The 2400 screen is really pretty bad by default; everything is pale blue and washed out. You can't even see the stripes in the menu bar. It's key to run the ColorSync calibrator to get things looking ok. Even after that, you'll realize the color range limitations of the 2400 compared to later LCD's...

- Starting up with both PC cards in at the same time causes neither to be recognized, even if manually ejected and reinserted. Starting up with one and then inserting the other seems to work ok. I assume this is an XPF issue though in theory it could be an OS X issue...only a Wall Street owner would know.

- Changing the slot for the Ethernet card (from upper to lower, for example) confuses the system and registers the card as a new interface.

- Ejecting the Ethernet card while it is in use (or not in use) will cause a kernel panic. This might be a 10.1.5 issue, based on a KB article I read.

- It seems that no 16-bit PC card is recognized, even the simplest modem-only cards or ATA cards (hard drives, Compact Flash, etc.) which would certainly work with OS X on a supported machine. This appears to be an XPF problem.

-- End --