Author Topic: Mac OS 9 booting on: Mac mini G4 (Detailed Posts)  (Read 538203 times)

Offline nanopico

  • Platinum Member
  • *****
  • Posts: 767
Re: Booting Mac Os 9 on Mac Mini.
« Reply #160 on: January 29, 2018, 08:04:40 AM »
By the way, here's a tbxi. It has too many ugly hacks to count. The one I am proudest of is the binary patch to the NativePowerMgrLib. Close second is the logging code that you will see spamming the NK log as the progress bar moves.

To start from this ROM, you must first copy the 'boot 3' resource inside into your System suitcase. Then you should empty your Extensions folder.

No USB, so you can't actually do much. Working on it.

This is great, but how do I use it? It won't boot from it, and when I open it in ResEdit, it says there's no resource fork, and I have to create it! I even tried directly downloading it onto my iBook G3, thinking macOS High Sierra was somehow messing it up.

Do I have to package this up somehow?

You will need to unpackage it.  It should do that on it's own on an OS 9 machine if you just double click on it.
As far as using it,  as of right now you will need to be able to put the mini into target disc mode, format it's drive with OS 9 drivers, manualy copy the ROM file and a minimal System folder with no extensions.

I haven't gotten to look at this yet, but you may need to make a couple small changes in Open Firmware to allow it to the ROM to accept it is allowed to boot.

I'm working to get a bootable CD image ready for those that will want to test booting and running and extensions to see what you can break.


If it ain't broke, don't fix it, or break it so you can fix it!

Offline nanopico

  • Platinum Member
  • *****
  • Posts: 767
Re: Booting Mac Os 9 on Mac Mini.
« Reply #161 on: January 29, 2018, 08:10:21 AM »
Would somebody (looking at you nanopico) please post on how the mini's USB controller differs from a supported G4?

Here's some info on not just on USB.  This is something I sent to ELN not long ago. So here it goes live to the WORLD.

Quote
Yes I know I am rehashing existing knowledge but it makes sense in context.

So here is the deal.  Here are the custom chips used on all the G3 and G4 macs.

Grackle, Heathrow, Keylargo, U2, UniNorth, Pangea, Intrepid, Paddington.

Grackle and Heathrow use cuda.
Everything else (except the mini) use PMU99.

Grackle and Heathrow are used only on the Beige G3 and original G3 power book.

Pangea is Keylargo and UniNorth on one chip so essentially cross that one off.
We now have Grackle, Heathrow, Keylargo, UniNorth,U2 and Intrepid.

All of the PowerMac G4 use UniNorth and Keylargo except the MDD.  They use U2 instead of UniNorth. Because the first MDD had OS 9 support officially, that mean that U2 has full OS 9 support. I suspect that U2 is compatible with UniNorth but just has something internal that is different and really doesn't mater.

The iBooks use Pangea for the G3's so essentially they all use UniNorth and Keylargo.
The orginal one uses UniNorth and Keylargo as independent chips though.

The iMac G3's use Grackle and Paddington on the original, UniNorth and Keylargo as independent chips and then Pangea for the rest.

The not original G3 PowerBook uses UniNorth and Keylargo independent.

The eMacs all use UniNorth and KeyLargo

All unsupported use Intrepid.  There is not a single machine that uses intrepid that is supported.
But they all use PMU99 except the mini.  The mini is it's own beast.

The PMU is controlled via the IO controller (intrepid or keylargo).

The PMU controls sleep, the real time clock, screen brightness on laptops, battery charging on laptops and the keyboard and trackpad interface on laptops.

On older laptops it does the keyboard/trackpad through ADB and then USB on the rest.
This is why you had to disable the PMU and USB on the mini.

So all those G4 laptops that have Power Management problems and screen brightness controls on the OS X only machines have Intrepid to thank for that.
The IO controller in Intrepid can be operated in a very basic form, but all the extra functionality is unknown as it must be different.

Now go through the source for Core99 and Keylargo in OS X and the USB interface code.
They all reference Keylargo and Intrepid. They both have all the same functions, but they do it through different registers.  There are common ones yes, but some of the Keylargo ones that are on Intrepid do completely different things and the other way as well.  In fact there are many times where a register in Keylargo uses X number of bits to control stuff and Intrepid uses the same number but shifted.  So OS 9 would send bat shit crazy instructions to Intrepid related to the PMU. So at this point the PMU is just a black hole and it really doesn't matter.  So point being that there are different registers and for similar ones different bit patterns or not used registers in one or the other.
There is nothing about the uPMU in OS X source at all.  So it must be compatible in some way.

Please not that the code for these things is spread across a bunch of places so I may have missed something.

From what I can find using actual Apple documentation is that Pangea and Keylargo are the same in the IO controller part.
Intrepid provides the same functionality but is completely different. So back to earlier this is why all those PowerBooks have issues all related to power.

Continuing on.  The USB bus and PMU are very tightly joined.
There is a lot of communication going between the two (through intrepid mind you) related to controlling a lot of power related functionality.  So disabling one in the mini is definitely not enough as I assume you have found out already Elliot.

Now here comes the best part.  Intrepid is the same through all the machines.
The PMU is not.  PMU99 is not the same on every machine. Well it is and it isn't.
The PMU is just a microcontroller.  It actually could do anything. It could act as the main CPU for the machine (though it would be so incredibly slow).  It has it's own ROM and RAM.
Each machine would have it's own special code loaded onto the PMU chip. So there would be a pretty wide variety of capabilities of the chip.  PMU99 is just the name they gave to a specific Mitsubishi chip.  You can find documentation on it's ISA and other things online.  So nothing special.  uPMU is just the name for a different physical chip.  What that chip is exactly I have not found out yet.  I'm a little nervous about cracking mine open to find out what it is.

So looking at documentation that I could find, Intrepid has it's own internal USB bus just like Keylargo.  Keylargo had two separate ports.  These are the ones you actually see physically on the machine.  On laptops PMU99 is programed to handle the interface for the keyboard and trackpad.
Intrepid has three ports on it's controller.  One is used for Bluetooth and modem if present.
The other two are not used and are not available to use. So this makes it not directly compatible with Keylargo, though probably close enough.  The USB ports you see physically come from a PCI USB controller. The two USB ports are on the same controller so they share the bus.  On keylargo where USB is controlled internally, it has two independent controllers so that both ports can operate with out sharing anything. I would think this sort of thing was changed because USB 2 was used on the PCI controller and that is faster so they thought it less of an issue to have them on the same controller.

Back to the PMU chip. When the trampoline runs, it may be identifying PMU99 and setting it up correctly to talk with Intrepid.  uPMU probably talks the same way just maybe on different pins physically.  But since the trampoline does not know about it, it can't set it up.
And the as far as the trampoline goes, it doesn't know enough about Intrepid to get it up and running enough to link in the PMU correctly.

If you have any info that may contridict this or can expand on it, I'd love to hear it, but please provide a source of the info as it may contain other important stuff too.
If it ain't broke, don't fix it, or break it so you can fix it!

Offline ry755

  • Active Member
  • *
  • Posts: 8
  • New Member
Re: Booting Mac Os 9 on Mac Mini.
« Reply #162 on: January 29, 2018, 03:08:59 PM »
By the way, here's a tbxi. It has too many ugly hacks to count. The one I am proudest of is the binary patch to the NativePowerMgrLib. Close second is the logging code that you will see spamming the NK log as the progress bar moves.

To start from this ROM, you must first copy the 'boot 3' resource inside into your System suitcase. Then you should empty your Extensions folder.

No USB, so you can't actually do much. Working on it.

This is great, but how do I use it? It won't boot from it, and when I open it in ResEdit, it says there's no resource fork, and I have to create it! I even tried directly downloading it onto my iBook G3, thinking macOS High Sierra was somehow messing it up.

