Showing posts with label intel. Show all posts
Showing posts with label intel. Show all posts

Sunday, October 05, 2008

Fedora 10-Beta 64-bit on Macbook Pro 4,1



Am using Fedora 10 Final release now(Nov-13-2008) (from rawhide) see this post
Blog Last Updated: Sunday Nov 16 2008 IST Quirk for the touchpad is updated

Fedora 10 Version: Applied all updates from rawhide as of Sunday Nov 2 2008 IST

Installation Process



Partitioning and Installation process is as described in my previous post

Post Installation Process



1. Wireless



You no longer need to install the ndiswrapper manually. Configure the 'livna' repository and install the ndiswrapper.


bash$ sudo yum install ndiswrapper


Download the drivers from here, and add them to the ndiswrapper


bash$ cd /tmp/drivers
bash$ sudo ndiswrapper -i *.inf
bash$ sudo ndiswrapper -m
bash$ sudo ndiswrapper -mi
bash$ sudo ndiswrapper -ml


2. Touchpad/Tapping



Fedora 10 Automatically configures the touchpad driver using the bcm5974 driver present in the 2.6.27 kernel.

But, not all the tapping/right-click,scrolling features are available. You need to create the /etc/X11/xorg.conf (yea, with Fedora 10 there is no xorg.conf!), with the following options.

(If you are on 64-bit Fedora use /usr/lib64 in the xorg.conf)



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




3. Audio



Somehow the audio doesn't work out of the box, you need to set the model option


bash$ echo "options snd_hda_intel model=mbp3" >> /etc/modprobe.d/sound


4. Bluetooth



Works out of the box

5. Firewire



Haven't tested (Don't have a device to check)

6. Microphone



Haven't tested

7. Suspend/Hibernate (Latest quirk updated on 16-Nov-2008)



Touchpad doesn't work after resume. Here is the quirk for that


1. create the following file

(If you are running 32-bit Fedora 10 use /usr/lib instead of /usr/lib64)

[nareshv@nareshv ~]$ ls -l /usr/lib64/pm-utils/sleep.d/
total 80
-rwxr-xr-x 1 root root 2425 2008-11-04 18:03 00auto-quirk
-rwxr-xr-x 1 root root 274 2008-11-04 18:03 00logging
-rwxr-xr-x 1 root root 203 2008-11-04 18:03 00powersave
-rwxr-xr-x 1 root root 809 2008-11-04 18:03 01grub
-rwxr-xr-x 1 root root 341 2008-11-15 18:52 02touchpad
-rwxr-xr-x 1 root root 664 2008-11-04 18:03 49bluetooth
-rwxr-xr-x 1 root root 447 2008-11-04 18:03 50ntpd
-rwxr-xr-x 1 root root 429 2008-11-04 18:03 55battery
-rwxr-xr-x 1 root root 1029 2008-11-04 18:03 55NetworkManager
-rwxr-xr-x 1 root root 409 2008-11-04 18:03 65alsa
-rwxr-xr-x 1 root root 335 2008-11-04 18:03 75modules
-rwxr-xr-x 1 root root 391 2008-11-04 18:03 90chvt
-rwxr-xr-x 1 root root 419 2008-11-04 18:03 90clock
-rwxr-xr-x 1 root root 1098 2008-11-04 18:03 94cpufreq
-rwxr-xr-x 1 root root 297 2008-11-04 18:03 95led
-rwxr-xr-x 1 root root 707 2008-11-05 15:31 95packagekit
-rwxr-xr-x 1 root root 2920 2008-11-04 18:03 98smart-kernel-video
-rwxr-xr-x 1 root root 2068 2008-11-04 18:03 99hd-apm-restore.hook
-rwxr-xr-x 1 root root 5492 2008-11-04 18:03 99video

[nareshv@nareshv ~]$ cat /usr/lib64/pm-utils/sleep.d/02touchpad
#!/bin/bash

if [ -e '/usr/lib64/pm-utils/functions' ];then
. /usr/lib64/pm-utils/functions
fi

suspend_bcm5974() { /sbin/rmmod bcm5974; }
resume_bcm5974() { /sbin/modprobe bcm5974; }

case "$1" in
suspend|hibernate)
suspend_bcm5974;
;;
thaw|resume)
resume_bcm5974;
;;
*)
;;
esac

exit $?

2. Now suspend/resume should work without any problems.


NOTE: Earlier, i was adding the script to /etc/pm/sleep.d directory, which seem to have the problem i mentioned in this bug, if you follow the above quirk, all your sensitivity/tapping things as mentioned in the xorg.conf should work as expected after the resume/hibernate.

8. Hibernate



Works out of the box.

(I am using KDE as my default desktop, sometimes i leave my notebook on battery and go out, KDE automatically takes care of hibernating the laptop when battery power reaches critical state. Resuming from hibernate works cool too!). My kernel version is 2.6.27.4-58.fc10.x86_64

9. Network Card



Works out of the box

10. Nvidia Graphics card



Works out of the box.

In order to make use of the compiz-fusion you need to install the latest 177.78 driver from livna repository.

11. Keyboard special keys / Backlight



Install pommed from this location. After installation edit the /etc/pommed.conf


[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


NOTES: Keyboard backlit and sensors support in Fedora 10 is available from 2.6.27.3-34.rc1.fc10 or higher kernel, as the correct patches were applied to applesmc driver

12. isight (webcam)



Works out of the box.

13. Plymouth Graphical Plugins



By default you wont be able to see the latest plymouth graphical plugin on your macbook after the installation. Here is the quirk for that ( add vga=0x318 option to your /etc/grub.conf)

If you want to see the power of plymouth in action . see the videos
Here is mine.


# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,2)
# kernel /vmlinuz-version ro root=/dev/sda6
# initrd /initrd-version.img
#boot=/dev/sda3
default=0
timeout=5
splashimage=(hd0,2)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.27.5-109.fc10.x86_64)
root (hd0,2)
kernel /vmlinuz-2.6.27.5-109.fc10.x86_64 ro root=UUID=9972fac9-aba9-443e-a6a1-de3e0a0e8147 vga=0x318 rhgb quiet
initrd /initrd-2.6.27.5-109.fc10.x86_64.img
title Fedora (2.6.27.5-94.fc10.x86_64)
root (hd0,2)
kernel /vmlinuz-2.6.27.5-94.fc10.x86_64 ro root=UUID=9972fac9-aba9-443e-a6a1-de3e0a0e8147 vga=0x318 rhgb quiet
initrd /initrd-2.6.27.5-94.fc10.x86_64.img
title Fedora (2.6.27-3.applesmc.fc10.x86_64)
root (hd0,2)
kernel /vmlinuz-2.6.27-3.applesmc.fc10.x86_64 ro root=UUID=9972fac9-aba9-443e-a6a1-de3e0a0e8147 vga=0x318 rhgb quiet
initrd /initrd-2.6.27-3.applesmc.fc10.x86_64.img
title Other
rootnoverify (hd1,0)
chainloader +1



After adding the vga= option to your grub.conf there is a default plugin which will be used. If you want to use the Fedora's solar plugin. run these commands and reboot Fedora 10 to see the plugin in action.


[nareshv@nareshv ~]$ sudo plymouth-set-default-plugin solar
[nareshv@nareshv ~]$ sudo /usr/libexec/plymouth/plymouth-update-initrd

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

Wednesday, September 24, 2008

Fedora 9 on MacBook Pro penryn (Intel)

Pre Installation Process



  1. 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.

  2. 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

  3. 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.


  4. Installation Process



    1. Insert your Fedora 9 DVD into the notebook and reboot your Mac.

    2. 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

    3. Answer all the questions as usual during the install process. Be careful at the partitioning page. Choose 'create custom layout'.

      1. 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)

      2. Now you'll have free space on your system

      3. Lets create 3 partitions from the free space.

      4. Create new partition for /boot with 200MB of space (/dev/sda3)

      5. Create new partition for swap with 2GB of space

      6. Create new partition for / with the rest of available space (/dev/sda4)



    4. After you are done with the changes click 'apply' (This step writes the requested changes to disk, double check before applying your changes)

    5. Customize your packages and proceed with the rest of the installation



    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