Pre Installation Process
- Macbook has a single harddisk with two partitions, first one is for the EFI, second one is for the MacOSX itself. Resize the second partition to allow some space for Linux.
- After step-1 you have 3 partitions on your system. Do not touch the first and second partitions, you might loose your whole data on MacOSX
- Install rEFIt from here http://refit.sourceforge.net/. rEFIt scans all the available partitions/harddisks/removable devices for the Boot Images. After we install rEFIt we don't have to do any special configurations etc, it will auto-detect things for us.
- Insert your Fedora 9 DVD into the notebook and reboot your Mac.
- rEFIt asks you to choose the 'bootable DVD' or 'MacOSX' for booting. Select the 'Tux' icon with arrow keys, now you can boot into the Fedora 9 Install system
- Answer all the questions as usual during the install process. Be careful at the partitioning page. Choose 'create custom layout'.
- Select the Last partition(/dev/sda3) that we've created on disk (extreme right block on the gui). Click on 'Delete' partition (Double check that you are deleting the right partition)
- Now you'll have free space on your system
- Lets create 3 partitions from the free space.
- Create new partition for /boot with 200MB of space (/dev/sda3)
- Create new partition for swap with 2GB of space
- Create new partition for / with the rest of available space (/dev/sda4)
- After you are done with the changes click 'apply' (This step writes the requested changes to disk, double check before applying your changes)
- Customize your packages and proceed with the rest of the installation
Installation Process
Post Installation Process
Login to your account and perform all the package updates. (This will make sure you have all the latest packages)
1. Wireless Setup
Wireless doesn't work automatically due to the Broadcom wireless chipset present in the system. Do not worry, its easy to get the wireless working.
Download the windows driver package from here . (If you have 'wine' packages installed on system its easy to extract all the driver related from files within your linux itself, if not go to a windows machine extract the drivers which are present in the .exe file and copy them over to linux).
Extract the drivers from the .exe into /tmp/ndis (I am using /tmp/ndis for all the steps below)
Open Terminal and go to that directory
[nareshv@fallenAngel ]$ cd /tmp/ndis
[nareshv@fallenAngel ]$ pwd
/tmp/ndis/sp37950a
[nareshv@fallenAngel ]$ ls
bcm43xx64.cat bcm43xx.cat bcmwl564.sys bcmwl5.inf bcmwl5.sys bcmwlcoi64.dll bcmwlcoi.dll Setup.exe sp37950.cva
Download the ndiswrapper from Subversion (currently the ndiswrapper-1.53 doesn't compile correctly on 2.6.26 and higher kernels)
[nareshv@fallenAngel ]$ mkdir /tmp/ndiswrapper/
[nareshv@fallenAngel ]$ cd /tmp/ndiswrapper/
[nareshv@fallenAngel ]$ svn co https://ndiswrapper.svn.sourceforge.net/svnroot/ndiswrapper ndiswrapper
[nareshv@fallenAngel ]$ pwd
/tmp/ndiswrapper
[nareshv@fallenAngel ]$ ls
branches trunk
[nareshv@fallenAngel ]$ cd trunk/
[nareshv@fallenAngel ]$ ls
CVSROOT ndiswrapper
[nareshv@fallenAngel ]$ cd ndiswrapper/
[nareshv@fallenAngel ]$ ls
AUTHORS ChangeLog driver INSTALL loadndisdriver.8 Makefile ndiswrapper.8 ndiswrapper.spec README utils
(Before compiling stuff, make sure you have the kernel-2.6.26 and kernel-devel-2.6.26 packages)
[nareshv@fallenAngel ]$ make
[nareshv@fallenAngel ]$ sudo make install
Now you have installed the ndiswrapper scripts and kernel module into the system.
Install the drivers for wireless now
[nareshv@fallenAngel ]$ cd /tmp/ndis/sp37950a/
[nareshv@fallenAngel ]$ sudo ndiswrapper -i bcmwl5.inf
Verify that the drivers are installed. You should see something like below.
[nareshv@fallenAngel ~]$ sudo /usr/sbin/ndiswrapper -l
bcmwl5 : driver installed
device (14E4:4328) present (alternate driver: ssb)
Setup the kernel modules to be autoloaded.
[nareshv@fallenAngel ~]$ sudo /usr/sbin/ndiswrapper -ma
module configuration information is stored in /etc/modprobe.d/ndiswrapper
[nareshv@fallenAngel ~]$ sudo /usr/sbin/ndiswrapper -mi
module configuration information is stored in /etc/modprobe.d/ndiswrapper
[nareshv@fallenAngel ~]$ sudo /usr/sbin/ndiswrapper -m
[nareshv@fallenAngel ~]$ cat /etc/modprobe.conf
alias wlan0 ndiswrapper
Load the kernel module
[nareshv@fallenAngel ]$ sudo /sbin/modprobe ndiswrapper
Check the wlan0 device
[nareshv@fallenAngel ]$ /sbin/iwconfig wlan0
Now the NetworkManager should detect your wifi device and shows the list of available devices. Select your network and enter the passcode (if any).
Bluetooth
Just works
Audio
Just works. Run this command.
[nareshv@fallenAngel ]$ echo "options snd_hda_intel model=mbp3" >> /etc/modprobe.d/sound
Make sure to add yourself to the 'pulse-rt,pulse,pulse-access' groups from 'system-config-users' command.
Ethernet card
Just works
Nvidia Graphics
Install the nvidia drivers from either freshrpms (http://freshrpms.net) or Livna repositories
Keyboard special keys / Backlight
Install the pommed rpm from the following location.
[nareshv@fallenAngel ]$ cd /etc/yum.repos.d
[nareshv@fallenAngel ]$ wget http://www.diffingo.com/downloads/diffingo-repo/diffingo.repo
[nareshv@fallenAngel ]$ sudo yum install pommed
(Edit the /etc/pommed.conf to suit your needs)
Touchpad/Tapping
This currently works out of the box (all the tapping features) on 2.6.27 and higher kernels. For this you can just upgrade your kernel from the 'fedora-rawhide' repository.
I've filed a ticket with Redhat Bugzilla to get this driver for 2.6.26 and lower kernels, but the
the touchpad is gonna work only from Fedora 10, See this ticket for reference
In case someone interested in trying out the bcm5974 driver for the 2.6.26 and lower kernels, i have created a dkms package for RPM based systems. Give it a try, let me know if things work for you.
Add the following lines to your xorg.conf so that synaptics driver can help
your touchpad work like that in the macosx. Here is mine looks like.
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 1.0 (buildmeister@builder63) Wed Aug 27 13:20:19
# PDT 2008
# Xorg configuration created by pyxf86config
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Synaptics Touchpad" "CorePointer"
EndSection
Section "Files"
ModulePath "/usr/lib/xorg/modules/extensions/nvidia"
ModulePath "/usr/lib/xorg/modules"
EndSection
Section "Module"
Load "synaptics"
Load "extmod"
Load "dbe"
Load "glx"
EndSection
Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/input/mice"
Option "Protocol" "auto-dev"
Option "SHMConfig" "true"
Option "LeftEdge" "10"
Option "RightEdge" "1200"
Option "TopEdge" "10"
Option "BottomEdge" "370"
Option "FingerLow" "10"
Option "FingerHigh" "20"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "SingleTapTimeout" "100"
Option "MaxDoubleTapTime" "180"
Option "LockedDrags" "off"
Option "MinSpeed" "1.10"
Option "MaxSpeed" "1.30"
Option "AccelFactor" "0.08"
Option "TapButton1" "1"
Option "TapButton2" "3"
Option "TapButton3" "2"
Option "RTCornerButton" "0"
Option "RBCornerButton" "0"
Option "LTCornerButton" "0"
Option "LBCornerButton" "0"
Option "VertScrollDelta" "20"
Option "HorizScrollDelta" "50"
Option "HorizEdgeScroll" "0"
Option "VertEdgeScroll" "0"
Option "VertTwoFingerScroll" "1"
Option "HorizTwoFingerScroll" "1"
EndSection
Section "InputDevice"
# keyboard added by rhpxl
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 30.0 - 110.0
VertRefresh 50.0 - 150.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Videocard0"
Driver "nvidia"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
Option "AllowGLXWithComposite" "True"
Option "AddARGBGLXVisuals" "True"
Option "TripleBuffer" "True"
Option "UseDamageEvents" "True"
Option "UseRandR" "True"
Option "RenderAccel" "True"
Option "NoPowerConnectorCheck" "False"
Option "RandRRotation" "True"
Option "DynamicTwinView" "True"
Option "OnDemandVBlankInterrupts" "True"
Option "ConnectToAcpid" "True"
Option "EnableACPIHotkeys" "True"
Option "UseEvents" "True"
Option "ExactModeTimingsDVI" "True"
Option "NvAGP" "0"
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
Section "Extensions"
Option "Composite" "Enable"
EndSection
Now upgrade your kernel to 2.6.27 as it allows all the above changes in xorg.conf come true.
sudo yum --enable-repo=fedora-rawhide update kernel kernel-devel
After kernel upgrade reboot your box and then recompile the ndiswrapper too (its easy, no other changes required)
cd /tmp/ndiswrapper/trunk/ndiswrapper && make uninstall && make && make install && modprobe ndiswrapper
Remove the 'applesmc' driver , its causing some problems with the wireless in 2.6.27. Also you see the following wierd error lines in /var/log/messages. Not sure if they are harmless. But removing the applesmc make them go away.
echo "applesmc" >> /etc/modporbe.d/blacklist
rmmod applesmc
Suspend
Just works
Hibernate
Fails sometimes.
Microphone
Haven't tested
iSight (webcam)
Just works.
Install this package
bash$ sudo yum install isight-firmware-tools
Test the camera using 'cheese' or 'tvtime'
bash$ sudo yum install cheese
References
Below documentations are verymuch useful in case of any problems.
[1] Fedora : http://www.mactel-linux.org/wiki/Fedora8OnMacBookSantaRosa
[2] Ubuntu : https://help.ubuntu.com/community/Macbook_Air
[3] Wifi Drivers : ftp://ftp.hp.com/pub/softpaq/sp37501-38000/sp37950.exe