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

Offline ELN

  • Gold Member
  • *****
  • Posts: 295
  • new to the forums
Re: Booting Mac Os 9 on Mac Mini.
« Reply #280 on: March 06, 2018, 04:49:55 PM »
I have managed to get the CPU plugin limping along with a dirty hack to the NanoKernel. Calls to routine selector 12 are disabled. This stops the machine from crashing with the Multiprocessing folder present, and enables enough CPU power management that the fans run at a reasonable speed.

More to come on the CPU plugin, though. I don't want to get too carried away with this, but if someone could send me an archive of every known CPU plugin, that'd be great. I've already looked at the one-byte Sonnet patch without gaining much insight.

RossDarker, thanks for the promising news about the sound!

Has anyone gotten the Ethernet to work on the mini? I think mine came to me with a bad port, so testing will be a chore.

Offline DieHard

  • Global Moderator
  • Platinum Member
  • *****
  • Posts: 2368
Re: Booting Mac Os 9 on Mac Mini.
« Reply #281 on: March 06, 2018, 07:21:53 PM »
Quote
and enables enough CPU power management that the fans run at a reasonable speed.

So, without the new CPU plugin the Post #277 Instructions produce a working, but overheating Mac Mini ?

I am assuming, if that is the case, that the modified CPU plugin is Critical !

As a side note, I will be buying a Mini just to see this all pan out first hand, I already have 3 power supplies, but no PPC Mini for at least 6 years, this is gonna be epic :)

Offline MacOS Plus

  • Gold Member
  • *****
  • Posts: 418
  • The 9serve Lives!
Re: Booting Mac Os 9 on Mac Mini.
« Reply #282 on: March 06, 2018, 09:18:42 PM »
  Ethernet has worked perfectly for me.  I've also had no issues with the fan speed at all, and it's not pouring a ton of heat out the back so it must be cooling sufficiently.  I know it's not running at full speed because the fan briefly comes on at full speed when the Mini first powers up but then quickly settles down to a much calmer pace.

  BTW, the weird issue I was having with the sub-menu not showing on the Control Panels folder in the Apple menu has been resolved.  It was nothing to do with the machine, it was just something glitched in the folder alias.  I made a new alias and copied it into the Apple menu folder, and low and behold, the original folder suddenly showed the sub-menu as well as did the new one.  So weird.  I deleted the old one anyway and kept the new one after this bizarre occurance.

@RossDarker - Which versions of the Apple Audio Extension extension and Sound control panel are you running with?  (Mine are versions 2.4 and 8.5.8 respectively.)  On my Mini the volume slider is set to zero and springs back if you try to drag it.  It makes no diffence on mine if I plug in something else to the output jack.  The only thing I ever get to hear is the startup sound.

@DieHard - If I get another Mini without a power supply, I know who to ask! ;)

Offline MacOS Plus

  • Gold Member
  • *****
  • Posts: 418
  • The 9serve Lives!
Re: Booting Mac Os 9 on Mac Mini.
« Reply #283 on: March 06, 2018, 09:36:30 PM »
  Did all of the G4 Minis have the same motherboard firmware version?  Mine has version 4.89f1 reported in System Profiler.  On a related note, it appears there may have been a firmware update for some variant of the optical drive.

Offline darthnVader

  • Platinum Member
  • *****
  • Posts: 679
  • New Member
Re: Booting Mac Os 9 on Mac Mini.
« Reply #284 on: March 06, 2018, 11:20:41 PM »
I have sound over the headphone/lineout port too, I tested the other day, and it didn't work.

I don't have volume control, but sound does work with Sound Control Panel 8.5.8 and Apple Audio Extension 2.4.

I just noticed I don't have a modem, so that resolves why I don't see any serial connection.
« Last Edit: March 07, 2018, 04:53:18 AM by darthnVader »

Offline RossDarker

  • Gold Member
  • *****
  • Posts: 281
Re: Booting Mac Os 9 on Mac Mini.
« Reply #285 on: March 06, 2018, 11:57:33 PM »
My external speakers have a volume control on them, because it is really an iPhone 4 dock. I just connected to it using an aux cable. That is the only way I can control the volume because like you said about the Control Strip Module slider springing back. I am using 2.4 & 8.5.8.

