Compiler un noyau en évitant les pépins.

La plupart des utilisateurs de LinuxPPC, sont "agacés" (pour ne pas dire autre chose:-) que les kernels postés sur le site officiel sont en retard d'une guerre sur le dernier rejeton de Mister Thorvald... et bien, compilez les vous même.....

OK, ok, ça à l'air d'un truc compliqué, et en plus il faut des tas de patchs en tous genre (du style USB, cartes graphiques,....); c'était vrai avec l'ancienne version du kernel (2.0) mais avec la version 2.2, tous les drivers nécessaires sont dans le code source de base.... d'ailleurs c'est encore plus vrai depuis la version 2.2.10 qui apporte le support de l'USB (support correct, j'entends par là....).

Tout d'abord, il faut être familiarisé avec linux et la compilation d'un kernel spécifique à LinuxPPC, ce document n'a pas pour but d'expliquer les notions de base mais est plutôt destiné à des utilisateur semi-avertis: nous allons donc essayer de vous montrer comment compiler et booter avec succès avec le code source de base (du kernel) et sans patch particulier...

  1. téléchargez, décompressez, ....., enfin tous les trucs habituels quoi...
  2. n'oubliez pas de faire le lien de /linux/include/asm-ppc vers /linux/include/asm, ça à l'air bête mais la plupart des erreurs viennent de là.
  3. make mrproper (pour purger tous les fichiers de configurations), make pmac_config, make menuconfig.
  4. Alors maintenant, c'est là que les choses sont délicates, en fait il n'y a pas de configuration type, ça change pour tous les Macs, c'est pour ça que les kernels pour PPC postés un peu partout prennent entre 2 et 3Mo, car ils incorporent tous les drivers pour tous les macs.... il faut aussi savoir que l'on ne traite là que des choses qui prêtent à confusion, c'est à dire, qu'il faut logiquement activer des choses comme le support des disques durs, le texte de bootx au démarrage et bien d'autres choses (logiques) même si on n'en parle pas. On ne traite que des choses qui peuvent paraître "illogiques" :

    Drivers pour tous les macs

    Platform support
    - choisissez le kernel pour Apple Macintosh seulement, pas pour toutes les machines PPC, ça évite les erreurs.
    General Setup
    - cochez la configuration expérimentale pour éviter de bloquer le système lorsque il y a un bug dans les drivers

    - activez le support des modules même si vous n'en utilisez pas (c'est bizarre mais sans ça, ça ne se compile pas)

    - modules auto charger = oui

    - config PCI et PCI Quirk = oui, normalement, c'est pour les bios buggés, y aurait-il un bug dans le bios des Power Macs ?

    - network support = oui, c'est une fois de plus bizarre mais il faut l'activer même si l'on a ni réseau, ni accès Internet...

    - support for misc binary= oui

    - Frame buffer= oui, sauf si l'on utilise Xpmac (déconseillé)

    - Xpmac support= oui, sauf si l'on utilise XF68_Fdev

    - Mac ADB Keyboard=oui, même sur les Mac à interface USB (c'est encore et toujours bizarre)

    - Mac Serial=oui, étrangement (il y a tellement de choses étranges que je cherche des synonymes à "bizarre"), le port usb ne fonctionne pas sans ça.

    - ABD mouse=oui, même sur les Macs USB (bizarre, bizarre :-)

    Block devices

    - ide support=oui, si vous avez un Mac IDE (tous les récents depuis 3 ans sauf exception)

    - activez le support IDE pour Power Macs ET le support IDE générique, dans le cas d'un G3 B&W ou d'un G4, sélectionnez le chip CMD646 mais pas le transfert DMA par défaut ni sur le driver générique, ni sur le driver pour Power Macs (sinon, ca plante lors de la reconnaissance des disques au démarrage...)

    - LoopBack=oui, en gros, ça fait croire que le fichier vmlinux du coté MacOS est un disque d'où on boote,

    - RamDisk et init Ramdisk support=oui, ça copie le fichier vmlinux en ram au démarrage (sur mon G4 a 192Mo, ça me fait perdre 16Mo de RAM, mais enfin, bon....)

    Network
    - activez Packet (le premier), l'unix support, le tcp ainsi que large windows buffers mais pas tout le reste (sauf évidement le support Ethernet si vous en avez besoin) ça vous ferait planter lors d'une connexion sur Internet (en tous cas chez moi...).
    SCSI
    - Scsi support ainsi que générique support et disk, même sur les Macs qui n'ont pas de SCSI (encore et toujours bizarre).
    diverses choses
    - ne pas sélectionner le support de la nvram,

    - le chipset USB sur les Macs est le même que sur les Compaqs,

    - activez le support des HUBs USB (rappel : le clavier du Mac est un HUB).

  5. make dep clean, make vmlinux (l'instant crucial), make modules modules_install, copiez le fichier System.map vers /boot, repassez sous MacOS pour recopier le fichier vmlinux dans le dossier Linux Kernels de BootX (vous pouvez donner à vmlinux le nom que vous voulez) et c'est bon.

Tout ceci est valable pour toutes les versions à partir du 2.2.10, pas pour les sources expérimentales (2.3.???)

Voilà, j'espère que ça aidera les "un peu perdus" de la compilation...


Calogero Maria


Veuillez envoyer vos questions, remarques ou suggestions à Etienne Herlent qui me transmettra.

 

Dernière mise à jour le 27/10/99.

les fichiers en téléchargement sont à ftp://ftp.linux-france.org/pub/macintosh/

 

Retour à GNU Linux sur Macintosh