Donate-large

If you like this blog, please make a little donation.

It's a secure process, and with your generosity I will be able to review more hardware and software.

Just click the "Donate" button below and follow the easy instructions, and I will thank you eternally.

Saturday, April 16, 2011

USB booting on PowerPC Macintosh

It is commonly known that only G5 PowerMacintosh and iMac computers can boot from USB, and of course all Intel Macintosh computers.
However I found this assumption to be false.

While trying to test MorphOS on my Mac Mini G4 computer I encountered with a common problem of that computers. The DVD drive does not read anything.
Unfortunately this is a common problem with slot-in drives, as dust enters in the whole drive, even inside the laser lens assembly.

But I just though, that maybe, there was a way, and entered OpenFirmware with the usual Command-Option-O-F key combination on boot chime, and listed the device tree with the usual "dev / ls" command.

Pending on the Mac Mini's southbridge (/pci@f2000000) I found the usb devices, one empty and one with a HUB device (the keyboard), so at least controllers and hubs are supported by OpenFirmware.

I powered off, connected an external slim Asus DVD recorder (really a LG DVD recorder) to the USB ports and entered again on OpenFirmware, listed the devices and to my surprise a "disk@1" device appeared just hanging under one of the usb controllers.

I did a reboot and entered the OpenFirmware's boot menu pressing the Option key on boot chime, but the USB disk did not appear here.

Rentering OpenFirmware and constructing an adequate boot command (boot /pci@f2000000/usb@19/disk@1:2,\\:tbxi) booted MorphOS correctly.
I recorded all the installation and posted it on Youtube.

With my curiosity at maximum I took an older computer, my beloved PowerBook G4 Titanium, attached the USB drive and tested the same.

OpenFirmware worked, loaded the MorphOS bootloader, this loaded the MorphOS kernel, and, as expected because the PowerBook is not supported, it hang.

I took all the Mac OS disks and a couple of Linux disks to test it on the PowerBook and came to the following conclusions:

1.- USB booting is supported by all Mac OS X bootloaders, but Mac OS X <= 10.3 do not load the USB MSC drivers at boot and the kernel is then unable to find the root volume.
2.- USB booting is unsupported at all by Mac OS 9, because it requires Toolbox drivers and they only exist for ATA, ATAPI and SCSI. Dunno why FireWire boots, may be because a Toolbox driver is present in ROM. 
3.- USB booting is supported fully by MorphOS and by Linux, however all Linux distributions I tested expect to load Yaboot configuration file from "cd:" device alias, and you must point that to your exact USB device in OpenFirmware for Yaboot to work.
4.- If your last boot disk is an USB one, it DOES appear on the boot menu. If it's not the case, it will never do, and you must boot manually from OpenFirmware.

5 comments:

  1. Hey, thanks a million!!

    I was desperate looking for a way to boot my Mac Mini (ppc g4) using my external USB DVD drive, because my internal drive is so full of dust that it cannot read anything.

    Thanks to your instructions I could come up with a valid boot command for my drive:

    boot /pci@f2000000/usb@1b,1/disk@1:3,\\:tbxi

    So, again, a million of thanks!!

    ReplyDelete
  2. Thanks for the post - this worked for me too, I was able to set my G4 Mac Mini to automatically boot from a usb disk which I restored to from a time machine backup. I did the following after getting the device tree with dev / ls:

    nvalias ud /pci@f2000000/usb@1b/device@1/disk@0:5
    setenv boot-device ud:,\\:tbxi

    ReplyDelete
  3. Did you have to use a Hub to connect USB KB, Mouse AND DVD drive? That works?

    ReplyDelete
    Replies
    1. Of course it does.

      Apple original keyboards are hubs, and the keyboard chip depends on it, so hub support is implemented alright on the firmware, on all Macs that include USB.

      Delete
  4. I have morphos running on fat32 pendrive

    boot usb1/@1:1,\boot.img bd=umsd0 rd

    ReplyDelete