Do I have to package this up somehow?

You will need to unpackage it.  It should do that on it's own on an OS 9 machine if you just double click on it.
As far as using it,  as of right now you will need to be able to put the mini into target disc mode, format it's drive with OS 9 drivers, manualy copy the ROM file and a minimal System folder with no extensions.

I haven't gotten to look at this yet, but you may need to make a couple small changes in Open Firmware to allow it to the ROM to accept it is allowed to boot.

I'm working to get a bootable CD image ready for those that will want to test booting and running and extensions to see what you can break.

 ::) I didn't even think about double clicking on it! Lol, I'll try that a little later and see if it works.

Offline ry755

  • Active Member
  • *
  • Posts: 8
  • New Member
Re: Booting Mac Os 9 on Mac Mini.
« Reply #163 on: January 29, 2018, 04:30:14 PM »
Got it! And yes, it's not very useful as there's no USB support. I used the open firmware commands here: http://macos9lives.com/smforum/index.php/topic,2408.msg28206.html#msg28206
Just entering "boot" wouldn't work. I had to use "boot hd:,\\:tbxi"

I had to copy ID 3 from the boot resource to the System Suitcase, then it worked. Otherwise it'll bomb saying address error, or something like that.

Is there a way to put those commands in the NVRAM, so I don't have to enter them every time?

Pictures:
https://imgur.com/2NQGnXZ
https://imgur.com/6ZF4jlq

Offline MacOS Plus

  • Gold Member
  • *****
  • Posts: 418
  • The 9serve Lives!
Re: Booting Mac Os 9 on Mac Mini.
« Reply #164 on: January 29, 2018, 07:29:23 PM »
  I know integrated Bluetooth runs on it's own USB port internally on the MDD and presumably every other G4 where it was an option, but does anyone happen to know if the modem in the G4 Mini is USB, or did it retain the serial port method used in other models even though it's modem is physically different?  I'm musing about the possibility of hacking an actual serial port into the Mini.

Offline nanopico

  • Platinum Member
  • *****
  • Posts: 767
Re: Booting Mac Os 9 on Mac Mini.
« Reply #165 on: January 30, 2018, 05:52:28 AM »
  I know integrated Bluetooth runs on it's own USB port internally on the MDD and presumably every other G4 where it was an option, but does anyone happen to know if the modem in the G4 Mini is USB, or did it retain the serial port method used in other models even though it's modem is physically different?  I'm musing about the possibility of hacking an actual serial port into the Mini.

The modem on the mini uses the same port actually as Bluetooth. As does any G4 laptop.
If it ain't broke, don't fix it, or break it so you can fix it!

Offline MacOS Plus

  • Gold Member
  • *****
  • Posts: 418
  • The 9serve Lives!
Re: Booting Mac Os 9 on Mac Mini.
« Reply #166 on: January 30, 2018, 07:54:41 PM »
  I know integrated Bluetooth runs on it's own USB port internally on the MDD and presumably every other G4 where it was an option, but does anyone happen to know if the modem in the G4 Mini is USB, or did it retain the serial port method used in other models even though it's modem is physically different?  I'm musing about the possibility of hacking an actual serial port into the Mini.

The modem on the mini uses the same port actually as Bluetooth. As does any G4 laptop.

  So the modem is on a USB bus internally in those models?

Offline nanopico

  • Platinum Member
  • *****
  • Posts: 767
Re: Booting Mac Os 9 on Mac Mini.
« Reply #167 on: January 31, 2018, 07:27:42 AM »
  I know integrated Bluetooth runs on it's own USB port internally on the MDD and presumably every other G4 where it was an option, but does anyone happen to know if the modem in the G4 Mini is USB, or did it retain the serial port method used in other models even though it's modem is physically different?  I'm musing about the possibility of hacking an actual serial port into the Mini.

The modem on the mini uses the same port actually as Bluetooth. As does any G4 laptop.

  So the modem is on a USB bus internally in those models?

Small correction.  The modem on these models is not an emulated or actual serial device.
It is connected to the I2S bus so it is not a usb modem internally either.

A little more clarification and correction here.
North Bridge and IO controller (which on other models are separate chips) is a single chip called Intrepid.
Intrepid has 3 internal USB controllers (0, 1, 2)  Controller 2 is used for bluetooth, 0 and 1 are not available for use.
The external usb ports you see and can use, are on a seperate PCI USB controller.

So technically there are two unused USB bus internally.  These are physicillay on the chip, but not exposed to software at all. Plus there is not a way to physically connect to them unless you really really like soldering really really tiny things to other really really tiny things with really really tiny wires.
If it ain't broke, don't fix it, or break it so you can fix it!

Offline MacOS Plus

  • Gold Member
  • *****
  • Posts: 418
  • The 9serve Lives!
Re: Booting Mac Os 9 on Mac Mini.
« Reply #168 on: January 31, 2018, 02:30:55 PM »
  I2S bus - alright that's quite interesting.  I wasn't really expecting that, but good to know.  I also wasn't expecting there to be a PCI USB controller, nor an ordinary PCI bus - are these actually discrete and exposed?  That would be far more exciting to exploit than a serial bus, however difficult or unlikely that prospect might be.  Presumably the internal USB port connected to Bluetooth could also be converted into an additional standard port using a port driver chip.

  Crazy thoughts, I know.  I'll quit musing about this for now until more progress is made on basic operation of the Mini in OS 9.  I only like to think about such things because I never wanted a Mini originally due to the lack of decent expandability.  I'm still considering getting one of the much later models with Thunderbolt when the prices finally get down to reasonable.

<update>
Somewhat answering my own question here after studying photos at a couple links:

https://www.mini-itx.com/news/13909018/
https://www.anandtech.com/show/1596/9

  USB controller is BGA type - not so fun to mess with.  The Broadcom network chip appears to be pin-style though.
« Last Edit: January 31, 2018, 02:48:10 PM by MacOS Plus »

Offline ELN

  • Gold Member
  • *****
  • Posts: 295
  • new to the forums
Re: Booting Mac Os 9 on Mac Mini.
« Reply #169 on: January 31, 2018, 11:07:19 PM »
Hi guys. Here's the latest hacked-up image. I've started a new rotation at uni so I'll probably be a little bit quiet for a while. I'll post soon on the PowerPC code patches that make this ROM go. Have fun!

Offline nanopico

  • Platinum Member
  • *****
  • Posts: 767
Re: Booting Mac Os 9 on Mac Mini.
« Reply #170 on: February 01, 2018, 06:40:29 AM »
  I2S bus - alright that's quite interesting.  I wasn't really expecting that, but good to know.  I also wasn't expecting there to be a PCI USB controller, nor an ordinary PCI bus - are these actually discrete and exposed?  That would be far more exciting to exploit than a serial bus, however difficult or unlikely that prospect might be.  Presumably the internal USB port connected to Bluetooth could also be converted into an additional standard port using a port driver chip.

  Crazy thoughts, I know.  I'll quit musing about this for now until more progress is made on basic operation of the Mini in OS 9.  I only like to think about such things because I never wanted a Mini originally due to the lack of decent expandability.  I'm still considering getting one of the much later models with Thunderbolt when the prices finally get down to reasonable.

<update>
Somewhat answering my own question here after studying photos at a couple links:

https://www.mini-itx.com/news/13909018/
https://www.anandtech.com/show/1596/9

  USB controller is BGA type - not so fun to mess with.  The Broadcom network chip appears to be pin-style though.
Almost all laptops even have a pci bus.  I guess it's possible to hack a connector on any machine, but the traces on the logic board will not be designed for a connector and would require some physical wires.  Not sure if all the IRQ lines would be there since it is for internal use.  Same goes for the internal USB controller.  It's integrated into the chip and probably doesn't really expose any pins (assumption not fact).  So they are just the type of connection between the IO, North Bridge and CPU.  Not a physical looking bus like you are acustomed to see in desktop computers.  This is not mac specific either.
If it ain't broke, don't fix it, or break it so you can fix it!

Offline darthnVader

  • Platinum Member
  • *****
  • Posts: 679
  • New Member
Re: Booting Mac Os 9 on Mac Mini.
« Reply #171 on: February 10, 2018, 02:01:41 PM »
Hi guys. Here's the latest hacked-up image. I've started a new rotation at uni so I'll probably be a little bit quiet for a while. I'll post soon on the PowerPC code patches that make this ROM go. Have fun!

@ELN, I think your download is corrupt, doesn't have the type tbxi...

Maybe drop stuff it.

 

Offline RossDarker

  • Gold Member
  • *****
  • Posts: 281
Re: Booting Mac Os 9 on Mac Mini.
« Reply #172 on: February 12, 2018, 01:31:39 AM »
I do NOT have any other OS9 machines, but just have this one g4 mini. Too format the drive with OS 9 drivers, it would not let me in Disk Utility, so I booted off a Tiger DvD and opened up the terminal. I typed "diskutil eraseDisk" and that showed me I can use this command : "diskutil eraseDisk format vol_name [OS9Drivers] { mount_point | device }" so to format my internal I entered in "diskutil eraseDisk HFS+ OS9 OS9Drivers /dev/disk0". Then I opened diskutility and got info on my Disk and sure enough there were 10 partitions and it said that OS9 drivers were installed. Next I booted off a Leopard external FW Lacie disk and copied over the entire contents of a generic os 9 cd (white with orange 9, install cd, it was 9.2.1) onto the OS9 disk I had made, emptied the Extensions, replaced the ROM, then blessed in terminal. I shut down, entered open firmware and typed in the commands mentioned earlier, then I booted to a flashing ? on a floppy disk. Did it not detect my HD? I entered the 9.2.1 generic CD and then I booted until finally a bomb when loading 2nd extension. What do I do to get it recognized, so I can boot with no extensions and the special ROM?? Also about the boot3 resource to system suitcase, how would I go about doing that?

Offline darthnVader

  • Platinum Member
  • *****
  • Posts: 679
  • New Member
Re: Booting Mac Os 9 on Mac Mini.
« Reply #173 on: February 13, 2018, 06:59:11 AM »
Open ELN's Mac OS ROM in ResEdit, open the 'boot' resource, copy 3. Open the System suitcase in resedit, open the 'boot' resource, paste 3, save, reboot.

If screen res and color depth don't work, I think I can cook up an 'NDRV' for the mini.

I don't have one, so someone with need to:

Code: [Select]
dev agp/@10/@0 .properties
I need the " compatible" property from one of the display outputs.

The display may not be @0, so you may need:


Code: [Select]
dev screen .properties

Offline MacOS Plus

  • Gold Member
  • *****
  • Posts: 418
  • The 9serve Lives!
Re: Booting Mac Os 9 on Mac Mini.
« Reply #174 on: February 13, 2018, 09:49:18 AM »
  I just snagged a 1.5GHz G4 Mini on eBay, so I'll officially be able to help with this project once it arrives!

Offline RossDarker

  • Gold Member
  • *****
  • Posts: 281
Re: Booting Mac Os 9 on Mac Mini.
« Reply #175 on: February 14, 2018, 12:07:50 AM »
I have not tried copying the boot3 over yet, but will soon. To install Mac OS 9.2.2, I installed the Unsupported G4's version onto Qemu, and as it is saved in an img file I just restored the Mac mini's OS partition from the img. Then replaced the ROM and emptied extensions. I have got OS9 drivers installed from terminal. Though if I boot from from the hd, I don't even get to a bomb, it's just a q mark. The internal hd does show however as MacOSLives with a Finder badge, if I hold alt on startup. Do I simply have to install it over target disk mode with an OS 9 Mac?

