
Originally Posted by
Joe_t
Thanks a ton, I appreciate it!
So, here you go. Unless I missed something, running this should get you a usable system, with wifi as well as EFI boot. If you don't have a multi-GPU system, you can (probably should, I'm not sure if it'd even work) skip the EFI part.
To minimize the chance of anything going wrong, it also involves downloading code from me. You'll just have to trust me on that one...
Code:
sudo apt-get install build-essential git
git clone git://github.com/Baughn/linux.git # This'll take a while, go get some tea.
cd linux
curl http://brage.info/~svein/linux.config > .config
make oldconfig
#make menuconfig # You'll need to run this if you don't run btrfs or ext2/3/4 root.
make -j12 # Set to your number of processor cores, + 50%.
# Now installing kernel. This ad-hoc setup works for EFI, you'll want to do something else if you don't need or want to switch from radeon to intel graphics.
sudo -s # Switching to root shell, less sudo needed.
make -j50 modules_install # Way above the number of cores. The increased pipelining helps my SSD do this faster (but actually I just use -j; that's dangerous, though); you may want just make modules_install.
cp arch/x86_64/boot/bzImage /boot/linux # Make sure to mount /boot first, if you need to.
mount -o rw,force /dev/sda2 /mnt # Meant to mount the OS X partition. Assumes you have one, and that it's sda2, but if you don't know it almost certainly is. Won't work if you didn't shut down OS X cleanly last time.
cd /mnt/efi
curl http://brage.info/~svein/efi.tar.gz | tar xvz # Extract the GRUB bootloader. It's already configured, and will probably work out of the box if you have rEFIt installed. If you don't, install it.
cd /
umount /mnt
# Install firmware too
cd /
curl http://brage.info/~svein/firmware.tar.gz | tar xvz
# Download video BIOS. A somewhat doubtful step, you'll want to substitute your own if this doesn't work.
cd /boot
wget http://brage.info/~svein/int10.bin
wget http://brage.info/~svein/vbios.bin
# Write out a script that'll make suspend work
cat > /etc/pm/sleep.d/70_wifi << EOF
# Work around lack of b43 hibernate support
case "${1}" in
hibernate|suspend)
rmmod b43 bcma
;;
resume|thaw)
modprobe b43
;;
esac
EOF
chmod a+x /etc/pm/sleep.d/70_wifi
# Close the root shell before you hurt someone
exit
And that should be that! Let me know how it goes.
EDIT: Added firmware extraction command to the end. You'll need that too.
EDIT2: My laptop actually has 4 cores, not 8. It still counts as 8 for the calculation, because of hyperthreading. So that should be the number of hardware threads, not number of cores.