Debian Sid & Mac Book Pro
Matthieu Vogelweith
17 juillet 2008

Résumé

L’objectif de ce document est donc de détailler l’installation de Debian GNU/Linux [1] sur un Mac Book Pro Core 2 Duo [2]. Notons que la procédure expliquée ci-dessous est basée sur une Debian Sid.
Globalement la Sid fonctionne très bien sur cette machine, avec juste un petit bémol pour la gestion de l’énergie puisqu’on ne peut espérer avoir plus de 2 heures d’autonomie pour l’instant ...

Ce document a été rédigé en LaTeX en utilisant l’excellent Vim sous Debian GNU/Linux. Il est disponible aux formats XHTML et PDF. Les sources LaTeX sont disponibles ici : LATEX

Licence

Copyright ©2008 Matthieu VOGELWEITH <matthieu@vogelweith.com>.

Vous avez le droit de copier, distribuer et/ou modifier ce document selon les termes de la GNU Free Documentation License, Version 1.2 ou ultérieure publiée par la Free Software Foundation ; avec aucune section inaltérable, aucun texte de première page de couverture, et aucun texte de dernière page de couverture. Une copie de la licence est disponible dans la page GNU Free Documentation License.

News

Table des matières

Introduction

1.1 Caractéristiques Techniques

1.2 lspci

Un petit tour d’horizon des périphériques installés avec lspci :

00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub (rev 03) 
00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express PCI Express Root Port (rev 03) 
00:07.0 Performance counters: Intel Corporation Unknown device 27a3 (rev 03) 
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02) 
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02) 
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02) 
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02) 
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 02) 
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 02) 
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 02) 
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 02) 
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02) 
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2) 
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02) 
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02) 
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller IDE (rev 02) 
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02) 
01:00.0 VGA compatible controller: ATI Technologies Inc M56P [Radeon Mobility X1600] 
02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller (rev 22) 
03:00.0 Network controller: Atheros Communications, Inc. Unknown device 0024 (rev 01) 
0c:03.0 FireWire (IEEE 1394): Texas Instruments TSB82AA2 IEEE-1394b Link Layer Controller (rev 01)

Installation

2.1 Présentation

- Installation en 32 bits

2.2 Partitionnement du disque

- Redimensionnement de la partition MacOSX ou réinstallation sur une plus petite partition

2.3 Installation de Refit

- Installation de Refit sous MacosX [3]
- Configuration dans /efi/refit/refit.conf :

legacyfirst 
hideui all

2.4 Installation de Debian

- Pour install Debian, téléchargement de la netinstall [4]

2.5 Configuration de GRUB

Avant d’écrire le bootloader, il faut synchroniser la table de partition et mettre le flag de boot sur la partition sda3 :

- Passage sur une console avec Alt+F2, activation en tapant sur "Enter" puis :

# chroot /target aptitude install refit 
# /target/sbin/gptsync /dev/sda 
# sfdisk --force -c /dev/sda 3 83

- Retour au programme d’installation avec Alt+F1 - Répondre non pour l’install dans le MBR - choisir /dev/sda3

2.6 Configuration du clavier

# dpkg-reconfigure console-data

Choisir "Select keymap from arch list" -> "azerty" -> "French" -> "Apple USB"

2.7 Upgrade en Sid

La mise à jour en Sid permet de bénéficier d’un kernel plus récent et de paquets plus à jour. Il sera par exemple possible d’utiliser directement le driver OpenSource RadeonHD pour gérer la carte ATI. Avant de faire la mise à jour, il faut modifier le fichier /etc/apt/sources.list comme indiqué ci-dessous :

# Debian Sid 
deb http://ftp.fr.debian.org/debian/ sid main non-free contrib 
 
# Debian Experimental 
deb http://ftp.fr.debian.org/debian/ experimental main non-free contrib

Notons que le sources.list présenté ci-dessus utilise également le dépôt expérimental pour bénéficier de quelques paquets supplémentaire, mais il n’est pas du tout indispensable. Pour réaliser la mise à jour, il suffit simplement d’exécuter la commande suivante :

# aptitude update && aptitude dist-upgrade

Après la mise à jour, un petit reboot permet de redémarrer sur le nouveau kernel :

# reboot

En principe, le kernel de Sid démarre très bien sur le MacBook Pro. En cas de problème, il est toujours possible de démarrer en single ou sur le 2.6.18 de la Etch.

Gestion de l’énergie

3.1 Chargement des modules

Chargement des modules :

# modprobe applesmc coretemp

Chargement des modules au démarrage de la machine :

# echo "applesmc" >> /etc/modules 
# echo "coretemp" >> /etc/modules

3.2 Fréquence CPU

# aptitude install cpufreqd

3.3 Mise en veille

# aptitude install acpid acpi-support

Mettre en la machine en veille (suspend to RAM) :

# /etc/acpi/sleep.sh

Mettre en la machine en hibernation (suspend to DISK) :

# /etc/acpi/hibernate.sh

3.4 Powertop

# aptitude install powertop

Serveur Graphique

4.1 Pilotes ATI

Les pilotes propriétaires fournit par ATI sont les seuls a fournir un support 3D complet pour les cartes ATI sous linux. En plus d’être propriétaire, ce pilote n’est malheureusement pas de grande qualité. Depuis peu, une alternative libre existe pour les cartes récentes, il s’agit du projet radeonhd [5]. Ce pilote OpenSource est développé par Novell à partir des spécifications fournies par AMD. Le support 3D n’est pas vraiment complet mais il de très bonne qualité est beaucoup moins instable que le pilote propriétaire.

Ce pilote est maintenant disponible dans sa version 1.0.0 dans Debian Sid. L’installation du pilote se fait donc tout simplement avec la commande suivante :

# aptitude update 
# aptitude install xserver-xorg-video-radeonhd

Reste enfin à configurer la section "Device" du fichier /etc/X11/xorg.conf comme indiqué ci-dessous :

Section "Device" 
    Identifier  "ATI Mobility X1600" 
    Driver      "radeonhd" 
EndSection
$ xrandr -q 
Screen 0: minimum 320 x 200, current 1440 x 900, maximum 1440 x 1440 
PANEL connected 1440x900+0+0 0mm x 0mm 
   1440x900       60.0*+ 
DVI-I_1/analog disconnected 
DVI-I_1/digital disconnected

4.2 TouchPAD

# aptitude install xserver-xorg-input-synaptics

Sous Mac OS X, le bouton droit peut être emuler avec un "clic à deux doigts". De la même façon, le défilement vertical est obtenu en déplaçant 2 doigts simultanément sur le trackpad. Pour obtenir un comportement similaire à Mac OS X, il suffit d’editer la section "InputDevice" du fichier /etc/X11/xorg.conf :

Section "InputDevice" 
    Identifier  "Synaptics Touchpad" 
    Driver      "synaptics" 
    Option      "SendCoreEvents" "true" 
    Option      "TapButton3" "2" 
    Option      "TapButton2" "3" 
    Option      "VertTwoFingerScroll" "1" 
    Option      "SHMConfig" "true" 
EndSection

Le driver Synaptics permet de régler très finement le comportement du trackpad, toutes les options sont disponibles dans la page man. Une petite astuce pour ne pas redémarrer à chaque modification de la config : utiliser synclient qui applique les modifications à chaud.

4.3 Configuration du clavier

Section "InputDevice" 
    Identifier  "MBP Keyboard" 
    Driver      "kbd" 
    Option      "CoreKeyboard" 
    Option      "XkbRules" "xorg" 
    Option      "XkbModel" "macintosh" 
    Option      "XkbLayout" "fr" 
    Option      "XkbOptions" "lv3:lwin_switch" 
EndSection

4.4 Touches spéciales

Configuration des Hotkeys avec pommed [6]

# aptitude install pommed gpomme

4.5 Fichier de configuration

Mon fichier de configuration est disponible ici : xorg.conf

Carte Wireless

5.1 Installation

La carte Wireless est basée sur un chipset Atheros AR5008 qui est maintenant complètement supporté par MadWifi [7] depuis le 02/05/2007. Le support de cette carte étant très récent, il faut simplement utiliser les sources du SVN pour que tout fonctionne :

# aptitude install linux-uvc-source build-essential kernel-package module-assistant kernel-headers-2.6-686 
# mkdir -p /root/svn/ 
# cd /root/svn 
# svn co  http://svn.madwifi.org/madwifi/trunk madwifi 
# cd madwifi 
# make 
# make install

5.2 Configuration

Pour que le module se charge automatiquement lorsque l’on monte l’interface, on peut ajouter les lignes suivantes dans /etc/network/interfaces :

iface ath0 inet dhcp 
    pre-up modprobe ath_pci 
    post-down modprobe -r ath_pci wlan_scan_sta wlan_wep ath_rate_sample wlan 
    wireless-essid Mon_ESSID 
    wireless-key xxxxxxxxxxxxxxxxxxxxxxxxxx 
    wireless-keymode open

Pour monter l’interface, il suffit alors de saisir la commande suivante :

# ifup ath0

On peut verifier que la carte a bien été reconnue en examinant le syslog :

kernel: ath_hal: 0.9.30.13 (AR5210, AR5211, AR5212, AR5416, RF5111, RF5112, RF2413, RF5413, RF2133) 
kernel: wlan: 0.8.4.2 (svn r2351) 
kernel: ath_pci: 0.9.4.5 (svn r2351) 
kernel: ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 17 (level, low) -> IRQ 18 
kernel: PCI: Setting latency timer of device 0000:03:00.0 to 64 
kernel: ath_rate_sample: 1.2 (svn r2351) 
kernel: wifi0: 11a rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps 
kernel: wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 
kernel: wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps 
kernel: wifi0: turboG rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps 
kernel: wifi0: H/W encryption support: WEP AES AES_CCM TKIP 
kernel: wifi0: mac 12.10 phy 8.1 radio 12.0 
kernel: wifi0: Use hw queue 1 for WME_AC_BE traffic 
kernel: wifi0: Use hw queue 0 for WME_AC_BK traffic 
kernel: wifi0: Use hw queue 2 for WME_AC_VI traffic 
kernel: wifi0: Use hw queue 3 for WME_AC_VO traffic 
kernel: wifi0: Use hw queue 8 for CAB traffic 
kernel: wifi0: Use hw queue 9 for beacons 
kernel: wifi0: Atheros 5418: mem=0x98100000, irq=18