Since resedit was an OS 9 thing I also have to copy boot3 from there are then restore the mini again. When the flashing q mark shows, I had this "Rescue and Install CD", and if I insert that it starts booting until bomb, so I tried taking the contents of that CD and just took out the extensions, burnt it, now if I insert the new Compact Disc after booting from the hd, it remains a flashing q mark. I have blessed the image before I burnt it and blessed the hd. So is it just that I need an OS 9 Mac to install OS 9 onto the mini over a fw400 cable? Maybe because it installs stuff on the other nine partitions on the same disk?

Offline darthnVader

  • Platinum Member
  • *****
  • Posts: 679
  • New Member
Re: Booting Mac Os 9 on Mac Mini.
« Reply #176 on: February 14, 2018, 03:02:49 AM »
Not sure, you may not have a properly blessed system folder.

I've had random luck blessing it from the terminal in OS X.

Try:

Code: [Select]
bless -folder9 "/Volumes/HD Volume/System Folder"



Offline RossDarker

  • Gold Member
  • *****
  • Posts: 281
Re: Booting Mac Os 9 on Mac Mini.
« Reply #177 on: February 14, 2018, 04:27:27 AM »
I got it to a bomb now. I mounted my disk image and typed diskutil list. There were 7 slices on the image and disk utility only let me restore the 7th one. So I unmounted my internal, and the disk image and from terminal typed
Code: [Select]
hdid -nomount "/Volumes/USB/OS9MINI.img" (mount as block device only)

then
Code: [Select]
dd if=/dev/disk3 of=/dev/disk0 bs=131072 (copy entire image to internal hard disk)

then
Code: [Select]
sudo bless -folder9 "/Volumes/OS 9 MINI/System Folder" (blessed) Thanks for the command, I forgot the 9.

Booted into the Open Firmware and typed out the goods then booted to Mac OS 9 loading screen and bombed saying address error, so I will copy over the boot3 thing again and see if that works.
« Last Edit: February 14, 2018, 05:57:02 AM by RossDarker »

Offline RossDarker

  • Gold Member
  • *****
  • Posts: 281
Re: Booting Mac Os 9 on Mac Mini.
« Reply #178 on: February 14, 2018, 06:04:39 AM »
So as I said I have been using Qemu to install OS9 (and modify the install) onto img files then restore them to the Mac mini's internal hard drive. I have copied the boot resource with ID 3 over to both the "Classic" and "System" files inside of the System Folder but keep getting address errors when I boot. I then edited it on a Tiger drive through Classic Environment. I am using another System Folder on the Tiger HD, to edit the one on the internal HD. This is what the Classic and System suitcase look like after I have edited them:
https://imgur.com/i23fDMW
What else would need changing to get past the address error?

Offline darthnVader

  • Platinum Member
  • *****
  • Posts: 679
  • New Member
Re: Booting Mac Os 9 on Mac Mini.
« Reply #179 on: February 14, 2018, 06:20:07 AM »
So as I said I have been using Qemu to install OS9 (and modify the install) onto img files then restore them to the Mac mini's internal hard drive. I have copied the boot resource with ID 3 over to both the "Classic" and "System" files inside of the System Folder but keep getting address errors when I boot. I then edited it on a Tiger drive through Classic Environment. I am using another System Folder on the Tiger HD, to edit the one on the internal HD. This is what the Classic and System suitcase look like after I have edited them:
https://imgur.com/i23fDMW
What else would need changing to get past the address error?

I'm not sure what's going wrong, you may be using the wrong Mac OS ROM file, ELN linked a few. The last one in post #169 should allow boot, but it's not a valid :tbxi when I download it.

Try and find the last one he posted before that, other than that, sorry I can't be more helpful, I don't have a G4 Mini to play along with, only a PowerBook6,8.