Please login or register.

Login with username, password and session length
Advanced search  

News:

Pages: [1]   Go Down

Author Topic: USB 2.0 DRIVER: Custom ROM v1  (Read 301 times)

UnexpectedBomb

  • 32 MB
  • ***
  • Posts: 37
    • GitHub account
USB 2.0 DRIVER: Custom ROM v1
« on: August 03, 2026, 11:55:54 AM »

New build of the USB 2.0 driver is up. This is a big step from the beta I posted last time.

If you tried the first one you will remember the ritual: boot unplugged, run a launcher, wait for a prompt, insert at the right moment, one mount per launch. All of that is gone.

WHAT IS BETTER

- The driver now loads from the Mac OS ROM at boot, as an OS owned driver. Doesn't live in an app, and still no Extension needed.
- Mac OS 9 mounts the volume itself, through its normal path.
- Hot-plug works. Insert, eject, unplug, re-insert, or swap in a different drive, as often as you like. Pulling a drive without ejecting no longer leaves a damaged disk behind.
- Restart with the driver active is safe. It used to come back with a frozen mouse cursor.
- Reads run about 20 MB/s, roughly 20x USB 1.1. Writes are slower than that, but still blazing compared to USB 1.1.

INSTALLING

***FIRST: copy the Mac OS ROM out of your System Folder and keep it somewhere safe. You will want it if anything goes wrong. DON'T SKIP THIS STEP! Then pick one of these:

STEP 1A) ON A G4 MDD THAT BOOTS OS 9 ON ITS STOCK ROM: grab the prebuilt ROM from the release page. That is the exact file I have been testing with, so it needs no tools at all.

(NOT if your machine only boots OS 9 because of a community ROM patch, so an FW800 MDD, a Mini, an aluminium PowerBook and so on. My prebuilt file does not contain that patch, and installing it would take away the thing making your machine boot.)

STEP 1B) ON ANY OTHER NEW WORLD MAC, a B&W G3 for example: the prebuilt one is built from an MDD's ROM and is specific to that machine, so patch your own instead. Run the injector from the repo against your copy. It writes out a patched ROM and leaves the original alone.

Old World Macs, so a beige G3 or a 9600, have no Mac OS ROM file for this to patch, and none of this applies to them. Note that is not the same question as whether the machine has PCI slots. A beige G3 has slots and still cannot use it; a Mac mini G4 has none and could.

STEP 2) Boot from a CD or another volume and put the patched ROM into the System Folder in place of the original. (You cannot swap it while booted from that same System Folder.) Drop the small faceless helper into System Folder > Startup Items, boot normally with nothing plugged in, then insert a drive.

Again, the injector creates a ROM patch meant for non-MDD machines, so keep your original ROM safely stored somewhere and make sure you can boot from something else first. Fully reversible, but only if you kept it.

The injector has only ever been run against two ROMs, both mine. If it will not patch yours, or the result will not boot, tell me which Mac and OS 9 version you are on.

STILL TO DO

-One drive at a time. A second one inserted while another is mounted is ignored. Multi-device is what I am working on now.
-External hubs are not driven yet, including the hub in an Apple Cinema Display.
-A drive attached at boot mounts at 1.1, not 2.0. Plug it in after booting.
-Only tested on a G4 MDD with an IOGEAR NEC based PCI card. Other EHCI chipsets should bind, since the driver matches on the EHCI class code and reads the card's geometry at runtime, but I have not tried one. On board USB 2.0 is experimental and can hang (e.g. G4 Mini, aluminum PowerBooks, etc). Continue to treat this as a beta and do not put anything irreplaceable on it yet.

ONE LOG NOTE

You will see plenty of lines like this in EHCIUIM_init.log:

!! v47 STALL - self-probe transfer not completing:

Ignore them. That diagnostic fires on any transfer in flight, which during a copy is constant. My last soak logged 174 of them alongside 18,223 completed transfers and zero errors. Badly named, and I will fix it.

Heads up that the multi-device release will be a matched ROM and helper that install together, so if you would rather install once than twice, it is fine to wait until then. Eventually the goal is to have all of this integrated into the ROM, even the helper app itself, but we are not there yet.

Beyond that, the most useful thing anyone can do is run it on a PCI card different from mine. Both of the worst bugs so far came from hardware not behaving the way the spec says. As always, please let me know of both your successes and failures with this new build!

Source, build steps, injector and the technical writeups are all here: https://github.com/UnexpectedBomb/MacOS9-USB2-EHCI

-UB
Logged

Jubadub

  • 512 MB
  • *****
  • Posts: 562
  • There is no Mac in OS X
Re: USB 2.0 DRIVER: Custom ROM v1
« Reply #1 on: August 04, 2026, 06:57:23 AM »

Excellent work, @UnexpectedBomb, thank you for the ongoing effort. I'm glad the efforts are still going towards having it all happen through the Mac OS ROM with no helper app, multi-plugging and, I presume, booting at 2.0. I hope it gets there someday.

Once I get some time to use a computer with GitHub access, I will try the injector on a mini ROM and test. Perhaps by then the next release might be upon us? :)
Logged

cyberish

  • 128 MB
  • ****
  • Posts: 173
  • new to the forums
Re: USB 2.0 DRIVER: Custom ROM v1
« Reply #2 on: August 04, 2026, 07:20:39 AM »

Is there any hope that this will work one day on a OldWorldMac?
Logged

Jubadub

  • 512 MB
  • *****
  • Posts: 562
  • There is no Mac in OS X
Re: USB 2.0 DRIVER: Custom ROM v1
« Reply #3 on: August 04, 2026, 07:37:50 AM »

Is there any hope that this will work one day on a OldWorldMac?

As a System Extension, it should, hopefully.
Logged

UnexpectedBomb

  • 32 MB
  • ***
  • Posts: 37
    • GitHub account
Re: USB 2.0 DRIVER: Custom ROM v1
« Reply #4 on: August 04, 2026, 08:16:57 AM »

Is there any hope that this will work one day on a OldWorldMac?

As a System Extension, it should, hopefully.

Exactly. That is the hope, since Old World Macs don't use the Mac OS ROM file like the New World Macs do. Just to set expectations for you @cyberish, such a solution would be far down the road. The reality is I'm heavily prioritizing New World Macs for the time being because:

1) I already have several different G3/G4 New World Mac models that I can test on
2) I don't have an Old World Mac to test on (but would gladly accept a donor Mac for this noble pursuit ;D)
3) There are far more New World than Old World Macs that would benefit

Once the ROM for New World Macs has reached a "mature" state (and if I were to somehow acquire an Old World Mac, ideally a beige G3), an Old World USB 2.0 extension might see some love.
Logged

UnexpectedBomb

  • 32 MB
  • ***
  • Posts: 37
    • GitHub account
Re: USB 2.0 DRIVER: Custom ROM v1
« Reply #5 on: Today at 08:12:24 AM »

Once I get some time to use a computer with GitHub access, I will try the injector on a mini ROM and test.

Good news! I have just completed v1 of the Mac Mini G4 ROM with built-in USB 2.0. You can grab it using the same GitHub link above. It is essentially the exact same modified ROM from the MacOS9Lives Mini G4 installer, but with USB 2.0 added. Once you install the ROM, here's how it works:
1) Make sure your mouse and keyboard are already plugged in.
2) Launch the EHCI Activator app, which will show a window for a second and then disappear. It "grabs" any unused USB port that it finds.
3) Insert a USB 2.0 drive. You will see the special "2.0" drive icon appear once it mounts on the desktop.

Two major features that have been added since the last release:
- Multi-device mounting (up to four USB drives simultaneously) with hot-plugging (can eject and re-mount without needing a reboot)
- Hub compatibility, tested using the USB leg of a 20" aluminum Apple Cinema Display. With the display's USB leg connected, you can plug drives into the USB 2.0 hub in the back of the display and they will mount correctly, just like with on-board ports.

This is the sort of thing that I think would eventually be worthy of being included in the Mini G4 installer, once I get it to a state that doesn't require the activator app anymore. As always, I greatly appreciate anyone willing to take the time to test this stuff out and report back!
Logged

ssp3

  • 1024 MB
  • ******
  • Posts: 1047
Re: USB 2.0 DRIVER: Custom ROM v1
« Reply #6 on: Today at 08:43:21 AM »

@UnexpectedBomb,
Before you commit changes, you may wish to test your USB 2.0 hack and data transfer integrity with Intech's Integrity utility.
It will immediately tell you what's what.

Logged
If you're not part of the solution, you're part of the problem.

UnexpectedBomb

  • 32 MB
  • ***
  • Posts: 37
    • GitHub account
Re: USB 2.0 DRIVER: Custom ROM v1
« Reply #7 on: Today at 09:10:01 AM »

Before you commit changes, you may wish to test your USB 2.0 hack and data transfer integrity with Intech's Integrity utility.

I'm having a hard time finding that app anywhere online for OS 9, where can I download it? Also, I hope that is not a direct screenshot from using this USB stack.... 140 errors....  :(
Logged

ssp3

  • 1024 MB
  • ******
  • Posts: 1047
Re: USB 2.0 DRIVER: Custom ROM v1
« Reply #8 on: Today at 09:40:22 AM »

No, that's from my tests of various FireWire enclosures. Use search if interested.

The software is part of one of these packages: https://macintoshgarden.org/author/intech-software-corporation

P.S. I'm not sure if it will recognize USB drives, but give it a try.
Logged
If you're not part of the solution, you're part of the problem.
Pages: [1]   Go Up

Recent Topics