English version

Valid HTML 4.0 Transitional

Debian GNU/Linux et Mac OS X sur mon iBook

My iBook

Introduction

En mars 2007, j'ai acheté un iBook d'occasion sur ebay.com. Il s'agit d'un iBook G3 (Late 2002). Il m'est parvenu équipé d'un processeur PowerPC G3 à 800 MHz, de 128 MB of mémoire vive, d'un disque dur de 30 GB, d'un lecteur de CDROM et de la carte Apple AirPort. J'ai immédiatement ajouté une barette de mémoire pour atteindre 640 MB de mémoire vive. J'ai également remplacé le clavier original (US QWERTY) par un clavier belge. Bien entendu, j'ai également dû me procurer une alimentation 220 V / 50 Hz puisque l'alimentation d'origine 110 V / 60 Hz ne me sert à rien du tout en Europe. Voici quelques informations sur cette machine:

Partitions

Mon objectif est d'obtenir un dual-boot entre Mac OS X et Debian GNU/Linux. Je dois donc créer un certain nombre de partitions. Voici la liste:

Description Sys. de fich. Taille
Mac OS X (1) hfsplus 7 GB
Linux swap swap 750 MB
Linux /var ext3 940 MB
Apple Bootstrap Apple Bootstrap 880 KB
Linux / ext3 4.2 GB
Linux /home ext3 1.4 GB
Mac OS X (2) hfsplus 14 GB

(1): Cette partition contient le système Mac OS X et les exécutables
(2): Cette partition contiendra les données qui doivent être accessibles à la fois par Mac OS X et Debian GNU/Linux

Pourquoi ai-je créé deux partitions hfsplus ?

Commençons l'installation

La première chose à faire est d'installer Mac OS X. En effet, je dois installer Mac OS X et Debian GNU/Linux, mais je vous conseille fortement d'installer Mac OS X en premier et Debian GNU/Linux en second, vous aurez moins de chances de rencontrer des problèmes.

Installation de Debian GNU/Linux

L'étape suivante est d'installer Debian GNU/Linux 4.0 "etch". Don't panic, il est beaucoup plus facile d'installer Debian sur une machine powerpc qu'il y a cinq ans.

Résultat de la commande fdisk

[root@ibook] 11:57 /root>fdisk -l
/dev/hda
        #                    type name                 length   base     ( size )  system
/dev/hda1     Apple_partition_map Apple                    63 @ 1        ( 31.5k)  Partition map
/dev/hda2         Apple_UNIX_SVR2 swap                1562501 @ 14680128 (762.9M)  Linux swap
/dev/hda3               Apple_HFS Apple_HFS_Untitled_1 14417920 @ 262208   (  6.9G)  HFS
/dev/hda4         Apple_UNIX_SVR2 untitled            1953126 @ 16242629 (953.7M)  Linux native
/dev/hda5               Apple_HFS Apple_HFS_Untitled_2 29097984 @ 26895976 ( 13.9G)  HFS
/dev/hda6         Apple_Bootstrap untitled               1719 @ 18195755 (859.5k)  NewWorld bootblock
/dev/hda7         Apple_UNIX_SVR2 untitled            8698502 @ 18197474 (  4.1G)  Linux native
/dev/hda8         Apple_UNIX_SVR2 untitled            2611160 @ 55993960 (  1.2G)  Linux native
/dev/hda9              Apple_Free Extra                262144 @ 64       (128.0M)  Free space

Block size=512, Number of Blocks=58605120
DeviceType=0x0, DeviceId=0x0

Premier démarrage de Debian GNU/Linux

Félicitations ! Debian GNU/Linux 4.0 "etch" tourne :). Cependant, il y a encore du travail...

Clavier en console

En console, mon clavier belge est parfaitement reconnu, puisque je l'ai choisi dans debian-installer.

Clavier dans X

Dans X11, mon clavier belge fonctionne presque parfaitement. J'ai un léger petit problème avec la touche en haut à gauche du clavier, juste en-dessous de la touche "Esc" key. Dans X11, quand je presse cette touche, j'obtiens ² et ³ au lieu de @ et #. La solution est d'aller écrire Option "XkbModel" "macintosh" dans le fichier xorg.conf, comme expliqué dans hack #4, page 15, du livre Debian à 200%. Hélas, ceci ne fonctionne pas !. Voyez ci-dessous pour le fichier xorg.conf complet.

Clic droit sous X

Ouille, comment puis-je effectuer un clic droit ? Le trackpad de mon iBook n'a qu'un seul bouton !

Et oui ! Sous Mac OS X, la solution est de Ctrl-cliquer. Mais ceci ne fonctionne pas sous Debian ! La première solution est d'utiliser une souris USB qui possède des boutons gauche et droit. Mais ce n'est pas très pratique, surtout si par exemple vous utilisez votre iBook dans le métro, le train, au lit. L'autre solution est d'attribuer le clic droit et le clic du bouton du milieu à des touches du clavier. Pour ma part F10 devient le clic-milieu et F11 devient le clic-droit. Il suffit d'ajouter les lignes suivantes au fichier /etc/sysctl.conf:

# /etc/sysctl.conf
# Pierre Bauduin le 7 avril 2007
# Sur mon iBook
# J'utilise les touches F10 et F11 pour click milieu et click droit
dev/mac_hid/mouse_button_emulation = 1
# F10
dev/mac_hid/mouse_button2_keycode = 68
# F11
dev/mac_hid/mouse_button3_keycode = 87

Touches spéciales sous X11

Les touches F1 à F12 ont des fonctions particulières: contrôler la luminosité, le volume sonore, et F12 éjecte le CDROM. Comment peut-on les faire fonctionner sous Debian ? Facile:
[root@ibook] /root>apt-get install pbbuttonsd 

Gestion de la puissance

Sur un iBook, Mac OS X gère la puissance très efficacement. Il peut changer la vitesse du processeur (passer à 400 MHz au lieu de 800 MHz), diminuer la luminosité de l'écran LCD, et mettre l'iBook en veille après un certain temps d'inactivité. Est-il possible de faire la même chose sous Debian GNU/Linux ? Bien entendu :) ! Et cela fonctionne très bien: quand vous rabattez le clapet, l'iBook part en veille. Quand vous le rouvrez plusieurs heures plus tard, il reviendra exactement dans l'état où vous l'avez laissé. Pour tout ceci il suffit de taper:
[root@ibook] /root>apt-get install powernowd powerprefs

Aimez-vous Exposé ?

Une de mes fonctionnalités préférées de Mac OS X est exposé qui est très utile lorsque vous avez une dizaine de fenêtres ouvertes. Ce serait bien d'avoir la même chose pour Debian GNU/Linux. Eh bien ca existe, enfin, plus ou moins ! C'est un composant de KDE appelé komposé. Il vous affichera des miniatures de vos fenêtres. Hélas, pas d'effet de zoom comme avec le vrai Exposé. Pour l'installer il suffit de taper:
[root@ibook] /root>apt-get install kompose
...il suffit ensuite de configurer les touches. J'ai choisi F9 pour un komposé du bureau en cours et F10 pour un komposé de tous les bureaux.

Pourquoi ma partition de données est-elle formatée en hfsplus ?

J'ai besoin d'une partition pour mes données. Et je veux pouvoir lire et écrire sur cette partition à partir de Mac OS X et à partir de Debian GNU/Linux. Et, cela peut être surprenant, mais il n'est pas si facile de trouver un système de fichier qui permette de faire cela ! J'avais les possibilités suivantes:

Ma première idée était d'utiliser fat32 pour ma partition de données. J'ai pu choisir le filesystem de la partition dans le (cfdisk) de Debian GNU/Linux, la formater à partir de Debian GNU/Linux (mkfs.vfat), et la monter dans Debian GNU/Linux. Hélas, la partition fat32 n'est jamais apparue sur le bureau dans Mac OS X ! J'ai également tenté de la formater à partir de Mac OS X (newfs_msdos), et même après cela, j'ai pu la monter sous Debian GNU/Linux, mais jamais sous Mac OS X ! C'est à se gratter la tête ! Car par exemple quand je branche un disque externe FireWire formaté en fat32, il apparaît bien sur le bureau de Mac OS X !

Après cet échec, j'ai effectué un autre choix: hfsplus. J'ai formaté la partition de données en hfsplus sous MacOSX. Ensuite j'ai ajouté une ligne au /etc/fstab de Debian GNU/Linux (dernière ligne):

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/hda7       /               ext3    defaults,errors=remount-ro 0       1
/dev/hda8       /home           ext3    defaults        0       2
/dev/hda4       /var            ext3    defaults        0       2
/dev/hda2       none            swap    sw              0       0
/dev/hdb        /media/cdrom0   udf,iso9660 user,noauto         0       0
/dev/hda3       /mnt/macosx     hfsplus         defaults,ro     0       0
/dev/hda5       /mnt/data       hfsplus         defaults,uid=501,gid=80         0       0
Avec cette configuration, le système de fichiers /mnt/data sera toujours monté en lecture seule sous Debian GNU/Linux. Au montage, le kernel dira toujours:
hfs: write access to a jounaled filesystem is not supported, use the force option at your own risk, mounting read-only.
Forcer l'accès en écriture n'est PAS une bonne idée ! Ne le faites pas ! Il y a une autre solution: Désactiver la journalisation du système de fichier hfsplus sous Mac OS X.

Démarrez sous Mac OS X et tapez:

sudo /usr/sbin/diskutil disableJournal /Volumes/Data
(où /Volumes/Data est le nom de volume de votre système de fichier hfsplus) Pour plus de renseignements sur la désactivation de la journalisation d'un système de fichier hfsplus, vous pouvez consulter cet article de apple.com

Après ce changement sous Mac OS X, le kernel de Debian GNU/Linux montera automatiquement la partition hfsplus en lecture-écriture.

ATTENTION: Ne désactivez jamais la journalisation sur la partition système de Mac OS X ! Vous ne pourrez plus booter démarrer Mac OS X ! Je répète: Désactiver la journalisation hfsplus sur la partition qui contient votre dossier système de Mac OS X rendra votre système non-bootable ! Un homme averti en vaut deux :)

Résultat des couses: Finalement, la meilleure solution (pour moi) est d'utiliser une partition hfsplus où la journalisation est désactivée.

Faire fonctionner la sortie VGA de mon iBook

Il m'arrive de devoir faire des présentations. J'ai donc un adaptateur Mini-VGA vers VGA, et je branche mon iBook sur le rétroprojecteur. Sous Mac OS X, j'ai bien du signal sur le rétroprojecteur.
Mais sous Debian GNU/Linux, cela ne fonctionne pasJe ne reçois rien du tout sur le rétroporjecteur !
Maintenant cela fonctionne ! Voyez ci-dessous le fichier xorg.conf détaillé.

Réseau

Mon iBook G3 a trois interfaces réseau: Ethernet intégré, FireWire, et AirPort (si vous l'avez installé).
Les trois interfaces fonctionnent directement sous Debian GNU/Linux ! Il n'y a rien à faire ! Pour être précis, je dirai simplement que l'Ethernet intégré utilise le module sungem AirPort utilise les modules airport, orinoco, hermes et le FireWire utilise les modules ieee1394, eth1394.
Je préfère avoir Ethernet comme eth0 et AirPort comme wlan0. Voici comment arriver à cela grace au fichier /etc/udev/rules.d/z25_persistent-net.rules:
# This file was automatically generated by the /lib/udev/write_net_rules
# program, probably run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# MAC addresses must be written in lowercase.

# Mis en ordre par Pierre Bauduin le 7 avril 2007

# PCI device 0x106b:0x0024 (gem)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:0a:95:c0:ff:ee", NAME="eth0"

# Firewire device 000a95fffea2e8d4 (ohci1394)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:0a:95:ff:fe:c0:ff:ee", NAME="eth1"

# PCI device 0x106b:0x0025 (airport)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:30:65:c0:ff:ee", NAME="wlan0"

Fichier xorg.conf complet

     1	# /etc/X11/xorg.conf (xorg X Window System server configuration file)
     2	#
     3	# Dernière modification: Pierre Bauduin, le 5 juin 2007 à 14h14
     4	#
     5	# This file was generated by dexconf, the Debian X Configuration tool, using
     6	# values from the debconf database.
     7	#
     8	# Edit this file with caution, and see the /etc/X11/xorg.conf manual page.
     9	# (Type "man /etc/X11/xorg.conf" at the shell prompt.)
    10	#
    11	# This file is automatically updated on xserver-xorg package upgrades *only*
    12	# if it has not been modified since the last upgrade of the xserver-xorg
    13	# package.
    14	#
    15	# If you have edited this file but would like it to be automatically updated
    16	# again, run the following command:
    17	#   sudo dpkg-reconfigure -phigh xserver-xorg
       
    18	Section "Files"
    19		FontPath	"/usr/share/fonts/X11/misc"
    20		FontPath	"/usr/X11R6/lib/X11/fonts/misc"
    21		FontPath	"/usr/share/fonts/X11/cyrillic"
    22		FontPath	"/usr/X11R6/lib/X11/fonts/cyrillic"
    23		FontPath	"/usr/share/fonts/X11/100dpi/:unscaled"
    24		FontPath	"/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
    25		FontPath	"/usr/share/fonts/X11/75dpi/:unscaled"
    26		FontPath	"/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
    27		FontPath	"/usr/share/fonts/X11/Type1"
    28		FontPath	"/usr/X11R6/lib/X11/fonts/Type1"
    29		FontPath	"/usr/share/fonts/X11/100dpi"
    30		FontPath	"/usr/X11R6/lib/X11/fonts/100dpi"
    31		FontPath	"/usr/share/fonts/X11/75dpi"
    32		FontPath	"/usr/X11R6/lib/X11/fonts/75dpi"
    33		# path to defoma fonts
    34		FontPath	"/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
    35	EndSection
       
    36	Section "Module"
    37		Load	"i2c"
    38		Load	"bitmap"
    39		Load	"ddc"
    40		Load	"dri"
    41		Load	"extmod"
    42		Load	"freetype"
    43		Load	"glx"
    44		Load	"int10"
    45		Load	"vbe"
    46	EndSection
       
    47	# Repris du xorg.conf de Frédéric Aupépin
    48	# Le 3 juin 2007
    49	Section "InputDevice"
    50		Identifier	"Generic Keyboard"
    51		Driver		"kbd"
    52		Option		"CoreKeyboard"
    53		Option		"XkbRules"	"xorg"
    54		Option		"XkbModel"	"macintosh"
    55		Option		"XkbLayout"	"fr"
    56		Option		"XkbOptions"	"lv3:lwin_switch"
    57	EndSection
       
    58	Section "InputDevice"
    59		Identifier	"Configured Mouse"
    60		Driver		"mouse"
    61		Option		"CorePointer"
    62		Option		"Device"		"/dev/input/mice"
    63		Option		"Protocol"		"ImPS/2"
    64		Option		"Emulate3Buttons"	"true"
    65	EndSection
       
    66	Section "InputDevice"
    67		Identifier	"Synaptics Touchpad"
    68		Driver		"synaptics"
    69		Option		"SendCoreEvents"	"true"
    70		Option		"Device"		"/dev/psaux"
    71		Option		"Protocol"		"auto-dev"
    72		Option		"HorizScrollDelta"	"0"
    73	EndSection
       
    74	Section "Device"
    75		Identifier	"ATI Technologies Inc Radeon Mobility M7 LW [Radeon Mobility 7500]"
    76		Driver		"ati"
    77		BusID		"PCI:0:16:0"
    78		# Options below suggested by Zhengpeng Hou <zhengpeng-hou@ubuntu.com>
    79		Option          "MergedFB" "true"
    80		Option          "backingStore"           "true"
    81		Option          "DynamicClocks"          "on"
    82		Option          "MonitorLayout" "LCD, CRT"
    83		# Désactivé par Pierre Bauduin le 5 juin 2007
    84		#Option 		"CRT2HSync" 		"30 - 83"
    85		#Option 		"CRT2VRefresh" 		"56 - 75"
    86		# Desactivé par Pierre Bauduin le 2 juin 2007
    87		#Option		"UseFBDev"		"true"
    88	EndSection
       
    89	Section "Monitor"
    90		Identifier	"iBook Color LCD"
    91		Option		"DPMS"
    92	EndSection
       
    93	# Modifié par Pierre Bauduin
    94	Section "Monitor"
    95		identifier "External Monitor"
    96		vendorname "Plug 'n' Play"
    97		modelname "Plug 'n' Play"
    98		modeline "640x480@60" 25.2 640 656 752 800 480 490 492 525 -vsync -hsync
    99		modeline "800x600@72" 50.0 800 856 976 1040 600 637 643 666 +hsync +vsync
   100		modeline "1024x768@70" 75.0 1024 1048 1184 1328 768 771 777 806 -vsync -hsync
   101		gamma 1.0
   102	        Option "VGA"
   103		#HorizSync 30-82
   104		#VertRefresh 56-75
   105	EndSection
   106	#
       
       
   107	Section "Screen"
   108		Identifier	"iBook Screen"
   109		Device		"ATI Technologies Inc Radeon Mobility M7 LW [Radeon Mobility 7500]"
   110		Monitor		"iBook Color LCD"
   111		DefaultDepth	24
   112		SubSection "Display"
   113			Depth		1
   114			Modes		"1024x768"
   115		EndSubSection
   116		SubSection "Display"
   117			Depth		4
   118			Modes		"1024x768"
   119		EndSubSection
   120		SubSection "Display"
   121			Depth		8
   122			Modes		"1024x768"
   123		EndSubSection
   124		SubSection "Display"
   125			Depth		15
   126			Modes		"1024x768"
   127		EndSubSection
   128		SubSection "Display"
   129			Depth		16
   130			Modes		"1024x768"
   131		EndSubSection
   132		SubSection "Display"
   133			Depth		24
   134			Modes		"1024x768"
   135		EndSubSection
   136	EndSection
       
   137	Section "Screen"
   138		Identifier "Default Screen"
   139		Device	"ATI Technologies Inc Radeon Mobility M7 LW [Radeon Mobility 7500]"
   140		Monitor "External Monitor"
   141		DefaultDepth 24
   142	SubSection "Display"
   143		depth 24
   144		virtual 1024 768
   145		# modes "640x480@60"
   146		# modes "800x600@72"
   147		Modes "1024x768@70"
   148		EndSubSection
   149	EndSection
   150	#
       
   151	Section "ServerLayout"
   152		Identifier	"Default Layout"
   153		Screen		"Default Screen"
   154		InputDevice	"Generic Keyboard"
   155		InputDevice	"Configured Mouse"
   156		InputDevice	"Synaptics Touchpad"
   157	EndSection
       
   158	Section "DRI"
   159		Mode	0666
   160	EndSection

Voyez aussi mes autres hacks.

Cette page a été visitée Visitor Counter by Digits fois depuis sa création le 24 mai 2007.

Dernière mise à jour: dimanche 24 juin 2007, 14:07:00 (UTC+0200)

Valid HTML 4.0 Transitional Locations of visitors to this page Powered by Debian