Profile kernel personnalisé, tips, astuces, info ?

bonjour,

j’ai actuellement en projet de réaliser un kernel perso plutôt spécifique. c’est destiné à être utilisé sur une carte nano-ITX à base d’AMD geode LX800.

le réseau le marche pas, le wifi ne marche pas, le son ne marche pas. en voulant configurer mon kernel pour inclure le necessaire, j’ai trouvé des manques. il y a des pilotes / patch kernel pour la plupart de mon matos.

le but est de fournir un kernel installable façon debian (.deb) avec tout le nécessaire (à installer après le kernel au pire) pour exploiter mon matériel embarqué et QUE ce matériel.

pour alléger le kernel, je voudrais supprimer tout ce qui n’est pas utile/indispensable : comment profiler une machine pour reconnaître les modules utilisés, et seulement ceux là ?

plus généralement, comment procéder pour obtenir un kernel monolitique solide et complet, optimisé pour le matériel cible ? (ça inclu aussi les optimisations diverses à la compilation) temps qu’a faire, à la sauce debian ? (en utilisant le patch fourni par celui-ci).

je dispose de toute la documentation pour les fonctions de la CM si besoin.

je me base actuellement sur un kernel 2.6.25 pour ce petit terminal, mais je peux descendre en version si nécessaire.

merci d’avance,

Olivier

Tu peux lire le Debian Linux Kernel Handbook et plus particulièrement la partie 4.4 Building a custom kernel from Debian kernel source. Tu peux également lire cette page de wiki.

Tout ceci t’apprendra comment recompiler un noyau Debian avec des patchs et une configuraiton personnalisée.

Pour construire un noyau monolitique, il suffit de choisir Y pour toutes les options que l’on souhaite intégrer.
Pour choisir les bonnes options, c’est une chose qui prend beaucoup de temps, il faut connaître parfaitement son matériel et il faut lire la documentation intégrée du menuconfig.

salut,

merci de ta réponse.

[quote]
Pour construire un noyau monolitique, il suffit de choisir Y pour toutes les options que l’on souhaite intégrer.
Pour choisir les bonnes options, c’est une chose qui prend beaucoup de temps, il faut connaître parfaitement son matériel et il faut lire la documentation intégrée du menuconfig.[/quote]

c’est justement ce que je fait actuellement pour compiler mes kernel, quant à la documentation incluse, je commence à la connaitre par coeur à force de la lire :smiley:

mon problème est plutôt qu’il y a certaines options qui ne sont pas assez documentées, ou du moins dont l’incidence est incertaine. quel choix faire en fonction de certaines machines, afin d’obtenir les meilleurs performances ? (preemption, log buffer size en fonction du processeur mis à part uniproco ou SMP, le menu kernel hacking, etc)

est-il possible de booter sur un kernel générique (liveCD), de détecter tout le matériel présent (différentes commande de monitoring genre lspci,etc) ainsi que les modules utilisés pour cette machine ?
le but est ensuite de pouvoir répondre à toute les réponses indépendemment (make config) et choisir seulement ce que je souhaite utiliser.

ça serait sympa en effet mais pour ma part je n’ ai jamais trouvé de live-cd qui me détectait tout mon materiel tout seul, il reste toujours quelques bricoles à modifier pour que ça soit à 100% fonctionnel :unamused:

quelqu’un peut m’expliquer ce qu’est un noyau monolithique ??
parceque wikipedia il est pas tres bavard a as dire que c’est plus rapide j’ai pas trop compris

Le noyau est composé de plusieurs modules (fonctionnalités, pilotes, etc.).

Sous Debian, le noyau est compilé de façon modulaire afin que le nécessaire requis au bon fonctionnement de la machine soit uniquement chargé en mémoire. Ce noyau doit également être fonctionnel sur le plus grand nombre de machine possible.

Au lieu de compiler le noyau de façon modulaire, il est possible d’inclure les modules utilisés par la machine directement dans l’image du noyau. Il s’agit alors d’un noyau monolithique et il ne peut fonctionner correctement que sur une seule machine.

monolithique adjectif, masculin ou féminin
(du grec μόνος monos, “un seul” et λίθος lithos, “pierre”)
Qui est d’un seul bloc.

merci pour cette reponse j’ai tout compris trop bien lol
nan plus serieux cela veut dire que ce type de noyau pourrait etre interessant pour tous les pc portable nan ?
si on le fait correctement bien sur ?

Seulement pour les pc portables étant strictement identiques :wink:

nan mais en faite je pensais pour un pc perso

c’est surtout interressant quand ton matériel est ‘exotique’, ou même qu’il a des fonctionnalité que tu peut exploiter de la meilleure façon.

dans mon cas la puissance brut dispo est très faible, je me doit donc d’optimiser au maximum pour exploiter ce matos. certaines partition montées en ram (pas de ramdisk) avec unionfs pour accélèrer les accès allant dans le même sens.

il faut le reconnaitre, c’est aussi pour bricoler et profiter à fond de son matériel (surtout avec une construction LFS derière)

c’est pas grave si il trouve pas tout, il suffi de se renseigner sur le matos manquant pour avoir la réponse.

c’est quoi le LFS ?
ton topic m’interesse pour du carputer peut tu recherche ça aussi ?

LFS veut dire Linux From Scratch (linux à partir de rien)

le but est de compiler toi même tout les paquets necessaires au fonctionnement d’une distribution ultra-minimale (mais à 100% modifiable)

linuxfromscratch.org/

lfs.traduc.org/

a ok sympa
mais ça je suppose que tu utilise que pour les carte dedie genre truc embarquer (tiens ça m’interese ça)

c’est relativement long à faire, donc je fait une base fixe que je modifie selon la becane.

pas d’autre astuce pour accélèrer la procédure de profilage ?

Il n’y a pas vraiment d’astuce. Il faut parcourir toutes les rubriques une par une et vérifier si l’on n’a rien oublié.

Mais bon, on le fait qu’une seule fois par machine aussi.

c’est bien là le problème : ça ne me gène pas de prendre 2-3h pour configurer un kernel, seulement à condition que celui-ci soit cohérent.

pour tout ce qui est pilote et gestion matériel, c’est relativement facile.

pour tout le reste en revanche… c’est pas la même chose. toute l’aide dispo sur le net décrit plus ou moins bien certaines fonction, sans même préciser l’impact/le matériel-logiciel cible.