Jump to content

grub2 and efi strings


7 posts in this topic

Recommended Posts

Im trying to set multiboot linux/macosx with grub2.

When I start Chameleon from MBR all works fine.

When I'm trying to boot MacOSX, system does not use efi string for my graphic card.

I understand, that bootloader should load it at boot time.

Is there some way to pass string as defined in com.apple.Boot.plist to grub?

Grub2 xnu wiki is for me a little too brief.

 

I ve been tried something like that:

menuentry "Mac test" {

root=hd1,2

insmod vbe

gfxpayload=1024x768x32

xnu_kernel /voodoo rd=disk1s2 device-properties=<efi string for graphic>

if [ /System/Library/Extensions.mkext -nt /System/Library/Extensions ]; then

xnu_mkext /System/Library/Extensions.mkext

else

xnu_kextdir /System/Library/Extensions

fi

}

And system worked but did not used nvidia drivers.

Link to comment
Share on other sites

  • 1 month later...

I'm testing GRUB2 on my laptop (Ubuntu 9.10/Windows XP/Mac OS X Leopard), it's video card doesn't require EFI string to work (Intel X3100), but by what I understand, you have to use the option xnu_devtree (loads a devtree dump):

if [ -f /Extra/devtree.txt ]; then
  xnu_devtree /Extra/devtree.txt
fi

devtree.txt:

656669{   6465766963652d70726f70657274696573:
<your device properties come here>
;}

http://grub.enbug.org/XNUSupport

 

If you used Chameleon's GraphicsEnabler, you can get the EFI string with this command:

ioreg -lw0 -p IODeviceTree -n efi -r -x | grep device-properties | sed 's/.*<//;s/>.*//;'

Link to comment
Share on other sites

  • 4 weeks later...

Maybe this helps:

On my pc I have two drives: 1 with Grub2 and a second with Chameleon. Mac OSX was recognized by Grub2 so there is a Mac OSX entry in the bootmenu. When selected Chameleon is bypassed and OSX will be booted in verbose mode. This works but does not look nice on the screen.

I created a new menu entry in grub2 which does use chameleon to start OSX:

 

set root=(hd1)

chainloader +1

 

Maybe in this way you can solve your missing EFI string, i.e. first boot Grub2 which runs Chameleon.

Link to comment
Share on other sites

  • 3 months later...

Now in Debian testing uses grub-pc 1.98

 

In /boot/grub/grub.cfg is not more present:

if [ -f /Extra/devtree.txt ]; then
xnu_devtree /Extra/devtree.txt
fi

 

And now appears:

 

		   if [ -f /Extra/devprop.bin ]; then
		  xnu_devprop_load /Extra/devprop.bin
	   fi

 

 

I make tests adding /Extra/devtree.txt

some like that:

 

656669{   6465766963652d70726f70657274696573:
<8b02000001000000010000007f0200000e00000002010c00d041030a00000000010106000010
0101060000007fff04002e000000400030002c004100410050004c002c0062006f006f0074002d00
6
4006900730070006c0061007900000008000000010000001c000000400030002c006200750069006
c
0074002d0069006e000000050000000120000000400030002c0063006f006d007000610074006900
6
2006c00650000000f0000004e5644412c4e564d61630022000000400030002c00640065007600690
0
630065005f00740079007000650000000c000000646973706c61790014000000400030002c006e00
6
1006d0065000000130000004e5644412c446973706c61792d410020000000400031002c0063006f0
0
6d00700061007400690062006c00650000000f0000004e5644412c4e564d61630022000000400031
0
02c006400650076006900630065005f00740079007000650000000c000000646973706c617900140
0
0000400031002c006e0061006d0065000000130000004e5644412c446973706c61792d42001c0000
0
06400650076006900630065005f0074007900700065000000100000004e5644412c506172656e740
0
220000004100410050004c002c0073006c006f0074002d006e0061006d00650000000a000000536c
6
f742d31100000004e00560043004100500000001800000004000000000001000e0000000000000a0
0
000000220000005600520041004d002c0074006f00740061006c00730069007a0065000000080000
0
000000020100000006d006f00640065006c0000000c000000556e6b6e6f776e001e00000072006f0
0
6d002d007200650076006900730069006f006e0000001800000078782e78782e7878202d20696e74
6
5726e616c00>
;}

 

And adding these in grub.cfg:

if [ -f /Extra/devtree.txt ]; then
 xnu_devtree /Extra/devtree.txt
 fi

 

But without succes detecting graphic card.

 

Now:

Anyone knows how to use the "devprop.bin" actual option ?

 

Grets.

Link to comment
Share on other sites

  • 6 months later...
  • 1 month later...

Chameleon is taking care of the smbios.plist and com.apple.Boot.plist info and using it accordingly.

 

When you boot from grub, you need to add kext's to take care of this. Like CPUInjector.kext or NVEnabler.kext. Add these to your /Extra/Extensions folder. This worked for me.

 

I almost want to make a new folder called /Extra/GrubExtensions for use only when booting from grub.

 

p.s.

Do not use the /Extra/splash.jpg/tga/png option yet. Your computer will load with a black screen. I guess its implemented but not yet functional.

Link to comment
Share on other sites

 Share

×
×
  • Create New...