help-grub
[Top][All Lists]
Advanced

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

Re: xnu_kernel64: Unable to boot into Mountain Lion


From: Mihai Draghicioiu
Subject: Re: xnu_kernel64: Unable to boot into Mountain Lion
Date: Thu, 26 Sep 2013 17:08:39 +0300

I've managed to install the trunk grub. It's looking better, though not quite there yet. Windows and Debian are booting fine, and OSX is booting as well, no more reboot at startup now, I even get some text when booting, but after that, the screen turns off (no signal), and there is hdd activity, and I think I even managed to log in and make some notification sounds, so it's like it boots up fine, just no video!

I've tried disabling the graphical console in grub, and removing load_video in the OSX menu entry, but the first one didn't affect it, and the second one just made it go into blind mode, and then, again, into no video, but rest of system working mode.

I have an nVidia card. Not quite sure what to do next. I don't know what logs to investigate on the osx partition either.

And here is a log extract from Console.app (I managed to boot with chainloading)

[...]
9/26/13 6:33:16.000 PM kernel[0]: MAC Framework successfully initialized
9/26/13 6:33:16.000 PM kernel[0]: using 15728 buffer headers and 9912 cluster IO buffer headers
9/26/13 6:33:16.000 PM kernel[0]: IOAPIC: Version 0x20 Vectors 64:87
9/26/13 6:33:16.000 PM kernel[0]: ACPI: System State [S0 S3 S4 S5] (S3)
9/26/13 6:33:16.000 PM kernel[0]: PFM64 (36 cpu) 0xf10000000, 0xf0000000
9/26/13 6:33:16.000 PM kernel[0]: [ PCI configuration begin ]
9/26/13 6:33:16.000 PM kernel[0]: console relocated to 0xf11000000
9/26/13 6:33:16.000 PM kernel[0]: PCI configuration changed (bridge=2 device=1 cardbus=0)
9/26/13 6:33:16.000 PM kernel[0]: [ PCI configuration end, bridges 5 devices 16 ]
9/26/13 6:33:16.000 PM kernel[0]: RTC: Only single RAM bank (128 bytes)
9/26/13 6:33:16.000 PM kernel[0]: mbinit: done [64 MB total pool size, (42/21) split]
9/26/13 6:33:16.000 PM kernel[0]: Pthread support ABORTS when sync kernel primitives misused
9/26/13 6:33:16.000 PM kernel[0]: Waiting for boot volume with UUID 556CC1F2-C028-3699-810D-F5BFD3D9D51C
[...]

It starts by outputting text until it reaches [ PCI configuration begin ], then it stalls for a bit. The line right after that is 'console relocated to 0xf11000000', which might be meaningful, but something tells me that seeing as the timestamp is the same, the console gets relocated before the screen goes blank, and is not the cause.

After checking the logs and comparing a GRUB boot with a Chameleon boot, it seems the nVidia driver is having some trouble. Most important, Chameleon makes the OS behave exactly like GRUB, if I set GraphicsEnabler to No in /Extra/org.chameleon.Boot.plist. So perhaps we're closing in on the problem - GRUB does not do this graphics enabling that is apparently necessary and present in Chameleon.

Here is the menuentry generated by grub-mkconfig, if it makes any difference:


menuentry 'Mac OS X (64-bit) (on /dev/sda2)' --class osx --class darwin --class os $menuentry_id_option 'osprober-xnu-64-689f9c8a6b4f3520'  {
insmod part_msdos
insmod hfsplus
set root='hd0,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2  689f9c8a6b4f3520
else
 search --no-floppy --fs-uuid --set=root 689f9c8a6b4f3520
fi
        load_video
        set do_resume=0
        if [ /var/vm/sleepimage -nt10 / ]; then
           if xnu_resume /var/vm/sleepimage; then
             set do_resume=1
           fi
        fi
        if [ $do_resume = 0 ]; then
           xnu_uuid 689f9c8a6b4f3520 uuid
           if [ -f /Extra/DSDT.aml ]; then
              acpi -e /Extra/DSDT.aml
           fi
           if [ /kernelcache -nt /System/Library/Extensions ]; then
              xnu_kernel64 /kernelcache boot-uuid=${uuid} rd=*uuid
           else
              xnu_kernel64 /mach_kernel boot-uuid=${uuid} rd=*uuid
              if [ /System/Library/Extensions.mkext -nt /System/Library/Extensions ]; then
                xnu_mkext /System/Library/Extensions.mkext
              else
                xnu_kextdir /System/Library/Extensions
              fi
           fi
           if [ -f /Extra/Extensions.mkext ]; then
              xnu_mkext /Extra/Extensions.mkext
           fi
           if [ -d /Extra/Extensions ]; then
              xnu_kextdir /Extra/Extensions
           fi
           if [ -f /Extra/devprop.bin ]; then
              xnu_devprop_load /Extra/devprop.bin
           fi
           if [ -f /Extra/splash.jpg ]; then
              insmod jpeg
              xnu_splash /Extra/splash.jpg
           fi
           if [ -f /Extra/splash.png ]; then
              insmod png
              xnu_splash /Extra/splash.png
           fi
           if [ -f /Extra/splash.tga ]; then
              insmod tga
              xnu_splash /Extra/splash.tga
           fi
        fi
}


On Thu, Sep 26, 2013 at 3:02 PM, Mihai Draghicioiu <address@hidden> wrote:
Thanks, I'm trying it now.


On Thu, Sep 26, 2013 at 2:28 PM, <address@hidden> wrote:
You need post-2.00 grub to support Apple bi-arch format. Try current trunk.

Отправлено с iPhone

26.09.2013, в 15:24, Mihai Draghicioiu <address@hidden> написал(а):

Hi Andrey! I've tried this:

menuentry "Mountain Lion (EFI)" --class osx --class darwin --class os {
insmod part_msdos
insmod hfsplus
set root='(/dev/sda,msdos2)'
search --no-floppy --fs-uuid --set=root 689f9c8a6b4f3520
load_video
parttool (hd0,2) boot+
chainloader /usr/standalone/i386/boot.efi
}

but I'm getting 'Invalid signature'. Could you show me the cfg you used to get yours working please?



On Thu, Sep 26, 2013 at 2:02 PM, Andrey Borzenkov <address@hidden> wrote:
В Thu, 26 Sep 2013 13:53:20 +0300
Mihai Draghicioiu <address@hidden> пишет:

> Hello everyone!
>
> I'm trying to get a triple boot 64-bit Intel PC going correctly. There are
> Windows 8, Debian 7 and OSX Mountain Lion on it.
>
> Windows 8 and Debian boot fine from Grub, but the only way I got Mountain
> Lion to boot was via chainloading the Chameleon bootloader. The other
> option is using the xnu_* commands available, and update-grub generates the
> proper menu entries, however, when I choose the 32 bit menu entry it says
> there is no suitable kernel for 32 bit, and when I choose the 64 bit entry,
> it hangs for 1-2 seconds and then reboots. I've managed to place echo's in
> the boot sequence, and every command is executed before the reboot takes
> place. There is no output, the machine reboots before reaching the Apple
> logo loading screen.
>
> If this is a bug, and not a misuse on my part, please mention so I can
> submit it to the grub and debian bug trackers (personally I think it's
> already a Debian bug).
>

Yes, apparently grub xnu loader cannot boot modern OS/X versions. I was
able to boot it by directly chainloading OS/X EFI bootloader. Path
was /usr/standalone/i386/boot.efi if I'm not mistaken. This avoids need
to use third-party programs.

> Also, perhaps there are some debug flags I can turn on to see what's
> happening?
>
> I've found a similar situation on this webpage
> http://www.insanelymac.com/forum/topic/282748-grub2-xnu-kernel/
>
> Now I'm going to provide as much info as I can, please specify if more is
> needed to get a proper idea why this doesn't work:
>
> OS X version is Mountain Lion 10.8
>
> HDD is 1TB
> Partition table (MBR):
>   Primary 200G NTFS (Win 8)
>   Primary 100G HFS+ (OSX) Active
>   Extended
>     Linux 20G
>     Swap 5G
>     600G NTFS (Storage)
>
> # fdisk /dev/sda
>
> The device presents a logical sector size that is smaller than
> the physical sector size. Aligning to a physical sector (or optimal
> I/O) size boundary is recommended, or performance may be impacted.
>
> Command (m for help): p
>
> Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
> 255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
> Units = sectors of 1 * 512 = 512 bytes
> Sector size (logical/physical): 512 bytes / 4096 bytes
> I/O size (minimum/optimal): 4096 bytes / 4096 bytes
> Disk identifier: 0xfa12c820
>
>    Device Boot      Start         End      Blocks   Id  System
> /dev/sda1            2048   419432447   209715200    7  HPFS/NTFS/exFAT
> /dev/sda2   *   419432448   629147647   104857600   af  HFS / HFS+
> /dev/sda3       629147648  1953525167   662188760    5  Extended
> /dev/sda5       629149696   671092735    20971520   83  Linux
> /dev/sda6       671094784   681580543     5242880   82  Linux swap / Solaris
> /dev/sda7       681582592  1953525167   635971288    7  HPFS/NTFS/exFAT
>
>
>
> Here are a few menu entries that generate this behavior:
>
> This I got from some webpage - it seems minimal
> menuentry "Mac OS X" {
>   set root=(hd0,2)
>   insmod video
>   insmod vbe
>   gfxmode="1280x800x32"
>   xnu_kernel /mach_kernel rd=disk0s2
>   if [ /System/Library/Extensions.mkext -nt /System/Library/Extensions ];
> then
>      xnu_mkext /System/Library/Extensions.mkext
>   else
>      xnu_kextdir /System/Library/Extensions
>   fi
> }
>
>
> This is generated by update-grub:
>
> menuentry "Mac OS X (64-bit) (on /dev/sda2)" --class osx --class darwin
> --class os {
> insmod part_msdos
> insmod hfsplus
> set root='(/dev/sda,msdos2)'
> search --no-floppy --fs-uuid --set=root 689f9c8a6b4f3520
>         load_video
>         set do_resume=0
>         if [ /var/vm/sleepimage -nt10 / ]; then
>            if xnu_resume /var/vm/sleepimage; then
>              set do_resume=1
>            fi
>         fi
>         if [ $do_resume = 0 ]; then
>            xnu_uuid 689f9c8a6b4f3520 uuid
>            if [ -f /Extra/DSDT.aml ]; then
>               acpi -e /Extra/DSDT.aml
>            fi
>            xnu_kernel64 /mach_kernel boot-uuid=${uuid} rd=*uuid
>            if [ /System/Library/Extensions.mkext -nt
> /System/Library/Extensions ]; then
>               xnu_mkext /System/Library/Extensions.mkext
>            else
>               xnu_kextdir /System/Library/Extensions
>            fi
>            if [ -f /Extra/Extensions.mkext ]; then
>               xnu_mkext /Extra/Extensions.mkext
>            fi
>            if [ -d /Extra/Extensions ]; then
>               xnu_kextdir /Extra/Extensions
>            fi
>            if [ -f /Extra/devprop.bin ]; then
>               xnu_devprop_load /Extra/devprop.bin
>            fi
>            if [ -f /Extra/splash.jpg ]; then
>               insmod jpeg
>               xnu_splash /Extra/splash.jpg
>            fi
>            if [ -f /Extra/splash.png ]; then
>               insmod png
>               xnu_splash /Extra/splash.png
>            fi
>            if [ -f /Extra/splash.tga ]; then
>               insmod tga
>               xnu_splash /Extra/splash.tga
>            fi
>         fi
> }
>
> And, finally, this is what I'm using which works by chainloading (one of
> the commands, possibly search, generates an error, but that's fine, it
> works anyway):
>
> menuentry "Mountain Lion (Chameleon)" --class osx --class darwin --class os
> {
> insmod part_msdos
> insmod hfsplus
> set root=(hd0,2)
> search --no-floppy --file --set=root (hd0,2)
> parttool (hd0,2) boot+
> sendkey enter
> chainloader /boot0
> }
>
> Any ideas and hints are welcome, thanks!





reply via email to

[Prev in Thread] Current Thread [Next in Thread]