Compilation noyau : vos conseils pour un kernel au top

Bonjour,

Voilà depuis bien plusieurs mois que je suis sous debian avec bonheur et envie, envie d’avoir un système toujours au top. Il y a quelques temps de cela, j’ai tenté une compilation du noyau afin d’avoir un kernel le plus petit possible pour surtout optimiser la rapidité de boot de mon système. J’ai passé une journée entière à décrypter chaque option de compilation du noyau avec le Kernel Howto, puis ma machine a mis presque une heure à compiler ce noyau, je me dis et bah, c’est pas tous les jours que je referai ça. Arrivé à l’installa tion du noyau et vlà… BOUM ! Le fameux kernel panic… :smt076 :smt089 Bon bien sûr j’avais gardé l’ancien noyau, mais passé toute une journée là dessus pour au final avoir ce message, c’est… bon enfin bref. J’ai laissé tomber je ne voulais pas recommencer. J’ai sûrement mal paramètrer quelque chose mais quoi…

Enfin, aujourd’hui, je suis prêt à recommencer. Mais pour ne plus avoir ce fameux message, je sollicite vos conseils. Mes questions sont les suivantes :

  • quels sont les paramètres à modifier ou au contraire à ne surtout pas toucher
  • que faut-il mettre absolument en dur ou inversement en module (j’ai vu qu’on pouvait mettre Alsa en dur ou en module, lequel est mieux ?)
  • des astuces pour éviter de tout paramétrer manuellement éventuellement, ou tout autre conseil intéressant est bienvenue.

Merci à vous !

Tu soulèves là un problème compiqué et beaucoup aimeraient avoir la réponse.
J’avais lancé, il y a qq tps, l’idée de “faire” en collégialité, l’explication de ts les points de configuration.
Le boulot est phénoménal et personne n’a voulu me suivre. Je comprends très bien d’ailleurs.
Si tu veux, je vais te passer un lien, qui vaut ce qu’il vaut mais qui est assez complet; Par exemple, comme les choses évoluent très vite, certains points sont déjà obsolètes ou ne sont pas abordés;
À toi de faire le tri.
http://casteyde.christian.free.fr/system/linux/guide/online/a12859.html

bonsoir,
je viens de tomber sur ce sujet et justement je me disais, pourquoi n’y at-il pas un programme (genre sandra) qui dans un premier temps analyserait le pc puis ferait un fichier txt à partir duquel serait généré automatiquement le fichier config utile pour la compilation du noyau, pour avoir la certitude d’avoir l’adéquation entre son matériel et les options de compilation…
qu’en pensez vous ?

[quote=“jmfze”]bonsoir,
je viens de tomber sur ce sujet et justement je me disais, pourquoi n’y at-il pas un programme (genre sandra) qui dans un premier temps analyserait le pc puis ferait un fichier txt à partir duquel serait généré automatiquement le fichier config utile pour la compilation du noyau, pour avoir la certitude d’avoir l’adéquation entre son matériel et les options de compilation…
qu’en pensez vous ?[/quote]

Pour ce qui est matériel, peut etre oui, mais comment faire pour les options réseaux et internet? Il restera toujours des choses à configurer selon le bon vouloir de l’utilisateur :slightly_smiling:

Sinon, pour ma part, j’ai recompilé mon noyau une quinzaine de fois déjà, j’ai peut être eu deux kernel panic sur les quinze :laughing: ,

Joto@debian :: regarde ce lien : andesi.org/forum/viewtopic.php?id=5721 :slightly_smiling:

[quote=“jmfze”]bonsoir,
je viens de tomber sur ce sujet et justement je me disais, pourquoi n’y at-il pas un programme (genre sandra) qui dans un premier temps analyserait le pc puis ferait un fichier txt à partir duquel serait généré automatiquement le fichier config utile pour la compilation du noyau, pour avoir la certitude d’avoir l’adéquation entre son matériel et les options de compilation…
qu’en pensez vous ?[/quote]
Tout ne dépend pas du matériel.
Mais il est vrai que les kernel me semblent trop génériques.
Il me semble que peu de personnes disposent d’un réseaux ATM par exemple et ceux qui en ont devrais savoir recompiler un noyau.
Il pourrait peut être être intéressant de rapporter les option du noyau à Debian comme c’est fais avec les logiciels.

Un truc sympa, que je n’ai pas utilisé sur debian mais gentoo: avant make menuconfig, faire: make defconfig.
De là on part d’une config de base fournie par linus torvald lui-même, et on adapte, l’outil de base indispensable étant, entre autres, lspci.
(http://forums.gentoo.org/viewtopic-t-555623.html?sid=a84e15ee0c3498f97d5b2a0029adbfe2)

[quote=“Joto@debian”]Bonjour,

J’ai passé une journée entière à décrypter chaque option de compilation du noyau avec le Kernel Howto, puis ma machine a mis presque une heure à compiler ce noyau, je me dis et bah, c’est pas tous les jours que je referai ça.[/quote]

Et dire qu’il faut une nuit à la mienne et que je ne lui en ai jamais fait le moindre grief :mrgreen:

t’inquiete pas joto, la première fois il m’a fallu 6 tentatives avant d’avoir un noyau fonctionnel
maintenant je connais mon materiel donc ca me prend moins de temps
tout cela est dans l’ordre des choses

j’aime beaucoup cette idee, il y a quelques options que j’ai beaucoup explorées et si cette idée germe un jour je veux bien contribuer

oui en effet, mais le choix de certaines options peut rester manuel

c’est bien dommage, une telle liste explicative serait la bienvenue pour ceux qui veulent se lancer dans la compilation…

Bein il y en a une ? Sur developpez.

C’est vrai je suis d’accord sur le fait qu’ils pourraient désactiver certaines choses à la base.

[quote=“ymer”]Bein il y en a une ? Sur developpez.
[/quote]
Donne le lien. :slightly_smiling:

[quote=“antalgeek”]

j’aime beaucoup cette idee, il y a quelques options que j’ai beaucoup explorées et si cette idée germe un jour je veux bien contribuer[/quote]
puisqu’il y a déjà deux candidats plus moi, je vais ouvrir un fil sur le sujet, ds un premier tps sur “pause café”.
Ds un avenir plus ou moins long, on pourra commencer à éditer qq chose de concret sur “trucs et astuces”, si ça prend forme.

3, si j’arrive à apporter qq lumières…

linux.developpez.com/guide/a12859.html

Ça ?

oui, c’est une copie de celui de Casteyde.
Et pourquoi, ns n’en ferions pas ns aussi une copie ? :laughing:
Je plaisante mais je pense que l’on peut encore “affiner” les réponses.
Enfin, à vs de voir, j’ai ouvert un fil en tête de gondole.

Bon, pour un noyau minimal 2/3 remarques:

  • peu de chance que la recompil accélère de plus d’une seconde le boot sur disque dur. Sur clé usb, sur cd, ou sur disquette, par contre, un noyau petit est préfèrable, et on peut gagner quelques secondes (peu) à le réduire. C’est surtout sur l’utilisation des ressources que ça peut jouer.
  • utilisez ccache pour accélèrer vos compils:
    debian-administration.org/articles/129
    le tuto n’est pas complet. Pour être parfait, il faut mettre export PATH=/usr/lib/ccache:$PATH dans le .profile (ou le .bashrc je ne sais jamais) de l’user qui fait les compils (en général, root). On peut vérifier qu’il utilise bien le ccache aprés une compilation en faisant ccache -s .
    Avec ccache, les temps de recompilation sont énormément raccourcis.
  • le “kernel panic” est lié en général à une seule chose: le noyau ne sait pas accèder à / .
    Si l’on écarte les erreurs de config fstab, cela veut dire qu’au moment du boot, il manque au noyau >le module de l’ide, du sata, ou autre qui gère le disque< ou/et >le module du format de la partition sur laquelle est / < (ceci étant, ext2 suffit pour booter sur une ext3)
    Donc, pour que le noyau boote, il faut que ces modules qui lui permettent d’accèder à / soit dispos >soit dans un initrd< (c’est l’option -initrd de make-kpkg) >soit en dur dans le noyau< .
    L’idéal pour se passer d’initrd est de démarrer avec un noyau debian standard, de noter les modules qui peuvent intervenir dans la chaine d’accés à /, de les mettre en dur, et de tester le boot sans initrd.
    Pour le reste, il peut y avoir des améliorations de performances - je crois - si on met en dur la carte réseau et les modules iptables qu’on souhaite utiliser, mais pour le reste des peripheriques, c’est kif kif.
  • pour épurer, il faut bien sûr désactiver tous les pilotes de matèriel qu’on a pas sur sa machine, et mettre en module tout ce qui concerne l’usb et éventuellement le pcmcia.
    Enfin voilà…

A noter, si on a oublié --initrd dans le make-kpkg, on peut génèrer ponctuellement l’initrd avec mkinitramfs (pour les derniers noyaux) ou mkinitrd (pour les récents), mais c’est juste pour essayer le noyau parcequ’aprés il faudra bien le recompiler avec --initrd, pour que le paquet dans /usr/src soit correct et soit reinstallable sans qu’on ait à recréer l’initrd.

Voilà, c’est exactement de ces explications que l’on a besoin mais quand on abordera la partie car d’ici là, on ne se souviendra pas forcément de ce qui est écrit ici aujourd’hui.
Je ne veux pas encore extrapoler mais il faudra procéder avec méthode, sinon ça sera le cafouillage et l’opération tombera vire à l’eau.
De ttes façons, Matt, on aura besoin de toi, que tu le veuilles ou non. :laughing:

Tu parle de .bash_profile (.profile c’était pour sh ou tcsh je crois) je pense et je crois que c’est chez lui qu’il est le mieux.

Il faudrait faire quelque chose de très structuré à l’image de ce dont on parle. Un tableau avec des parties correspondant aux sections/ss sections, chaque cellule correspondant à une option du noyau (avec le lien accédant à notre doc sur l’option)

Je dirais plutôt qu’il faudrais recréer l’arborescence du menuconfig