[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: yaboot etc



On 25/1/2000 Sergio Brandano wrote:

 Hi, I have a little question on yaboot
 http://calvaweb.calvacom.fr/bh40/test.html

- Is it the only way to boot kernel 2.2.14+ ?

I do not think so, but it is the most reliable on the colored macs (BlueG3s, all G4s, iMacs etc known as "Newworld" macs) I have personally have had alot of trouble booting recent kernels with bootx on my Blue and White G3, but I have had more problems with BootX then most...

- As I am still booting 2.2.13 with BootX on my Lombard, is there any
  chance to boot 2.2.14+ with BootX?

I don't see why not... Ben?

one thing about the Lombard, I do not know for sure if it has a Newworld ROM or the old style 4MB MacOS hardware ROM. I am pretty sure yaboot will only work on Newworld macs.

- I am puzzled by the installation instructions of yaboot and its
  installer. Is yaboot a binary for linux or Mac? I mean, BootX runs
  on MacOS, but is not clear where yaboot should be really installed.
  I have the binary, but what do I do with it? Also, if I use yaboot,
  do I have to remove BootX? If I remove BootX, does yaboot give me
  cute window for choosing the OS?

Ok, first yaboot is neither a macos or linux executable, it is an OpenFirmware executable. OpenFirmware is a small peice of software embedded in the hardware boot ROM.

Now, here is where it gets messy... all the `newworld' macs (colored G3s, G4s etc) have a version of OpenFirmware which is incapable of loading a boot sector off of a disk partition, that is how quik worked, it installed a small bootblock onto the first 1024 bytes of the linux root partition and OpenFirmware loaded that code which in turn loaded the linux kernel. now since the newer OpenFirmware will not load a bootblock like that quik will not work and the only way to boot was with BootX, which tends to be a bit less reliable, and forces you to keep around macos even if you don't need it for anything else.

Now the newworld macs boot MacOS quite differently then older macs did. MacOS on these machine in order to boot requires a MacOSROM file, which apple has told you is a image of the old hardware ROM all previous macs had, which it is, but its also an OpenFirmware executable, a bootloader.

yaboot is very similar except it has no image of a macos ROM. OpenFirmware executes yaboot and yaboot boots the linux kernel directly off an ext2 filesystem.

now, I mention "bootstrap" partitions, the best way to use yaboot is to create a small 800K partition with a partition type of Apple_Bootstrap (normal macos partitions are type Apple_HFS, and linux partitions are Apple_UNIX_SVR2 or something) this partition will have an HFS filesystem on it, because OpenFirmware is only capable of reading MSDOS and HFS[+] filesystems. the Apple_Bootstrap type just keeps it hidden from MacOS.

what ybin does, (the yaboot installer i wrote for linux, its not a macos utility) is copy a small OpenFirmware script, the yaboot executable and its configuration file to the bootstrap partition, then it sets the HFS 4 character Type code on the script to "tbxi". it then sets the "blessed" bit on the root directory of the HFS filesystem.

On a Macos system you have a System file a Finder file and now a MacOSROM file, the MacOSROM file is type "tbxi" and all of these files reside in a directory called System Folder on the root level of your macos partition. the System Folder has the "Blessed" bit set, traditionally the blessed bit is how the macintosh hardware located the active system folder and was able to execute the System file, on newworld macs OpenFirmware reads the HFS filesystem and finds the directory with the Blessed bit set and then looks for a file with a 4 character type code of tbxi and executes it.

now OpenFirmware when it finds my bootstrap partition sees the root directory is blessed so it looks for a file of type tbxi, and what it finds is a little OpenFirmware script so it reads that and sees its supposed to run the OF command "boot hd:\\yaboot" which executes the yaboot binary, and then yaboot takes over and loads the linux kernel.

assuming the bootstrap partition is the first partition found by OpenFirmware and its on the internal apple supplied hard disk the system can boot without ANY modification to OpenFirwmare's settings.

now there is no reason you are required to use the dedicated bootstrap partition, you can load yaboot from any OpenFirmware readable partition, such as your MacOS bootdisk, the problem is you have to modify OpenFirmware's settings to do it, if you were to set the blessed bit to the root directory on your macos boot disk MacOS would no longer boot. this is why its cleaner to have a dedicated bootstrap partition to hold the yaboot bootloader. in order to load yaboot from a macos partition, put the yaboot binary onto the root level of your macos disk, and puts its configuration file yaboot.conf next to it. then boot into OpenFirmware and type boot <path to macos disk>:,yaboot and yaboot will load.

I wrote ybin to be configurable in how it copies the yaboot executable to a partition, you can configure it to only copy the executable and its config file to any hfs partition, but not set its file type or set the blessed bit on the root directory. the point of that is to allow you to easily update your yaboot configuration without needing to know how to use hfsutils and to be able to do it with one single command.


- concerning the yaboot installer, it is supposed to install yaboot in
  a boot partition, which may also be a MacOS partition. So is yaboot
  MacOS bin or a Linux bin?

the yaboot installer is configurable in where and how much it does, by default its designed for a dedicated HFS bootstrap partition, as this is the ideal configuration since it required minimal to no changes to OpenFirmware (which is kinda a pain to mess with) but if you configure it to only copy the files and you take care of reconfiguring OpenFirmware yourself you can keep it on your Macos boot disk. in this case its best to use a multiboot script to give you a menu at bootup allowing you to choose what OS to load, BenH wrote such a script which i could dig up sometime (i should add it to my ybin distribution but need to ask ben first)

ybin includes more detailed instructions how to set its various options for where and how it installs.

 These instructions are not clear.

Yes it needs improvement, I am a bit busy with some other things right now, but I hope to soon write better instructions and a HOWTO for setting up yaboot and dual booting with macos, hopefully something more coherant this all this rambling ;-)

At 13:35 +0100 25/1/2000, Momchil Velikov wrote:

And while we are at it, does it work on older Macs (e.g. 8500) ?

I doubt it, I do not think the OpenFirmware in these macs is able to read a filesystem (pretty much the opposite problem of new macs, it can read boot blocks but not filesystems, new macs can read filesystems but not bootblocks...) for your machine I think you would need quik. but i might be mistaken on that...

I hope i answered your questions, I am having a hard time explaining how this is supposed to work without needing to explain the whole boot process for new and old macs, which gets rather involved... If i totally lost you let me know and I'll try again ;-)


--
Ethan Benson
To obtain my PGP key: http://www.alaska.net/~erbenson/pgp/


Reply to: