[OpenBIOS] QEMU OpenBIOS booting?

Steven Noonan steven at uplinklabs.net
Sun Apr 19 10:27:49 CEST 2009


On Sun, Apr 19, 2009 at 1:24 AM, Laurent Vivier <Laurent at lvivier.info> wrote:
> Le dimanche 19 avril 2009 à 00:50 -0700, Steven Noonan a écrit :
>> On Tue, Apr 14, 2009 at 10:46 PM, Steven Noonan <steven at uplinklabs.net> wrote:
>> > On Sun, Apr 12, 2009 at 1:39 AM, Laurent Vivier <Laurent at lvivier.info> wrote:
>> >> OpenBIOS is not able to boot MacOS X.
>> >
>> > Well, that's a silly limitation. Is there a reason this isn't
>> > implemented? I see that the Mac-on-Linux OpenBIOS version has such
>> > support, so it seems strange that the QEMU version does not.
>>
>> I don't know if anyone here is actually interested (this list seems
>> -very- quiet), but...
>
> Hi,
>
>> I've been hacking at OpenBIOS for a bit, and I got it to properly read
>> Mac OS X discs (it kept failing because it would hit an Apple
>> Partition Map header instead of an HFS+ filesystem header). I'm
>> working on adding an XCOFF loader, too, so it should be able to boot
>> Mac OS X soon.
>
> You can copy it from OpenHackWare.
> I made some tests and it seems to have some memory conflicts between
> MacOS kernel and OpenBIOS.
>
> Good Luck.
>
>> Any chances I could get these changes merged to the main OpenBIOS tree
>> once they're done?
>>
>
> Yes
>
>> My current working repository is at http://github.com/tycho/openbios.
>> I'm working on the macosx-boot branch. The relevant commit is here
>> (patch also attached):
>> http://github.com/tycho/openbios/commit/4722c8a01d186a08183de49759dc8b7b74cf41c9
>>
>> Thoughts?
>
> I don't understand why this patch is needed. Could you explain ?
>

If you pass QEMU a Mac OS X install disc ISO (via dd from an original
disc), OpenBIOS will try to scan for a bootable partition. When it
calls fs_hfsp_open(), it fails the volume_open() call because instead
of finding an HFS+ filesystem header, it finds an Apple Partition Map
header. The APM header points to the location of the HFS+ filesystem
header. So basically, it just gives the necessary offset from the
start of that slice to find the HFS+ header.



More information about the OpenBIOS mailing list