Fedora8OnMacBookSantaRosa
From Mactel-Linux
How to install Fedora 8 x86_64 on a MacBook 3,1
This guide will help you through all the steps necessary for installing Fedora 8 on a MacBook 3,1 Santa Rosa. This guide is currently aimed at Fedora 8 x86_64.
These instructions are also reported to work without modification on the newer MacBook 4,1 (released Feb 2008).
Introduction
This document describes how to install Fedora 8 x86_64 on a MacBook 3,1 (and MacBook 4,1) so it can dual-boot with Mac OS X. It lists the steps to install and make Fedora bootable, as well as how to make video, sound, wireless, networking, keyboard, touchpad, bluetooth, camera, and suspend work properly.
Since this document is a work in progress, it is possible that some of the steps are unnecessary and that the document is incomplete. A dual-boot scheme is described, triple booting requires a different partitioning scheme. Most of the steps here are from other documents on this site, and from the Ubuntu wiki, modified to work for Fedora 8 x86_64.
I have made this document for the benefit of others as I could find very little information specific to Fedora 8 x86_64 on the MacBook 3,1. The steps described here have worked for me, but this is no guarantee that they will work for you. Comments and additions are welcome.
Credits
Huge thanks to the people who created the Ubuntu Wiki documentation. This guide is based extensively on their work.
Thanks also to FriedChips for his work on getting wireless to work. Many thanks to Pene for his excellent feedback and suggestions for fixing some of the problems. Also a big shout out to spear at fedoraforum.org for setting me right on a few things and to Ryanroth for his contributions to this document.
Thanks also to everyone else in the Fedora and Ubuntu community that have helped me along the way!
Getting more help
For further help or troubleshooting please visit this thread at fedoraforums.org. My username there is BlueC.
Basic installation instructions
- Update the MacBook firmware to the latest version. If you prefer, you may use the standard "Software Update" in OS X.
- Get your Fedora installation DVD ready. Note: you should use the x86_64 version of Fedora 8 and that I have only tested this using the Install Media, not the Live DVD. There is a possible problem with the initial release DVD so you may like to use one of the respins. This will also save you time as you won't need as many updates once Fedora is installed.
- Install rEFIt on OS X if you want a boot menu to select between OS X/Fedora to appear on every boot. This is highly recommended but optional - this guide assumes you have installed rEFIt. You can make Fedora boot by default and change the menu timeout by editing the "refit.conf" file (described on the rEFIt website).
- Use the OS X partition manager to resize your OS X partition and make space for Fedora. On my 80GB hard drive, I shrank the OS X (hfs+) partition to 45GB to leave about 30GB for Fedora. Insert your Fedora installation DVD in the drive and reboot.
- If you have rEFIt installed, then on boot you will be given the option to boot from the DVD, choose it. If you don't have rEFIt installed, then hold down "C" to boot from the DVD.
- Install Fedora as usual, except:
- In the partitioner, select to manually edit partition table
- Create a 200MB boot partition with mountpoint '/boot' (this will be /dev/sda3)
- Create a new ext3 partition with mountpoint '/' - this will be your main Fedora partition on /dev/sda4. Make sure to leave 2GB free space after this partition for your swap partition
- With the remaining 2GB, create a linux swap partition - this will be /dev/sda5
- Finish the installation and reboot.
- If you installed rEFIt, you should have a choice between booting OS X and Linux. Use the arrow keys and Enter to select Linux.
- Log in to Fedora
- Follow the steps in the sections below to work around things that still do not work out-of-the-box in Fedora 8.
Post installation
Note: The wireless on the MacBook 3,1 doesn't work out of the box in Fedora, so you're going to need an ethernet internet connection available until we get round to fixing the wireless later in this guide.
It is very important now to update your Fedora installation to the latest packages using yum. To do so:
su - yum update
Once yum has finished updating, reboot, and then do a yum update again. Repeat this process until yum finds no more packages to update.
Updating the kernel
Since kernel 2.6.24.3-50 the standard kernel in Fedora 8 has been patched to fix the two previously outstanding kernel bugs so it is no longer required to patch or install a custom kernel. Just ensure that you have updated your system as described above and you should have kernel 2.6.24.3-50 or newer already installed. To check your kernel version do:
uname -r
For reference only, here are the two bug reports from previous kernel versions:
- Extra keyboard functions (accessed using the 'fn' key) are inaccessible redhat bug report
- The trackpad only has basic functions and is not configurable via xorg.conf using the synaptics driver redhat bug report
Fixing the wireless
The MacBook 3,1 comes with a Broadcom 4328 wireless chipset. This is not supported by default in Fedora 8 and requires the use of ndiswrapper and Windows drivers to make it work correctly. Additionally, NetworkManager is a bit of a train crash in Fedora 8 and I have been unable to make it work with my wireless network and WPA encryption (although others have had more success). However, using wpa_supplicant and dhclient I am able to connect and maintain a good connection to my wireless network.
NOTE: It looks like the upcoming 2.6.25 kernel will have built in support for the Broadcom 4328 rev 3 that is used in the MacBook.
Follow the steps below to install ndiswrapper and get the wireless working.
Installing ndiswrapper
Enable the livna yum repositories and install the kmod-ndiswrapper package as well as some others to fix dependencies:
su - rpm -i http://rpm.livna.org/livna-release-8.rpm yum install kmod-ndiswrapper kernel-devel gcc make automake
After a reboot, the ndiswrapper kernel module should be installed.
Wireless installation using ndiswrapper
Now that you have ndiswrapper installed and working, we can get the wireless drivers, blacklist some incompatible kernel modules, switch NetworkManager off, and unzip the drivers:
su - wget http://ftp.us.dell.com/network/R151517.EXE echo "blacklist bcm43xx" >> /etc/modprobe.d/blacklist echo "blacklist ssb" >> /etc/modprobe.d/blacklist echo "blacklist b43" >> /etc/modprobe.d/blacklist echo "alias wlan0 ndiswrapper" >> /etc/modprobe.d/ndiswrapper echo "alias wlan0 ndiswrapper" >> /etc/modprobe.conf chkconfig --levels 345 NetworkManager off chkconfig --levels 345 NetworkManagerDispatcher off mkdir wifidriver unzip -a R151517.EXE -d wifidriver/
At this point you need to cd to the directory that holds the file "bcmwl5.inf" then use ndiswrapper to install the driver:
cd wifidriver/DRIVER/ ndiswrapper -i bcmwl5.inf
At this stage you should now have the wireless drivers installed through ndiswrapper. To confirm, the output of "ndiswrapper -l" should look something like this:
bcmwl5 : driver installed
device (14E4:4328) present (alternate driver: ssb)
If it doesn't, then something has gone wrong so retrace your steps and ensure you did everything correctly. If it does, then you should be able to scan for wireless networks using "iwlist wlan0 scan" and it should pick up any wireless networks in your area.
From here on, the wireless configuration is up to you. You may want to try using NetworkManager to see if you have more luck than me, in which case do:
su - chkconfig --levels 345 NetworkManager on chkconfig --levels 345 NetworkManagerDispatcher on service NetworkManager start service NetworkManagerDispatcher start
Now ensure you have nm-applet running and see if you can connect to your wireless network.
Many people have reported success with NetworkManager using all kinds of networks and encryptions provided that the SSID is being transmitted. For me personally it has never worked reliably with a WPA network; your mileage may vary.
If NetworkManager isn't doing it for you and you use WPA encryption then disable NetworkManager and NetworkManagerDispatcher and refer to this guide for setting up wpa_supplicant. The individual wireless setup is outside the scope of this guide but more help can be found at fedoraforum.org and through google.
Fixing ethernet issues
You may run into an issue where the ethernet works the first time you plug it in, but if you unplug and plug it back in it no longer works.
This is an issue with the sky2 module. To fix it you have to rmmod and modprobe the sky2 module. Instead of doing this everytime manually you can automate it by using a script.
With NetworkManager
If you are using NetworkManger we put the script in /etc/NetworkManager/dispatcher.d to rmmod everytime the connection goes down.
sudo vi /etc/NetworkManaget/dispatcher.d/sky2_fix
#!/bin/bash
iface="$1"
action="$2"
if [ "$action" = "down"] ; then
if [ "$iface" = "eth0" ] ; then
rmmod sky2
fi
fi
sudo chmod +x /etc/NetworkManaget/dispatcher.d/sky2_fix
Without NetworkManager
If you are not using NetworkManager we use ifdown_local to automate the process
sudo vi /sbin/ifdown_local
#!/bin/bash
if [ $1 = "eth0" ]; then
sudo rmmod sky2
fi
NOTE: The above scripts only remove the module and do not reinsert it because the system will automatically do it for you the next time you try to use the interface.
Fixing the touchpad
Since kernel 2.6.24.3-50 you can make the touchpad behave very much like it does in OS X by configuring it with the synaptics driver.
Since 7 March 2008 the latest synaptics driver (0.14.6) has been available in the fedora 8 updates repository so it is no longer required to build this driver yourself. Just ensure that you have the latest updates for your system:
rpm -qa | grep synaptics
Should return:
synaptics-0.14.6-2.fc8
Now, backup and edit xorg.conf:
su - cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup gedit /etc/X11/xorg.conf
Ensure that you have the following line in the "ServerLayout" section of xorg.conf:
InputDevice "Synaptics Touchpad" "CorePointer"
For reference my entire "ServerLayout" section looks like this:
Section "ServerLayout" Identifier "Default Layout" Screen 0 "Screen0" 0 0 InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Synaptics Touchpad" "CorePointer" EndSection
Now create an "InputDevice" section as follows:
Section "InputDevice"
# updated 2007-12-07
# use command "synclient -m 1" to see raw output
# common stuff
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
# not using edge scrolling
Option "HorizEdgeScroll" "0"
Option "VertEdgeScroll" "0"
# use two finger scrolling
Option "VertTwoFingerScroll" "1"
Option "HorizTwoFingerScroll" "1" # set to 0 if you don't want horizontal scrolling
# scroll speed, lower is faster
Option "HorizScrollDelta" "10"
Option "VertScrollDelta" "10"
# minimum pressure motion factor
Option "PressureMotionMinZ" "10"
# touch and untouch thresholds, higher numbers if you like to push hard
Option "FingerLow" "10"
Option "FingerHigh" "20" # change to 30 or 40 if you like
# borders based on output from synclient
Option "LeftEdge" "20"
Option "RightEdge" "1200"
Option "TopEdge" "20"
Option "BottomEdge" "370"
# speeds, smaller number for a slower mouse
Option "MinSpeed" "0.8" # 0.5 is very slow, 1.5 is very fast
Option "MaxSpeed" "1.2" # up to 1.5 works ok
Option "AccelFactor" "0.10"
# tap times, change to suit your tapping habits
Option "MaxTapMove" "100"
Option "MaxTapTime" "100"
Option "MaxDoubleTapTime" "200"
# don't change these or two finger tap stops working
Option "TapButton2" "3"
Option "TapButton3" "2"
# must be commented out or normal tapping wont work
#Option "TapButton1" "0"
# needed for disabled while typing fix
Option "SHMConfig" "on"
EndSection
Finally, ensure you have the following in your "Module" section of xorg.conf - I have found it wasn't loading the synaptics module otherwise:
Load "synaptics"
Again, for reference, my entire "Module" section looks like this (you may not have all these X modules installed, but you can see the structure here):
Section "Module" Load "synaptics" Load "extmod" Load "dbe" Load "glx" Load "xtrap" Load "dri" Load "GLcore" Load "record" EndSection
For these changes to take effect you need to restart your X session by pressing control+alt+backspace (or just log out of gnome and log back in).
This will give you a OS X like feel. You can right click by tapping two fingers, or middle click by tapping three fingers. The two finger scroll also works.
Disable touchpad while typing
To disable the touchpad while your typing uses this command:
syndaemon -i 1 -d
This disables the touchpad for 1 second after you type something. This works well but if you go back and forth a lot it can be a hassle to wait that one second. NOTE you can use ".5" for half a seconf instead and it works much better.
Alternatively,
syndaemon -t -d
This disables tapping motions but not movement while typing.
Both work fine, and the one that works best for you will likely be determined by the type of computing you do. Try them both and decide for yourself.
Once you've found the one you want to use, add it as an application to start in your gnome session.
Fix Firefox scrolling issue
Firefox interprets horizontal scrolling as forward/back commands which can be very annoying if you do it by mistake. To fix this type about:config in the address bar and change these two lines (click lines to edit). This is not a specific issue to the Santa Rosa version but its a common problem and an easy fix.
mousewheel.horizscroll.withnokey.action (change it to 1 to allow scrolling or 0 to turn it off) mousewheel.horizscroll.withnokey.sysnumlines (change it to “true”)
Fix the sound
Sound is supported, but has detection trouble.
To resolve, add the following to /etc/modprobe.conf:
options snd_hda_intel model=mbp3
Fix the function keys
Pommed is a daemon to support extra keys on apple computers. These include brightness, eject, and others. I found that the eject and volume keys work fine in gnome without pommed, but I needed pommed to make the brightness keys work.
There is no fedora package of pommed available, so we need to build it ourselves:
wget http://alioth.debian.org/frs/download.php/2223/pommed-1.14.tar.gz tar xvzf pommed-1.14.tar.gz cd pommed-1.14
I found that the pommed Makefile is hardcoded to use libpci in /usr/lib/ whereas we need to use /usr/lib64/ so we need to change the Makefile
gedit pommed/Makefile
Find the line that says this (line 53):
LIBS = /usr/lib/libpci.a
and change it to:
LIBS = /usr/lib64/libpci.a
Save the file and exit.
Now make and install pommed:
make su cp pommed/pommed /usr/sbin/ cp pommed/data/* /usr/share/pommed cp pommed.conf.mactel /etc/pommed.conf cp pommed.init /etc/init.d/pommed chmod +x /etc/init.d/pommed chkconfig --levels 345 pommed on cp dbus-policy.conf /etc/dbus-1/system.d/pommed.conf
Now to fix pommed from crashing when the mute button is pressed, edit /etc/pommed.conf and change in the audio section the card line to
card = "hw"
Reboot.
Default behaviour on apple keyboards is to have the top row keys primarily function is as media keys (brightness, volume, etc), and have the expected function keys (F1, F2, etc) accessible with the fn keys. To reverse this behaviour either:
- Edit /etc/pommed.conf by changing the value of fnmode or
- Add the following lines to /etc/rc.local and uncomment the appropriate line
# Inverted fn key behavior for MacBooks #echo -n 0x02 > /sys/module/hid/parameters/pb_fnmode #FN off (press fn for volume/brightness/etc) # Default fn key behavior for Macbooks # echo -n 0x01 > /sys/module/hid/parameters/pb_fnmode #FN on (like OSX)
iSight camera
This works for me in all apps I have tested: Skype 2 beta, Ekiga softphone, gstreamer and Cheese.
Installing the firmware
First of all, you will need a copy of the firmware from Apple. You can either download this, or copy it from a Mac OS X partition. While the latter is usually preferred, unfortunately the firmware distributed in Macbook 3,1 Leopard firmware is not supported yet. Tiger and retail versions of Leopard are apparently supported, however.
Note: I have submitted a patch to allow the firmware shipped with the Macbook 4,1 to work [1]. I am currently using the AppleUSBVideoSupport that was shipped with my Macbook 4,1 with OSX 10.5.2.
To aquire the firmware, save the file AppleUSBVideoSupport to your home directory.
To see which firmware file you have, use sha1sum to check the signature of the file with sha1sum.
sha1sum AppleUSBVideoSupport 01e291d529e7c18deea2eba252d18114e096276e AppleUSBVideoSupport
The above signature is known to work. If your file is signature is "1c60ef27d57221cf3d76687a4973ec72ff6fa103", you will need to get a different version of the firmware.
As from kernel 2.6.24 the uvcvideo driver kernel module is installed by default so we don't need to build this ourselves.
Next, we need to convert the AppleUSBVideoSupport to a useable firmware file. The isight-firmware-tools will do this for us but unfortunately there is no Fedora package available, so we need to build it ourselves:
wget http://bersace03.free.fr/ift/isight-firmware-tools-1.2.tar.gz tar xvzf isight-firmware-tools-1.2.tar.gz cd isight-firmware-tools-1.2 ./configure --prefix=/usr make su -c "make install"
Now, finally, we can convert the AppleUSBVideoSupport to a useable firmware file. From your home directory where you downloaded the AppleUSBVideoSupport file:
su -c ift-extract --apple-driver AppleUSBVideoSupport
execute `/etc/init.d/hal restart` or simply reboot
Your camera should be in working order. Test it using Ekiga or Skype 2 beta. If the camera works in Ekiga but not in Skype 2 beta then make sure you have the following line in the "Modules" section of your /etc/X11/xorg.conf file:
Load "extmod"
See the touchpad section above for a full example of the "Modules" section that I use.
Updating gstreamer
Currently we need an updated version of gstreamer packages to make the camera work with gstreamer and apps that use gstreamer such as Cheese. At the moment these packages are not yet updated in the fedora repositories so I have made them available to download.
To update the required gstreamer packages do:
mkdir gstreamerdownload cd gstreamerdownload wget http://www.cenolan.com/fedora8/gstreamer-0.10.17-1.fc8.x86_64.rpm wget http://www.cenolan.com/fedora8/gstreamer-tools-0.10.17-1.fc8.x86_64.rpm wget http://www.cenolan.com/fedora8/gstreamer-plugins-base-0.10.17-1.fc8.x86_64.rpm wget http://www.cenolan.com/fedora8/gstreamer-plugins-good-0.10.7-1.fc8.x86_64.rpm su -c "yum localinstall gstreamer*0.10*.fc8.x86_64.rpm --nogpgcheck"
This should update/install the latest gstreamer packages for you.
External monitor
See http://www.intellinuxgraphics.org/dualhead.html - its pretty straighforward.
Bluetooth
Bluetooth works out of the box, but due to some kernel bug it needs to be enabled properly first.
Edit /etc/sysconfig/bluetooth and make sure it says 'HID2HCI_ENABLE=true'.
That'll fix it on subsequent reboots. For now, just run '/sbin/hid2hci' as root.
Apple SMC
The applesmc kernel module is not loaded by default - I guess this is a bug. The correct way to load a module on boot in Fedora 8 is to create a .modules file in /etc/sysconfig/modules/ - here is how to do it for applesmc:
su - gedit /etc/sysconfig/modules/applesmc.modules
Paste the following into the file:
#!/bin/sh
echo -n "Loading Apple SMC module..."
if /sbin/modprobe applesmc
then
echo "SUCCESS"
else
echo "FAILURE"
fi
Save and exit, then change the file permissions as follows:
chmod 744 /etc/sysconfig/modules/applesmc.modules
On next boot the applesmc module will load. Meanwhile, just do "modprobe applesmc" as root.
Fixing the suspend problems
Suspend/resume works but has some little bugs that are fixed in this section. Hibernate doesn't work for me yet - possibly something to do with the ndiswrapper module?
LCD backlight bug
The biggest problem with suspend is that the LCD panel backlight doesn't come back on after resume. This means that the display is working, but the brightness is zero so it is almost impossible to see what is on the screen. You can force the backlight to come back on by changing to virtual terminal 1 and then back to virtual terminal 7 by doing "ctrl+alt+F1" then "ctrl+alt+F7". This becomes a bit tiresome after a while, so you can automate it by copying the code below into a new file at /etc/pm/sleep.d/98video and make sure the file is chmod 755
#!/bin/bash
#
# cnolan - switch consoles to fix screen not waking up!
. /usr/lib/pm-utils/functions
resume_video()
{
chvt 1
# sleep 2
chvt 7
# sleep 1
}
case "$1" in
thaw|resume)
resume_video
;;
*)
;;
esac
exit $?
Virtual terminals bug
Another problem after a suspend/resume cycle is that the virtual terminals 1-6 become unusable. To fix this add "vga=786" as a kernel option in the /boot/grub/grub.conf file. For example:
kernel /vmlinuz-2.6.24.3-34.cnolan_macbook.fc8 ro root=LABEL=/ rhgb quiet vga=786
Ethernet bug
Also the ethernet dies after a suspend/resume cycle. To fix this, create a file /etc/pm/config.d/unload_modules containing a single line as follows:
SUSPEND_MODULES="sky2"
Bluetooth bug
Additionally, bluetooth doesn't come back after a suspend/resume cycle. To fix this copy the code below into a new file at /etc/pm/sleep.d/48bluetooth and then chmod the file to 755
#!/bin/bash
. /usr/lib/pm-utils/functions
suspend_bluetooth()
{
if [ -f /var/lock/subsys/bluetooth ]; then
savestate apple_bluetooth enabled
service bluetooth stop
else
savestate apple_bluetooth disabled
fi
}
resume_bluetooth()
{
case "$(restorestate apple_bluetooth)" in
enabled)
service bluetooth start
;;
disabled)
;;
esac
}
case "$1" in
hibernate|suspend)
suspend_bluetooth
;;
thaw|resume)
resume_bluetooth
;;
*)
;;
esac
exit $?
Using the above script, if the bluetooth service is running at suspend time, then it will be restarted again after resume.
Infrared port
The new kernel 2.6.24 supports the apple infrared as a HID input device without any kernel modules required. The infrared will work with a newer version of lirc and can control your favourite multimedia applications such as mplayer, vlc player, etc.
1) Install lirc from atrpms
We need a newer version of lirc than is available in the standard repos, so we need to install it from atrpms.
su - gedit /etc/yum.repos.d/atrpms.repo
paste the following into the new file:
[atrpms] name=Fedora Core $releasever - $basearch - ATrpms baseurl=http://dl.atrpms.net/f$releasever-$basearch/atrpms/stable gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms gpgcheck=1 enabled=0
save and exit. now do:
yum --enablerepo=atrpms update lirc lirc-lib
it should install the following two packages:
lirc-lib-0.8.3-74_cvs20080314.fc8 lirc-0.8.3-74_cvs20080314.fc8
2) Configure the lircd daemon
still as root:
gedit /etc/sysconfig/lircd
make the file contents look like this:
# Options to lircd LIRCD_OPTIONS="-H macmini -d /dev/hiddev0 /etc/lircd.conf"
save and exit
3) Configure lirc to use the correct key codes
still as root:
gedit /etc/lircd.conf
paste the following into the file:
# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.8.3-CVS(macmini) on Tue Mar 18 09:18:52 2008
#
# contributed by
#
# brand: lircd-apple.conf
# model no. of remote control:
# devices being controlled by this remote:
#
begin remote
name lircd-apple.conf
bits 8
eps 30
aeps 100
one 0 0
zero 0 0
pre_data_bits 24
pre_data 0x87EE6A
gap 211990
# min_repeat 2
# toggle_bit_mask 0x6
begin codes
volup 0x0B
voldown 0x0D
back 0x08
forward 0x07
playpause 0x04
menu 0x02
end codes
end remote
save and exit.
(note, you could try making your own lircd.conf using irrecord and maybe get the toggle_bit_mask to work, but I had no joy - it kept breaking some buttons so i commented it out.)
4) Create an lircrc file for your favourite media players
I have created a basic lircrc file for mplayer and vlc, you may want to use this, or change it to suit you. This file can placed be in /etc/lircrc (global) or in ~/.lircrc (user). I have put this in /etc/lircrc.
still as root:
gedit /etc/lircrc
paste the following into the file:
# mplayer codes
begin
prog = mplayer
button = playpause
config = pause
repeat = 3
end
begin
prog = mplayer
button = volup
config = volume +1
repeat = 1
end
begin
prog = mplayer
button = voldown
config = volume -1
repeat = 1
end
begin
prog = mplayer
button = forward
config = pt_step 1
repeat = 0
end
begin
prog = mplayer
button = back
config = pt_step -1
repeat = 0
end
begin
prog = mplayer
button = menu
config = mute
end
# VLC codes
begin
prog = vlc
button = playpause
config = key-play-pause
repeat = 0
end
begin
prog = vlc
button = volup
config = key-vol-up
repeat = 1
end
begin
prog = vlc
button = voldown
config = key-vol-down
repeat = 1
end
begin
prog = vlc
button = forward
config = key-next
repeat = 0
end
begin
prog = vlc
button = back
config = key-prev
repeat = 0
end
begin
prog = vlc
button = menu
config = key-vol-mute
end
save and exit.
Note, for vlc you can get a full list of available commands using the following:
vlc -H --advanced 2>&1 |sed -n '/--key/ {s/^\ *--//; s/^\(.*\) <[^>]*>\ *\(.*\)$/\2 -> \1/; h}; /^.*[^ ].*-> key/ p; /^ -> key/ { n; s/^[ \t\n]*//M; G; s/\n//; p}'
commands for mplayer and other supported lirc clients are available elsewhere on the lazyweb.
5) Start the lircd service and check it works
still as root
service lircd start
the lircd service should start. now to check that it is interpreting the remote keys properly, run irw
irw
press some keys on the remote and you should see it mapping them properly. press crtl+c to quit irw.
6) Everything working? Great, make lircd start at boot
still as root:
chkconfig --levels 345 lircd on
7) Use it!
Open up mplayer, see that your remote works!
Open up VLC, go to settings -> preferences -> interface -> control interfaces -> check the "Infrared remote control interface" box. Save and exit, restart VLC. See that your remote works!
Known problems
- Hibernate is broken.
- Acceleratometer is not functional.
CD/DVD Writing
Writing CD/DVDs with GnomeBaker works without a problem
Firewire
Firewire works as expected
To do
I might have a play around with some further mactel-linux kernel patches to try to get more advanced features of applesmc working like the automatic disk head locking using the acceleratometer.
Update: I have tried all the mactel-linux kernel patches for 2.6.24 and they seem to make the system unstable so I have given up on them for now.

