The PC Card slot on a 17-inch aluminium PowerBook G4 (PowerBook5,1) has never worked under Mac OS 9. Insert any card and nothing happens: no icon, no driver, no error. This repository contains a patched Mac OS ROM that fixes it, the diagnostic tool used to find the fault, and the complete research record.
It works. On a PowerBook5,1 running this ROM, measured by the people who tested it:
| card | result |
|---|---|
| FirmTek SeriTek/1SM2 (eSATA) | volumes mount, 98.34 MB/s read, 95.84 MB/s write sustained |
| RME Hammerfall DSP (audio) | mixer runs, DSP settings adjust, audio plays through ASIO |
| Adaptec CardBus SCSI | card enumerates and publishes |
| NEC USB 2.0 | card enumerates, drivers attach, root hubs come up |
This ROM is darthnVader's work plus three patches. The base is his modified Mac OS ROM 10.2.1
from MacOS9Lives, which is what makes Mac OS 9 boot on these machines at
all. Without it there is nothing here to patch. Everything in this repository sits on top of that.
darthnVader(MacOS9Lives) for the modified ROM this is built on.DieHard(MacOS9Lives) for the original report that the CardBus slot was dead.vectrexandLarsG5(MacOS9Lives) who did every piece of hardware testing here, on their own machines, across dozens of reboots. Every measured result in this repository is theirs.- Elliot Nunn for
tbxi, the toolchain that takes these ROMs apart and puts them back together. - The Linux
drivers/pcmcia/ti113x.hauthors, whose register definitions decoded the TI CardBus controller for us.
The slot was dead for three separate reasons, each of which had to be found and fixed before the next became visible.
-
The ROM's CardBus parcel was keyed to the wrong chip. It matches
pci104c,ac1a(TI PCI1210) andpci104c,ac50(TI PCI1410). The AlBook has a PCI1510,pci104c,ac56, so no socket driver was ever attached. Fixed by matching the genericcardbus-bridgename instead. -
The socket driver's own whitelist rejected the chip.
ti1210-1.0d1.pefcarries a list of device IDs and returns error -9070 for anything else. Fixed by repointing one unreachable entry atac56. -
Card Services switched itself off before doing anything. This was the real blocker and the hardest to find.
PCCard.pef's initialiser reads the machine's ProductInfo record and tests one capability bit. If the bit is clear it returns success having initialised nothing, registering no Gestalt selector and reporting no error. On the AlBook that bit is clear.
Across all 96 capability bits, a Titanium PowerBook where CardBus works and an aluminium PowerBook where it does not differ in exactly one bit, and it is that one. The fix sets it.
| path | what |
|---|---|
docs/ALBOOK17-CARDBUS.md |
the full research record, including every wrong turn |
probe/cardbus_compat.c |
CardBusCompat 3.0, the read-only diagnostic |
scripts/ |
the ROM build and verification tooling |
logs/tibook/ |
34 runs on a Titanium PowerBook, the known-good reference |
logs/field/ |
31 runs from testers on real aluminium PowerBooks |
dist/MacOSROM.albook-cb2.hqx |
the patched ROM |
dist/CardBusCompat_v30.hqx |
the diagnostic, ready to run |
⚠ Back up your existing Mac OS ROM first. It lives in the System Folder. If anything goes wrong, hold Option at the chime, start up from Mac OS X, and put the original back.
- Back up
System Folder:Mac OS ROM. - Decode
dist/MacOSROM.albook-cb2.hqx(StuffIt Expander handles BinHex) and put the result in the System Folder, replacing the existing file. - Restart.
CardBusCompat is read-only and safe to run at any time. It writes a log called
CardBus Compatibility Log to your startup disk.
- Sleep and wake with a card inserted. Nobody has tried it.
- Booting Mac OS 9 from a CardBus drive. The SeriTek publishes an
AAPL,boot-cookie, so it advertises itself as bootable, but this has not been attempted. - Any card not in the table above.
CardBusCompat went through four wrong answers before it was right, and every one was caught by
running it on a machine where the answer was already known rather than by reading the code. Three
different ways for a driver to claim a card turned up, one per new card class tested. The research
record documents each mistake, because the mistakes are most of what was learned.
MIT, see LICENSE. The Mac OS ROM itself is Apple's and is redistributed here as a patched binary in
the same spirit as the MacOS9Lives community ROMs it is built from.
Research and tooling produced with Claude (Anthropic) assisting.