Decided to put 11.2 on some spare HD bits of my MacBook last week. Here’s the log of things I did:
- Grabbed newest refit, install docs here.
- Wanted to install via the network install image (around 150MB) from a usb thumb drive, it’s such a hassle (and a waste) to go & and burn CDs for that. So I went for latest grub2 to make EFI/rEFIt boot from usb. More docs about grub2 efit booting:
- usb boot on mac: german blog
- grub background info
- my grub2 setup (on a x86_64 system):
./configure --with-platform=efi --enable-efiemu --enable-mm-debug --enable-grub-emu --enable-grub-fstest --enable-grub-emu-usb --prefix=place_you_have_write_permissions --target=i386
- then make; make install
- cd into place_you_have_write_permissions
- cd into lib/i386-grub/i386-efi there
- run
../../../bin/i386-grub-mkimage -v -d . -o grub.efi part_gpt hfsplus fat ext2 normal sh chain boot fixvideo appleldr loadbios loopback configfile fs_file fshelp halt handler help iso9660 linux ls minicmd probe reboot search video scsi msdospart bitmap blocklist fs_uuid kernel memrw part_msdos parttool ext2 extcmd hexdump minicmd read sfs xnu xnu_uuid 2>&1 | tail
this should result in something like"grub-mkimage: info: writing 446 bytes of a fixup block starting at 0xa000"
Note that in theory, you could just use../../../bin/i386-grub-mkimage -d . -o grub.efi *.mod
, only that this was simply hanging during boot for me – and I didn’t have the patience to bin-search those upteen modules to find the incriminating one. Thus the explicit list, which worked for me.
- Prepare the usb stick:
- you should be fine with using both ext2 or fat partitions on it
- copy your openSUSE-11.2-NET-x86_64.iso into the toplevel dir of the stick
- from place_you_have_write_permissions/lib/i386-grub/i386-efi, copy grub.efi and *.lst to a efi/grub/ dir on the stick (that’s where refit looks for bootable stuff)
- put this into efi/grub/grub.cfg on the stick:
menuentry "openSUSE install" { fix_video fakebios root (hd0,1) loopback loop /openSUSE-11.2-NET-x86_64.iso linux (loop)/boot/x86_64/loader/linux initrd=initrd splash=silent showopts install=file://openSUSE-11.2-NET-x86_64.iso?device=sdb* initrd (loop)/boot/x86_64/loader/initrd }
- Put stick into macbook, select usb medium in refit boot screen, boot install image. For me, the installer was falling back to manual setup, so grab the next mirror to you from http://mirrors.opensuse.org/list/11.2.html, determine IP address for the host (“host <mirror_name>”), enter that into the field you get when selecting “http method” for the installation image. Path on that server usually is something like /pub/opensuse/distribution/11.2/repo/oss/ .
- Proceed with normal installation. Easy as pie.
- More general info for openSUSE on macbook:
- Installation on MacBook
- OpenSUSE on a Mac
- debugging sound problems
- the magic incantations to use during boot from unusual media
Misc stuff I did:
- most important first thing to do, to prevent 2nd degree burns on knees:
echo -n 2400 > /sys/devices/platform/applesmc.768/fan1_min
(you want to put that line into your boot.local script or something. and it’s nothing Linux is at fault, this is entirely broken on Apple’s side of things) - get headphones jack to actually output music: run alsamixer in terminal, press F6 and select “HDA intel”. Press F5 to show all mixer controls, un-mute “Speaker 1”.
- for the iSight built-in camera: install isight-firmware-tools, mount your (hopefully still-existent) OSX partition (something like
mount -t hfsplus /dev/sda2 /mnt
, then extract the firmware via ift-extract -a /mnt/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport. Reboot, and voila, camera is working. - everything else just worked out of the box.