Attention : cette page est en cours de rédaction !!!

Partitionnement

# parted --list
Modèle: ATA TOSHIBA MK5055GS (scsi)
Disque /dev/sda : 500GB
Taille des secteurs (logique/physique) : 512o/512o
Table de partitions : gpt

Numéro  Début    Fin       Taille     Système de fichiers  Nom               Fanions
 1           20,5kB  210MB  210MB   fat32              EFI System Partition  démarrage
 2           211MB  60,2GB 60,0GB  ntfs                Windows
 3           60,2GB 380GB  320GB   hfs+               MacOSX
 7           380GB  380GB  44,4MB                                                      bios_grub
 4           380GB  441GB  60,5GB  ext4                Gentoo                    démarrage
 5           441GB  496GB  55,0GB  ext4                Ubuntu                    démarrage
 6           496GB  500GB  4264MB linux-swap(v1)  Swap

Rq : si je devais recommencer, j'invertirai la partition 4 (Gentoo) avec la partition 7 (bios_grub utilisée par grub2 pour mettre ses fichiers de boot).

Installation sous MacOSX Snow Leopard (à compléter)

  • (ré)installer MacOSX Snow Leopard

J'ai préféré réinstaller MacOSX pour partir sur une base propre : lors de l'installation de MacOSX, j'ai opté pour un modèle de 6 partitions (cf. l'introduction sur le nombre de partitions).

  • Rq : je n'ai pas installé BootCamp comme j'avais déjà partitionné mon disque lors de l'installation de MacOSX Snow Leopard
  • installer rEFit

Installation sous Kubuntu / Ubuntu 10.04 Lucid

  • pas de problème particulier : installer sur la partition /dev/sda5

Installation sous Gentoo

  • installer gentoo sur la partition /dev/sda6

J'ai installé gentoo depuis un chroot de mon installation kubuntu.

Liste des composants matériel

# lspci
00:00.0 Host bridge: Intel Corporation Arrandale DRAM Controller (rev 12)                                                                                         
00:01.0 PCI bridge: Intel Corporation Arrandale PCI Express x16 Root Port (rev 12)                                                                                
00:1a.0 USB Controller: Intel Corporation Ibex Peak USB Universal Host Controller (rev 06)                                                                        
00:1a.7 USB Controller: Intel Corporation Ibex Peak USB2 Enhanced Host Controller (rev 06)                                                                        
00:1b.0 Audio device: Intel Corporation Ibex Peak High Definition Audio (rev 06)                                                                                  
00:1c.0 PCI bridge: Intel Corporation Ibex Peak PCI Express Root Port 1 (rev 06)                                                                                  
00:1c.1 PCI bridge: Intel Corporation Ibex Peak PCI Express Root Port 2 (rev 06)
00:1c.2 PCI bridge: Intel Corporation Ibex Peak PCI Express Root Port 3 (rev 06)
00:1c.3 PCI bridge: Intel Corporation Ibex Peak PCI Express Root Port 4 (rev 06)
00:1d.0 USB Controller: Intel Corporation Ibex Peak USB Universal Host Controller (rev 06)
00:1d.7 USB Controller: Intel Corporation Ibex Peak USB2 Enhanced Host Controller (rev 06)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev a6)
00:1f.0 ISA bridge: Intel Corporation Ibex Peak LPC Interface Controller (rev 06)
00:1f.2 IDE interface: Intel Corporation Ibex Peak 4 port SATA IDE Controller (rev 06)
00:1f.3 SMBus: Intel Corporation Ibex Peak SMBus Controller (rev 06)
00:1f.6 Signal processing controller: Intel Corporation Ibex Peak Thermal Subsystem (rev 06)
01:00.0 VGA compatible controller: nVidia Corporation Device 0a29 (rev a2)
01:00.1 Audio device: nVidia Corporation Device 0be2 (rev a1)
02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5764M Gigabit Ethernet PCIe (rev 10)
03:00.0 Network controller: Broadcom Corporation Device 4353 (rev 01)
04:00.0 FireWire (IEEE 1394): Agere Systems FW643 PCI Express1394b Controller (PHY/Link) (rev 08)
ff:00.0 Host bridge: Intel Corporation QuickPath Architecture Generic Non-core Registers (rev 02)
ff:00.1 Host bridge: Intel Corporation QuickPath Architecture System Address Decoder (rev 02)
ff:02.0 Host bridge: Intel Corporation QPI Link 0 (rev 02)
ff:02.1 Host bridge: Intel Corporation QPI Physical 0 (rev 02)
ff:02.2 Host bridge: Intel Corporation Device 2d12 (rev 02)
ff:02.3 Host bridge: Intel Corporation Device 2d13 (rev 02)

Configuration du kernel 2.6.34-gentoo-r1

  • au jour de l'écriture de ce tutorial, la version du kernel gentoo est la 2.6.34-gentoo-r1
# emerge gentoo-sources
  • Carte Réseau : Ethernet controller: Broadcom Corporation NetXtreme BCM5764M Gigabit Ethernet PCIe (rev 10)

include le module tg3

Device Drivers  --->
  [*] Network device support  --->
    [*]   Ethernet (1000 Mbit)  --->
      <M>   Broadcom Tigon3 support
  • Carte Son : Audio device: Intel Corporation Ibex Peak High Definition Audio (rev 06) et

Audio device: nVidia Corporation Device 0be2 (rev a1)

inclure le support du chipset Cirrus !

Device Drivers --->
  <M> Sound card support --->
    <M>   Advanced Linux Sound Architecture --->
      <M>   OSS Mixer API
      <M>   OSS PCM (digital audio) API
      [*]     OSS PCM (digital audio) API - Include plugin system
      [*]   OSS Sequencer API
      <M>   HR-timer backend support
      [*]     Use HR-timer as default sequencer timer
      [*]   Support old ALSA API
      [*]   PCI sound devices --->
        <M>   Intel HD Audio --->
          [*]   Support digital beep via input layer
          (1)     Digital beep registration mode
          [*]   Support jack plugging notification via input layer
          [*]   Support initialization patch loading for HD-audio
          [*]   Build NVIDIA HDMI HD-audio codec support
          [*]   Build Cirrus Logic codec support
          [*]   Enable generic HD-audio codec parser
          [*]   Aggressive power-saving on HD-audio
          (15)    Default time-out for HD-audio power-save mode
  • Carte Video : VGA compatible controller: nVidia Corporation Device 0a29 (rev a2)
  • Carte WiFi : Network controller: Broadcom Corporation Device 4353 (rev 01)

attention de bien inclure le module Host AP ("bug" dans la configuration du kernel) même si la carte est une broadcom !

[*] Networking support --->
   -*-   Wireless --->
    <M>   cfg80211 - wireless configuration API
    [*]     enable powersave by default
    [*]     cfg80211 DebugFS entries
    [*]     cfg80211 wireless extensions compatibility
    [*]   Wireless extensions sysfs files
    {M}   Common routines for IEEE802.11 drivers
    <  >    Generic IEEE 802.11 Networking Stack (mac80211)

Device Drivers  ---> 
  Sonics Silicon Backplane  --->
    <  >    Sonics Silicon Backplane support
    [*] Network device support  --->
      [*]   Wireless LAN --->
      <M>    cfg80211 - wireless configuration API
      <  >    Generic IEEE 802.11 Networking Stack (mac80211)
            Device Drivers  --->
                [*] Network device support  --->                  
                    [*] Wireless LAN  --->  
                        <M>   IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)  
                        [*]     Support downloading firmware images with Host AP driver
                        [*]         Support for non-volatile firmware images with Host AP driver
                        <M>     Host AP driver for Prism2/2.5/3 in PLX9052 PCI adaptors
                        <M>     Host AP driver for Prism2.5 PCI adaptors
  • Processeur
Processor type and features --->
  Processor family (Core 2/newer Xeon)
  • Touchpad : inclure le module USB_EHCI_TT_NEWSCHED !
Device Drivers --->
  USB support --->
    <*>     EHCI HCD (USB 2.0) support
    [*]       Root Hub Transaction Translators
    [*]       Improved Transaction Translator scheduling (EXPERIMENTAL

ou

CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y

Configuration de l'horloge

  • modifier le fichier /etc/conf.d/clock
CLOCK="UTC"
TIMEZONE="Europe/Paris"

Configuration du clavier en mode console

  • télécharger le fichier (cf. http://wiki.archlinux.fr/howto/laptop/macbookpro_55)
# cd /usr/share/keymaps/mac/all
# wget http://libre.adok-conception.fr/contrib/mac-fr-ext_new.map.gz
  • modifier le fichier /etc/conf.d/keymaps
KEYMAP="mac-fr-ext_new"
  • modifier le fichier /etc/conf.d/consolefont
CONSOLEFONT="lat9w-16"

Configuration de /etc/fstab (TODO : à compléter)

  • identifier les UUID de vos partitions (à compléter)
ls -l /dev/disk/by-uuid/
  • modifier le fichier /etc/fstab
  • créer un initramfs (à compléter)
# mkdir /usr/src/initramfs

Configuration de la carte son : Audio device: Intel Corporation Ibex Peak High Definition Audio (rev 06)

  • remarque : vérifier que le chipset Cirrus est bien compilé dans le kernel !
  • configurer le module snd-hda-intel : créer un fichier /etc/modprobe.d/alsa-macbook.conf
options snd-hda-intel model=mbp55
  • regénérer vos modules
# update-modules
  • lancer le daemon alsasound au démarrage
# rc-update add alsasound boot

Configuration de la carte video : VGA compatible controller: nVidia Corporation Device 0a29 (rev a2)

  • installer le driver nvidia-drivers
# emerge nvidia-drivers
# eselect opengl set nvidia

Configuration de la carte WiFi : Broadcom Corporation Device 4353 (rev 01)

  • installer le driver broadcom-sta
# echo "net-wireless/broadcom-sta ~amd64" >> /etc/portage/package.keywords
# echo "net-wireless/broadcom-sta Broadcom" >> /etc/portage/package.license
# emerge broadcom-sta
  • blacklister le driver b43 (au cas où) : créer un fichier /etc/modprob.d/blacklist-macbook.conf
blacklist b43
  • regénérer vos modules
# update-modules -f

Configuration de l'infrarouge

  • modifier le fichier /etc/make.conf
LIRC_DEVICES="macmini"
  • installer lirc-0.8.7_pre1 et kdelirc
# echo "=app-misc/lirc-0.8.7_pre1 ~amd64" >> /etc/portage/package.keywords/common
# emerge lirc kdelirc
  • copier le fichier de configuration lircd.conf
# cp /usr/share/lirc/remotes/apple/lircd.conf.macmini /etc/lirc/lircd.conf
  • modifier le fichier de configuration /etc/lirc/lircd.conf
LIRCD_OPTS="--driver=macmini --output=/var/run/lirc/lircd --uinput"

Configuration du Touchpad

# cp /usr/share/hal/fdi/policy/10osvendor/10-input-policy.fdi /etc/hal/fdi/policy
# cp /usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi /etc/hal/fdi/policy
# cp /usr/share/hal/fdi/policy/10osvendor/11-x11-synaptics.fdi /etc/hal/fdi/policy/
  • installer kcm_touchpad
# emerge kcm_touchpad
  • configurer le touchpad via le menu 'Configuration du système' > 'Clavier & Souris' > 'Touchpad'
  • lancer le daemon syndaemon au démarrage de kde

Créer le fichier ~/.kde4/Autostart/syndaemon

#!/bin/bash
syndaemon -i 1 -d -t -K

Configuration du shell : bash

  • modifier le fichier .bashrc
export PATH="~/local/bin:/usr/local/bin:/sbin:${PATH}"
export LANG="fr_FR.UTF-8"
export LC_COLLATE="C"
source ~/.bash_aliases

Configuration du fichier /etc/conf.d/rc

# emerge showconsole
  • modifier le fichier /etc/conf.d/rc
RC_PARALLEL_STARTUP="yes"
RC_BOOTLOG="yes"

Autre configuration

  • lancer les daemons suivants au démarrage :
# rc-update add acpid default
# rc-update add dbus default

Installation de quelques logiciels utiles

# emerge -av gentoolkit euses eix elogviewer

Configuration de kdebase-startkde

  • modifier le fichier /etc/kde/startup/agent-startup.sh
if [ -x /usr/bin/ssh-agent ]; then
   eval "$(/usr/bin/ssh-agent -s)"
fi
  • modifier le fichier /etc/kde/shutdown/agent-shutdown.sh
if [ -n "${SSH_AGENT_PID}" ]; then
   eval "$(ssh-agent -s -k)"
fi

Configuration de kdm

  • modifier le fichier /etc/conf.d/xdm
DISPLAYMANAGER="kdm"
  • lancer xdm au démarrage
# rc-update add consolekit default
# rc-update add xdm default

Configuration de ntp

# rc-update add ntp-client default

Configuration de pommed-1.33

cf. http://mac.linux.be/content/pommed-133-support-macbook-pro-61-62-and-macbook-pro-71

Configuration de vim et gvim

# emerge -av vim
# eselect bashcomp enable --global vim
# eselect bashcomp enable --global gvim

Configuration de wicd

# emerge -av wicd
# rc-update add wicd default
# rc-update del net.eth0
  • modifier le fichier /etc/conf.d/rc
RC_PLUG_SERVICES="!net.eth0"

Installation sous Windows Seven

Installation de Windows Seven

  • Où souhaitez-vous installer Windows ?
  • Choisir : Disque 0 Partition 2: WINDOWS
  • Cliquer sur Option du lecteur
  • Cliquer sur "Formater"
  • Cliquer "OK"
  • Cliquer sur "Suivant"
  • Rebooter une 1ère fois pour continuer l'installation
  • Rebooter une 2ème fois pour finaliser l'installation
  • Rentrer votre numéro de série Windows Seven

Installation des drivers bootcamp pour Windows Seven

  • Ejecter le CD Windows
  • Insérer le CD de OS X Snow Leopard
  • Lancer le logiciel "Boot Camp\setup.exe"
  • A la fin de l'installation, rebooter :)

Configuration de l'horloge UTC

cf. https://help.ubuntu.com/community/UbuntuTime

Installation de cygwin

Configuration du clavier sous Xorg (cf. /usr/share/X11/xkb/geometry)

  • modifier le fichier /etc/X11/xinit/xinitrc
setxkbmap.exe -layout fr -mode macbook79

Installation de kdewin

Reinstaller grub2 sur Ubuntu 10.04 Lucid (à compléter)

chainer le grub1 de gentoo au grub2 de ubuntu

  • rebooter sous ubuntu
TODO : à compléter
 # grub-install /dev/sda
 Installation finished. No error reported.

Voilà, un quad boot sur MacBook Pro 6.2 :)

Si tout se passe bien, vous avez désormais 4 systèmes d'exploitation installés sur votre MacBook Pro :

  • MacOSX Snow Leopard
  • Windows Seven
  • Linux Gentoo (grub1)
  • Linux Kubuntu / Ubuntu (grub2)

Quadruple Boot on MacBook Pro

Documentation

  • http://en.gentoo-wiki.com/wiki/Synaptics_Touchpad/Xorg_7.3
  • http://en.gentoo-wiki.com/wiki/Apple_Macbook
  • http://wiki.archlinux.fr/howto/laptop/macbookpro_55
  • http://www.odi.ch/prog/macbookpro/index.php
  • http://bruno.boulgour.com/trucs/macbook-pro/README
  • http://wiki.archlinux.fr/howto/laptop/macbookpro_55
  • http://www.ercoppa.org/blog-MacBook--Gentoo-Linux.htm
  • http://hydtechblog.com/2009/01/26/dual-triple-quad-boot-a-macbook-with-mac-os-x-ubuntu-linux-windows-xp-and-windows-vista/
  • http://vivin.net/2009/03/29/an-update-to-running-aterm-or-any-other-x-app-rootless-without-a-dos-console-on-cygwin-/
  • https://bbs.archlinux.org/viewtopic.php?pid=793491