Webcam iSight

6.1 Compilation du drivers UVC

Le module compilé de UVC n’est directement disponible dans les dépôts Debian mais la compilation est extrêmement simple si l’on utilise module-assistant :

# aptitude install linux-uvc-source build-essential kernel-package module-assistant kernel-headers-2.6-686 
# m-a prepare 
# m-a a-i linux-uvc 
# dpkg -i /usr/src/linux-uvc-modules-2.6.25-2-686_0.1.0.svn193-3+2.6.25-6_i386.deb

6.2 Firmware

Le firmware de la webcam peut être récupéré à partir de la partition de MacOSX. Attention, ce firmware doit être chargé avec le chargement du module uvcvideo :

# mkdir /mnt/osx/ 
# mount -t hfsplus /dev/sda2 /mnt/osx 
# ls -al /mnt/macosx/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport

Le paquet isight-firmware-tools fournit un petit outil permettant d’extraire, de patcher et de charger le firmware de la webcam.

# aptitude install isight-firmware-tools

Lors de la configuration du paquet, Debconf demande l’emplacement du firmware original. Il suffit d’indiquer le chemin du firmware trouvé ci-dessus. En cas de problèmes, il est toujours possible de rejouer la configuration du paquet avec la commande suivante :

# dpkg-reconfigure isight-firmware-tools

Si tout c’est bien passé, le firmware doit être disponible dans /lib/firmware et un nouveau device doit être créé dans /dev :

# ls -al /lib/firmware/isight.fw 
-rw-r--r--  1 root root 10871 2008-07-17 12:33 isight.fw 
# ls -al /dev/video* 
crw-rw---- 1 root video 81, 0 2008-07-17 12:39 /dev/video0

6.3 Utilisation

Pour que la webcam soit utilisable par un utilisateur du système, il suffit de l’ajouter au groupe video :

# adduser <utilisateur> video

Ensuite, cet utilisateur pour utiliser toutes les applications qu’il désire, sous réserve qu’elles supportent V4L2. Voici quelques applications compatibles V4L2 qui fonctionnement bien avec l’Isight :

Bluetooth

7.1 Montage d’un téléphone

# aptitude install obexfs 
# mkdir -p /mnt/bluetooth
# hcitool scan
# obexfs -b <BT MAC ADDRESS> -B 7 ~/mnt/bluetooth/

Benchmarks

8.1 Disque dur

Hdparm permet de tester les performances du disque dur de la machine. L’installation se fait comme toujours avec aptitude :

# aptitude install hdparm

Pour lancer le test, il suffit d’exécuter la commande suivante :

# hdparm -tT /dev/sda 
 
/dev/sda: 
 Timing cached reads:   5498 MB in  2.00 seconds = 2754.09 MB/sec 
 Timing buffered disk reads:  120 MB in  3.03 seconds =  39.55 MB/sec

Le résultat ci-dessus est obtenu avec le disque 120 Go 5400 tr/min d’origine. Ci-dessous, le résultat de hdparm après remplacement du disque par un Hitachi 160 Go 7200 tr/min :

mbp:~# hdparm -tT /dev/sda 
 
/dev/sda: 
 Timing cached reads:   5214 MB in  2.00 seconds = 2611.56 MB/sec 
 Timing buffered disk reads:  172 MB in  3.02 seconds =  57.02 MB/sec

8.2 Processeur

Afin d’évaluer les performances du processeur, on peut par exemple mesurer le temps de compilation du noyau. Pour apprécier les effets du multi-core, le test est réalisé plusieurs fois en modifiant l’option -j de make. Cette option défini le nombre de process lancés simultanément par make.

time make 
real    8m46.063s 
 
time make -j2 
real    4m17.045s 
 
time make -j3 
real    4m7.875s 
 
time make -j4 
real    4m6.633s

8.3 Carte graphique

Pout tester les performances de la carte graphique, on peut utiliser glxgears qui est fourni avec le paquet mesa-utils :

$ glxgears 
6257 frames in 5.1 seconds = 1236.405 FPS 
6204 frames in 5.0 seconds = 1237.433 FPS 
6293 frames in 5.1 seconds = 1243.875 FPS 
6237 frames in 5.0 seconds = 1239.986 FPS 
6237 frames in 5.1 seconds = 1230.079 FPS

Références

Dernière modification le 17/07/2008 à 17:04.