Jump to content

grub2 and efi strings


  • Please log in to reply
6 replies to this topic

#1
kotomach

kotomach

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 3 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.

#2
oldnapalm

oldnapalm

    InsanelyMac V.I.P.

  • Moderators
  • 6,836 posts
  • Gender:Male
  • Location:Brazil
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/>.*//;'


#3
Henk1

Henk1

    InsanelyMac Protégé

  • Members
  • Pip
  • 3 posts
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.

#4
kotomach

kotomach

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 3 posts
Oh. I know that way (grub with chameleon "under").
I searched for clean solution without workaround to use multsystem machine.
I'm gonna check oldnapalm's way.
But when I'll get my sata dvd drive back. Not now :-|.

#5
bellbottom

bellbottom

    InsanelyMac Protégé

  • Members
  • PipPip
  • 51 posts
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.

#6
Openminded

Openminded

    InsanelyMac Protégé

  • Members
  • Pip
  • 28 posts
any news on this?

#7
Anheuser

Anheuser

    InsanelyMac Protégé

  • Members
  • Pip
  • 10 posts
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.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy