2009-05-03 Vladimir Serbinenko <phcoder@gmail.com>
xnu support * conf/i386-efi.rmk (kernel_mod_HEADERS): added i386/pit.h (pkglib_MODULES): add xnu.mod (xnu_mod_SOURCES): new variable (xnu_mod_CFLAGS): likewise (xnu_mod_LDFLAGS): likewise (xnu_mod_ASFLAGS): likewise * conf/i386-pc.rmk: likewise * conf/x86_64-efi.rmk: likewise * include/grub/efi/efi.h (grub_efi_finish_boot_services): new declaration * include/grub/i386/macho.h: new file * include/grub/i386/xnu.h: likewise * include/grub/macho.h: likewise * include/grub/machoload.h: likewise * include/grub/x86_64/macho.h: likewise * include/grub/x86_64/xnu.h: likewise * include/grub/xnu.h: likewise * kern/efi/efi.c (grub_efi_finish_boot_services): new function * kern/efi/mm.c (MAX_HEAP_SIZE): increase * loader/i386/efi/xnu.c: new file * loader/i386/pc/xnu.c: likewise * loader/i386/xnu.c: likewise * loader/i386/xnu_helper.S: likewise * loader/macho.c: likewise * loader/xnu.c: likewise * loader/xnu_resume.c: likewise * util/grub-dumpdevtree: likewise * include/grub/i386/pit.h: include grub/err.h (grub_pit_wait): export * util/grub.d/30_os-prober.in: support Darwin/Mac OS X
This commit is contained in:
		
							parent
							
								
									5caf964d75
								
							
						
					
					
						commit
						bbee0f2b56
					
				
					 24 changed files with 3378 additions and 6 deletions
				
			
		
							
								
								
									
										3
									
								
								util/grub-dumpdevtree
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								util/grub-dumpdevtree
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | |||
| echo "656669{	6465766963652d70726f70657274696573:" | ||||
| ioreg -lw0 -p IODeviceTree -n efi -r -x |grep device-properties | sed 's/.*<//;s/>.*//;' | ||||
| echo ";}" | ||||
|  | @ -82,6 +82,58 @@ EOF | |||
| EOF | ||||
|       done | ||||
|     ;; | ||||
|     macosx) | ||||
|       OSXROOT="`grub-probe --target=drive --device ${DEVICE} 2> /dev/null`" | ||||
|       # FIXME: use UUID | ||||
|       OSXDISK=disk"`echo ${OSXROOT} | awk -F , '{ print $1 ; }' | sed 's/(hd//;'`"s"`echo ${OSXROOT} | awk -F , '{ print $2 ; }' | sed 's/)//;'`" | ||||
|         cat << EOF | ||||
| menuentry "${LONGNAME} (on ${DEVICE})" { | ||||
| 	set root=${OSXROOT} | ||||
|         insmod vbe | ||||
|         insmod gfxterm | ||||
|         gfxmode="1024x768x32;800x600x32" | ||||
|         terminal_output gfxterm | ||||
|         do_resume=0 | ||||
|         if [ /var/vm/sleepimage -nt10 / ]; then | ||||
|            if xnu_resume /var/vm/sleepimage; then | ||||
|              do_resume=1 | ||||
|            fi | ||||
|         fi | ||||
|         if [ \$do_resume == 0 ]; then | ||||
|            if [ -f /Extra/DSDT.aml ]; then | ||||
|               acpi -e /Extra/DSDT.aml | ||||
|            fi | ||||
|            xnu_kernel /mach_kernel rd=$OSXDISK | ||||
|            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/devtree.txt ]; then | ||||
|               xnu_devtree /Extra/devtree.txt | ||||
|            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 | ||||
| } | ||||
| EOF | ||||
|     ;; | ||||
|     hurd|*) | ||||
|       echo "  ${LONGNAME} is not yet supported by grub-mkconfig." >&2 | ||||
|     ;; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue