Jump to content

LeopardAssist III


Recommended Posts

A little something that may be of use to the 68kMLA community. Since I heard that LeopardAssist was still being actively used over on the MacRumors forums, I decided to revisit the source code and see if there was anything that could be done with it. At some point it seems I'd deleted and lost the source code, and SourceForge only had the source up to version 1.2.

 

So I decided to completely rewrite LeopardAssist from scratch. In doing so, I resolved a lot of issues that I couldn't quite nail down back in 2009. LeopardAssist III was released as a Release Candidate on December 17th, 2013, and includes the following changes:

 

 

  • Complete Rewrite with numerous under-the-hood improvements and optimisations.
  • Redesigned interface and icon.
  • Users can now choose to start in Single User Mode and Safe Boot after restart.
  • Added automatic detection of Single and Dual processor systems.
  • Added the ability for users to specify a custom processor clock frequency.
  • Added detection for unsupported architectures and insufficient memory.
  • Improved security when handling passwords at Authentication stage.

 

 

Since it's a complete rewrite, it uses completely different methods of detecting the hardware, authenticating and writing to the NVRAM. As such I've scrapped the now outdated list of "known compatible" machines and started over, hence why it's a Release Candidate. It may require some changes to improve support before I can move it on to Final status (and feedback is welcome), but with the machines I've personally tested it on, it seems to be significantly better than the old version 2.3.3 that it replaces.

 

http://leopardassist.sourceforge.net (SourceForge, 3.0MB ZIP)

 

https://www.macupdate.com/app/mac/26562/leopardassist (MacUpdate mirror)

 

Of course, versions 1.1, 1.2 and 2.3.3 have also been archived and are now available from the LeopardAssist Project Page on SourceForge if anyone wants them.

 

 

Cheers,

~ Mic.

Link to post
Share on other sites

So what is the list of "Known Compatible", and are there more you'd like help with that I have?

 

iMac G4 800 MHz 17" GeForce 4MX graphics, the very first 17", that can still boot OS 9.

Power Mac G4 Digital Audio, either with original 433 MHz CPU or upgraded to 1 GHz, with either stock Rage 128 Pro graphics or GeForce 4 Ti 4600. (1 GHz/GeForce4 is easiest to test, since that's what it's at now. :-p)

G4 Cube with stock 450 MHz CPU and GeForce2 MX video card.

 

Right now, the Digital Audio and the iMac both have Leopard on them. I have never been able to get the Cube to boot Leopard, it always complains that it's machine model isn't supported, even with the direct Open Firmware hack and with the prior LeopardAssist. (Although it did have a Rage 128 in it last time I tested.)

 

 

Edit: Tried it on the Cube. Booting my 10.5.0 install CD (Retail) gives a kernel panic:

panic(cpu 0 caller 0x0036C4F0): "Unable to find driver for this platform: \"PowerMac5,1\".\n"@/SourceCache/xnu/xnu-1228/iokit/Kernel/IOPlatformExpert.cpp:1378

(Plus a lot more debugging info. If it's helpful, I can post it.)

 

This is also what I get when I try to boot an external hard drive that has 10.5 updated all the way to 10.5.8. Previously I had tried it with the stock Rage 128 Pro; this was the first time with the GeForce 2MX. Everything else is stock. (Oh, plus upgraded to 640 MB RAM.) I find this odd, since I've seen others claim that their Cube can run Leopard just fine...

 

This is the same install DVD that was successful in getting Leopard installed on every Mac I've used it on, including the iMac G4 and Power Mac G4 Digital Audio - both of which had sub-867 MHz CPUs when Leopard was installed.

Link to post
Share on other sites

With previous versions, I used to keep track of machines that LeopardAssist was confirmed to work on. I've since come to accept that it's less clear cut, and some machines work while others don't. So the "Known Compatible" list has been scrapped. However I have tested LeopardAssist on the following machines with success:

 

- Power Mac G4 QuickSilver (Original, not 2002 or 2002ED)

- Power Mac G4 Digital Audio

- Power Mac G4 Sawtooth

- iBook G4 (800MHz, October 2003)

 

LeopardAssist worked when run on OS X Panther and OS X Tiger on the same hardware.

 

Unfortunately LeopardAssist is only capable of clock frequency modification - it doesn't install any additional kernel extensions or modify any system files. "Unable to find driver for this platform" suggests that OS X is unable to locate the correct kernel extensions for the hardware. I haven't had the chance to look into this myself though as all my machines have accepted Leopard without modification. Even once it's resolved, I wouldn't be sure that LeopardAssist could correct it since it would depend on modifying Leopard's system files after installation, which would depend on Leopard being bootable so LeopardAssist could be run... and so on.

 

One more thing I need to mention is this line in the "Read Me First" document (Step 2 of the LeopardAssist setup assistant):

 

 

WARNING! Users of Third-Party processor upgrade cards that supply their own custom firmware should not use LeopardAssist. Incompatibilities between the changes made by LeopardAssist and the modified firmware may result in consequences such as instability, reduced performance or damage to the firmware, rendering the system unusable.

 

 

I haven't tested LeopardAssist on any machines with a processor upgrade card, but I included this line after receiving an email from someone using LeopardAssist 2.1 several years ago with a Powerlogix processor upgrade card. After running LeopardAssist, the machine would no longer boot. I can't exactly explain the reason for this, and I never found out how the issue was resolved. Since machines with processor upgrades are already likely to meet the minimum requirements for OS X Leopard, I can't recommend running LeopardAssist on those machines.

Link to post
Share on other sites
Confirmed it works on an iMac G4/800 MHz 17", mid-2002 (the OS 9-bootable one,) works fine with the latest LeopardAssist.

 

Also, figured out what was up with the Cube. It needed a firmware update. :I

 

Updated the firmware, LeopardAssist let it install just fine.

 

 

Excellent to know! I'll make sure to update the Read Me for the final release to include a line about ensuring you have the most up-to-date firmware. :D

Link to post
Share on other sites

LeopardAssist III is almost ready to be released in its final form. At the moment the code remains mostly the same, differing only with one small UI change, new documentation and a small tweak to the debugging code (which only matters when being run in Debug mode and doesn't get compiled into the final anyway).

 

So before I sign off on this one, does anyone have any last minute feedback or requests for changes or additions that should be rolled into the 3.0 final?

 

I'm considering holding off on the release until I can get some feedback (or set up my own test system) on how it runs on Jaguar. As it stands only Panther and Tiger are confirmed, while Jaguar is still an uncertainty.

Link to post
Share on other sites
LeopardAssist III is almost ready to be released in its final form. At the moment the code remains mostly the same, differing only with one small UI change, new documentation and a small tweak to the debugging code (which only matters when being run in Debug mode and doesn't get compiled into the final anyway).

 

So before I sign off on this one, does anyone have any last minute feedback or requests for changes or additions that should be rolled into the 3.0 final?

 

I'm considering holding off on the release until I can get some feedback (or set up my own test system) on how it runs on Jaguar. As it stands only Panther and Tiger are confirmed, while Jaguar is still an uncertainty.

 

Give me a couple minutes...

 

 

Alright, really quick notes:

 

1. PowerBook G4 12", 867 MHz (officially supported by Leopard,) running 10.2.8. LeopardAssist has 'generic' icon. Loads, but cannot click "Continue" with the mouse. Using "enter" on the keyboard moves to next screen fine. But it means I must accept all defaults. And it means I can't go back at any point. Properly sets boot to optical drive just fine, boots optical drive in Normal Startup mode. Leopard installer seems to work fine. (Not taking the time to do a full install.)

 

2. iMac G4 18", 800 MHz (the last OS 9 bootable model, NOT officially supported by Leopard,) running 10.2.8. Same behavior inside the LeopardAssist interface: must use keyboard, can't click anything. Also does *NOT* appear to set the speed properly, as the Leopard install disc gives me the "Mac OS X cannot be installed on this computer." error. LeopardAssist works exactly as expected on the same system from 10.3.9, setting the CPU speed properly for the Leopard disc to be willing to install. (I did not take the time to actually install.)

Link to post
Share on other sites

I didn't expect Jaguar to work. It sounds like there's two issues in play here, firstly the script isn't writing correctly, possibly due to limitations with the command line tools that LeopardAssist depends on (grep, head, machine, nvram, sed, sudo, sysctl, system_profiler, tr, whoami) or the flags passed on to those tools. Secondly it sounds like the REALbasic 2007 runtime, which implements its own controls, requires Panther or higher.

 

So I think it's safe to say that LeopardAssist on Jaguar is a write-off.

 

I've also made a couple of changes based on a couple of requests I've received in recent weeks:

 

- Boot From USB (on supported systems). Makes use of the boot command boot ud:,\\:tbxi.

- Supported on Power Mac G5s / iMac G5s. These machines already support Leopard, but LeopardAssist will still configure the boot device and startup flags.

 

 

I just need to test LeopardAssist with these alterations in place to make sure the code changes haven't affected the other features. It's likely that I'll release this modified version for testing before it's cleared to the public as well, but we're definitely a step closer.

Link to post
Share on other sites

For the 68kMLA. Here's the latest compile of LeopardAssist 3 (Release Candidate 2) for testing.

 

https://app.box.com/s/pc9cubid70edtgrmw4dj

 

 

I've successfully tested it on my iMac G4, however some changes that need particular attention:

 

  • LeopardAssist should now throw an error when being run on Mac OS X versions lower than Panther 10.3. No such messages should occur when being run on Panther 10.3 or later.
  • LeopardAssist now supports G5-based Macs! While it won't change clock frequencies, it can still customise the boot device and startup mode (boot-args).
  • Boot From USB is now supported. This may not work in all circumstances. If you can type boot ud:,\\:tbxi into Open Firmware and boot from USB, then LeopardAssist will support your machine.
  • The Hard Drive boot device option now writes boot hd:,\\:tbxi to the NVRAM instead of simply using mac-boot.
  • Minor changes to how the NVRAM script is generated by LeopardAssist. You can check to make sure it all looks good before applying it by clicking Tools > View NVRAM Script at the Applying Changes step.
  • New documentation at the Read Me First stage, including information about potential issues such as Firmware Updates and Third Party Processor Upgrades.

 

 

Some features that haven't been added include Outdated Firmware Detection (since this would be incredibly complex and would require a lot of research, possibly a future release could finally tackle this issue) and Bootable LeopardAssist media, which I am still looking in to in order to determine if it's feasible without writing an entirely custom boot loader and minimal system.

 

Feedback is encouraged.

 

Cheers,

~ Mic.

Link to post
Share on other sites

It's more like "I've removed the restrictions". While I was adding some new properties to LeopardAssist, I added one called "Frequency". If the frequency property is disabled for any reason, it will skip the Clock Frequency step. One side effect is that instead of having LeopardAssist fail completely on the G5, I could just disable the frequency property.

 

So, when LeopardAssist is run on a G5, you can still select boot devices:

 

  • CD/DVD
  • Hard Drive
  • USB
  • Ethernet
  • Select On Startup (Multi-Boot)

 

and Startup Modes:

 

  • Normal Startup
  • Verbose Mode
  • Safe Boot
  • Single User Mode

 

So while LeopardAssist isn't required on the G5, it does no harm by allowing those features to work on the G5. One nifty feature is that when LeopardAssist writes these into the NVRAM, they're retained on every boot until the PRAM is reset. Holding down keys is not required.

 

Who knows, perhaps someone will find them useful?

Link to post
Share on other sites
  • 3 weeks later...

Alright, LeopardAssist III Release Candidate 2 is now available.

 

http://leopardassist.sourceforge.net (SourceForge, 3.1MB ZIP)

 

https://www.macupdate.com/app/mac/26562/leopardassist (MacUpdate mirror)

 

 

It has some extensive under-the-hood changes from v3.0-preview (RC1). So many that It could have been considered a version increment to 3.1. The changes include:

 

  • Extensive rewrite of the UI code
  • Extensive rewrite of the Backend (interfacing with OS/NVRAM) code
  • Minor UI changes
  • Limited customisation of startup options now available on G5 systems.
  • Added option to boot from USB where supported.
  • Reset Firmware Defaults now performs a complete Open Firmware reset on restart.

 

With a little luck, this will be the version that's released as the Final. It seems to work so smoothly on the machines I've been able to test it on.

 

 

Cheers,

~ Mic.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...