<> For Lucid details go here: [[MacBookAir2-1/Lucid]] = Installation process = == Quick notes == * my usb port is broken, so I make make 3 more partitions for this installation: * /dev/sda4 to store Grub2 and iso files (1GB) * /dev/sda5 for swap (1GB) * /dev/sda6 for ubuntu root partition (10GB) == Installation == * Compile Grub2 on a linux machine with --enable-efiemu (or use this: [[attachment:grub2efi.tar.gz]]) * Put content of grub-core (*.efi, *.mod) into (sda4)/efi/boot * Edit grub.conf to have an entry similar to this: {{{ menuentry "Ubuntu 12.04 ISO sda04" { insmod (hd0,4)/efi/boot/loopback.mod insmod (hd0,4)/efi/boot/iso9660.mod set isofile="/ubuntu-12.04.2-desktop-amd64+mac.iso" loopback loop (hd0,4)$isofile linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject video=efifb initrd (loop)/casper/initrd.lz } }}} * Install rEFind (replacement of rEFit) on Mac OS (keep rEFind, we need to re-install it later) * Boot Precise LiveCD iso using refind -> Grub2 with the above entry. * Drop to console while booting and get asked of low resolution graphic, * Copy blacklist-agp from [[MactelSupportTeam/EFI-Boot-Mactel]] to /etc/modprobe.d/ and restore xorg.conf in /etc/X11, then startx to get to a live session * (optional) use gparted to create/modify swap and root partition. * (optional, but a must in my case) "sudo umount -l -r -f /isodevice" before start to install Ubuntu to disk * (optional) "sudo mount /dev/sdax /isodevice" (x=4 for my installation) before click Continue on the Select Partition screent * I installed Bootloader to the new Ubuntu root (/dev/sda6), but the process overwrite MacOS/rEFind boot record, so while in the Live session, reinstall rEFind as well. * Reboot * (optional) mount iso ubuntu LiveCD to /media/cdrom and enable Software Source from that cdrom, you can install restricted wifi driver and enable wifi. = General = * Everything seems fine with a bit of tweak * Sound doesn't work = Video = * Resolution is correct with default binary hardware drivers. = Sound = * Show correct sound card, alsamixer runs fine, but no sound can be heard. Make sure you are a member of the "audio" group. Remember to re-login after making yourself a member. If that does not work then here is a script to get sound working: {{{ # Autogenerated python code from HDA-Analyzer that gets sound going: #!/usr/bin/env python import os import struct from fcntl import ioctl def __ioctl_val(val): # workaround for OverFlow bug in python 2.4 if val & 0x80000000: return -((val^0xffffffff)+1) return val IOCTL_INFO = __ioctl_val(0x80dc4801) IOCTL_PVERSION = __ioctl_val(0x80044810) IOCTL_VERB_WRITE = __ioctl_val(0xc0084811) def set(nid, verb, param): verb = (nid << 24) | (verb << 8) | param res = ioctl(FD, IOCTL_VERB_WRITE, struct.pack('II', verb, 0)) FD = os.open("/dev/snd/hwC0D0", os.O_RDONLY) info = struct.pack('Ii64s80si64s', 0, 0, '', '', 0, '') res = ioctl(FD, IOCTL_INFO, info) name = struct.unpack('Ii64s80si64s', res)[3] if not name.startswith('HDA Codec'): raise IOError, "unknown HDA hwdep interface" res = ioctl(FD, IOCTL_PVERSION, struct.pack('I', 0)) version = struct.unpack('I', res) if version < 0x00010000: # 1.0.0 raise IOError, "unknown HDA hwdep version" # initialization sequence starts here... set(0x18, 0x707, 0x45) # 0x18070745 (SET_PIN_WIDGET_CONTROL) set(0x19, 0x707, 0xa5) # 0x190707a5 (SET_PIN_WIDGET_CONTROL) os.close(FD) }}} Copy and paste it to a file, ie. hda-intel-mba21.py, and execute the code: {{{ $ sudo python hda-intel-mba21.py }}} = Touchpad = * Works without modification = Apple keys = * Volume works * Display brightness work for default binary driver, not work after install nvidia driver (with or without pommed). * Keyboard backlight work. = Network = * Wifi works with restricted driver. = Tweaks = * Keyboard backlight defaut on 100%, change (without pressing F5 for 100s times): {{{ (as root) echo 0 > /sys/class/leds/smc::kbd_backlight/brightness }}} * Resume from Suspend is very sensitive to the keyboard, and the keyboard is very likely to be pressed when the lid is closed and the machine is in a bag. Disable keyboard Resume by {{{ (as root) echo OHC1 > /proc/acpi/wakeup }}} and make sure "cat /proc/acpi/wakeup" has OHC1 as disabled. * Function keys act as in MacOS as default (fn+F1 to actually press F1), change by {{{ (as root) echo 2 > /sys/module/hid_apple/parameters/fnmode }}} ---- CategoryAudio