Modification: 03/05/2009 Creation: 29/12/2007 INTRODUCTION ============ Ce fichier contient quelques notes que j'ai prises (et que je continue de prendre) concernant l'installation et la configuration du système Debian sur un Apple Macintosh MacBook Pro (MacBookPro3,1). C'est visiblement une machine qui utilise l'architecture Santa Rosa d'Intel. Ces notes sont là surtout pour que je me souvienne comment j'ai fait, histoire de ne pas perdre trop de temps sur des détails qui m'ont déjà suffisamment pertubé une première fois. Une connaissance de debian est hautement recommandée (avoir les bons réflexes, savoir interpréter les messages d'erreur, savoir se débrouiller en console et sous X, avoir certaines bases sur la configuration d'une debian). Dans le cas contraire, si vous souhaitez installer GNU/Linux sur le même type de matériel il vaut mieux essayer une installation plus grand public : Ubuntu ou Mandriva, sont BEAUCOUP plus simple (à bon entendeur ... :-) Pour savoir quelle type de machine j'ai (MacBookPro3,1) j'ai utilisé, en tant que root, la commande dmidecode. -- dmidecode -s system-product-name -- PARTITIONNEMENT ET INSTALLATION =============================== Introduction ------------ Pour l'instant je n'ai pas bien intégré le fonctionnement du nouveau BIOS (EFI) qu'Intel espère voir remplacer le classique BIOS d'IBM. Je ne connais pas encore bien le système de gestion du partitionnement (GPT) qui remplace l'ancien (MBR). C'est embêtant parce que c'est celui qui est utilisé sur les MacBook Pro. Il faudra bien que je lise un jour ou l'autre les différentes docs que l'on peut trouver sur le web : * http://www.intel.com/technology/efi * http://www.uefi.org * https://www.tianocore.org/ On trouve aussi pas mal de chose dans Wikipedia à ces sujets : * http://fr.wikipedia.org/wiki/Extensible_Firmware_Interface * http://en.wikipedia.org/wiki/Extensible_Firmware_Interface * http://en.wikipedia.org/wiki/GUID_Partition_Table * http://en.wikipedia.org/wiki/Master_Boot_Record * http://en.wikipedia.org/wiki/Partition_table Et puis aussi quelques trucs concernant Linux, EFI et les MacBook : * http://refit.sourceforge.net/myths/ * http://wiki.onmac.net/index.php/Triple_Boot_via_BootCamp A cause des différentes limitations de Windows et surtout parce que je n'ai pas de licence j'évite de faire un triple boot. Je ne fais qu'un dual boot MacOS X/Debian. Un jour ou l'autre je vais virer MacOS X étant donné que je n'en sers jamais. Préparation sous MacOS X ------------------------ Sur le portable il y avait MacOS X 10.5 d'installé. J'ai juste réduit la partition utilisé par le système en utilisant l'assistant Bootcamp (que l'on trouve dans Applications/Utilitaires). C'est visiblement juste une interface graphique au dessus de la commande diskutil. Ensuite, sous MacOS X, j'ai installé l'utilitaire [rEFIt][1] qui permet de choisir comment démarrer le portable. [1]: http://refit.sourceforge.net/ Pour l'activer il a fallu taper ces commandes dans un terminal sous MacOS X : -- cd /efi/refit ./enable-always.sh -- Installation Debian ------------------- Pour l'installation j'ai utilisé une image ISO pour installation via le réseau (netinst) d'une [debian lenny][2] (j'ai pris une image faite le 29 décembre 2007). [2]: http://www.debian.org/devel/debian-installer/ Pour utiliser le CD lors du démarrage il suffit d'appuyer sur la touche C quand la machine démarre. Pour accéder au sélecteur de volume il faut appuyer sur la touche ALT quand la machine démarre. L'installation se fait via le réseau sans problème à l'exception de la carte Airport Extreme qui n'est pas reconnu (pilote propriétaire). L'installation a donc été faite via la carte réseau ethernet filaire intégrée. J'ai fait des partitions au dessus de LVM donc c'est LILO que le debian-installer a choisi comme chargeur de démarrage (boot-loader). Je suis passé en sid (Debian unstable) au premier boot histoire de vivre un peu dangereusement :-) NOYAU ===== Résumé ------ J'ai installé un noyau 2.6.28 perso *sans* les patchs mactel. Tout semble être supporté correctement. Détails ------- * Pour la compilation j'ai fait ça "à la" Debian. Il faut donc au moins les paquets build-essential, kernel-package et module-assistant : -- apt-get install build-essential kernel-package module-assistant -- * J'ai modifié le fichier /etc/kernel-pkg.conf pour spécifier mon nom et demander une compilation concurrente sur les 2 coeurs du processeur (ça passe l'option -j à make lors de la compilation) : -- cat <>/etc/kernel-pkg.conf maintainer := Bruno BEAUFLS email := bruno@boulgour.com CONCURRENCY_LEVEL := 4 EOF -- * J'ai récupéré les sources du noyau 2.6.29.2 : -- cd /usr/src VERSION=2.6.29.2 wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-${VERSION}.tar.bz2 wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-${VERSION}.tar.bz2.sign gpg --verify linux-${VERSION}.tar.bz2.sign linux-${VERSION}.tar.bz2 tar -jxf linux-${VERSION}.tar.bz2 ln -s linux-${VERSION} linux -- * J'ai configuré les sources via menuconfig, il faut donc libncurses5-dev, puis j'ai compilé le tout via kernel-package. Lors de la configuration il ne faut pas oublier de fixer CONFIG_SND_HDA_INTEL_CODEC_REALTEK pour le son. -- apt-get install libncurses5-dev cd /usr/src/linux ; make menuconfig make-kpkg clean ; make-kpkg --revision=20090503.1 --initrd binary -- * Visiblement, il faut (je ne sais pas encore pourquoi) s'assurer que le module appletouch soit chargé *AVANT* le module usbhid, en bricolant le fichier /etc/modules : -- echo "appletouch" >> /etc/modules echo "usbhid" >> /etc/modules echo "applesmc" >> /etc/modules echo "appleir" >> /etc/modules echo "coretemp" >> /etc/modules -- * Le support de la virtualisation via KVM est disponible avec une petite bidouille lors de la compilation que j'ai trouvée dans un report de [bug][4] Debian mais dont je n'ai pas trouvé la justification. -- m-a clean kvm-source m-a -k /usr/src/linux-${VERSION} build kvm-source -- Pour pouvoir utiliser kvm il faut évidemment charger les modules kvm et kvm-intel, installer kvm et ajouter les utilisateurs autorisés dans le groupe kvm. -- echo kvm-intel >>/etc/modules echo kvm >>/etc/modules apt-get install kvm adduser kvm bruno -- C'est pareil pour kqemu. [4]: http://bugs.debian.org/467260 CLAVIER et SOURIS ================= * Pour info sous Mac ce qu'on appelle la touche "commande" c'est la pomme et ce qu'on appelle la touche "option" c'est ALT. * Pour la gestion du clavier en mode console il suffit de reconfigurer le paquet console-setup. J'ai fait, entre autre, les choix suivants : - Modèle : MacBook/MacBook Pro (Intl) - Origine : France - Disposition : France - Macintosh - Remplacement de AltGr : les deux touches « logo » * En mode console c'est console-setup qui gère maintenant le clavier (avec visiblement les mêmes fichiers que XKBD), dans les options j'ai ajouté apple:goodmap pour corriger un problème du noyau qui ne reconnait visiblement pas bien les claviers de portable Mac : * https://bugs.freedesktop.org/show_bug.cgi?id=8242 * https://bugs.launchpad.net/ubuntu/+bug/139833 * Pour avoir le support des boutons speciaux du Mac il suffit utiliser l'outil pommed. J'ai modifié la configuration (dans le fichier /etc/pommed.conf) pour ne pas être obligé d'appuyer sur la touche FN pour obtenir les touches de fonction (fnmode = 2 dans la section general). X11 === * L'accélération graphique 3D de la carte graphique n'est supporté que par le pilote propriétaire de NVIDIA. La méthode Debian pour l'installer ne marche pas. Il faut donc se le palucher à la main. -- cd /usr/src VERSION=185.13 wget ftp://download.nvidia.com/XFree86/Linux-x86/${VERSION}/NVIDIA-Linux-x86-${VERSION}-pkg1.run sh NVIDIA-Linux-x86-* -x cd NVIDIA-Linux-x86-* ./nvidia-installer --no-precompiled-interface --kernel-source=/usr/src/linux echo "nvidia" >>/etc/modules -- Les sources des pilotes propriétaires sont disponibles sur le site français de [NVIDIA][5]. [5]: http://www.nvidia.fr/object/linux_display_archive_fr.html WEBCAM ====== * La caméra intégrée marche bien avec le pilote UVC qui est maintenant intégré dans le noyau (à partir de 2.6.26). * Avant le noyau 2.6.26 il fallait utiliser le pilote UVC "à la main". La méthode Debian pour l'installer ne marche pas. Il fallait donc se le palucher à la main : -- cd /usr/src ; mkdir svn ; cd svn svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk linux-uvc cd linux-uvc ; make ; make install echo "uvcvideo" >>/etc/modules -- * J'ai aussi récupéré le firmware sur MacOS X, mais je ne suis pas sûr que ce soit encore nécessaire : -- apt-get install linux-uvc-tools mount -t hfsplus /dev/sda2 /mnt macbook-isight-firmware-loader /mnt/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport umount /mnt -- * Pour que ça marche avec Ekiga ou ce genre de soft il faut choisir le passage par V4L2 et du coup il faut penser à mettre les utilisateurs dans le groupe video. GESTION DE L'ENERGIE ==================== * Une explication de la notion de gouvernance pour la fréquence du CPU : http://www.mail-archive.com/debian-user-french@lists.debian.org/msg143826.html * J'ai lancé powertop et j'ai suivi les conseils qu'il me donne en changeant certains paramètres du noyau : -- cat <>/etc/sysctl.conf # Powertop advices vm/dirty_writeback_centisecs=1500 EOF -- * J'ai installé le script hibernate et j'ai simplement modifié un peu sa configer pour essayer le "suspend to RAM" en premier (c'est celui qui m'intéresse le plus) et j'ai mis en commentaire le "blacklistage" du module nvidia. Pour que le réseau redémarre correctement j'ai mis l'interface ath0 en allow-hotplug. * Pour utiliser gnome-power-manager à la place il faut penser à mettre les utilisateurs autorisés dans le groupe powerdev. TODO: * Appeler hibernate quand l'écran se ferme ou quand j'appuie sur le bouton ON/OFF. C'est dans l'ACPI que ça se passe. * "display backlight" automatique à voir TELECOMMANDE ============ TODO: * configuration de lirc * necessite de appleir SON === Avec le noyau choisi ça marche sans problème. CD AUDIO et Gravage de DVD ========================== TODO: * tester le gravage/rippage/lecture audio AUTRES TRUCS ============ Polices de caractères et résolution ------------------------------------ Sur les conseils de Mickey j'ai installé les polices TrueType standard de Windows (récupéré sous Windows) et j'utilise la police Tahoma pour les applications classiques. J'ai forcé la résolution à utiliser à 96 DPI après avoir lu la petite explication de http://scanline.ca/dpi J'ai installé mes polices dans /usr/local/share/fonts/truetype. Dans Gnome : Système>Préférences>Apparence>Polices>Détails. TODO: * S'assurer que c'est cette résolution qui est utilisé par tout le monde (xorg.conf, Xresources, etc.) VMware ------ Quelques liens en attendant mieux : * http://communities.vmware.com/message/76957 * http://blog.creonfx.com/linux/how-to-install-vmware-player-workstation-on-2624-kernel Firefox 3 et OpenBox -------------------- Pour éviter que Firefox 3.x se déplace vers le bureau courant quand on ouvre un lien avec une application quelconque (genre mutt) il faut fixer à true la variable browser.tabs.loadDivertedInBackground dans la configuration (about:config). Le bug est suivi sur [launchpad][5] et sur [bugzilla][6] [5]: https://bugs.launchpad.net/firefox/+bug/204927 [6]: http://bugzilla.gnome.org/show_bug.cgi?id=482354 REFERENCES ========== * Je stocke dans le fichier INSTALL la liste des logiciels que j'installe et utilise. * Quelques descriptions d'installation de Debian sur des MacBook ou des MacBook Pro : * https://cbg.dyndns.org/wiki/ReadingCorner/LinuxOnMacbookPro * http://wiki.debian.org/MacBookPro * http://wiki.debian.org/MacBook * http://www.vogelweith.com/debian_laptop/00_macbookpro.php * https://wiki.ubuntu.com/MacBook * https://wiki.ubuntu.com/MacBookPro * https://wiki.ubuntu.com/MacBookPro/SantaRosa * Quelques autres installations de MacBook : * http://gentoo-wiki.com/HARDWARE_Apple_MacBook * Un document pratique pour comprendre la philosophie d'utilisation de MacOS X quand on vient de Linux ou Windows : * http://ktd.club.fr/documents/fichiers/guide-introduction-macosx-fr.pdf # Local Variables: # mode: text # mode: auto-fill # time-stamp-line-limit: 1 # time-stamp-start: "^" # time-stamp-end: "$" # time-stamp-format: "Modification: %02d/%02m/%:y" # time-stamp-active:t # End: