Installation de la Debian stable et unstable, sous linux 2.4 et 2.6, sur un ibook 2.2

David Decotigny

Revision: 1.40

Date: 2005/05/05 15:53:17
Résumé : Notes sur l'installation de GNU/linux Debian 3.0 R1 (aka Woody r1) à partir des CD sur un ibook 2.2 800MHz (acheté février 2003) avec carte video ATI Radeon 7500 (M7 LW), en dual-boot Mac OS X / debian, clavier français. Suivies de notes sur le passage en unstable, puis sur le passage au noyau linux 2.6.

Table des matières

Introduction

Voila quelques notes que j'ai prises (et que je continue de prendre) durant l'installation. Je ne prétends pas donner LA solution, 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 énervé une première fois. Alors si ça peut servir à d'autres, tant mieux.

Je précise qu'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).

Je précise également que je n'ai jamais touché à un Mac de ma vie (je découvre, c'est chouette), que je ne suis abonné à aucune mailing-list linux/mac, ni à aucun newsgroup sur le sujet, que je suis énormément pollué par debian/PC, que les subtilités du clavier et de l'ADB me dépassent, que je ne suis pas 100% au point côté magie du partitionnement pour MacOS X et l'openfirmware, etc... donc il y'a sûrement des inexactitudes, des approximations, ou des complications.

En fin de fichier, il y a une série de liens que j'ai utilisés. On trouvera mes fichiers de config dans ce répertoire (linux et macosx) : http://david.decotigny.free.fr/libre/ibook2-debian/.
Sauf mention explicite, la suite de ce document se rapporte à la debian woody (3.0) sur un noyau linux 2.4. Toutes les indications sur le passsage en unstable (principalement en fin de document) supposent qu'une installation de la woody a été préalablement réalisée. Et, de même, les indications sur le passage au noyau linux 2.6 (principalement en fin de document) supposent qu'on a effectué le passage en unstable.
Je reste bien évidemment ouvert a toutes les remarques, surtout constructives : mail david point decotigny at free point fr.

Nouveautés

28 Février 2004 :
Passage au noyau 2.6 (cf section 20), bug clavier avec les certains XFree 4.3 de la unstable (semaine du 20 Février 2004, cf section 7.4), bidouille qui marche pour activation vers le VGA externe sans booter sous OS/X avant.
20 Mai 2003 :
Passage en unstable (cf section 19).
1er Mai 2003 :
Modem ADSL USB de Free (Sagem Fast 800), Modem RTC interne, souris USB, memory stick USB, anti-aliasing sous X, fonctionnement à mi fréquence pour économiser la batterie.
Février 2003 :
Console, clavier, X, CD, Son, souris, ...

Qu'est-ce qui (ne) marche (pas) ?

Au final, voila l'état de la chose :

1  Prérequis

2  Partitionnement

Il faut réinstaller OS X fourni par défaut, puisqu'un repartitionnement du disque est évidemment nécessaire. Donc ne pas trop perdre de temps à configurer OS X, ni trop bosser dessus avant d'installer la debian, ça évite d'avoir à faire des sauvegardes.

2.1  Informations préliminaires

Il y a 3 choses a noter, dont certaines peuvent surprendre les habitués du monde PC-Intel : Une fois tout ceci etabli, les phases de partitionnement qui suivent ne devraient pas poser de probleme. Le but de ces 2 manips est de créer une partoche pour MacOS X (éventuellement d'autres pour MacOS 9 et Darwin), et de laisser de la place pour linux, sous la forme d'une partition libre, ou d'une partition bidon. Cet espace sera effacé plus tard lors de l'installation de Linux qui l'utilisera pour créer ses partitions de swap, la racine, /usr...

Il est conseillé (mais pas nécessaire) de mettre l'espace libre pour linux avant les partitions Mac (avec l'utilitaire MacOS décrit ci-dessous), car linux installe un outil pour le multiboot (yaboot, équivalent a Lilo sur PC) dans une partoche bootable spéciale, dite ``bootstrap'', qui sera créée dans la partoche laissée à linux : pour éviter d'avoir à modifier l'ordre logique des partoches plus tard, le mieux est de prévoir le coup le plus tôt possible, c'est-a-dire qu'il vaut mieux que cet espace soit avant les partoches MacOS, afin que le bootstrap yaboot soit avant (ordre logique) celles-ci, pour etre booté en priorité (cf ci-dessus). Si on ne fait pas ça, vu qu'il y'a moyen de changer l'ordre logique des partoches avec l'outil de partitionnement sous linux, ce n'est pas grave (cf la suite).

Enfin, Linux n'est pas top au point sur les partoches HFS+ (ie HFS extended), et Mac ne sait pas lire les partitions linux (ext2/3). Donc pour partager des données entre Linux et Mac, il faut :

2.2  Repartitionnement côté MacOS X

Marche à suivre : Ensuite, on continue l'installation de MacOS X, ce qui ne devrait pas poser de problème.

2.3  Booter linux

2.4  Partitionnement côté Linux

L'utilitaire mac-fdisk (mode texte) est lancé automatiquement par debian. Il ressemble beaucoup au fdisk du monde PC : commande '?' pour avoir la liste des commandes possibles, commande 'p' pour afficher la liste des partitions, 'w' pour enregistrer les modifications sur le disque (à n'utiliser qu'à la toute fin du partitionnement), 'q' pour quitter l'utilitaire.

Attention, avec le clavier français chargé a ce niveau, mac-fdisk est tres sensible aux fausses manips (genre taper 2 lettres là où il en attend une, taper une lettre là où il attend un chiffre, toucher aux signes spéciaux genre @, etc...). À ce niveau, si on fait une fausse manip et que le mac-fdisk se bloque, on peut switcher vers la console d'urgence avec la touche commande (aka celle avec une pomme) jusqu'au terminal où on nous dit ``press enter to activate this terminal'', ce qu'on s'empresse de faire pour jouer avec 'ps' et 'kill'. Pour revenir au terminal initial, on appuie sur commande (la liste des terminaux est circulaire). On peut aussi appuyer sur option-fn-F2 (resp. option-fn-F1) pour recupérer directement le terminal d'urgence (resp. terminal initial) [la touche option est la touche marquee Alt].

Dans l'utilitaire mac-fdisk, marche à suivre : Chez moi le swap fait 500M, la racine fait 250M (s'appelle "root"), /var aussi (s'appelle "var"), /usr fait 3G (s'appelle "usr"), /tmp fait 500M (s'appelle "tmp"), /home (contient /usr/local aussi) fait 10G (s'appelle "home"). La partoche d'échange MacOS/Linux fait 800M, auquel cas fdisk donne :
/dev/hda
        #                    type name                 length   base     ( size )  system
dump: name /dev/hda len 8 
/dev/hda1     Apple_partition_map Apple                    63 @ 1        ( 31.5k)  Partition map
/dev/hda2          Apple_Driver43 Macintosh                56 @ 64       ( 28.0k)  Driver 4.3
/dev/hda3          Apple_Driver43 Macintosh                56 @ 120      ( 28.0k)  Driver 4.3
/dev/hda4        Apple_Driver_ATA Macintosh                56 @ 176      ( 28.0k)  Unknown
/dev/hda5        Apple_Driver_ATA Macintosh                56 @ 232      ( 28.0k)  Unknown
/dev/hda6          Apple_FWDriver Macintosh               512 @ 288      (256.0k)  Unknown
/dev/hda7      Apple_Driver_IOKit Macintosh               512 @ 800      (256.0k)  Unknown
/dev/hda8           Apple_Patches Patch Partition         512 @ 1312     (256.0k)  Unknown
/dev/hda9         Apple_Bootstrap bootstrap              1600 @ 1824     (800.0k)  NewWorld bootblock
/dev/hda10        Apple_UNIX_SVR2 swap                1024000 @ 3424     (500.0M)  Linux swap
/dev/hda11        Apple_UNIX_SVR2 root                 512000 @ 1027424  (250.0M)  Linux native
/dev/hda12        Apple_UNIX_SVR2 usr                 6291456 @ 1539424  (  3.0G)  Linux native
/dev/hda13        Apple_UNIX_SVR2 var                  512000 @ 7830880  (250.0M)  Linux native
/dev/hda14        Apple_UNIX_SVR2 tmp                  512000 @ 8342880  (250.0M)  Linux native
/dev/hda15        Apple_UNIX_SVR2 home               22528000 @ 8854880  ( 10.7G)  Linux native
/dev/hda16                  MSDOS Echange             1638992 @ 31382880 (800.3M)  Unknown
/dev/hda17             Apple_Boot MOSX_OF3_Booter       16384 @ 33021872 (  8.0M)  Unknown
/dev/hda18           Apple_Loader SecondaryLoader        1024 @ 33038256 (512.0k)  Unknown
/dev/hda19              Apple_HFS Mac OS X           25565832 @ 33039280 ( 12.2G)  HFS
/dev/hda20             Apple_Free                           8 @ 58605112 (  4.0k)  Free space

Block size=512, Number of Blocks=58605120
DeviceType=0x0, DeviceId=0x0
Drivers-
1: @ 64 for 23, type=0x1
2: @ 120 for 36, type=0xffff
3: @ 176 for 21, type=0x701
4: @ 232 for 34, type=0xf8ff

Pour fixer les idées, df donne :
Sys. de fich.        1K-blocs       Occupé Disponible Capacité Monté sur
/dev/hda11              247919    206872     28247  88% /
tmpfs                   192804         0    192804   0% /dev/shm
/dev/hda12             3096336   2676320    262732  92% /usr
/dev/hda13              247919    181030     54089  77% /var
/dev/hda14              247919      4319    230800   2% /tmp
/dev/hda15            11087104   8502740   2021164  81% /home
/dev/hda16              819264     46608    772656   6% /mnt/echange
none                     10240       644      9596   7% /dev

3  Installation du reste de la debian

Prévoir un trombone pour éjecter les CD à la main (petit trou dans le lecteur de CD), car après le 1er reboot la commande eject n'existe plus.

Pas de difference notable avec les installations debian PC. Ne pas oublier d'initialiser chaque partition (ext3 recommandé sur portable) avant de les monter, sinon mount explose et le reste aussi (mais ce n'est pas dramatique, il suffit de rebooter et reprendre l'installation à cet endroit). Le clavier français n'est pas terrible (il manque des touches, genre ``#'' et ``|'', ce qui n'est pas bien pratique quand on veut traficoter des choses dans le terminal d'urgence).

Perso, j'ai installé la base en me limitant a tasksel, et je n'ai pas lesiné (vu la taille de /usr) : installé dialup, laptop, dev C/C++, dev Tcl/Tk (pour faire flan avec le make xconfig du noyau), TeX/LATEX, French env, X, et desktops gnome/kde. Puis j'ai supprimé les isdn-utils, leafnode, xtel, irda-utils, wvdial, netenv, pcmcia qui ne servent à rien.

X ne fonctionnera pas tout de suite, donc pas la peine de se fatiguer sur sa configuration, mais il vaut mieux l'installer quand même, même si on le remplace par une autre version plus tard. J'ai demandé à avoir gdm comme session manager.

Une fois l'installation réalisée, ne pas oublier de rajouter l'entrée macosx dans /etc/yaboot.conf, de vérifier celle pour linux, de rajouter enablecdboot pour plus de confort (cf mon /etc/yaboot.conf), et de taper ybin pour mettre à jour la partition de bootstrap. Éventuellement rebooter pour tester tout ça. Après reboot, gdm/X essaieront de se lancer, planteront 1 fois, 2 fois, puis la debian s'en apercevra et demandera si on veut desactiver gdm, répondre oui pour continuer à configurer la suite en mode console.

Si on a besoin de caracteres exotiques (genre , |, #, @) pour les opérations qui suivent, accéder à l'ibook depuis une autre machine (ssh, telnet, ...), c'est plus confortable que de se casser la tete avec le clavier tout de suite. Il faut bien sûr demander à avoir configuré la carte reseau ; perso, j'ai choisi de faire configurer par dhcp lors de l'install.

4  Noyau

4.1  Linux 2.4

Au moins pour que la mise en veille se passe correctement et pour faire marcher X, on a besoin de compiler son noyau. J'ai récuperé le noyau de Benjamin Herrenschmidt (http://www.linuxppc.org/) par rsync. Attention, pour que l'ibook se mette en veille et (surtout) se réveille quand on baisse/lève l'écran (avec pmud, cf section 9 plus loin), il faut au moins la version 2.4.20-ben5 (le rsync du 9 Février 2003 était Ok).

J'ai repris le .config hispalinux (http://www.hispalinux.es/~data/ibook/configs/config-2.4.20-rc1-ben0) tel quel avec juste 2 modifs optionnelles : J'ai mis pas mal de choses en modules là-dedans (mais pas le framebuffer, pour avoir le pingouin au reboot ;).

Une fois le noyau compilé (make dep clean vmlinux modules modules_install, ou ce qu'il faut à la sauce make-kpkg), copier vmlinux à l'emplacement /boot/vmlinux-2.4.20-ben5, et System.map dans /boot/System.map-2.4.20-ben5. Modifier /etc/yaboot.conf pour ajouter ce nouveau noyau, en gardant l'ancien. Et lancer ybin pour mettre à jour la partition bootstrap. À partir de maintenant on peut rebooter. Si besoin, on peut rajouter append="video=ofonly" dans /etc/yaboot.conf (je ne l'ai pas mis) avant de faire ybin.

Si on a compilé pas mal de choses en modules, pour avoir reseau/son/modem/XFree... voir la suite.

4.2  Linux 2.6

Voir la section 20.

5  Ethernet

Ça marche bien de base. Si on l'a compilé en module, il faut modifier /etc/motutils/aliases (cf mes fichiers de config) :
alias eth0 sungem
Puis faire update-modules.

Pour configurer le reseau, on peut reprendre mon /etc/network/interfaces, et pour s'en servir il faudra alors faire :
ifup eth0   # Activation
ifdown eth0 # Desactivation

6  Serveur X

6.1  Version de base (framebuffer)

La version debian de base fonctionne bien avec le fichier de config hispalinux, mais seulement en utilisant le pilote fbdev (section Driver du fichier de config). Ça ne suffit pas pour utiliser la carte video un peu plus efficacement (par exemple pour bénéficier de l'accélération 3d).

6.2  Version avec DRI

Pour une version plus complète (accélération 2d et 3d), utiliser la version 4.2.99 de XFree, disponible en paquet Debian sur http://people.debian.org/~daenzer/dri-trunk/ (apt-cdrom add si on a gravé les paquets sur CD, ou modif /etc/apt/sources.list : ajouter par exemple ``deb http://people.debian.org/daenzer/dri-trunk/'') :
apt-get update
apt-get install xlibmesa3-dri-trunk xserver-xfree86-dri-trunk
Linux 2.4 seulement (dri du 2.6 de base est Ok, cf section 20) : compiler le module DRM pour la Radeon :
apt-get install drm-trunk-module-src
cd n/importe/ou ; tar xzvf /usr/src/drm-trunk/le_fichier.tar.gz
cd modules/drm-trunk
make -f Makefile.linux TREE=chemin/vers/sources/linux/include radeon.o
mkdir /lib/modules/[version-noyau]/kernel/drivers/char/drm/
cp radeon.o /lib/modules/[version-noyau]/kernel/drivers/char/drm/
(chez moi, version-noyau, c'est 2.4.20-ben5)
Mettre a jour /etc/modutils/arch/powerpc.pmac en rajoutant :
pre-install radeon modprobe agpgart
Avant de faire update-modules.
Récupérer le fichier de config XF86 adapté (cf mes fichiers de config). Personnellement, je suis en 16bpp parce que sinon la 3D est très poussive (en 24bpp par exemple).

Éviter de lancer X à ce niveau. Car si on lance le nouveau X sur le nouveau noyau (/etc/init.d/gdm restart si on utilise gdm), d'abord il risque de râler parce qu'il ne trouve pas le clavier demandé, et si on a du bol et que la fenêtre de login gdm apparaît alors on est content. Mais... Le clavier est foireux. C'est là que la connexion depuis une autre machine est intéressante, parce qu'avec un beau X sous le nez inutilisable à cause du clavier, on ne peut plus revenir en console pour modifier le reste (ie le clavier). Bref, si on ne peut pas se connecter a l'ibook depuis une autre machine, éviter de lancer le serveur X maintenant.

6.3  Sortie vers écran extérieur

C'est de la bidouille mais ça marche pour une sortie vers un écran type VGA : Je n'ai pas réussi à activer convenablement la sortie extérieure sur S-Video, ni en PAL ni en NTSC : le mode est tout à fait incorrect. Peut-être ça marche mieux avec XFree 4.3.

6.4  Anti-aliasing

Étant donnée la faible résolution de l'écran (1024x768), il vaut mieux utiliser l'anti-crénelage sous X, sinon les textes (en particulier sous mozilla) sont difficiles et désagréables à lire.

Installer le package libgdkxft0 puis utiliser la session gnome-AA sous gdm si vous l'utilisez, ou sinon demander à charger LD_PRELOAD=/usr/lib/libgdkxft.so avant le reste du Xsession.

La config gdkxft de base est peu efficace, demander à être un peu plus violent : un fichier de configuration $HOME/.gdkxft comme celui qui suit fait très bien l'affaire :
  !-*-fixed-*

7  Clavier

Un conseil, avoir un autre ordinateur connecté à l'ibook pour faire les essais, c'est toujours désagreable de se retrouver avec un clavier inutilisable et de devoir faire un reboot hard (bouton on/off pendant 5s). J'ai trouvé la config clavier particulièrement pénible, et visiblement la config clavier console influence la config clavier pour X...

7.1  Configuration du noyau

Première précaution à prendre, s'assurer que le driver clavier génère les scancodes (ou les keycodes, j'y ai jamais rien compris) linux, plutot que ceux dits ``ADB'' : si il y'a un ``fichier'' /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes, alors il faut s'assurer qu'il contient "1". Sinon faire :
echo 1 > /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes
Et pour que ce soit remis à 1 à chaque reboot, rajouter :
dev/mac_hid/keyboard_sends_linux_keycodes=1
Dans /etc/sysctl.conf. Attention, dans ce cas, il faudra que les scripts d'initialisation rechargent les scancodes après que ce fichier ait été traité (par /etc/init.d/procfs.sh) ; pour ça, rajouter le script /etc/init.d/rekeymap.sh suivant :
#!/bin/sh
/bin/loadkeys /etc/console/boottime.kmap.gz
Puis faire :
chmod 755 /etc/init.d/rekeymap.sh
update-rc.d start rekeymap.sh 60 S .
Autre solution (alternative à tout ce qui precede), compiler le noyau sans CONFIG_MAC_ADBKEYCODES (menu ``Macintosh device drivers'').

7.2  Config en console et sous X

Faire la manip suivante (inspirée de celle décrite par David Mentré dans http://www.linux-france.org/macintosh/clavier_rpm3.html) :
  1. récupérer ftp://ftp.linux-france.org/pub/macintosh/kbd-mac-fr.tar.gz
  2. clavier sous X
    1. recopier fr_new dans /usr/X11R6/lib/X11/xkb/symbols/macintosh/
    2. dans /etc/X11/XF86Config-4, les options pour la config du clavier sont :
      Option "XkbRules"   "xfree86"
      Option "XkbModel"   "macintosh"
      Option "XkbLayout"  "fr_new"
      Option "XkbOptions" "ctrl:nocaps"
      
      IMPORTANT : veiller a ce que XkbDisable ne soit pas activée !
    3. Le nouveau layout sera pris au prochain redémarrage ou après avoir tué le serveur X (Ctrl-Option-Del ou /etc/init.d/gdm restart).
  3. clavier console
    1. recopier mac-fr-ext_new.kmap.gz dans /usr/share/keymaps/mac/
    2. faire install-keymap /usr/share/keymaps/mac/mac-fr-ext_new.kmap.gz
    3. le nouveau clavier est utilisé par la console.
Le clavier devrait se comporter convenablement. En console : Sous X : En console et sous X : À partir de maintenant on devrait pouvoir relancer X sans surprise, et constater avec émerveillement que glxgears fait du 1200 fps en 16bpp (beaucoup moins en 24bpp), et que tuxracer marche a merveille (environ 45fps en 16bpp, un peu plus de 10 en 24bpp) !

7.3  Touches spéciales Apple pour le son et l'eject du CD

Par défaut, seules les touches spéciales de réglage de la luminosité sont accessibles (F1/F2), pas les touches de volume ni celle d'eject du CD. Il y'a plusieurs manières de s'en sortir pour en profiter. Pour ma part, je me contente de la première méthode ci-dessous (ikeyd), qui marche très bien.

7.3.1  Debian stable : ikeyd

C'est un petit démon dispo par défaut avec la debian, et qui scrute /dev/input/event à la recherche des touches frappées : ça court-circuite donc à la fois X et la console, et ça permet de gérer le son directement (via /dev/mixer), et le cd aussi (/dev/cdrom avec un umount préalable si besoin). Pour l'installer, un simple :
apt-get install ikeyd
suffit. C'est plus réactif que pbbuttonsd (voir section 7.3.4), et ça ne fait juste que gérer les touches ``spéciales'' contrairement à pbbuttonsd qui fait plein d'autres choses très bien supportées par ailleurs, comme remplacer pmud, gérer le rétro-éclairage...

7.3.2  Debian testing/unstable : pbbuttonsd

En testing/unstable, préférer utiliser pbbuttonsd qui s'occupe également de remplacer avantageusement pmud pour la gestion de la mise en veille. Voir la section 19.1.1.

7.3.3  Raccourcis clavier sous X

On peut aussi définir un raccourci du style Ctrl-fn-F3/F4/F5/F12 dans son gestionnaire de fenêtres (sawfish) pour faire quasiment la même chose, au prix d'une combinaison de touches un peu plus compliquée : il suffit de définir un raccourci clavier de type Run shell command dans sawfish pour ces combinaisons, avec respecitivement /usr/local/bin/beep 0 (voir script /usr/local/bin/beep que je fournis), /usr/local/bin/beep -10, /usr/local/bin/beep +10 et eject comme commandes associées.

7.3.4  pbuttonsd

Il y a une troisième solution, un peu usine à gaz celle-ci, car elle permet en plus de remplacer pmud (section 9) : le logiciel pbbuttonsd (http://www.cymes.de/members/joker/), à récupérer, compiler et installer à la main.

Le fichier de config pbbuttonsd.conf installé par défaut redéfinit en profondeur le mapping des touches de fonction pour qu'on n'ait pas à taper fn quand on veut accéder aux touches de fonction, et ce mapping reste sous MacOS X : en conséquence, avec ce fichier de configuration de base, il faut maintenant taper fn quand on veut accéder aux fonctionnalités luminosité/volume/eject, même sous MacOS X. Pour revenir au comportement ``normal'' (ie fn-F1..F12 pour accéder aux touches de fonction, F1/F2/F3/F4/F5/F12 direct pour accéder aux fonctionnalités de luminosité/volume/eject), modifier l'option kbdmode du pbbuttonsd.conf pour préciser fkeyslast. Je n'ai pas résussi à faire fonctionner la touche F12 (eject du CD), même en repositionnant correctement son scancode à 108 (au lieu de 69 par défaut). Et au final je n'utilise pas pbbuttonsd parce que je trouve que son temps de réaction à l'appui des touches de volume est plus lent qu'en utilisant ikeyd ou en définissant un raccourci à la mano dans le window manager (cf ci-dessus).

7.4  Bug X debian unstable semaine du 20/02/2004

Voir le bug debian #234113 : X cherche la map fr_new dans un sous-répertoire pc au lieu de tenir compte du fichier XF86Config-4 qui indique d'utiliser un sous-répertoire macintosh. Bref, une fois X lancé, la touche alt n'est plus prise en compte, plus moyen de taper un |, ~, ..., et évidemment plus moyen de revenir en console... En attendant que ce soir réparé, une fois dans une xterm, faire setxkbmap fr_new et voilà.

8  Souris

8.1  Configuration X/console

Par défaut le trackpad marche très bien. J'ai juste rajouté les liens suivants :
cd /dev/input
ln -s mice mouse
ln -s mice psmouse
en mettant le /etc/X11/XF86Config-4 à jour.

8.2  gpm

C'est pour faire du copier/coller avec la souris en console. Faire un petit :
apt-get install gpm
Ça marche nickel en console et sans perturber X, et sans avoir à se poser des questions avec le gpm_data.

8.3  Émulation 3 boutons

Pour l'émulation 3 boutons, j'ai repris la manip de David Mentré (ou presque), c'est-à-dire que j'ai rajouté :
dev/mac_hid/mouse_button_emulation=1
dev/mac_hid/mouse_button2_keycode=68
dev/mac_hid/mouse_button3_keycode=87
dans /etc/sysctl.conf (puis faire /etc/init.d/procps.sh). Ça veut dire que le bouton du milieu correspond à F10, et le bouton de droite à F11. Pour choisir d'autres touches pour les boutons supplémentaires, utiliser showkey en console.

8.4  Marre du mode ``cliquer quand on rabaisse le doigt rapidement sur le trackpad''

Déjà qu'il n'y a qu'un bouton de souris sur un Mac, si c'est pour ne pas l'utiliser... Je n'aime pas que la bécane décrète pour moi que j'ai cliqué quand je n'ai fait que rabaisser un peu brutalement mon doigt sur le trackpad.

Pour modifier ce comportement (passage en mode dit notap), utiliser par exemple /sbin/trackpad du package powerpc-utils installé par debian par défaut. J'ai rajouté le script d'initialisation /etc/init.d/trackpad pour que le trackpad soit configuré en mode notap à chaque reboot :
#!/bin/sh -e

case "$1" in
 start|restart)
  /sbin/trackpad notap
  ;;
 stop|reload|force-reload)
  ;;
esac
L'installer avec update-rc.d trackpad start S 60 .

Sinon, si on utilise pbbuttonsd (voir section 7.3.4), il suffit de modifier l'option tpmode du pbbuttonsd.conf pour y mettre notap.

8.5  Souris externe USB

Suffit de brancher, et hop, ça marche !

9  Gestion de l'énergie

C'est pour que le coeur (la led blanche en façade) de l'ibook batte quand on rabat l'ecran, et (surtout) qu'elle s'éteigne et que tout revienne en ordre quand on le relève... Pour faire cette prouesse technologique, le service de gestion de l'énergie adapté s'appelle PMU sur l'ibook, et non pas APM qui est installé par debian par défaut.

9.1  Noyau et applications de suivi

Il faut un noyau récent (³ 2.4.20-ben5), et pmud ou pbbuttonsd (cf section 9.2 ci-dessous) pour que ça marche au poil. Si ce n'est pas le cas, il faut récupérer une version récente, et se le compiler aux petits oignons.

Important : pour que ça marche vraiment, c'est-à-dire pour que l'ibook se réveille correctement quand on relève l'écran, il faut que le périphérique caractéres /dev/apm_bios existe (il permet d'indiquer au pilote X de la Radeon que le portable s'apprête à s'endormir quand on rabaisse l'écran, histoire qu'il retrouve ses petits au réveil). Il est créé par tasksel par défaut quand on choisit l'ensemble d'applications laptop lors de l'installation de la debian. Mais, s'il n'existe pas, faire :
mknod /dev/apm\_bios c 10 134
chmod 770 /dev/apm\_bios
Après ces vérifications, quand on rabat l'écran, le portable se met en sommeil et la led blanche s'allume. Et quand on relève l'écran, la bécane se rallume, toute fraîche (que ce soit sous X ou en console) ! Si on a oublié de créer /dev/apm_bios, l'ibook ne se réveille tout simplement pas quand on relève l'écran...

Sous gnome, utiliser l'applet battery_applet qui marche très bien pour savoir où en est la batterie (et en plus ça signale quand elle passe dessous les 5%). Il y a aussi une applet spéciale pmu, mais je la trouve trop grosse et pas jolie.

9.2  Outils de gestion de l'énergie

9.2.1  pmud

Première solution, installer pmud fourni en standard avec la debian :
apt-get install pmud pmud-utils
en demandant de virer apmd installé par défaut par tasksel.

J'ai juste modifié un peu la config pour que l'ibook ne se mette pas en veille quand on rabat l'écran alors qu'il est sur le secteur, mais ce n'est pas fondamentalement nécessaire : ça se passe dans /etc/default/power :
PMUD_FLAGS="-a -K"
Puis faire ``/etc/init.d/pmud stop ; /etc/init.d/pmud start''.

9.2.2  pbbuttonsd

Deuxième solution : récupérer, compiler et installer pbbuttonsd (voir section 7.3.4), et lui demander de remplacer pmud (option de configuration replace_pmud). Personnellement, je préfère n'utiliser que pmud de base.

9.3  Améliorer l'autonomie

9.3.1  Fréquence du processeur

Pour que pmud fasse tourner le processeur 2 fois moins vite quand on est en mode nomade (ie sur batterie), il faut compiler son noyau avec les options CONFIG_CPU_FREQ et CONFIG_CPU_FREQ_PMAC, et avoir un fichier /etc/power/pwrctl-local qui ressemble (merci David Mentré) à :
#!/bin/bash
logger=/usr/bin/logger

case "$1" in
minimum)
 $logger -p daemon.info -t pwrctl-local "minimum power $2"
        case "$2" in
            ac)
                echo -n "0%50%100%performance" > /proc/cpufreq
  echo 400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
                ;;
            *)
                echo -n "0%50%100%powersave" > /proc/cpufreq
  echo 400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
                ;;
        esac
;;
medium)
 $logger -p daemon.info -t pwrctl-local "medium power $2"
        case "$2" in
            ac)
                echo -n "0%50%100%performance" > /proc/cpufreq
  echo 400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
                ;;
            *)
                echo -n "0%50%100%powersave" > /proc/cpufreq
  echo 400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
                ;;
        esac
;;
maximum)
 $logger -p daemon.info -t pwrctl-local "maximum power $2"
        case "$2" in
            ac)
                echo -n "0%50%100%performance" > /proc/cpufreq
  echo 400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
                ;;
            *)
                echo -n "0%50%100%powersave" > /proc/cpufreq
  echo 400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
                ;;
        esac
 $logger -p daemon.info -t pwrctl-local "skipping pwrctl-main"
 exit 1
;;
warning)
 /usr/bin/wall "Low battery, system going down any minute now"
;;
lid-closed)
 $logger -p daemon.info -t pwrctl-local "lid-closed $2"
;;
lid-opened)
 $logger -p daemon.info -t pwrctl-local "lid-opened $2"
;;
sleep)
 $logger -p daemon.info -t pwrctl-local "sleep $2"
 # Some modules don't support sleep/resume
 /sbin/rmmod -a
 sleep 3
 /sbin/rmmod -a
 sync;sync;sync
 fblevel off
;;
wakeup)
 $logger -p daemon.info -t pwrctl-local "wakeup $2"
 /sbin/rmmod -a
        case "$2" in
            ac)
                echo -n "0%50%100%performance" > /proc/cpufreq
  echo 400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
                ;;
            *)
                echo -n "0%50%100%powersave" > /proc/cpufreq
  echo 400000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
                ;;
        esac
 fblevel on
;;
*)
 $logger -p daemon.error -t pwrctl-local "invalid arg $1 $2"
 exit 2
;;
esac

exit 0

9.3.2  Limiter les accès en écriture au disque

Pour limiter les mises à jour sur disque lors des accès en lecture, spécifier l'option noatime dans le /etc/fstab.

10  Son

Rien à signaler si le noyau a été compilé comme indiqué ci-dessus. Si on a compilé en modules, rajouter dans /etc/modutils/aliases :
alias char-major-14 soundcore
alias sound-slot-0 dmasound_pmac
alias sound-slot-1 dmasound_pmac
alias char-major-14-3 dmasound_pmac
alias /dev/dsp dmasound_pmac
alias sound-service-0-0 i2c-keywest
alias sound-service-0-3 i2c-keywest
alias sound-service-1-0 i2c-keywest
alias char-major-14-0 i2c-keywest
alias /dev/mixer i2c-keywest
Puis faire update-modules.

Pour modifier le volume, utiliser par exemple aumix. Attention, gnome par défaut utilise ESD, ce qui peut poser des problèmes si les logiciels veulent utiliser directement OSS : killall esd (et/ou intervention dans le panneau de contrôle gnome) peut résoudre le problème. Autre détail : on entend un craquement au moment où on relève l'écran quand l'ibook était en sommeil.

11  Performances disque dur

J'ai rajouté ce script /etc/init.d/hdparm :
#!/bin/sh

set -e

#In certian cases you may wish to run this script twice.  Once at S07
#and once later in the boot process. If you do this call /etc/init.d/hdparm
#again from rcS.d with a name such as S27hdparm.second.
#
#See /usr/share/doc/hdparm/README.Debian for more details.

case "$0" in
  *hdparm)
    FIRST=yes
    ;;
  *)
    FIRST=no
    ;;
esac

MYNAME="$0"

report()
{
  echo "${MYNAME}: $*"
}

report_error()
{
  echo "${MYNAME}: Error: $*" >&2
}

report_error_and_exit()
{
  report_error "$*.  Exiting."
  exit 1
}

case $1 in
  start|restart|reload|force-reload)
    ;;
  stop) 
    exit 0
    ;;
  *)
    echo "Usage: $MYNAME {stop|start|restart|reload|force-reload}" >&2
    exit 3
    ;;
esac

if [ "$FORCE_RUN" != 'yes' ]; then
  if grep -w -q "nohdparm" /proc/cmdline ; then
    report "*** Skipping setup of disc parameters. ***"
    exit 0
  fi
  
  raidstat=OK
  if [ -e /proc/mdstat ]; then
    if grep -iq resync /proc/mdstat; then
      raidstat=RESYNC
    fi
  elif [ -e /proc/rd/status ]; then
    raidstat=`cat /proc/rd/status`
  fi
  
  if ! [ "$raidstat" = 'OK' ]; then
    report_error "*** RAID status not OK.  Exiting. ***"
    exit 0
  fi
fi

echo -n "Setting parameters of disc:"

DISC=
DEFAULT=
OPTIONS=
DEF_QUIET=
OPT_QUIET=

#  set_option() adds $1 to the $OPTIONS list if in a disk stanza
#             and adds $1 to the $DEFAULT list if not in a disk stanza
#
#  the block beginning:
#        if test x${i%${i#??}} != x${1%${1#??}}; then
#  checks to see if $1 is already in the list and
#    if so removes the first instance

set_option() 
{
  if test -n "$DISC"; then
    NEW_OPT=
    for i in $OPTIONS; do
      if test x${i%${i#??}} != x${1%${1#??}}; then
        NEW_OPT="$NEW_OPT $i"
      else
        NEW_OPT=${NEW_OPT%-q}
      fi
    done
    OPTIONS="$NEW_OPT $OPT_QUIET $1"
  else
    NEW_DEF=
    for i in $DEFAULT; do
      if test x${i%${i#??}} != x${1%${1#??}}; then
        NEW_DEF="$NEW_DEF $i"
      else
        NEW_DEF=${NEW_DEF%-q}
      fi
    done
    DEFAULT="$NEW_DEF $DEF_QUIET $1"
  fi
}

eval_value() 
{
  case $1 in
    off|0) 
      set_option "$2"0
       ;;
    on|1) 
      set_option "$2"1
      ;;
    *) 
      return 1
      ;;
  esac
}

ITEMS_ECHOED=no

# Get blocks as far as the drive's write cache.
/bin/sync

# Set options for a group of disks in /etc/default/hdparm
[ -e /etc/default/hdparm ] && . /etc/default/hdparm

if [ -n "$harddisks" -a -n "$hdparm_opts" ]; then
  for drive in $harddisks; do 
    /sbin/hdparm -q -f $drive
    hdparm -q $hdparm_opts -q $drive
    if [ "$ITEMS_ECHOED" = yes ] ; then
      echo -n ", $drive"
    else
      echo -n " $drive"
      ITEMS_ECHOED=yes
    fi
  done
fi

egrep -v '^[[:space:]]*(#|$)' /etc/hdparm.conf | 
{
  while read KEY SEP VALUE; do
    if [ "$NEXT_LINE" != 'go' ]; then
      case $SEP in
        '{')
          case $KEY in
            command_line)
              NEXT_LINE=go
              unset DISC
              unset OPTIONS
              unset OPT_QUIET
              ;;
            *)
              DISC=$KEY
              OPTIONS=$DEFAULT
              OPT_QUIET=$DEF_QUIET
              WAS_RUN=0
              ;;
          esac
          ;;
        =)
          case $KEY in
            read_ahead_sect) 
              set_option -a$VALUE
              ;;
            lookahead) 
              eval_value $VALUE -A
              ;;
            bus) 
              eval_value $VALUE -b
              ;;
            apm) 
              set_option -B$VALUE
              ;;
            io32_support) 
              set_option -c$VALUE
              ;;
            dma) 
              eval_value $VALUE -d
              ;;
            defect_mana) 
              eval_value $VALUE -D
              ;;
            cd_speed) 
              set_option -E$VALUE
              ;;
            mult_sect_io) 
              set_option -m$VALUE
              ;;
            prefetch_sect) 
              set_option -P$VALUE
              ;;
            read_only) 
              eval_value $VALUE -r
              ;;
            spindown_time) 
              set_option -S$VALUE
              ;;
            interrupt_unmask) 
              eval_value $VALUE -u
              ;;
            write_cache) 
              eval_value $VALUE -W
              ;;
            transfer_mode) 
              set_option -X$VALUE
              ;;
            acoustic_management)
              set_option -M$VALUE
              ;;
            keep_settings_over_reset)
              eval_value $VALUE -k
             ;;
            keep_features_over_reset)
              eval_value $VALUE -K
             ;;
            chipset_pio_mode)
              set_option -p$VALUE
             ;;
            ROOTFS)
              ROOTFS=$VALUE
             ;; 
            *)
              report_error_and_exit "unknown option $KEY"
              ;;
          esac
          ;;
        "")
          case $KEY in
            '}')
              if [ -z "$DISC" ]; then
                if [ "$WAS_RUN" != '1' ]; then
                  report_error_and_exit "No disk enabled. Exiting"
                fi
              fi
              if [ -n "$OPTIONS" ]; then
                if [ -b "$DISC" ]; then
                  if [ -n "$ROOTFS" ]; then
                    if [ "$FIRST" = 'yes' -a "$DISC" != "$ROOTFS" ]; then
                      continue
                    fi
                    if [ "$FIRST" = 'no' -a "$DISC" = "$ROOTFS" ]; then
                      continue
                    fi
                  fi
                  # Flush the drive's internal write cache to the disk.
                  /sbin/hdparm -q -f $DISC
    
                  /sbin/hdparm $OPTIONS $DISC
                  if [ "$ITEMS_ECHOED" = yes ] ; then
                    echo -n ", $DISC"
                  else
                    echo -n " $DISC"
                    ITEMS_ECHOED=yes
                  fi
                fi
              fi       
              ;;
            quiet)
              if [ -n "$DISC" ]; then
                OPT_QUIET=-q
              else
                DEF_QUIET=-q
              fi
              ;;
            standby) 
              set_option -y
              ;;
            sleep) 
              set_option -Y
              ;;
            disable_seagate) 
              set_option -Z
              ;;
            *)
              report_error_and_exit "unknown option $KEY"
              ;;
          esac
          ;;
       *)
         report_error_and_exit "unknown separator $SEP"
         ;;
      esac
    else
      $KEY $SEP $VALUE
      NEXT_LINE=no-go
      WAS_RUN=1
    fi
  done
    
  if [ "$ITEMS_ECHOED" = yes ] ; then
    echo "."
  else
    echo " (none)."
  fi
}
Puis faire ``chmod 755 /etc/init.d/hdparm ; update-rc.d start hdparm 60 S .''.

12  CD/Graveur

Dans /dev, j'ai modifié/rajouté les liens /dev/cdrom et /dev/dvd vers /dev/scd0 puisque j'utilise ide-scsi pour m'en servir comme graveur. Puisque j'ai demandé ide-scsi en module, il a fallu modifier /etc/modutils/arch/powerpc.pmac avec :
pre-install sg modprobe ide-scsi
pre-install sr_mod modprobe ide-scsi
Puis faire update-modules.

Pour éjecter les CD, c'est avec la commande eject que ça se passe (ou cdeject, package cdtool pas installé par défaut), et on peut utiliser les touches de fonction prévues à cet effet en définissant des raccourcis, ou en espérant que pbbuttonsd fonctionne correctement (cf section 7.3.4).

Pour lire des CD audio, utiliser xmms avec le plugin audio CD reader. Pour lire des dvd : xine, ogle, ou mplayer /dev/dvd.

Le graveur marche sans problème avec le support ide-scsi (testé et approuvé).

13  Video

xine et ogle marchent (apt-get install...). mplayer et videolan compilent et marchent sans problème (pour gnome, ne pas oublier apt-get install libesd0-dev avant pour que mplayer détecte et compile le support ESD sous gnome). Par contre les perfs ne sont pas au rendez-vous : la lecture de DVD sous ces 4 logiciels est un peu saccadée. La lecture de DIVX;) par contre est tout à fait fluide avec xine.

14  Modem RTC interne

Après avoir installé un pilote récent (fin Avril 2003) du modem de Marc Boucher (http://www.mbsi.ca/cnxtlindrv/), le modem interne de l'ibook fonctionne correctement. Marche à suivre : Puis s'inspirer des configurations que free propose sur son site (http://support.free.fr/docs/linux/connexion.html) avant de faire pon ou pon paris-ppp suivant le nom que vous donnez au fichier créé dans /etc/ppp/peers/. Et voilà la connexion établie ! Pour se déconnecter, faire poff. Un petit modprobe ucfusbserial peut être nécessaire dans certains cas si pon échoue.

15  Modem ADSL de Free

Depuis fin Avril 2003, le modem ADSL USB Sagem Fast 800 que Free fournit à ses abonnés est supporté par Linux sur l'ibook.

Installer une version récente du package hotplug (par exemple : http://www.fs.tum.de/~bunk/debian/dists/woody/bunk-1/main/binary-i386/hotplug_0.0.20020826-1_all.deb). Avoir les headers du noyau sur le système (c'est le cas si vous avez compilé votre noyau : dans ce cas, assurez-vous qu'ils soient accessibles sous /usr/src/linux/include, sinon installez le package kernel-headers).

Récupérer la version 1.0.4pre5 ou plus récente du driver eagle-usb sur http://www.eagle-usb.fr.st, ne pas brancher le modem tout de suite, décompresser le driver, puis faire make install, répondre aux 2 questions (login/mot de passe). Et hop : brancher le modem, attendre 10s, faire startadsl et ça marche. Par la suite, lorsqu'on change de noyau, éviter de refaire le make install (pour éviter de répondre aux questions login/passwd dont il connaît déjà la réponse) : se contenter d'un cd driver ; make install.

Pour le fun (ce n'est pas obligatoire), j'ai juste modifié /usr/sbin/startadsl pour que le ifconfig avec l'adresse 192.168.1.30 bidon par défaut devienne plus simplement : /sbin/ifconfig $INTERFACE up.

Pour information, voici ce que donne /sbin/ifconfig
adsl0     Lien encap:Ethernet  HWaddr 00:60:4C:10:FD:B9  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2712 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2585 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:100 
          RX bytes:1151880 (1.0 MiB)  TX bytes:229038 (223.6 KiB)

ppp0      Lien encap:Protocole Point-à-Point  
          inet adr:82.64.69.69  P-t-P:192.168.254.254  Masque:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:2508 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2374 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:3 
          RX bytes:1100931 (1.0 MiB)  TX bytes:175392 (171.2 KiB)
Et voici ce que dit plog :
May  1 22:10:12 baloo pppd[21431]: pppd 2.4.1 started by root, uid 0
May  1 22:10:12 baloo pppd[21431]: Using interface ppp0
May  1 22:10:12 baloo pppd[21431]: Connect: ppp0 <--> /dev/pts/2
May  1 22:10:36 baloo pppd[21431]: kernel does not support PPP filtering
May  1 22:10:36 baloo pppd[21431]: Cannot determine ethernet address for proxy ARP
May  1 22:10:36 baloo pppd[21431]: local  IP address 82.64.69.69
May  1 22:10:36 baloo pppd[21431]: remote IP address 192.168.254.254
May  1 22:10:36 baloo pppd[21431]: primary   DNS address 213.228.0.68
May  1 22:10:36 baloo pppd[21431]: secondary DNS address 212.27.32.177
Si on veut effectivement avoir le nom adsl0 pour l'interface (plutôt que le ethXXX par défaut), rajouter : options adiusbadsl if_name=adsl0 dans /etc/modutils/adiusb par exemple (puis faire update-modules).

Si on veut se connecter automatiquement au démarrage de la machine, prévoir un script /etc/ppp/ppp_on_boot du type :
#! /bin/sh
( sleep 15 ; /sbin/ifconfig ppp0 || /usr/sbin/startadsl ) &

16  Configuration d'une partition d'échange MacOS X / Linux

Par défaut, Linux ne sait que lire (un peu) et pas (trop) écrire les systèmes de fichiers UFS et HFS, et MacOS ne sait pas (encore) lire les partitions ext2/ext3. Une solution est de passer par une partoche de type MSDOS (avec les noms longs, aka vfat sous Linux) pour les échanges de données entre MacOS et Linux.

16.1  Sous Linux

On doit avoir prévu un peu d'espace libre sur le disque, ou une partoche dédiée pour la partoche d'échange. Chez moi ca fait 800M et ca s'appelle /dev/hda16.

16.2  Sous MacOS X

17  IEEE 802.11b (Airport/Wifi/Wavelan)

Je ne l'ai pas. Suivre les directives de http://mij.oltrelinux.com/ibook/step_step/index.html sur le sujet.

18  IEEE 1394 (firewire)

Pas testé.

19  Mise à jour vers unstable

A la date du 20 Mai 2003, ca marche bien. Juste le terminal gnome qui est difficile a lire a cause de l'antialiasing sur la fonte monospace (utiliser rxvt ou xterm). Evidemment, se procurer une bonne connexion reseau (genre ADSL), puis :

19.1  Changements par rapport à la stable

19.1.1  Touches spéciales

Utiliser pbbuttonsd plutôt que ikeyd. Le changement est que, pour accéder aux touches de fonctions en tant que touches de fonctions, il ne faut plus appuyer sur fn : on appuie directement sur la touche et ça marche. En conséquence, pour passer en console depuis X11, c'est comme sur x86 : Ctrl-pomme-Fx. Et inversement : pour accéder à ces touches en tant que touches spéciales Apples (volume, CD, etc.), il faut appuyer sur fn.

19.1.2  Mise en veille, gestion de l'énergie

Utiliser pbbuttonsd (eh oui, encore lui) plutôt que pmud.

20  Passage au noyau Linux 2.6

Testé et approuvé avec un noyau 2.6.3 de base. Marche à suivre :

A  Remerciements

B  Support d'un memory stick

Ce n'est pas à proprement parler spécifique à l'ibook. Il suffit d'installer le support hotplug (j'ai récupéré la version plus récente http://www.fs.tum.de/~bunk/debian/dists/woody/bunk-1/main/binary-i386/hotplug_0.0.20020826-1_all.deb), d'avoir un noyau avec CONFIG_USB_STORAGE, et de rajouter un fichier /etc/hotplug/usb/usb-storage du type :
#!/bin/sh

case $PRODUCT in
 58f/9380/100|7b4/105/1)
  cat > $REMOVER << EOF
umount /usb-storage
EOF
  chmod 755 $REMOVER
  mount /usb-storage
 ;;
 *)
 ;;
esac

(pour l'id 58f/9380/100, soit remplacer par *, soit le récupérer en regardant /proc/bus/usb/devices). Et avoir une entrée dans /etc/fstab du type :
    /dev/sda1 /mstick vfat noauto,rw,user,sync,gid=50,umask=002

C  Pense-bête

D  Liens


Id: ibook2-debian.tex,v 1.40 2005/05/05 15:53:17 d2 Exp

Ce document a été traduit de LATEX par HEVEA.