Offline ELN

  • Gold Member
  • *****
  • Posts: 295
  • new to the forums
Re: Booting Mac Os 9 on Mac Mini.
« Reply #286 on: March 07, 2018, 05:46:30 AM »
The 7447a seems not to support the THRM registers that earlier G4s did. This is why the mini crashes. Here is a plugin patched to spoof a 30C CPU temperature. Working on a more elegant solution. Let me know about fan behaviour, and beware overheating!

Offline MacOS Plus

  • Gold Member
  • *****
  • Posts: 418
  • The 9serve Lives!
Re: Booting Mac Os 9 on Mac Mini.
« Reply #287 on: March 07, 2018, 08:03:54 AM »
My external speakers have a volume control on them, because it is really an iPhone 4 dock. I just connected to it using an aux cable. That is the only way I can control the volume because like you said about the Control Strip Module slider springing back. I am using 2.4 & 8.5.8.

  Alright, so it must be outputting a line-level signal, which would explain why I couldn't hear anything on headphones.  I will try again with an amplifier.

  This is very promising because it means we're only dealing with fixing extremely basic device control parameters in the sound driver or with missing properties on the device in OF.

The 7447a seems not to support the THRM registers that earlier G4s did. This is why the mini crashes. Here is a plugin patched to spoof a 30C CPU temperature. Working on a more elegant solution. Let me know about fan behaviour, and beware overheating!

  Is there any way to access the data from the hardware thermal sensors?  I never understood why no one ever wrote something functionally similar to "MenuMeters" that would work on OS 9.  I remember I used to have a CPU monitor utility running during summer months on my Nubus 9150 machine with a Sonnet G4/360MHz.  The edit room in that studio facility didn't get enough AC, and I'd have to keep an eye on the CPU temp because the machine would consistently lock up if it reached a certain temperature.  In the case of the Mini there's supposed to be at least a couple thermal sensors present, if I'm interpreting the OF device tree correctly.

Offline MacOS Plus

  • Gold Member
  • *****
  • Posts: 418
  • The 9serve Lives!
Re: Booting Mac Os 9 on Mac Mini.
« Reply #288 on: March 07, 2018, 08:23:02 AM »
  So you guys were right - sound does work as line-level output with no slider function in the control panel.  I'm playing from Winamp for the test.  Winamp has its own functional volume control, which is a good thing since I get nasty clipping without their volume reduced to about half.  Great start anyway - we're so close to having this all working fully!

Offline Daniel

  • Gold Member
  • *****
  • Posts: 300
  • Programmer, Hacker, Thinker
Re: Booting Mac Os 9 on Mac Mini.
« Reply #289 on: March 07, 2018, 08:28:32 AM »
The 7447a seems not to support the THRM registers that earlier G4s did. This is why the mini crashes. Here is a plugin patched to spoof a 30C CPU temperature. Working on a more elegant solution. Let me know about fan behaviour, and beware overheating!
What happens if you tell PowerMacInfo to report the processor temp on the mini?

Offline ELN

  • Gold Member
  • *****
  • Posts: 295
  • new to the forums
Re: Booting Mac Os 9 on Mac Mini.
« Reply #290 on: March 07, 2018, 06:07:28 PM »
Freezes up! The register accesses don’t seem to crash the machine (although this could be the NK installing a dummy illegal instruction handler). But the reading code waits for a flag to be raised in one of the registers, which never happens.

Docs for the 7447a say that the thermal diode is only exposed to the motherboard through two socket pins.

Offline MacOS Plus

  • Gold Member
  • *****
  • Posts: 418
  • The 9serve Lives!
Re: Booting Mac Os 9 on Mac Mini.
« Reply #291 on: March 07, 2018, 07:53:00 PM »
  I've poked around in the Apple Audio Extension file and noted that there are specific entries for I2S audio support.  This will be why the Mini's output works at all on OS 9.  I presume the interpretation of the device, and therefore the necessary controls and jack insertion detection, is lacking due to the file not containing a specific driver section for the "Toonie" sound device implementation in the Mini.  I'm wondering if it's possible to borrow what we need from OS X 10.3.7 (perhaps up to 10.3.9), as was done with the RockHopper NDRV for the Radeon 9200.  I'm not expert enough to tackle this, but perhaps one of you guys can take a stab at it?

  BTW, I'm already having a blast just playing MP3s in the background on the Mini while browsing the forum with Classilla!  I've got it patched through the mixer in my control room so I can crank the tunes.  I can't wait to start pushing its limits with software synths to see what it can really do.  It's got me thinking about using a number of them together over MIDI, since they'll take up such a tiny amount of space vs the tower machines.  Now if we could just figure out how to hack in the serial port, I'd have enough MIDI interfaces available to do three or four co-opertive Minis with one on USB!
« Last Edit: March 07, 2018, 09:04:57 PM by MacOS Plus »

Offline darthnVader

  • Platinum Member
  • *****
  • Posts: 679
  • New Member
Re: Booting Mac Os 9 on Mac Mini.
« Reply #292 on: March 08, 2018, 05:39:53 AM »
  I've poked around in the Apple Audio Extension file and noted that there are specific entries for I2S audio support.  This will be why the Mini's output works at all on OS 9.  I presume the interpretation of the device, and therefore the necessary controls and jack insertion detection, is lacking due to the file not containing a specific driver section for the "Toonie" sound device implementation in the Mini.  I'm wondering if it's possible to borrow what we need from OS X 10.3.7 (perhaps up to 10.3.9), as was done with the RockHopper NDRV for the Radeon 9200.  I'm not expert enough to tackle this, but perhaps one of you guys can take a stab at it?

  BTW, I'm already having a blast just playing MP3s in the background on the Mini while browsing the forum with Classilla!  I've got it patched through the mixer in my control room so I can crank the tunes.  I can't wait to start pushing its limits with software synths to see what it can really do.  It's got me thinking about using a number of them together over MIDI, since they'll take up such a tiny amount of space vs the tower machines.  Now if we could just figure out how to hack in the serial port, I'd have enough MIDI interfaces available to do three or four co-opertive Minis with one on USB!

Just doesn't work that way, Audio devices really don't take part in the boot process, other than the startup sound. They don't need Native Device Drivers ('NDRV').

While we maybe able to learn something from the startup sound code in the boot rom, we likely can't learn much from OS X drivers, unless they are open source. If linux has drivers that work for sound on the Mini we can likely learn what we need, but translating that to OS 9 is going to be tricky.

I'm not sure how feasible it would be to disassemble the Sound Manager, or even make binary hacks to it. Versions of Sound Manager 3.x+ should have some API's but I don't think Apple ever published any of them, or at least I don't see any Sound Manager DDK's.


Offline Daniel

  • Gold Member
  • *****
  • Posts: 300
  • Programmer, Hacker, Thinker
Re: Booting Mac Os 9 on Mac Mini.
« Reply #293 on: March 08, 2018, 02:16:59 PM »
  I've poked around in the Apple Audio Extension file and noted that there are specific entries for I2S audio support.  This will be why the Mini's output works at all on OS 9.  I presume the interpretation of the device, and therefore the necessary controls and jack insertion detection, is lacking due to the file not containing a specific driver section for the "Toonie" sound device implementation in the Mini.  I'm wondering if it's possible to borrow what we need from OS X 10.3.7 (perhaps up to 10.3.9), as was done with the RockHopper NDRV for the Radeon 9200.  I'm not expert enough to tackle this, but perhaps one of you guys can take a stab at it?

  BTW, I'm already having a blast just playing MP3s in the background on the Mini while browsing the forum with Classilla!  I've got it patched through the mixer in my control room so I can crank the tunes.  I can't wait to start pushing its limits with software synths to see what it can really do.  It's got me thinking about using a number of them together over MIDI, since they'll take up such a tiny amount of space vs the tower machines.  Now if we could just figure out how to hack in the serial port, I'd have enough MIDI interfaces available to do three or four co-opertive Minis with one on USB!

Just doesn't work that way, Audio devices really don't take part in the boot process, other than the startup sound. They don't need Native Device Drivers ('NDRV').

While we maybe able to learn something from the startup sound code in the boot rom, we likely can't learn much from OS X drivers, unless they are open source. If linux has drivers that work for sound on the Mini we can likely learn what we need, but translating that to OS 9 is going to be tricky.

I'm not sure how feasible it would be to disassemble the Sound Manager, or even make binary hacks to it. Versions of Sound Manager 3.x+ should have some API's but I don't think Apple ever published any of them, or at least I don't see any Sound Manager DDK's.
opensource.apple.com has a lot of useful stuff in it, including a lot of source code for early Mac OS X. There might be something related to sound in there.

Offline MacOS Plus

  • Gold Member
  • *****
  • Posts: 418
  • The 9serve Lives!
Re: Booting Mac Os 9 on Mac Mini.
« Reply #294 on: March 08, 2018, 09:21:35 PM »
  A moment, please, while I vent my frustration with damned F*ING invisible characters!  (This lopped off most of my post and I had to build it again.  GRRRRRRRR...)

  I'm getting the impression, from the tidbits of plain english I can read in the code of the Apple Audio Extension extension, that the various devices are supported by a plug-in architecture.  This is what I'm basing my musings on as to whether or not we can transfer some later code back and patch it in.  The file also has a number of "Joy!peffpwpc" headers dividing up the code (as with most other extensions).  In case anyone was interested, here are a number of the device plug-in names I see in the file:

From a portion of the Data fork:
BurgundyPlugin
GCAwacsPlugin
DacaPlugin
USBAudioPlugin
VirtualHALPlugin
MLANAudioPlugin
DigitalSndPlugin
TumblerPlugin
SnapperPlugin

From a portion of the Resource fork:
DAVAudioPlugin
GCAwacsPlugin
I2SAudioPlugin
VirtualHALPlugin
SnapperPlugin
TumblerPlugin
ASPScalarPlugin
AltivecPlugin

Many of the above refer to specific motherboard integrated audio devices.

And here is a subsection of data from one of the plugins:
BurgundyPlugin
__SndHWSetPlaythrough
__SndHWSetSystemMute
__SndHWSetInputGain
__SndHWSetSystemVolume
__SndHWSetActiveOutput
__SndHWSetActiveInput

  Here it appears to be declaring basic operating parameters/variables to the Sound control panel for the given device name.  The extension mustn't be fully recognizing the Mini's sound device, "Toonie", and therefore never defining these parameters/variables.  Presumably we can either steal functional code from a later driver/plug-in, or perhaps even hack an existing plug-in to be recognized as belonging to the "Toonie" by OF name/address.

  This seems like a plausible explanation for the lack of controls or jack switch detection by the Sound control panel, given the evidence.
« Last Edit: March 08, 2018, 09:49:34 PM by MacOS Plus »

Offline neophytte

  • Newcomer
  • Posts: 1
  • new to the forums
Re: Booting Mac Os 9 on Mac Mini.
« Reply #295 on: March 08, 2018, 09:53:23 PM »
Now if we could just figure out how to hack in the serial port, I'd have enough MIDI interfaces available to do three or four co-opertive Minis with one on USB!

This is what I'm waiting for, with the addition of the new JamPort http://alexhixon.com/projects/jamport/index.html

Cheers

Offline MacOS Plus

  • Gold Member
  • *****
  • Posts: 418
  • The 9serve Lives!
Re: Booting Mac Os 9 on Mac Mini.
« Reply #296 on: March 08, 2018, 10:27:12 PM »
Now if we could just figure out how to hack in the serial port, I'd have enough MIDI interfaces available to do three or four co-opertive Minis with one on USB!

This is what I'm waiting for, with the addition of the new JamPort http://alexhixon.com/projects/jamport/index.html

Cheers

  I actually tried to email Alex with technical questions related to tracing the debug port on the Mini, but never got a response.  I'd love it if he were involved here.  I'd like a little educated direction before I get crazy and just start hack-patching wires and end up frying something.

Offline darthnVader

  • Platinum Member
  • *****
  • Posts: 679
  • New Member
Re: Booting Mac Os 9 on Mac Mini.
« Reply #297 on: March 09, 2018, 06:20:36 AM »
  A moment, please, while I vent my frustration with damned F*ING invisible characters!  (This lopped off most of my post and I had to build it again.  GRRRRRRRR...)

  I'm getting the impression, from the tidbits of plain english I can read in the code of the Apple Audio Extension extension, that the various devices are supported by a plug-in architecture.  This is what I'm basing my musings on as to whether or not we can transfer some later code back and patch it in.  The file also has a number of "Joy!peffpwpc" headers dividing up the code (as with most other extensions).  In case anyone was interested, here are a number of the device plug-in names I see in the file:

From a portion of the Data fork:
BurgundyPlugin
GCAwacsPlugin
DacaPlugin
USBAudioPlugin
VirtualHALPlugin
MLANAudioPlugin
DigitalSndPlugin
TumblerPlugin
SnapperPlugin

From a portion of the Resource fork:
DAVAudioPlugin
GCAwacsPlugin
I2SAudioPlugin
VirtualHALPlugin
SnapperPlugin
TumblerPlugin
ASPScalarPlugin
AltivecPlugin

Many of the above refer to specific motherboard integrated audio devices.

And here is a subsection of data from one of the plugins:
BurgundyPlugin
__SndHWSetPlaythrough
__SndHWSetSystemMute
__SndHWSetInputGain
__SndHWSetSystemVolume
__SndHWSetActiveOutput
__SndHWSetActiveInput

  Here it appears to be declaring basic operating parameters/variables to the Sound control panel for the given device name.  The extension mustn't be fully recognizing the Mini's sound device, "Toonie", and therefore never defining these parameters/variables.  Presumably we can either steal functional code from a later driver/plug-in, or perhaps even hack an existing plug-in to be recognized as belonging to the "Toonie" by OF name/address.

  This seems like a plausible explanation for the lack of controls or jack switch detection by the Sound control panel, given the evidence.

Is "Toonie" an enumerated property on the device tree, or is it just a nickname of the device that you're using?

I have an iBook G3 with the i2s audio device, fully supported by OS 9, and the properties for the device look about the same as my Mini/iBook G4/Powerbook G4. However only the Mini and the iBook G3 have working sound.

Tho I may need to test whit ELN's latest ROM's, as I tested the line-out on the Mini a few days ago, and it wasn't working.

Offline darthnVader

  • Platinum Member
  • *****
  • Posts: 679
  • New Member
Re: Booting Mac Os 9 on Mac Mini.
« Reply #298 on: March 09, 2018, 06:56:52 AM »
Apple's I2s driver is open source, but the K2 driver that seems to run the audio device is not.

https://opensource.apple.com/source/AppleI2S/AppleI2S-101.3.1/AppleI2S.cpp.auto.html

Offline MacOS Plus

  • Gold Member
  • *****
  • Posts: 418
  • The 9serve Lives!
Re: Booting Mac Os 9 on Mac Mini.
« Reply #299 on: March 09, 2018, 07:38:47 AM »
I believe it is supposed to be an enumerated property, akin to "screamer" that has been added to the compatible property on other machines to gain basic function.  There is a named driver in OS X specifically for the Toonie.  I thought I saw it in the detailed branch of the tree for the i2s device, but I'll have to go take another look at it again.

Update - So I got it confused with some monster listing I saw online somewhere.  Here's the device and its properties from OF on my machine:

dev /pci@F2000000/mac-io/i2s/i2s-a/sound .properties
name: Sound
device-type: Soundchip
compatible: AOAKeylargo
vendor-id: 0000106b
layout-id: 0000003a
object-model-version: 00000002

  As "AOAKeylargo" compatible (Apple Onboard Audio - Keylargo), this would imply Apple didn't re-invent the wheel with this device variant.  The bridge to it is I2S format but the function should be handled the same way as Keylargo.  Why it then isn't fully working using the existing Keylargo code, I don't know.  Can someone with more knowledge of past Keylargo device handling please comment?  The missing link here could be something incredibly simple.
« Last Edit: March 09, 2018, 08:01:25 AM by MacOS Plus »