On Mon, Jun 05, 2000 at 09:10:24PM -0700, Brian Macy wrote: > I'm trying to get my StarMax 4400 (OF 2.02) to like yaboot. Simply can't > get it to work. Since it is not a "New World" Mac 90% of the > documentation is not quite right.
yaboot will not work on oldworld macs, that is why the documentation says it won't and does not tell you how to set it up ;-) this question seems to come up over and over and over and over again, for some reason alot of people want to make yaboot work on oldworld macs despite the fact the statements that such an effort is futile, so i am going to attempt an explanation of both by yaboot won't work and why it is not desirable to use yaboot on an oldworld: 1) yaboot does not work: yaboot is designed for the newworld Macs which have a signicantly different system for bootstrap then the oldworld macs. they also have a much different version of OpenFirmware (read significantly less broken). on oldworld macs OpenFirmware is not at all responsible for the boot process, all it does is start the Hardware MacOS ROM and nothing else. the MacOS hardware ROM is 4MB worth of the MacOS, it is responsible for reading the disk and loading the rest of MacOS, not OpenFirmware. as a result Apple only implemented enough OpenFirmware to accomplish this goal, leaving a quite thoroughly broken implementation of OpenFirmware. Newworld macs on the other hand have no hardware Mac ROM, instead the old hardware ROM is saved into a compressed image, and attached to an ELF executable with a OpenFirmware CHRP boot script that reinvents the ELF loader among other things. OpenFirmware is responsible for executing this OpenFirmware CHRP script which eventually causes OF to load the ELF executable which in turn decompresses the ROM image into RAM, and executes that. in short newworld OF actually has to do a significant ammount of work, including reading of block devices (properly) and filesystems (properly) along with a useful execution environment. as a result newworld OpenFirmware is much much closer to a complete, and somewhat usable implemenatation of OpenFirmware (still rather broken in many obnoxious and shortsighted ways but...) 2) why you don't WANT to use yaboot on oldworld hardware: No matter how many times i say it, and its pointed out on the various yaboot documentation sites, people continue excercises in futility of setting up yaboot on an oldworld mac. I can only assume this is because yaboot is a OpenFirmware boot loader, for Macs that actually works without significant ammounts of witchcraft and black magic. and quik has an old reputation for being a rather vile 4 letter word. (and all distributions except debian are ignoring and leaving broken versions of quik in thier distribution). what i want to point out is that quik is not a 4 letter word, and its not a horrible boot loader (but is not free of problems largly not its fault). first let us go over the main complaints about quik: a) difficulty finding and configuring the boot-device OF variable. with quik you must change the boot-device variable to the disk for which quik is installed, this is required since the boot-device is not set to a disk at all on oldworld machines, instead it is set to /AAPL,ROM the MacOS hardware ROM. on newworld machines you do not have to mess with boot device if your using IDE disks and ybin. yaboot being an OF boot loader, even if it worked on oldworld, would STILL require you to change the boot-device variable in the EXACT SAME WAY as you do with quik. this problem is not solved by using yaboot instead of quik. b) oldworld macs (with very few exceptions) lack the ability to interface with OF from the console, instead you must use a serial terminal: this is a significant annoyance given you are unable to see error messages and diagnose improper boot-device settings, or broken quik config files. or any number of other problems. you are also unable to boot alternate kernels since you cannot interface with the quik boot: prompt. again yaboot is a OF boot loader, its boot: prompt appears in OF, and thus will fall victim to this same limitation of oldworld OF, you will still need a serial terminal to use an diagnose yaboot (if it worked) that you need for quik. again nothing is gained from using yaboot instead of quik here. c) quik is broken and/or unreliable: wrong, debian's quik is fixed for Powerpc hardware (for the most part) however OpenFirmware is VERY *VERY* broken (broken does not begin to describe it) this makes building a working OpenFirmware program (such as a boot loader) rather difficult, and reliability is a difficult goal given OF itself is inherently unreliable on these machines. (try building a stable house on sand...) quik can and does work fairly reliably on some machines. however another problem is the kernel itself has to load in a slightly different way compared to newworlds (something i am not, nor wish to be, intimatly familer with, see the various prom.[ch] files about the kernel source if you are interested.) this code may or may not be functional in a given kernel, (i am quite suspicious that its broken in paul's 2.2.15) the kernel developers also AFAIK do not test with quik meaning the kernel itself may fail to boot from quik, but this is not really quik's fault. since yaboot would have to load the kernel the way quik does to work on oldworld macs you would gain nothing here, the kernel may (probably) would still have problems booting with yaboot on an oldworld. and since OF is so broken yaboot is not likly to be any less flaky then a quik setup since the foundation it is built on is such crap. anyway those i think are the main issues people have with quik, other then its horrible reputation, and all the propaganda LinuxPPC, Inc. has been spreading about it since BootX appeared has created an exaggerated stench around quik. (which was so bad that people feared yaboot just as much (by association with the other 4 letter word OpenFirmware) until very recently (and even still)) however now that yaboot is beginning to get a reputation of its own which is not negative people think that porting yaboot to oldworld will magically solve the boot loader problem for those machines, this is a myth (or psychological manifestation) yaboot will solve NOTHING on oldworld macs. for a simpler explanation of why: yaboot is basically the same thing as quik's second stage loader, so port yaboot to oldworld and you get /boot/second.b (in ELF format). so agian, yaboot does NOT work on anything except *NEWWORLD* macs, that means iMacs, BlueG3s, iBooks, all G4s. it will *NOT* work on oldworld macs, and making it work on oldworld macs would IMO be a large waste of time since the problems are really not in the boot loader (quik) but in OpenFirmware on this hardware (and [alleged] lack of kernel support) final word: * If you have oldworld hardware, your boot loader is quik [1]. deal with it. * If your hardware is newworld then you are privileged with a machine more ammicable to non-MacOS booting then oldworlds are. [1] the other option for oldworld is BootX, which is not really a boot loader IMO (the same way Loadlin is not really a boot loader). Note: for oldworld hardware, if you do NOT have MacOS installed another option may be miboot, but this option requires a standard HFS partition and that your kernel be held on that partition. MacOS will of course mount it and see its clearly fake and remove the boot blocks and debless the partition making it unbootable. this is why miboot is not really suitable for anything except CDs or boot floppies, not a general purpose boot loader. Note2: I do have an idea about implementing an oldworld Bootloader that does not suffer miboot's limitations/problems and bypasses OpenFirmware (and all its problems) and does NOT require macos. however: 1) i am not certain it would work. 2) it would take someone very familier with the MacOS hardware ROM, and what it can do. it would also take someone familier with 68K assembly, and probably a lot of reverse engineering to pull off. if you have these qualifications and some time (haha) let me know and ill explain it, i am too tired to explian it now ;-). thanks for reading. -- Ethan Benson http://www.alaska.net/~erbenson/
pgplZqGpuUlLe.pgp
Description: PGP signature