il. 03 14:17:06 yoclif, boogie777: désolé, on va attendre quelques minutes que les personnes de starinux arrivent :p juil. 03 14:17:23 bonjour à tous, désolé, j'étais en train de faire qq réglages juil. 03 14:17:25 illovae: c'est un cour particulier aujourd'hui ? juil. 03 14:17:29 pas de probleme, c est le week end on a tout notre temps juil. 03 14:17:34 salut termitor, comment ça ? juil. 03 14:17:41 yoclif: merci :) juil. 03 14:17:54 illovae: j'avais vue que tu donnerais un cour public a une conf ou un truc du genre juil. 03 14:18:28 termitor: euh non en fait c'est une session 'normale' comme d'habitude, juste là je sais que des personnes du LUG starinux voulaient être présent donc voilà juil. 03 14:18:37 roscop: Golffies est dans le coin :p ? juil. 03 14:18:38 illovae: théme ? juil. 03 14:19:00 termitor: gestion des LKM (avec les modutils) juil. 03 14:19:26 illovae: cool , je vais suivre, j'aimerais bien savoir comment avoir les parametre que l'on peut fournir au module . juil. 03 14:20:13 termitor: haha, on va en reparler juil. 03 14:20:37 bon les gens de starinux sont là, on va attendre qu'ils arrivent sur IRC (enfin tous je veux dire) juil. 03 14:22:10 (c'est à dire 5/10 minutes) juil. 03 14:24:48 --> itzhack (52e427e7@gateway/web/freenode/ip.82.228.39.231) a rejoint #u-classroom juil. 03 14:25:20 termitor: modinfo juil. 03 14:25:26 Krunch: :0 juil. 03 14:25:32 attend, tu gaches tout :p juil. 03 14:25:37 arf désolé juil. 03 14:26:29 Bonour! juil. 03 14:26:32 <-- brendel est parti (Quit: Lost terminal) juil. 03 14:26:35 Krunch: ^^ juil. 03 14:26:37 yo itzhack juil. 03 14:26:47 --> Golffies (~Golffies@fbx.tmplab.org) a rejoint #u-classroom juil. 03 14:26:51 --> bloomer (~boomer@fbx.tmplab.org) a rejoint #u-classroom juil. 03 14:26:53 :p juil. 03 14:26:56 illovae: c'est marrant cette premiere sessions depuis le /tmp/lab :) juil. 03 14:27:10 on se met en place tranquilement ici, 8 personnes so far juil. 03 14:27:33 merci itzhack pour l'accueil btw :) juil. 03 14:27:40 my pleasure juil. 03 14:27:42 :) juil. 03 14:28:40 yo jzGreen juil. 03 14:28:45 yo bloomer juil. 03 14:28:48 --> star_ (~star@2001:470:1f09:12:206:5bff:fe26:3a69) a rejoint #u-classroom juil. 03 14:28:53 --- star_ se nomme maintenant Guest95473 juil. 03 14:28:53 hey ilove juil. 03 14:29:06 bloomer: utilise ta touche tab ;) juil. 03 14:29:10 ill :p juil. 03 14:29:25 --> gerard_ (~gerard@ANantes-157-1-62-196.w86-214.abo.wanadoo.fr) a rejoint #u-classroom juil. 03 14:29:28 yo gerard_ juil. 03 14:29:33 wesh juil. 03 14:29:35 illovae: merci ;-) juil. 03 14:29:54 bon on va pouvoir commencer donc juil. 03 14:29:55 --> brendel (~brice@ALyon-259-1-15-14.w90-57.abo.wanadoo.fr) a rejoint #u-classroom juil. 03 14:29:58 yo brendel juil. 03 14:30:06 salut juil. 03 14:30:29 bon tout le monde est là on y va ? juil. 03 14:30:41 boogie777, yoclif, si vous voulez :) juil. 03 14:30:41 Oui, tout le monde est là juil. 03 14:30:48 ok juil. 03 14:30:51 ok juil. 03 14:31:00 oui , salut juil. 03 14:31:06 Golffies: oui oui ça vient en intro :p juil. 03 14:31:09 bon alors juil. 03 14:31:15 bienvenue à tous (et à toutes) juil. 03 14:31:30 donc on va faire une petite session sur les LKM juil. 03 14:31:40 c'est une idée à la base qui nous vient de starinux juil. 03 14:31:45 et plus précisemment de Golffies donc :p juil. 03 14:32:06 donc on s'est rencontré IG pour ainsi dire et cette session a été prévue juil. 03 14:32:25 pour ceux qui sont pas de starinux, sachez qu'ils sont tous ensemble dans les locaux du /tmp/lab à paris juil. 03 14:32:47 Golffies: parle sur irc :p juil. 03 14:32:58 oui mais tu parles tout seul ;-) juil. 03 14:32:59 (oui parce que j'ai Golffies via skype en même temps :]) juil. 03 14:33:31 continue... ? juil. 03 14:33:32 donc cette session sur les LKM est pour les débutants juil. 03 14:33:41 --> genesis (~genesis@93.26.45.201) a rejoint #u-classroom juil. 03 14:33:47 vous avez pas besoin de connaissances particulières pour suivre juil. 03 14:33:51 on va pas rentrer dans de gros gros détails juil. 03 14:33:59 ça va plus ressembler à une visite touristique juil. 03 14:34:29 il est difficile de faire quelque chose de très dynamique sur les LKM du simple fait qu'on a tous des machines différentes et donc que notre intervention sur les modules ne sera pas la même pour tous juil. 03 14:34:30 voyage au centre du noyau , c est ca juil. 03 14:34:33 --> boctai11 (~boctai11@2001:470:1f09:12:224:d2ff:fe2c:4c44) a rejoint #u-classroom juil. 03 14:34:39 yoclif: non pas exactement justement juil. 03 14:34:57 on va pas se centrer sur le noyau en lui-meme juil. 03 14:34:58 oups juil. 03 14:35:04 non c'est pas grave juil. 03 14:35:22 l'idéal de cette session c'est de la mettre en rapport avec la configuration et compilation du noyau juil. 03 14:35:35 donc la session va se couper en deux parties juil. 03 14:35:53 une partie où on va présenter les outils (avec une petite intro) juil. 03 14:36:08 et une seconde où on va regarder de plus prêt à quoi ressemble un module juil. 03 14:36:17 ça va pour tout le monde ? juil. 03 14:36:22 yup juil. 03 14:36:22 Oui juil. 03 14:36:23 5/5 juil. 03 14:36:24 ouais juil. 03 14:36:26 ok juil. 03 14:36:27 ok pour moi juil. 03 14:36:28 oui juil. 03 14:36:30 ok juil. 03 14:36:35 ok juil. 03 14:36:40 bien, en seconde partie, on devra installer deux trois petites choses juil. 03 14:36:48 notamment les sources de notre kernel + ce qu'il faut pour compiler juil. 03 14:36:54 enfin on verra ça tout à l'heure juil. 03 14:36:55 --> Sp4rKy (~Sp4rKy@freenode/sponsor/sp4rky) a rejoint #u-classroom juil. 03 14:37:10 btw, le contenu de la session en lui-même est présenté par mon bot, qui va m'aider donc juil. 03 14:37:13 c'est britney juil. 03 14:37:13 !!! juil. 03 14:37:38 je rajouterai surement des petites choses autour de ça, et n'hésitez pas à m'arrêter si y'a quelques choses qui vous turlupine juil. 03 14:37:47 j'essayerai de répondre à vos questions autant que je peux :) juil. 03 14:38:07 allez hop juil. 03 14:38:29 --> gapz (~gapz@rennes1.dunnewind.net) a rejoint #u-classroom juil. 03 14:38:31 Golffies: oui juil. 03 14:38:35 et pose les questions sur irc !!! juil. 03 14:38:53 (il précise qu'il vous faut un terminal d'ouvert cay mieux) juil. 03 14:38:54 --> Honorat (~H@host-41-207-14-201.afnet.net) a rejoint #u-classroom juil. 03 14:38:58 (ouais hein tu fais chier, on t'as dit IRC) juil. 03 14:39:02 (bonjour) juil. 03 14:39:02 gapz: \o/ juil. 03 14:39:11 * 0. INTRODUCTION juil. 03 14:39:18 Comme vous le savez tous, le noyau Linux est un noyau monolithique. Dans les temps anciens, quand on avait besoin d'ajouter la prise en charge d'un système de fichier ou encore un nouveau périphérique, nous n'avions d'autres choix que de patcher le noyau, de le recompiler et de rebooter. Ce qui n'est évidemment pas très pratique. juil. 03 14:39:33 Très vite donc, les LKMs (Loadable Kernel Module) - qu'on appelle plus simplement kernel modules ou même modules - ont été créés (dès 1995). Le but étant qu'on puisse charger et décharger ces modules afin de libérer de la mémoire des choses dont on ne se sert qu'occasionnellement. Notons que ce fonctionnement n'est utile que dans certains cas. Il serait bête d'avoir le support d'ext3 en module si vous l'utilisez tous les jours évidemmen juil. 03 14:39:55 Les modules sont essentiels à comprendre et à maîtriser pour qui s'intéresse à la façon dont fonctionne l'OS. En effet, c'est au travers d'eux que vous pourrez finement configurer votre machine et en retirer le comportement que vous désirez. juil. 03 14:40:09 (entre autres bien sûr) juil. 03 14:40:17 N'allez pas imaginer qu'un LKM est quelque chose qui discute avec le kernel en dehors de celui-ci. Un LKM est une partie intégrante du noyau (quand il est chargé). Cependant on en fait la distinction du /noyau central/ en parlant de "base kernel" : id est tout ce qui correspond à ce qui est lancé par l'image lors du boot. Ainsi on peut se représenter les LKMs comme une "extension" du noyau. juil. 03 14:40:35 c'est clair pour tout le monde cette histoire de base kernel ? juil. 03 14:40:43 yup juil. 03 14:40:56 ya juil. 03 14:41:00 yep juil. 03 14:41:09 vous avez tous déjà plus ou moins compiler un noyal j'imagine ? yoclif ? juil. 03 14:41:09 illovae: la partie base kernel , tu peut precisé juil. 03 14:41:15 termitor: oui juil. 03 14:41:37 --> guigui-75000 (~guigui-75@2001:470:1f09:12:221:6bff:fe4d:86dc) a rejoint #u-classroom juil. 03 14:41:38 illovae, non juil. 03 14:41:38 le base kernel est dans l'idée l'image qu'on utilise pour booter notre machine juil. 03 14:41:47 --> paris1555 (~xenokille@2001:470:1f09:12:21a:73ff:fe0e:c5aa) a rejoint #u-classroom juil. 03 14:42:02 bon quand on configurer un noyau, on précise ce qui va être BUILT-IN (dedans) et ce qui va être en module (M) juil. 03 14:42:21 le plus lourd dans la compil, c'est de comprendre la signification des diverses options bas niveau. juil. 03 14:42:25 on peut dire que la binaire, l'image du noyau qu'on boot est la base kernel juil. 03 14:42:39 non juil. 03 14:42:39 je sais pas si je suis assez clair ? juil. 03 14:42:41 ce qu'on active, ce qu'on n'a pas besoin d'activer juil. 03 14:42:48 termitor: ? juil. 03 14:42:51 yoclif: oui ? juil. 03 14:43:08 illovae, bas kernel = image boot juil. 03 14:43:12 (illovae: il manque des mots de liaisons mais bon, je vais pas faire le bot correcteur) juil. 03 14:43:15 *base juil. 03 14:43:17 ok juil. 03 14:43:18 pour moi, ca va juil. 03 14:43:25 gerard_: oui oui c'est ce que j'ai voulu expliquer juil. 03 14:43:36 gapz: yes, j'essaye d'être le plus simple possible, mais c'est pas mon fort :p juil. 03 14:43:41 gapz: hésite pas à me taper hein :p juil. 03 14:43:45 --- ChanServ donne le statut operator de canal à gapz juil. 03 14:43:47 *grrrr* juil. 03 14:43:55 héhé :p juil. 03 14:43:56 :) juil. 03 14:44:01 bon on continue ? juil. 03 14:44:03 heu juil. 03 14:44:06 oui termitor ? juil. 03 14:44:07 desole j'etait au telephone juil. 03 14:44:15 termitor: pas de souci, y'a le backlog c'est utile :) juil. 03 14:44:17 donc, on peut mettre beaucoup de choses en module juil. 03 14:44:22 termitor: oui tout à fait juil. 03 14:44:24 énormément de choses juil. 03 14:44:29 termitor: à la première personne du singulier on met des "s" à la fin, genre "j'étais" juil. 03 14:44:35 gapz: rofl !! juil. 03 14:44:39 meme le systeme de fichier ext3 , mais il y a certain partie du kernel qui ne peuvent pas du tout compiler en module juil. 03 14:44:47 c'est quelle partie fondamentalement ? juil. 03 14:44:48 termitor: après c'est à toi de choisir quoi mettre en module ou pas juil. 03 14:44:57 bonjour à tous (from /tmp/lab) juil. 03 14:44:58 termitor: tout à fait juil. 03 14:45:18 termitor: d'ailleurs y'a un troll assez connu pour savoir s'il faut mettre alsa en built-in ou en modules juil. 03 14:45:36 mais les modules ont plusieurs intérêt juil. 03 14:45:43 Au delà du simple intérêt de décharger de la mémoire des choses dont on a pas besoin, les LKMs sont recommandés pour plusieurs raisons : juil. 03 14:45:53 1/ L'utilisation des modules le plus souvent possible nous évite de devoir recompilé tout le kernel. Quand on a un base kernel qui fonctionne correctement et qui boot, il est dommage de perdre du temps à le refaire simplement pour avoir sa webcam qui marche. juil. 03 14:46:13 2/ Un autre avantage est de pouvoir circonscrire des problèmes liés à un périphérique. Un bug dans un driver qui serait implémenté dans le base kernel peut casser votre boot et votre système ne démarre plus. Par contre, l'avoir comme module, non seulement évite ce désagrément car vous aurez toujours accès au système, mais rend plus facile la recherche du problème. juil. 03 14:46:37 Golffies: SUR IRC!!! juil. 03 14:46:49 3/ D'un point de vue du développeur, c'est un gain de temps très appréciable, étant donné qu'on n'est pas obligé de recompiler le kernel et d'attendre un reboot simplement pour tester l'ajout d'une fonction ou le changement d'un paramètre. juil. 03 14:47:01 Golffies: pose test question en public , c'est mieux pour tout le monde , s'il te plais ! juil. 03 14:47:23 bon ce sont des intérêts plutôt logiques je pense juil. 03 14:47:30 ça va du bon sens juil. 03 14:47:47 Je veux quand même revenir une seconde sur le côté charge mémoire du noyau. Si vous ne le savez pas la mémoire utilisé par le noyau n'est *jamais* swappée. Ce qui signifie que si vous avez un noyau avec des tas de choses inutiles en BUILT-IN et non en modules, ça va prendre de la place inutilement. juil. 03 14:47:59 illovae: pour precise ma question : quelle partie du kernel ne peut pas etre compiler sous forme de module ? juil. 03 14:48:38 termitor: j'ia pas le détails en tête, mais déjà tout ce qui concerne la bonne marche du kernel lui-même, et je dirais la reconnaissance des périphériques de base juil. 03 14:48:42 termitor: je pense notamment que tout ce qui fait la gestion memoire ne peut pas etre compilée sous forme de modules juil. 03 14:48:42 genre ta carte mère etc juil. 03 14:48:57 en effet juil. 03 14:49:02 ce sont les fonctions "regaliennes" d'un kernel juil. 03 14:49:05 termitor: en théorie tu peux presque mettre tout en module juil. 03 14:49:07 --> Texou (~Texou@unaffiliated/texou) a rejoint #u-classroom juil. 03 14:49:13 j'ajoute la pile tcp/ip juil. 03 14:49:20 en pratique termitor, c'est pas une solution idéale juil. 03 14:49:21 (process management, memoire, paging, ...) juil. 03 14:49:24 legreffier: oui merci juil. 03 14:49:49 mais en fait c'est pas déconnant du tout d'enlever alsa du module. juil. 03 14:50:00 legreffier: non au contraire je trouve juil. 03 14:50:05 s/module/noyau/ juil. 03 14:50:17 d'ailleurs à propos de la charge mémoire, j'ia déjà eu en face de moi de spersonnes qui buildait tout juil. 03 14:50:27 --> smarter (~smarter@ubuntu/member/smarter) a rejoint #u-classroom juil. 03 14:50:32 et qui ne mettait rien en module en me disant "oiu mais j'ia un ordi performant, je m'en fous" juil. 03 14:50:39 les noyaux au taf sont tous compilé en dur. juil. 03 14:50:55 c'est vrai que ça peut tenir le coup, mais c'est une façon de penser un peu absurde je trouve juil. 03 14:51:10 des remarques ou des questions ? juil. 03 14:51:24 jusque ici tout va bien juil. 03 14:51:32 jusqu'ici tout va bien juil. 03 14:51:33 Nickel pour moi juil. 03 14:51:38 le mieux c'est de mettre son matos en dur ? ou en module ? juil. 03 14:51:46 oki ! juil. 03 14:51:46 boctai11: ça dépend :) ! juil. 03 14:51:47 si con connais son matériel. juil. 03 14:52:05 boctai11: disons que les choses _essentielles_ c'est bien de les mettre en dur juil. 03 14:52:17 après, perso par exemple, ma carte son n'es tpas _essentielle_ juil. 03 14:52:26 (pour que le système marche) juil. 03 14:52:28 chacun peut compiler sa config par defaut sa gagnera du temps ? (oldconfig) juil. 03 14:52:50 guigui-75000: ça gagnera du temps au sens où tu passeras pas 3h à choisir les options de configuration oui juil. 03 14:52:53 boctai11: ça dépend :P juil. 03 14:53:07 guigui-75000: mais les kernel generic sont fait pour prendre en compte un large panel de périphérique juil. 03 14:53:16 Ok ok juil. 03 14:53:21 guigui-75000: et la seule chose que tu vas gagner c'est 400Ko sur le binaire finale juil. 03 14:53:22 guigui-75000: par exemple, par défaut généralement t'as la prise en charge des cartes réseaux tulip juil. 03 14:53:29 guigui-75000: en pratique, mettre les options par defaut de la compilation kernel est une bonne idée == les devs kernels y ont bien pensé juil. 03 14:53:35 si ça marche a coup de module, tu peux juste copier ton disque dur, le mettre dans un autre pc, et tu as toutes les chances de démarrer *presque* normalement juil. 03 14:53:35 guigui-75000: à priori le module tulip toi tu t'en fous juil. 03 14:54:11 +1 pour itzhack juil. 03 14:54:18 (après au niveau sécurité ça limite aussi la surface d'attaque de pas mettre à miliard de truc par défaut) juil. 03 14:54:36 les dev chez debian par exemple qui s'occupent du kernle sont très loins d'être des branquignoles, on peut absolument leur faire confiance en ce qui concerne la configuration juil. 03 14:54:48 gapz: oui merci j'allais justement y venir, bonne transition juil. 03 14:54:52 "absolument" oui et non :p juil. 03 14:55:05 gapz: ouai absolument pour le profane j'entend juil. 03 14:55:15 et puis , apres faudras bien discuter de l'usage de initrd , et c'est la partie qui m'interese la juil. 03 14:55:15 perso les noyaux avec 100 modules loadé par défaut non merci juil. 03 14:55:28 pour ce qui est question de sécurité, l'intérêt de faire sa propre config et d'avoir pas mal de choses en module est que vous gérez vous-même tout votre petit monde juil. 03 14:56:10 vous savez quoi est loadé et qunad, vous vous rendez bien compte qu'il est plus facile de s'occuper d'un petit kernel avec nos petits modules plutôt que d'un mastodonte avec une floppée de module dont on ne connait à peine le nom juil. 03 14:56:36 j'ai une idée de module juil. 03 14:56:40 le vloopback juil. 03 14:56:43 Enfin une dernière chose. Certains ont tendance à croire qu'un LKM est plus lent q'un module implémenté dans le base kernel. L'allocation en mémoire se fait un peu différemment certes mais les performances n'en sont pas amoindries. juil. 03 14:56:53 guigui-75000: écrit le :p juil. 03 14:57:11 ce qui casse aussi l'argument "en built-in ça va plus vite" juil. 03 14:57:13 guigui-75000: video loopback , ca existe deja ! juil. 03 14:57:16 illovae: bah généralement tu fais pas un audit de ce que tu load juil. 03 14:57:20 mais n'avoir que ce dont tu as besoin juil. 03 14:57:31 je vais pas rentrer dans le détails de l'allocation mémoire parce que je le maitrise pas bien, mais si ça en intéersse, j'ai des docs sur le sujet juil. 03 14:57:34 ca évite les dommags collatéraux en cas de faille sur un module dont tu te sers pas et qui est chargé juil. 03 14:57:53 gapz: oui exactement, c'est ce que je voulais dire, t'as précisoin est plus claire juil. 03 14:58:06 sur ma ubuntu y a les source livré .. mais sans plus juil. 03 14:58:17 guigui-75000: oui, à toi de les récupérer et de jouer avec juil. 03 14:58:26 ça prend du temps et il faut pas mal lire mais c'est sympas :p juil. 03 14:58:40 on continue ? juil. 03 14:58:43 oui juil. 03 14:58:49 ok juil. 03 14:58:50 yes juil. 03 14:59:00 oui juil. 03 14:59:02 * 1. GESTION PRATIQUE DES MODULES juil. 03 14:59:08 Les modules sous GNU/Linux se trouvent dans /lib/modules et ont donc l'extension .ko (pour kernel object). Vous noterez que chaque version de kernel à son propre jeu de modules. juil. 03 14:59:28 Les outils pour la gestion des modules se trouvent dans le paquet module-init-tools ; qui fait partie des paquets de base de tous systèmes GNU/Linux évidemment. Nous allons les passer en revue. juil. 03 14:59:37 alors on va voir ce qui est récent bien sûr juil. 03 14:59:53 y'a des choses qui existaient par le passé, qui sont fortes intéressantes, mais parfaitement useless actuellement juil. 03 15:00:04 (je pense à kerned par exemple, ça j'en parlerai évidemment pas :p) juil. 03 15:00:18 ** 1.1. lsmod juil. 03 15:00:22 lsmod est un tout petit programme qui ne sert simplement qu'à lister les modules actuellement chargés. Il n'a d'autres fonctions que "d'arranger joliement" ce qui se trouve dans /proc/modules. juil. 03 15:00:28 /lib/modules est-il l'emplacement retenu par toutes les distributions ? juil. 03 15:00:39 d'ailleurs vous avez le même résultat en fait sur cat /proc/modules juil. 03 15:00:44 Golffies: oui en effet juil. 03 15:00:56 je vais en parler en seconde partie, un peu plus en détails juil. 03 15:01:15 Il n'y a rien de compliqué dans la sortie : respectivement, le nom du module, la taille en mémoire, le nombre d'utilisation et enfin quel(s) autre(s) module(s) est/sont en train de l'utiliser. juil. 03 15:01:29 vous pouvez pipé lsmod avec less bien sûr juil. 03 15:01:36 mais bon c'est une commande très connue juil. 03 15:01:43 cependant : juil. 03 15:01:50 Cela nous permet de voir qu'un module peut donc avoir des dépendances. Un exemple simple et compréhensible : pour lancer les filtres iptable (ip6table_filter) il faut évidemment que iptables lui-même soit lancé (ip6_tables). juil. 03 15:01:56 @illovae : y a un kernel limite dans ancien 2.6.X ? juil. 03 15:02:10 boogie777: je comprend pas la question juil. 03 15:03:05 boogie777: ? juil. 03 15:03:09 on peut piper lsmod \o/ \o/ juil. 03 15:03:11 * gapz fuit juil. 03 15:03:13 dans les grandes evolutions majeures du kernel ya une version a aprtir de laquelle on considere le noyau old school ? juil. 03 15:03:15 gapz: :] juil. 03 15:03:28 boogie777: tu peux te dire que 2.4 c'est oldschool juil. 03 15:03:35 et pourquoi ya des modules non utilisés listés par lsmod ? juil. 03 15:03:49 est-ce qu'on peut trier l'affichage des modules avec lsmod ? juil. 03 15:04:00 gerard_: euh normalement tout ce qui est dnas lsmod est utilisé juil. 03 15:04:11 Ok je pensais pas jusque la quand même ;-) Thx juil. 03 15:04:16 gerard_: ah tu veux dire chargé mais pas utilisé ? juil. 03 15:04:22 pardon jveux dire ... ouais juil. 03 15:04:30 Golffies: tu noteras que le "used by" donne des noms de module aussi juil. 03 15:04:38 Golffies: ouai bien sûr, suffit d'écire un p'tit script qui te parsera comme tu veux /proc/modules juil. 03 15:04:45 c'est une dépendance au niveau de l'utilisation quoi juil. 03 15:04:46 gerard_: oui c'est normal juil. 03 15:04:51 (tel module à besoin de tel module) juil. 03 15:04:52 genre "used by" : 0 juil. 03 15:04:52 gerard_: un module "utilisé" est utilisé par un autre module lui meme chargé dans le noyau: les modules "dependent" de services fournis par ce premier module. Mais il y a aussi les applications utilisateurs qui "utilisent" ces modules, mais lsmod ne les affichent pas juil. 03 15:04:56 gerard_: tu peux très bien loadé un module X mais ne pas l'utilisé juil. 03 15:05:04 Golffies: lsmod est _très_ basique juil. 03 15:05:12 tu peux hacker lsmod si tu veux juil. 03 15:05:25 great juil. 03 15:05:26 illovae: gerard_ un module peut ne pas être utilisé par un autre module, c'est tout juil. 03 15:05:30 n'allez pas chercher plus loin ;) juil. 03 15:05:34 le "used by" veut dire cela juil. 03 15:05:39 pourquoi il y a linux-tools-2.6.32-22 et linux-tools-2.6.32-xx autant de version que de version du noyau N juil. 03 15:05:41 module-init-tools juil. 03 15:05:41 ? juil. 03 15:05:54 genre ext2 iirc n'est utilisé par aucun autre module sur une debian de base juil. 03 15:06:13 termitor: tu veux dire pourquoi y'a autant de version pour le meme noyau ? juil. 03 15:06:43 illovae: linux-tools a une version pour chaque, c'est quoi comme outils pour quoi soit si specifique ? juil. 03 15:07:04 "This package provides the architecture dependant parts for kernel juil. 03 15:07:04 version locked tools for version 2.6.32-23 on" juil. 03 15:07:05 itzhack: tu synthétises tellement bien :) juil. 03 15:07:16 termitor: je sais pas trop, t'as ça sur une debian ? juil. 03 15:07:22 illovae: ubuntu juil. 03 15:07:40 faudrait regarder ce qu'il y a dedans, je sias pas trop, je connais pas ce paquet juil. 03 15:07:54 * illovae run slackware et il a pas ça en paquet indépendant juil. 03 15:08:00 /usr/bin/perf_2.6.32-23 c'est le seule fichier particulier executable ! juil. 03 15:08:28 termitor: je sais pas je me suis pas penché sur la question... juil. 03 15:08:41 on continue malgré tout ? juil. 03 15:08:52 oui juil. 03 15:08:53 oui, desole juil. 03 15:08:57 termitor: non non c'est moi juil. 03 15:09:11 termitor: rappelle moi ça en fin de session j'irai jetté un oeil s'il te plaît juil. 03 15:09:19 ** 1.2. depmod juil. 03 15:09:37 À propos de ces dépendances, depmod est l'outils qui les résoud. Il scan simplement tous les modules présents dans /lib/modules/ et créé un fichier modules.dep dans ce même dossier avec nom_du_module.ko: dependances1.ko dependances2.ko etc juil. 03 15:09:54 Pour voir à quoi ça ressemble vous pouvez faire un : juil. 03 15:09:59 $ sudo less /lib/modules//modules.dep juil. 03 15:10:09 Bon en pratique on utilise presque *jamais* depmod, sauf quand on s'amuse à tester/rajouter tout un tas de modules et leurs dépendances... juil. 03 15:10:40 c'est à dire que à part si vous développez ou jouer avec des modules assez souvent, vous utilisez pour ainsi dire jamais cette chose juil. 03 15:11:01 ** 1.3. modinfo juil. 03 15:11:07 Un autre outil très simple mais très pratique est modinfo qui nous permet d'avoir des informations sur un module en particulier. Par exemple, vous pouvez faire un sudo modinfo snd (ou tout autre module qui vous chante bien sûr). Nous verrons plus tard où ce trouve ces informations au niveau du module lui-même ;) juil. 03 15:11:43 Notez que la sortie peut être allégée en ajoutant l'option -F sachant que les paramètre peuvent être author, description, license, param, depends, et alias (dixit la page de manuel). On peut donc faire par exemple : juil. 03 15:11:56 $ sudo modinfo -F author snd juil. 03 15:12:07 je sais plus qui posait la question tout à l'heure juil. 03 15:12:17 pour connaître les paramètres d'un module en particuliers juil. 03 15:12:22 illovae: moi juil. 03 15:12:26 il suffit de faire sudo modinfo --show-depends snd juil. 03 15:12:36 par contre tu as pas l'explication de ces paramètres là juil. 03 15:12:44 pour les avoir il faudra faire autrement mais j'y reviendrai juil. 03 15:13:02 (vas-y Golffies pose ta question :p) juil. 03 15:14:14 illovae: la commande ne marche pas , --show-depend n'est pas un parametre reconnue de modinfo juil. 03 15:14:17 (faut taper plus vite Golffies :p) juil. 03 15:14:23 Phillipe nous précise que modinfo s'exécute sur tout module, chargé ou non juil. 03 15:14:34 show-depends pardon termitor juil. 03 15:14:37 j'ai oublié le s à la fin :) juil. 03 15:14:43 Golffies: oui oui tout à fait juil. 03 15:14:44 meme avec le s juil. 03 15:14:45 modinfo: unrecognized option '--show-depends' sur debian ? juil. 03 15:14:56 idem gentoo juil. 03 15:15:00 modifin --version vous dit quoi ? juil. 03 15:15:03 modinfo* juil. 03 15:15:15 module-init-tools version 3.12 juil. 03 15:15:16 y a t il un outils qui permet de visualiser les dependances sour format hierachique comme "tree" juil. 03 15:15:24 bon j'ai module-init-tools version 3.6 ici juil. 03 15:15:27 module-init-tools version 3.11.1 juil. 03 15:15:29 module-init-tools version 3.4 juil. 03 15:15:36 peut-être ça a été enlevé, je regardera le changelog... juil. 03 15:15:57 doit y avoir une autre façon de faire avec les nouvelles versions, merde je suis deprecated :@ juil. 03 15:16:33 bon on a les depends dans la sortie standart de modinfo juil. 03 15:16:35 c'est une option de modprobe juil. 03 15:16:37 pas de modinfo juil. 03 15:16:43 dpkg -L module-init-tools | grep sbin | cut -d/ -f 3 | while read a; do echo $a; man $a | grep depends; done juil. 03 15:16:55 --> rbnt (~ubuntu@2001:470:1f09:12:219:7eff:fe68:3dc2) a rejoint #u-classroom juil. 03 15:17:06 haha itzhack :] juil. 03 15:17:10 je fais mon boulet, merci itzhack juil. 03 15:17:17 merci itzhack juil. 03 15:17:24 haha je l'ai plus loin dans mon cours en plus /o\ juil. 03 15:17:31 bon c'était mon boulet time du jour juil. 03 15:17:40 désolé juil. 03 15:17:53 bon on va continuer quand même :p juil. 03 15:17:59 ** 1.4. insmod juil. 03 15:18:04 Ceci est l'outils qui permet de charger un module. Il est très peu utilisé car on lui préfère modprobe qui a une gestion plus "intelligente" des modules. Nous allons y revenir. juil. 03 15:18:22 ** 1.5. rmmod juil. 03 15:18:29 Comme vous le savez (ou comme vous vous en doutez) rmmod sert à décharger un module. Il est encore beaucoup utilisé même si on lui préfère l'option -r de modprobe. juil. 03 15:18:38 --> ameen (~ubuntu@2001:470:1f09:12:21d:d9ff:fe35:152a) a rejoint #u-classroom juil. 03 15:18:58 Golffies dit en pv qu'on laisse tomber insmod et rmmod juil. 03 15:19:01 je dirais non pas vraiment juil. 03 15:19:07 parce qu'ils ont leurs utilités juil. 03 15:19:13 ce sont des outils très très basiques juil. 03 15:19:20 donc si vous voulez gérer vous-même tout de a à z juil. 03 15:19:30 c'est insmod et rmmod qu'il faut utilisé juil. 03 15:19:43 bon après le gros des modutils c'est : modprobe bien sûr juil. 03 15:19:50 ** 1.6. modprobe juil. 03 15:19:54 Maintenant le gros morceau. juil. 03 15:19:59 modprobe est l'outils de prédilection pour charger et décharger des modules. C'est un peu le couteau suisse des modules. Avec lui insmod et rmmod deviennent carrément useless. juil. 03 15:20:23 (useless pour Golffies ça veut dire inutile) juil. 03 15:20:31 :) juil. 03 15:20:39 Son principal atout est de gérer comme un grand les dépendances... qui peuvent être diablement complexe parfois. On peut en voir un aperçu avec les modules pour gérer le son : juil. 03 15:20:50 $ lsmod | grep snd juil. 03 15:21:02 Il utilise pour ce faire le fichier modules.dep cité plus haut ce qui implique qu'il soit à jour. juil. 03 15:21:13 modprobe permet aussi par exemple de lister les dépendances d'un module particulier grâce à l'option --show-depends. Par exemple, on peut voir les dépendances directes du modules snd : juil. 03 15:21:19 $ sudo modprobe --show-depends snd juil. 03 15:21:23 (le fameux donc :]) juil. 03 15:21:31 Et aussi les dépendances de ces dépendances : juil. 03 15:21:36 $ sudo modprobe --show-depends snd-pcm-oss juil. 03 15:22:04 Notons aussi que modprobe a une option -l qui permet de faire une recherche de module existant. Mais la page de manuel indique que find et basename sont des outils certainement plus efficient pour faire une recherche correcte ;) Cependant pour des recherches simples, ça suffit largement (et c'est d'autant plus rapide qu'elle utilise modules.dep pour faire sa recherche). juil. 03 15:22:23 bon y'a pas mal d'options à passer à modprobe juil. 03 15:22:32 <-- smarter est parti (Remote host closed the connection) juil. 03 15:22:34 je vais pas en faire le tour, ça sert pas vraiment à grand chose selon moi juil. 03 15:22:52 et la page de manuel est vraiment clair donc... juil. 03 15:22:56 ça va pour tout le monde ? juil. 03 15:22:57 des questions ? juil. 03 15:23:06 illovae: pas utile de faire sudo si on veut juste avoir des info avec modprobe et modinfo juil. 03 15:23:09 yoclif: tu vas bien :p ? juil. 03 15:23:13 boogie777: aussi :p ? juil. 03 15:23:17 modprobe est la seule commande à passer en super utilisateur ? juil. 03 15:23:23 je suis studieusement juil. 03 15:23:26 extase ; ) juil. 03 15:23:40 termitor: en effet, uniquement si tu comptes avoir accès à /proc/modules.dep juil. 03 15:23:48 illovae: modprobe utile rmmod modinfo et d'autre outile, c'est un script qui va permettre la gestion des dependance en plus juil. 03 15:24:00 Golffies: alors la commande pour passe en mode "root" c'est sudo juil. 03 15:24:09 Golffies: modprobe est bien le "couteau-suisse" pour les modules juil. 03 15:24:40 oki juil. 03 15:24:41 sudo modprobe --show-depends snd renvoie une simple info, ou execcute une action ? juil. 03 15:24:43 termitor: oui oui bien sûr que modprobe utilise insmod et rmmod, son intérêt est simplement le côté d'un part automatique de la chose juil. 03 15:24:47 mais aussi sa configuration simple juil. 03 15:25:00 termitor: modprobe t'évite simplement de gérer les modules tout seul par toi-meme juil. 03 15:25:04 (ouarf tu peux pas faire un effort pour l'orthographe termitor ? mon chat vomit du sang la) juil. 03 15:25:10 Golffies: non ça renvoie une simple information juil. 03 15:25:37 termitor: par exemple sans modprobe, il faudrai que tu gères toi-meêm les dépendances quand tu charges un module juil. 03 15:25:44 termitor: là c'est modprobe qui fait tout tout seul juil. 03 15:25:51 termitor: avec alsa notamment c'est méga utile juil. 03 15:26:05 prend les dépendances et les sous-dépendances de snd par exemple juil. 03 15:26:16 sans modprobe, faudrait que tu les trouves une à une et que tu les charges une à une juil. 03 15:26:28 modprobe est vraiment fait pour être user-friendly quoi juil. 03 15:26:59 (ça permet aussi d'avoir un outils de référence, pour d'autres services, genre udev, mais on va y revenir) juil. 03 15:27:11 ça c'est ok ? juil. 03 15:27:14 oui juil. 03 15:27:17 bien juil. 03 15:27:22 *** 1.6.1. Configuration juil. 03 15:27:29 Le second très gros avantage de modprobe est sa configuration. Historiquement, il a un fichier de configuration /etc/modprobe.conf mais qui est considéré comme deprecated. En effet, on lui préfère le dossier /etc/modprobe.d/ qui permet une organisation plus fine. On retrouve dans ce dossier les aliases, les blacklists, etc. Normalement ce dossier est plutôt bien fourni. juil. 03 15:27:47 alors je vais pas vous proposer une configuration aux petites oignons pour deux raisons : juil. 03 15:28:09 la première c'est que celle par défaut des devs des modutils est déjà bien et ensuite, ça dépend de votre matos juil. 03 15:28:15 donc je peux rien faire de générique juil. 03 15:28:32 on va juste faire de la description à nouveau, et je vais quand même vous montrer deux trois petites choses que moi j'ai fait sur ma machine juil. 03 15:28:35 pour vous donner une idée juil. 03 15:29:04 /etc/modprobe.d/ permet de configurer le comportement de l'utilitaire modprobe, ou bien de blacklister (empêcher) le démarrage de certains modules (au boot) ? juil. 03 15:29:32 Golffies: et bien le dossier /etc/modprobe.d/ est le dossier où se place les configurations pour modprobe ; _dont_ le blacklistage donc juil. 03 15:29:51 Il est important de comprendre que modprobe est un élément essentiel du système au delà de l'utilisation que l'end user peut lui-même en faire. Je m'explique : juil. 03 15:30:00 $ cat /proc/sys/kernel/modprobe juil. 03 15:30:07 On voit ici que le kernel est renseigné sur le PATH de modprobe. En effet, lors de son lancement le kernel via udev va lister les périphériques branchés et va utilisé modprobe pour lancer les modules appropriés lors du boot. Ainsi seul les LKMs nécessaires au bon fonctionnement seront lancés via modprobe. juil. 03 15:30:27 (je réduit au maximum hein, c'est un plus compliqué que ça) juil. 03 15:30:36 Cependant udev a une gestion dynamique des noeuds de périphériques. Ainsi, dans le cas d'un périphérique parfaitement reconnu, quand il n'est pas branché lors du boot, le module n'est pas chargé, épargnant la mémoire. juil. 03 15:30:49 MAIS quand vous allez brancher votre webcam, udev va la repérer et - selon des rêgles prédéfinie - va lancer modprobe qui d'une part vérifiera si un module existe pour ce périphérique, puis vérifiera qu'il n'est pas déjà lancé auquel cas il le lancera avec sa tripotée de dépendances. Et cela de façon parfaitement transparente grâce à udev. juil. 03 15:31:13 ça va pour tout le monde ça ? juil. 03 15:31:21 vous voulez des précisions ? juil. 03 15:31:38 illovae: oui, va tu aborde la configuration specifique de la gestion des modules au boot ? juil. 03 15:31:39 (ca va, et non, pour faire simple) juil. 03 15:31:50 (si vous voulez voir des rêgles udev elles sont dans /lib/udev/ et dans /etc/udev/) juil. 03 15:32:14 termitor: oui, plus ou moins, car udev se charge de la majorité, mais on va voir comment on peut y mettre notre grain de sel juil. 03 15:32:29 termitor: à nouveau, faire un exemple générique est difficile, car ça dépend beaucoup de votre configuration et de votre matos juil. 03 15:32:41 gapz: keukinou juil. 03 15:32:49 illovae: par exemple , je voudrais pouvoir booter sur du btrfs ... juil. 03 15:33:03 Pour résumer, au démarrage udev décide des modules à charger, en fonction du matériel détecté plus ou moins bien, et modprobe fait le boulot ? juil. 03 15:33:25 oui juil. 03 15:33:35 termitor: et bien simplement, il faut avoir le module, le système de fichier approprié et le boulot va être fait automatiquement juil. 03 15:33:39 oui ca va pour moi juil. 03 15:33:41 Golffies: non au demarage , il y a l'initrd qui prend la main en premier , je pense ! mais ca serais interesant de definir plus precisement cela ! juil. 03 15:33:56 termitor: l'avantage de udev et de modprobe c'est que tout est automatisé (enfin l'avantage, tout le monde n'est pas d'accord) juil. 03 15:34:22 (l'avantage ou le probleme quoi :)) juil. 03 15:34:43 termitor: non je vais pas remonter aussi loin, sinon on finira jamais les modules, c'est plutôt un cours sur le kernel en lui-même qui pourrait mieux répondre à ça juil. 03 15:34:51 oki juil. 03 15:35:00 Golffies: pour dire les choses clairement juil. 03 15:35:14 Golffies: udev a des rêgles de détection de matériels juil. 03 15:35:54 quand un matériel est détecté, cette information est utilisé pour lancer modprobe, résoudre les dépendances et lancé le module qui va prendre en charge ton périphérique juil. 03 15:36:12 mais là on s'écarte, parce que pour bien comprendre ça, il faut rentrer dans les configurations de règles d'udev juil. 03 15:36:29 mon propos était juste de vous montrer que modprobe n'est pas simplement un outils pour l'end-user juil. 03 15:36:35 c'est une partie intégrante du système juil. 03 15:36:49 un des maillons de la chaine qui permet à votre machine de booter et d'avoir votre système up juil. 03 15:37:10 c'est beau, on dirait de la poésie juil. 03 15:37:20 termitor: je comprend que ça peut être frustrant mais je peux pas partir sur l'initrd et sur udev sinon on va pas s'en sortir :p juil. 03 15:37:22 illovae: un exemple d'info que udev récupère du matériel est idVendor, par exemple... Est-ce suffisant pour trouver le bon module? JE ne vois pas trop comment? juil. 03 15:37:23 Donc si des modules sont blacklistés, udev va demander à modprobe de les charger, et modprobe va ignorer la requête. Mais quand la machine démarre, l'initrd peut lancer des modules indépendament de la détection du matériel faite par udev ? Je dois pas bien comprendre. juil. 03 15:37:24 gerard_: :> juil. 03 15:37:55 bloomer: ça dépend du matos juil. 03 15:38:14 pour des trucs très compliqué les règles sont forcément plus compliqué juil. 03 15:38:21 mais voilà un exemple simple juil. 03 15:38:34 udev va détecter un disque hd* et le reconnaître comme générique juil. 03 15:38:46 il va simplement permettre de lancer le module générique juil. 03 15:38:54 Golffies: quand tu parle du demarage, c'est avant le montage du systeme de fichier racine ou apres ? apres le montage udev fait le boulot , avant c'est le initrd , et la c'est un cour a part comme dit illovae juil. 03 15:39:10 bloomer: tu peux voir les rêgles dans /lib/udev/ ça va être plus simple pour comprendre comme ça marche juil. 03 15:39:22 termitor: oui tout à fait juil. 03 15:39:39 (j'aurai pas dû commencer à parler d'udev, si on continue on va sortir du sujet :p) juil. 03 15:40:14 à la limite faudrai prévoir un court sur udev, parce que c'est lui qui gère tout ça tout seul, avec on peut changer la façon dont le matériel et détecter et la façon dont il est recnnu par le système juil. 03 15:40:15 perso en tout cas c'a ma bien eclairé .Thx juil. 03 15:40:21 illovae: c'est ok, je vois ça :-) juil. 03 15:40:23 mais je suis désolé, je vais pas rentrer la dedans, ça sort vraiment du cours juil. 03 15:40:50 ça va pour tout le monde ? juil. 03 15:40:55 oui juil. 03 15:40:57 yep juil. 03 15:41:10 ok juil. 03 15:41:11 oui pourquoi pas programmer un cours sur udev ? juil. 03 15:41:16 gerard_: et ouai je sius pouet un peu :] juil. 03 15:41:22 yoclif: ouai ça pourrait être très sympas juil. 03 15:41:30 et jouer avec dans une machine virtuelle, ça pourrait être drole juil. 03 15:41:39 ("pourquoi pas" => trouve quelqu'un qui a du temps pour le faire :)) juil. 03 15:41:49 gapz: tu le fais :p ? juil. 03 15:41:51 :) juil. 03 15:41:53 non ? juil. 03 15:42:16 (désolé je roulais une clope) juil. 03 15:42:19 bon on continue juil. 03 15:42:25 Comme sous-entendu ci-dessus, la configuration de modprobe accepte un jeu de commandes assez utile : juil. 03 15:42:36 (genre tu as même pas préparé ta petite reserve) juil. 03 15:42:39 (dans la configuration s'entend) juil. 03 15:42:48 **** 1.6.1.1. aliases juil. 03 15:42:53 Tout d'abord les alias : ils sont simplement utilisé afin de faciliter l'appel de module. Généralement, c'est l'équipe de module-init-tools qui s'occupe de ça. Vous pouvez voir la liste par défaut : juil. 03 15:43:03 $ less /etc/modprobe.d/aliases juil. 03 15:43:14 bon ici aussi c'est pour l'info juil. 03 15:43:26 à moins de faire des choses exécivement compliqué, l'end-user se sert jamais d'alias juil. 03 15:43:38 **** 1.6.1.2. blacklist juil. 03 15:43:43 Celui-là non plus n'est pas difficile à comprendre. Il arrive parfois que deux modules supportent un certain type de périphérique, ou bien encore qu'un module prétend pouvoir prendre un charge ce périphérique alors que ce n'est pas le cas. On utilisera donc blacklist pour contrarier le chargement automatique de ce module. juil. 03 15:43:58 s/un charge/en charge/ juil. 03 15:44:07 Par exemple, le module de4x5 prend en charge certains types de carte réseau. Mais il a été supplanté par le module tulip. On retrouve donc dans /etc/modprobe.d/blacklist une entrée blacklist de4x5. juil. 03 15:44:24 (oui j'aime bien les modules dont plus personne ne se sert comme exemple :)) juil. 03 15:44:43 c'est un exemple que j'ai chez moi juil. 03 15:44:46 --> lekernel (~azerty0@abo-22-96-68.mrs.modulonet.fr) a rejoint #u-classroom juil. 03 15:44:55 j'ai pas vérifié que le module de4x5 était blacklisté par défaut sur toutes les distros juil. 03 15:45:03 mais vous pouvez regarder si ça vous chante juil. 03 15:45:07 illovae: je n'ai pas de /etc/modprobe.d/aliases juil. 03 15:45:15 termitor: ah, c'est encore mieux juil. 03 15:45:21 termitor: tu as un fichier /etc/modprobe.conf ? juil. 03 15:45:26 non juil. 03 15:45:34 termitor: sous debien c'est alises.conf juil. 03 15:45:40 merci brendel juil. 03 15:45:40 Dans le cas où un blacklist cx8802 s'avère inopérant (cx8802 continue à se charger), qui est le coupable ? juil. 03 15:45:48 désolé, je connais pas bien debian juil. 03 15:46:03 Golffies: alors ça c'est une bonne question juil. 03 15:46:08 brendel: quelle repertoire ? juil. 03 15:46:10 le module cx8802 sert à quoi ? juil. 03 15:46:15 termitor: /etc ? juil. 03 15:46:20 non juil. 03 15:46:20 non juil. 03 15:46:21 Golffies, rm, mv :) juil. 03 15:46:22 termitor le même /etc/modprobe.d/aliases.conf juil. 03 15:46:35 (salut lekernel :)) juil. 03 15:46:38 y0 juil. 03 15:46:41 non brendel juil. 03 15:46:49 * lekernel 10 ans de rm -f des modules qui l'emmerdent juil. 03 15:46:55 lekernel: haha juil. 03 15:47:04 ceci dit oui c'est un problème des distros majeures juil. 03 15:47:20 comme le disait gapz tout à l'heure, on se retrouve avec 1000 modules sur notre système dont on a pas besoin... juil. 03 15:47:26 further? juil. 03 15:47:30 Golffies: je sais pas trop répondre à ta question là, il faudrait plus de détails juil. 03 15:48:14 **** 1.6.1.3. install juil. 03 15:48:17 modules.alias est dans /lib/modules/ juil. 03 15:48:30 termitor: ok juil. 03 15:48:35 (qu'est-ce qu'il peut en dore comme connerie ce gapz) juil. 03 15:48:46 (et gpocentek est même pas la pour le reprendre /o\) juil. 03 15:48:49 c'est marrant que tu les ai pas dans /etc/modprobe.d/ aussi termitor ; je connais pas la politique de debian à ce sujet juil. 03 15:49:09 on continue ou vous avez d'autres remarques ? juil. 03 15:49:12 illovae: ubuntu 10.04 juil. 03 15:49:15 y0 lekernel juil. 03 15:49:16 :) juil. 03 15:49:17 non c'est bon juil. 03 15:49:25 termitor: oui oui mais je pense qu'ils doivent reprendre la politique de debian sur le sujet juil. 03 15:49:47 perso je suis sur une distro "by default" donc je connais mal les modifications faites par les distros majeures juil. 03 15:50:01 illovae: si les alias depende du kernel , c'est plus logique de le retrouver dans une localisation specifique au kernel juil. 03 15:50:14 termitor: alors j'ai pas compris la remarque juil. 03 15:50:20 les alias n'ont rien à voir avec le kernel pour le coup juil. 03 15:50:26 les alias c'est juste pour faciliter la configuration de modprobe juil. 03 15:51:07 genre alsa utilise beaucoup les alias pour avoir quelque chose de clair juil. 03 15:51:10 illovae: oui , mais chaque kernel installer peuvent avoir des config de module differente, donc logiquement ce fichier de config doit dependre du kernel , il ne peut etre dans un repertoire qui n'en depent pas juil. 03 15:51:14 lekernel: oui, je peux toujours renommer ou supprimer les modules qui se chargent à tort. C'est en fait ce que j'avais fini par faire. Mais ça reste frustrant de ne pas savoir pourquoi un blacklist reste sans effet. juil. 03 15:51:44 termitor: oui mais /etc/ dépend du kernel, cependant ta remarque est juste, le chercher dans /lib/modules/ est complètement logique juil. 03 15:52:05 enfin "dépend du kernel" ça veut rien dire pour le coup juil. 03 15:52:12 Golffies: /etc/modules juil. 03 15:52:19 c'est modprobe qui a besoin de ces alias juil. 03 15:52:35 on continue ? juil. 03 15:52:38 oui juil. 03 15:52:41 yes juil. 03 15:52:50 ça va j'ai pas perdu tout le monde ^^' ? juil. 03 15:52:58 **** 1.6.1.3. install juil. 03 15:52:58 que se pass t il si on blackliste un module, qui est charge par ailleurs en tant que dependance d un autre module juil. 03 15:53:25 yoclif: et bien en toute logique, si la dépendance n'est pas satisfaite, le module en question ne pourra pas se charger correctement juil. 03 15:54:04 après si tu tiens à ce que ce module n'utilise pas cette dépendance, il faut revoir le module au niveau du code pour l'en décharger juil. 03 15:54:12 yoclif: t'as un exemple pratique ? juil. 03 15:54:17 ou c'était par curiosité ? juil. 03 15:54:23 (ou pour faire chier ?) juil. 03 15:54:30 (: juil. 03 15:54:37 par curiosite juil. 03 15:54:40 ok :) juil. 03 15:54:42 alors on continue juil. 03 15:54:51 la commande *install* donc juil. 03 15:55:04 **** 1.6.1.3. install juil. 03 15:55:08 install est très puissant et très utiliser car il permet de lancer des commandes. Je vais prendre un exemple concret. Mon laptop a plusieurs détecteurs de mouvement et possède une technologie qui, lorsque celui tombe, rabat le bras du disque dur pour éviter tout dégât. Le module qui permet de gérer ceci est hdaps. juil. 03 15:55:19 s/utiliser/utilisé/ juil. 03 15:55:29 Il se trouve que j'ai aussi besoin du module tp_smapi qui lui permet /principalement/ de gérer ma batterie. Cependant, il implémente aussi certaines fonctions déjà remplies par hdaps (mais pas toute !). juil. 03 15:55:49 L'idée est donc que je dois lancer d'abord tp_smapi pour profiter du support de ma batterie *puis* hdaps pour profiter de l'active protection system pour mon disque dur. juil. 03 15:56:04 Ici il n'y a pas de relation de dépendances entre les deux. Si je modprobe tp_smapi, il ne me lancera pas hdaps. Je pourrais simplement donc mettre un modprobe tp_smapi puis un modprobe hdaps dans un fichier au sein de /etc/modprobe.d/. juil. 03 15:56:23 Mais voilà, chez moi c'est udev qui lance hdaps. Mais il faut pourtant que tp_smapi soit lancé avant. juil. 03 15:56:42 (il le lance car il détecte mon acceléromètre) juil. 03 15:56:49 Donc, pour être sûr et certain que les modules se lancent dans l'ordre voulu, j'ai quelque chose de ce genre dans /etc/modprobe.d/tp_smapi.conf juil. 03 15:56:58 install hdaps /sbin/modprobe -i tp_smapi ; /sbin/modprobe -i hdaps juil. 03 15:57:07 Ce qui a pour résultat que lorsqu'udev - au moment du boot - détecte mon accelerometre, il appelle modprobe pour lancer hdaps. Avec cette configuration modprobe trouve cette ligne et exécute la commande indiquée : il me lance d'abord tp_smapi *puis* hdaps. juil. 03 15:57:26 (Notez que l'option -i sert simplement à empêcher de relancer à nouveau la commande install). juil. 03 15:57:48 c'est ok cette commande install ? juil. 03 15:58:17 pourquoi le -i juil. 03 15:58:28 yoclif: regarde la ligne juil. 03 15:58:38 Oui, c'est ok juil. 03 15:58:42 nickel : l'exemple est limpide juil. 03 15:58:45 là ça dit "quand je lance hdaps, je dois lancer avant tp_smapi *puis* hdaps juil. 03 15:58:54 ok juil. 03 15:59:03 yoclif: si je met pas le -i il risque de me refaire la commande depuis 0, car à la fin il appelle à nouveau hdaps juil. 03 15:59:20 le nom des fichiers de conf dans /etc/modprobe.d/ est indifférent ? juil. 03 15:59:22 qui donc va rappeler tp_smapi et qui va lancer ensuite hdaps, mais qui doit appeler tp_smapi etc, etc juil. 03 15:59:24 ok merci juil. 03 15:59:30 Golffies: oui tout à fait juil. 03 15:59:34 merci juil. 03 15:59:46 **** 1.6.1.4. remove juil. 03 15:59:53 La commande remove sert à faire exactement l'inverse de install. Je peux donc avoir une ligne de ce genre : juil. 03 16:00:03 remove hdaps /sbin/modprobe -r hdaps ; /sbin/modprobe -r tp_smapi juil. 03 16:00:11 Quand je décharge hdaps, il me décharge aussi tp_smapi. juil. 03 16:00:24 (en pratique je l'ai pas, mais c'est pour l'exemple) juil. 03 16:00:29 pas besoins de -i ici? juil. 03 16:01:07 brendel: non pas du tout juil. 03 16:01:14 un fois que c'est décharger, il cherche plus juil. 03 16:01:25 daccord juil. 03 16:01:48 donc on retrouve ici des commandes que l'on connait déjà juil. 03 16:01:52 modprobe monmodule pour le lancer juil. 03 16:01:56 et modprobe -r pour le décharger juil. 03 16:02:05 (je ne l'ai pas préciser avant, pensant que ça serait déjà acquis) juil. 03 16:02:22 alors qiu me parlait des options tout à l'heure ? juil. 03 16:02:45 on y vient maintenant en tout cas juil. 03 16:02:51 **** 1.6.1.5. options juil. 03 16:02:56 Comme le montre modinfo, certains modules acceptent des options. Je vais à nouveau prendre mon cas personnel pour vous expliquer cela. J'utilise le module thinkpad_acpi qui me permet d'avoir accès aux senseurs thermaux, aux touches de fonctions et autres. Par défaut le ventilateur est complètement gérer par le kernel. Cependant, en fonction des situations, je veux pouvoir rêgler moi-même la vitesse du ventilo. juil. 03 16:03:20 (alors qunad on lance modinfo c'est le 'param' je le rappelle pour la forme) juil. 03 16:03:45 J'ai donc été faire un tour sur la documentation du module en question et j'ai trouvé qu'il faut simplement ajouter le paramètre fan_control=1 lors du chargement du module. juil. 03 16:03:59 Ce qui donne un fichier /etc/modprobe.d/thinkpad_acpi.conf avec dedans : juil. 03 16:04:06 options thinkpad_acpi fan_control=1 juil. 03 16:04:27 ainsi en rechargeant mon mondule, j'aurai accès au contrôle de mon ventilo juil. 03 16:04:46 alors la question c'est "ok on a les paramètres par défaut d'un module, mais comment on sait à quoi ils servent quand c'est pas explicite" juil. 03 16:04:55 et bien y'a pas de secret, faut se référer à la documentation du module juil. 03 16:05:13 elle se trouve généralement dans les sources de votre module, ou dans un .txt sur le site de l'auteur juil. 03 16:05:17 comment on accede a la doc des modules? juil. 03 16:05:29 par exemple, pour thinkpa_acpi, je l'ai trouvée ici : http://ibm-acpi.sourceforge.net/README juil. 03 16:05:32 yoclif: :) juil. 03 16:05:41 donc il faut un travail de recherche de votre part juil. 03 16:05:45 généralement c'est pas trop difficile juil. 03 16:05:49 desole toujours une ligne de retard :-D juil. 03 16:05:58 il suffit de faire une recherche avec le nom du module + linux/module etc juil. 03 16:06:14 illovae: ton bot britney est inspiré de ce site ? http://britneyspears.ac/lasers.htm ? juil. 03 16:06:23 si vous récupérez vous même votre module, vous êtes pas loin d'avoir la documetation avec vous (un README ou HOWTO) juil. 03 16:06:31 en fait je pensais a ujn genre de man juil. 03 16:06:41 termitor: hahaha merci je connaissais pas je bookmark <3 juil. 03 16:07:11 des questions là dessus ? juil. 03 16:07:21 nop juil. 03 16:07:35 bon vous voyez que comme udev gère tout lui-même juil. 03 16:08:02 normalemnt tout ce que vous avez vous à faire ce sont des retouches pour ou bien utiliser le module que vous voulez en blacklistant celui qui se charge par défaut juil. 03 16:08:08 ok pour moi juil. 03 16:08:16 ou bien faire un ordonnancement dans la façon dont les modules se lancent juil. 03 16:08:32 ou encore bien sûr, en passant des options aux différents modules selon vos envies juil. 03 16:08:48 on va juste finir cette partie avec un petit paragraphe juil. 03 16:08:53 ** 1.7. AUTRES ? juil. 03 16:08:57 Nous avons vu ici les principaux outils permettant de gérer les modules, mais il en existe d'autres. Je crois que les deux dont je vais parler ne sont spécifique qu'aux debian-like. Je n'ai jamais utilisé ni l'un ni l'autre pour ma part, je les présente, histoire que vous en aillez entendu parler si ce n'est pas déjà le cas. juil. 03 16:09:11 Il existe modconf qui permet de façon graphique de spécifier quels modules vont être chargés au démarrage. Mais je crois qu'il n'est pratiquement plus utilisé, étant donné l'automatisation du processus (notamment grâce à udev). juil. 03 16:09:28 Il existe aussi un autre bien plus connu et qui se nomme module-assistant (ou m-a). Ce dernier suivant un ensemble de règles va simplement récupérer les sources (vanilla ou debian) d'un module ainsi que tout ce qu'il faut pour la compilation de celui-ci. juil. 03 16:09:41 Puis il va construire le paquet - en compilant donc - et l'installer (tout cela en fonction du noyau). Je sais que c'est pas mal utilisé pour intaller des drivers Nvidia par exemple. juil. 03 16:10:03 par contre, je crois que c'est un outils spécifique à debian juil. 03 16:10:10 illovae: c'est plutot dkms maintement ! juil. 03 16:10:12 (je le connais très mal cet outils, je peux pas en dire plus) juil. 03 16:10:16 termitor: ah bah en plus juil. 03 16:10:21 termitor: merci pour la remarque juil. 03 16:10:36 bon il vous manque quelque chose ? juil. 03 16:10:44 Juste pour comprendre dans quels cas utiliser remove. Forcer l'ordre de chargement des modules, ok, mais à quel moment est-il utile de forcer l'ordre de déchargement ? Pour que l'extinction de la machine soit propre par exemple ? juil. 03 16:10:46 (on peut dire que la partie 1 est cloturée, mais si y'a des questions) juil. 03 16:11:08 illovae: oui , les parametre que l'on peut mettre au boot dans la ligne kernel ou linux de grub , a quoi corresponde t'il ? juil. 03 16:11:08 Golffies: oui par exemple, ou bien quand tu veux lancer un module à toi en conflit avec un autre juil. 03 16:11:25 Golffies: si tu veux utiliser parfois module 1 et parfois module 2 mais qu'ils sont en conflit, alors tu fais une commande avec un remove juil. 03 16:11:51 termitor: alors ça se sont d'autres paramètres qui sont spécifique au kernel en lui-meme et non à ses modules juil. 03 16:12:06 termitor: ce sont des paramètres de boot, il ne faut pas confondre avec les paramètres de modules juil. 03 16:12:08 illovae: il y a encore beaucoup a faire dans le cour ? je vais devoir partir au coiffeur ! juil. 03 16:12:18 termitor: non c'est fini pour la première partie juil. 03 16:12:31 oki! bonne apres midi tout le monde juil. 03 16:12:31 pour la seconde, faut compter moins d'une heure je pense juil. 03 16:12:40 je relirer les logs :p juil. 03 16:12:43 termitor: y'aura lees logs de toute façon si tu veux finir :) juil. 03 16:12:44 voilà juil. 03 16:12:48 vous voulez faire une pause ? juil. 03 16:12:58 On fait une pause, et on reprend vers 16h40 juil. 03 16:13:03 ok juil. 03 16:13:05 bon j'espère que cette entrée en matière vous a pas trop saoulé juil. 03 16:13:10 ok juil. 03 16:13:10 non c cool juil. 03 16:13:28 non je parle pas sur skype moi Golffies :p juil. 03 16:13:30 text is life :p juil. 03 16:13:35 non cool juil. 03 16:13:52 ok donc on faire une pause de 10/15 minutes ça va à tout le monde ? juil. 03 16:14:01 ouah carrement pas !! J'suis archi content . juil. 03 16:14:11 boogie777: héhé :) juil. 03 16:14:11 Salut juil. 03 16:14:15 salut Honorat juil. 03 16:14:23 bon hop, on reprend dans 10 minute alors juil. 03 16:14:24 JE suis nouveau juil. 03 16:14:28 Kool pour la pause fumigene ! juil. 03 16:14:38 Honorat: bienvenue, mais tu arrives après la première partie malheureusement juil. 03 16:14:54 Honorat: on va faire une pause là, tu veux les logs pour voir de quoi on a parlé ? juil. 03 16:15:13 oui comme ca je vais boire un cafe, et recalibrer mes yeux !!! une ligne de decalage ca peu poser des problemes juil. 03 16:15:31 Non, je ne suis pas arrivé a l'heure mais j'ai quand même suivi un partie de la première partie juil. 03 16:15:39 Honorat: ah ok très bien :) juil. 03 16:15:46 Mais je vais quand même voir les log juil. 03 16:15:46 bon à tout de suite, PAUSE! juil. 03 16:15:55 Honorat: ok je les metterai en ligne après :) juil. 03 16:15:55 Ok juil. 03 16:16:15 pas de bp :) juil. 03 16:18:00 <-- rbnt est parti (Ping timeout: 252 seconds) juil. 03 16:20:48 --> rbnt (~ubuntu@fbx.tmplab.org) a rejoint #u-classroom juil. 03 16:26:55 termitor: je le trouve trop bien ton lien vers Britney Spears' Guide to juil. 03 16:26:58 Semiconductor Physics juil. 03 16:29:17 0406PM> en fait je pensais a ujn genre de man >> j'avais pas vu ta remarque juil. 03 16:30:08 yoclif: en fait non y'a pas de genre de man, pas mal de module sont écrit par des gens dans leur coin qui sont ensuite parfois mis dans les sources du kernel officiel, donc le manuel est généralement diffusé avec les sources ou sur le site du devel en question juil. 03 16:30:54 <-- jzGreen est parti (Quit: Leaving.) juil. 03 16:31:39 y a un repertoire documentation, c'est tjs bienvenue :) juil. 03 16:32:32 sinon ya ca qu'est bien je trouve: juil. 03 16:32:32 http://www.cse.iitb.ac.in/~prabhu/mtech1/seminar/selinux/Linux%20Kernel%202.6%20documentation.pdf juil. 03 16:32:44 ouai l'idéal c'est de l'avoir dans les sources et lors de l'installation de foutre tout ça dans docs/ mais bon c'est pas la norme quoi juil. 03 16:32:52 sur un module y a rarement bcp d'option juil. 03 16:32:57 l'equivalent c'est modinfo juil. 03 16:33:19 si l'auteur fait correctement son module, modinfo va renseigner correctement les options du module juil. 03 16:33:28 itzhack: ah sympas très sympas juil. 03 16:34:25 genesis: ouai mais dans mon exemple au dessus là pour thinkpad_acpi pour certaines options t'as des booleans ou pas, etc, et comme y'ne a un 15aine, avoir le man c'est mieux quoi juil. 03 16:34:37 après ouai, normalement si c'est bien et que les param sont bien explicites... juil. 03 16:34:41 ouaip pour ca y a thinkwiki ;) juil. 03 16:34:48 genesis: héhé voilà ^^ juil. 03 16:35:23 bon on va reprendre les loulous ? juil. 03 16:35:54 les toxicos sont encore en train de prendre leur dose mais bon, les logs c'est fait pour ca :o juil. 03 16:36:03 haha juil. 03 16:36:10 c'est non fumeur le /tmp/lab :0 ? juil. 03 16:36:39 la réponse n'est pas binaire juil. 03 16:36:49 vous êtes des vrais vous, pas de dépendances, juste du chinois à 4h du mat' en regardant le soleil se lever :] juil. 03 16:36:53 roscop: haha :} juil. 03 16:38:17 yoP sorry pour le retard ! juil. 03 16:38:32 tiens personne ne réagit à cette référence stallmanienne, j'en conclus que vous êtes tous fans :p juil. 03 16:38:40 boogie777: oh t'inquiètes juil. 03 16:38:44 on est pas à la minute :) juil. 03 16:39:41 britney: !!! juil. 03 16:39:47 !!! juil. 03 16:40:05 mouai je kiff le rice mais pour le coup j'etais resté bloqué sur un ananas juil. 03 16:40:19 boogie777: haha bon appétit :) juil. 03 16:41:12 koOl je ferais bien tourné ...mais j'arrive pas au push dans votre /tmp ;-) juil. 03 16:41:28 héhé juil. 03 16:42:00 bon donc vamos ? juil. 03 16:42:14 allez hop juil. 03 16:42:23 sir yes sir ^^ juil. 03 16:42:23 bref alors cette deuxième partie va être moins... euhm juil. 03 16:42:29 balisée que la première si je puis dire juil. 03 16:42:38 et va aussi durer beaucoup moins longtemps je pense juil. 03 16:42:56 * 2. AUTOPSIE ET COMPILATION/INSTALLATION D'UN MODULE juil. 03 16:43:02 Dans cette partie nous allons voir en gros comment est construit un module. C'est-à-dire que nous allons regarder un fichier source très basique d'un module Hello World. Ce module ne fera rien d'autres que d'afficher un petit message dans les logs lors de son lancement. juil. 03 16:43:15 C'est écrit en C, mais n'ayez crainte, c'est on ne peut plus simple, même pas besoin des bases pour comprendre ce qu'il se passe. L'intérêt est que cela va nous permettre de comprendre de façon clair qu'un module est bien un 'bout' de kernel et non quelque chose en dehors comme cela a déjà été dit. juil. 03 16:43:37 bon j'imagine qu'il y en a qui doivent coder en C juil. 03 16:43:53 mais on va pas du tout s'engager vers une cours de LKM hacking n'est-ce pas juil. 03 16:43:59 s/une/un/ juil. 03 16:44:10 à la base, je voulais vous faire installer un vrai module juil. 03 16:44:26 (notamment pour webcam comme ça a été annoncer) mais comme on a pas tous la même webcam non reconnue par défaut juil. 03 16:44:35 y'enrai deux qui se serait amusé et les autres qui auraient regardés juil. 03 16:44:46 donc on va s'installer comme dit un truc tout bête, et voir le résultat juil. 03 16:44:52 --> jzGreen (~jz@2001:470:1f09:12:21e:33ff:fe1d:8e1d) a rejoint #u-classroom juil. 03 16:44:56 tout le monde a déjà compilé/installé un module ? juil. 03 16:45:07 je pense à yoclif ou boogie777 par exemple ? juil. 03 16:45:42 bon on va commencé par installer les dépendances requises juil. 03 16:45:44 nop pour moi . juste le kernel ..sorry : ( juil. 03 16:45:49 boogie777: non c'est bien c'est bien juil. 03 16:46:11 c'est un cours orienté débutant, si tout le monde code du LKM à longueur de journée, la session devient inutile :p juil. 03 16:46:19 no, j'ai essaye hier, mais sans success juil. 03 16:46:28 donc on va d'abord installer les dépendances qu'il faut pour jouer juil. 03 16:46:36 alors avant tout, il vous faut les sources de _votre_ kernel juil. 03 16:46:41 et aussi gcc et make juil. 03 16:46:48 sous debian, ça doit donner quelque chose du genre juil. 03 16:47:06 sudo apt-get install linux-headers-$(uname -a) build-essentials juil. 03 16:47:27 si vous êtes sur une autre distro et que vous savez pas, demandez moi juil. 03 16:47:52 donc y'a besoins uniquement des headers juil. 03 16:48:42 brendel: oui juil. 03 16:48:53 les headers, ça correspond simplement aux sources quoi juil. 03 16:49:03 une fois que c'est installer vous aller les retrouver dans /usr/src/ juil. 03 16:49:05 j'ai lu un site pour fedora module dev, et il dit juste "su -c 'yum install kernel-devel' ". Pas besoin de compile un kernel avant juil. 03 16:49:25 illovae: C'est normal que la commande ne passe pas chez moi? juil. 03 16:49:26 jzGreen: pour le coup on va pas compiler le kernel juil. 03 16:49:33 Honorat: apt-get là ? juil. 03 16:49:40 Honorat: c'est quoi le message d'erreur ? juil. 03 16:49:44 Oui juil. 03 16:49:53 il faut peut-être activer des dépo juil. 03 16:49:57 dépôts tierces juil. 03 16:50:04 Impossible de trouver le packet juil. 03 16:50:10 illovae: excuse moi, ce serait pas plutot uname -r juil. 03 16:50:19 hahaha :} juil. 03 16:50:22 oui pardon juil. 03 16:50:29 allez deuxièmes boulettes juil. 03 16:50:31 DONC juil. 03 16:50:34 merci brendel juil. 03 16:50:44 sudo apt-get install linux-headers-$(uname -r) build-essentials juil. 03 16:50:52 je suis désolé, ça fait pas sérieux du tout juil. 03 16:51:19 ça s'installe pour tout le monde donc ? juil. 03 16:51:21 build-essential juil. 03 16:51:22 sans s juil. 03 16:51:26 itzhack: haha merci :} juil. 03 16:52:13 alors juste avant juil. 03 16:52:20 pour répondre à une question de début de session juil. 03 16:52:29 vous avez déjà pleins de modules sur votre distribution juil. 03 16:52:41 les modules ont une extention en .ko et se trouvent rangés dans /lib/modules/ juil. 03 16:53:22 vous pouvez aller fureter dedans, vous allez voir comme c'est propre juil. 03 16:53:34 find /lib/modules/ -iname '*.ko' | wc -l juil. 03 16:53:38 pour savoir combien vous en avez juil. 03 16:54:29 ensuite, prenez donc cette petite archive : juil. 03 16:54:30 $ wget http://edu.porneia.net/tmp/hello.tar juil. 03 16:54:47 ca s'installe, ma machine n est pas tres rapide juil. 03 16:54:52 et puis tar xvf hello.tar juil. 03 16:55:05 yoclif: pas de soucis, je blablate un peu en attendant que ça soit bon pour tout le monde juil. 03 16:55:08 d'ailleur sj'ia pas pensé juil. 03 16:55:16 itzhack: ça va aller pour la BP de /tmp/lab :] juil. 03 16:55:29 à 40Mo les sources *10 ça fait pas mal... juil. 03 16:55:37 s/pas// juil. 03 16:55:39 illovae: pas de probleme ;-) juil. 03 16:55:42 ok merci juil. 03 16:55:50 j'aurai dû demander avant, si c'est bon tant mieux juil. 03 16:55:57 yup... ca va vite juil. 03 16:56:01 ok juil. 03 16:56:18 donc un module n'est rien d'autres qu'un fichier écrit en language C et compilé juil. 03 16:56:43 et l'extension .ko veut simplement dire kernel object juil. 03 16:57:06 (avant on l'applait simplement .o mais pour fair ela distinction il a été rajouter le k) juil. 03 16:57:09 appelait* juil. 03 16:57:31 bien tout le monde a les sources installées et le tar hello.tar détarré dans un coin juil. 03 16:57:35 ? juil. 03 16:57:37 yoclif: ? juil. 03 16:57:38 yes juil. 03 16:57:55 yes juil. 03 16:58:09 illovae: C'est aussi normale que dans mon dossier module il n y ai pas de *.ko? juil. 03 16:58:24 Honorat: oui juil. 03 16:58:29 Honorat: pour l'instant on a que les sources juil. 03 16:58:41 l'idée c'est que vous avez un matos fictif et on vient de télécharger les sources juil. 03 16:58:53 comme c'est très basique, la manip va être très simple juil. 03 16:58:59 mais dans l'idée, ça ressemble toujours à ça juil. 03 16:59:07 alors on a dans notre hello/ deux fichiers juil. 03 16:59:12 un hello.c et un Makefile juil. 03 16:59:18 on reviendra que le Makefile après juil. 03 16:59:26 enfin c'est bon juil. 03 16:59:29 ouvrez donc le fichier hello.c juil. 03 16:59:30 C'est compris juil. 03 16:59:32 yoclif: ok cool :) juil. 03 16:59:36 $ less hello.c juil. 03 16:59:38 fait l'affaire juil. 03 16:59:53 y'a 4 parties mais deux seulement nous intéresse vraiment juil. 03 17:00:17 pour ceux qui n'ont jamais fait de C, les include en haut ça sert juste à faire appel à des fonctions déjà écrites juil. 03 17:00:23 histoire qu'on ai pas à réinventer la roue juil. 03 17:00:32 ensuite on voit des MODULE_LICENSE et autre juil. 03 17:00:37 souvenez-vous de modinfo juil. 03 17:00:49 c'est ici qu'on met ce genre d'informations juil. 03 17:00:58 elle ne sont pas obligatoire en tant que telle, mais très fortement conseillé juil. 03 17:01:03 surtout en ce qui concerne la license juil. 03 17:01:14 ensuite juil. 03 17:01:27 un module est constitué de deux choses essentielles et obligatoire a minima juil. 03 17:01:38 une fonction "start" et une fonction "end" juil. 03 17:01:44 static int __init init_hellow(void) juil. 03 17:01:48 >> ça c'est la fonction start juil. 03 17:01:57 et ça la fonction end : juil. 03 17:01:58 static void __exit cleanup_hellow(void) juil. 03 17:02:00 ok ? juil. 03 17:02:10 après chacune de ces fonctions vous voyez des {} juil. 03 17:02:13 dedans on a notre code juil. 03 17:02:17 qui est là tout simple juil. 03 17:02:21 printk juil. 03 17:02:28 ce qui signifie affiche tel message dans les logs juil. 03 17:02:48 le printk est une commande qui est déjà écrite et qui se trouve dans /usr/linux/kernel.h (iirc) juil. 03 17:03:09 ok c'est clair non ? c'est pas compliqué ? juil. 03 17:03:17 Golffies: ? boogie777 ? yoclif ? juil. 03 17:03:19 Merci, c'est clair juil. 03 17:03:24 c'est clair juil. 03 17:03:25 les autres non habitué au C ? juil. 03 17:03:35 clair juil. 03 17:03:42 ok juil. 03 17:03:50 sinon j'ai oublié de virer MODULE_SUPPORTED_DEVICE, c'était un test à moi, ça n'a rien à faire là juil. 03 17:03:53 je n'ai pas de /usr/linux/kernel.h juil. 03 17:03:57 ca vient de ces sorties les msgs dans kern.log etc .. juil. 03 17:04:11 boogie777: pardonc /usr/src/linux/kernel.h juil. 03 17:04:14 une typo de ma part juil. 03 17:04:44 pas grave il est en commentaire juil. 03 17:04:58 ouai la dernière ligne est en commentaire osef juil. 03 17:05:00 boogie777: /usr/src/linux/include/config/lock/kernel.h juil. 03 17:05:17 bref juil. 03 17:05:27 donc vous voyez bien ce que le module va faire ? juil. 03 17:05:34 quand on va le lancer, il va nous mettre une ligne dans les logs juil. 03 17:05:41 et quand on va le décharger il va en mettre une autre juil. 03 17:05:53 le développeur peut bien sûr ajouter d'autres fonctions qui lui semblent utiles juil. 03 17:06:01 voir même séparer le fichier en plusieurs histoire que ça soit clair juil. 03 17:06:09 mais ces deux fonctions sont juste essentielles juil. 03 17:06:21 Ok thx juil. 03 17:06:30 alors normalement il faut savoir qu'un programme en C juil. 03 17:06:40 _doit_ contenir une fonction main juil. 03 17:06:43 la fonction principale juil. 03 17:06:49 vous remarquez qu'ici il n'y en a pas juil. 03 17:06:51 et c'est normal juil. 03 17:07:01 le module est une partie intégrante du kernel juil. 03 17:07:18 donc il suffit juste de faire appel aux deux fonctions (init et exit) et ça suffit) juil. 03 17:07:30 vous pouvez fermer le hello.c juil. 03 17:07:38 dans mon ordi (fedora12), j'ai /lib/modules/2.6.32.14-127.fc12.i686.PAE/ mais /usr/src/kernels/2.6.32.14-127.fc12.i686 C'est un probleme, non ? juil. 03 17:07:53 jzGreen: non non pas de soucis juil. 03 17:08:21 merci illovae juil. 03 17:08:26 j'ai jamais vu cette façon de noter mais bon... juil. 03 17:08:31 je connais pas du tout fedora juil. 03 17:08:41 jzGreen: tu l'as installé avec yum ? juil. 03 17:08:55 oui je crois juil. 03 17:08:56 (le kernel je veux dire) juil. 03 17:08:59 ok très bien juil. 03 17:09:09 donc on va dire qu'on a une webcam qui est pas reconnue juil. 03 17:09:14 et là on a les sources pour les faire marcher juil. 03 17:09:19 la procédure est très simple juil. 03 17:09:34 on compile >> on transforme le language source en language binaire et on l'installe juil. 03 17:09:44 pour faire ça on utilise make juil. 03 17:09:51 (fourni par build-essential sous debian) juil. 03 17:09:59 donc on se met dans le dossier hello/ juil. 03 17:10:03 et on fait simplement make juil. 03 17:10:25 vous devez avoir un résultat de ce genre juil. 03 17:10:27 make -C /lib/modules/2.6.29.6-smp/build M=/home/illovae/q/hello modules juil. 03 17:10:27 make[1]: Entering directory `/usr/src/linux-2.6.29.6' CC [M] /home/illovae/q/hello/hello.o Building modules, stage 2. MODPOST 1 modules CC /home/illovae/q/hello/hello.mod.o LD [M] /home/illovae/q/hello/hello.ko juil. 03 17:10:32 make[1]: Leaving directory `/usr/src/linux-2.6.29.6' juil. 03 17:10:32 ok pour moi -> hello.ko juil. 03 17:10:37 yoclif: super juil. 03 17:10:45 c'est bon pour tout le monde la compilation ? juil. 03 17:11:00 yep juil. 03 17:11:37 très bien juil. 03 17:11:42 vous pouvez déjà faire un modinfo hello.ko juil. 03 17:11:56 vous allez retrouver les infos bien connues qu'on a d'habitude juil. 03 17:12:10 ensuite on va simplement charger le module depuis où on est juil. 03 17:12:12 juste avant juil. 03 17:12:15 ouvrez un autre terminal juil. 03 17:12:21 et fait une sudo tail -f /var/log/messages juil. 03 17:12:31 (il faut syslog de lancé, mais c'est par défaut chez tout le monde normalement) juil. 03 17:12:36 Pas besoin d'installer le module au préalable ? juil. 03 17:12:45 http://fedoraproject.org/wiki/Docs/CustomKernel juil. 03 17:12:48 Golffies: non on va faire sans, je le dirais à l'oral après juil. 03 17:12:57 une fois qu'on a les logs sous les yeux juil. 03 17:13:07 dans notre premier terminal on fait simplement sudo insmod hello.ko juil. 03 17:13:21 alors c'est /var/log/messages ou bien /var/log/syslog juil. 03 17:13:25 ou encore /var/log/klog juil. 03 17:13:36 il faut que ça soit les logs du kernel juil. 03 17:13:44 et chaque distribution gère ça à sa façon... juil. 03 17:13:47 très pratique pour le cours :] juil. 03 17:14:17 donc quand on fait sudo insmod hello.ko, il répond rien et vous redonne la main juil. 03 17:14:35 et normalement vous voyez un : juil. 03 17:14:37 Jul 3 17:11:11 EVA01 kernel: I am putting myself to the fullest possible use. juil. 03 17:14:40 dans vos logs juil. 03 17:14:44 5/5 juil. 03 17:14:48 coool juil. 03 17:14:56 yes juil. 03 17:15:00 Golffies: oui alors juil. 03 17:15:03 cool juil. 03 17:15:06 j'ia utilisé insmod parce qu'il est tout bête juil. 03 17:15:12 mais vous pouvez le faire avec modprobe bien sûr juil. 03 17:15:19 mais bon, c'est sortir la grosse artillerie pour rien quoi juil. 03 17:15:20 merci juil. 03 17:15:31 bon juil. 03 17:15:37 vous pouvez faire lsmod | grep hello juil. 03 17:15:40 pour le voir juil. 03 17:15:51 c'est rigolo, ça sert à rien, mais ça sert mon propos :p juil. 03 17:16:05 forcément vous avez deviné la suite juil. 03 17:16:09 sudo rmmod hello juil. 03 17:16:14 (regardez vos logs) juil. 03 17:16:23 alors vous remarquez que là je met pas le .ko pour le décharger juil. 03 17:16:41 It can only be attributable to human error juil. 03 17:16:44 normalement on met pas non plus de .ko quand on le charge juil. 03 17:16:46 pourtant ça marche si on laisse le .ko juil. 03 17:17:02 boctai11: alors c'est bien mais c'est pas un comportement par défaut juil. 03 17:17:14 quand on insmod hello il va aller chercher hello.ko dans /lib/modules/ juil. 03 17:17:38 chez moi par exemple si je fais sudo insmod hello juil. 03 17:17:40 j'ai droit à : juil. 03 17:17:42 insmod: can't read 'hello': No such file or directory juil. 03 17:17:49 simplement parce qu'il est pas installé où il faut juil. 03 17:17:54 quand on a un vraie modue juil. 03 17:17:57 module* juil. 03 17:18:04 on fait normalement des : juil. 03 17:18:07 make rules juil. 03 17:18:08 make juil. 03 17:18:10 make install juil. 03 17:18:22 ce qui a pour but d'aller l'installer tout seul dans /lib/modules/ juil. 03 17:18:41 par contre si vous voulez vous pouvez mettre le hello.ko à la main dans /lib/modules/ puis sudo depmod et enfin sudo insmod hello juil. 03 17:19:02 le depmod est useless là, c'est juste pour le placer juil. 03 17:19:05 make install ne fait rien d'autre que de le copier dans /lib/modules/ ? cad qu'on pourrait faire la même chose à la main ? juil. 03 17:19:12 Golffies: tout à fait juil. 03 17:19:12 <-- brendel est parti (Ping timeout: 260 seconds) juil. 03 17:19:26 alors quand vous téléchargerez un module juil. 03 17:19:32 le premier truc à faire c'est de lire le README juil. 03 17:19:34 pourquoi juil. 03 17:19:57 parceque certaines sources fournissent un script pour faire les choses totalement automatiquement juil. 03 17:20:08 par exemple juil. 03 17:20:21 le module quickcam pour logitech juil. 03 17:20:31 donne un quickcam.sh qu'il faut lancer et qui s'occupe juil. 03 17:20:39 1/ de vérifier si vous avez make, les headers, etc juil. 03 17:20:49 2/ de faire des vérifications plus basiques d'usage, de lancer la configuration juil. 03 17:20:54 3/ make et make install juil. 03 17:21:04 mais au final il fait la même chose que ce qu'on vient de faire juil. 03 17:21:34 Sous Debian, on recommande d'utiliser make cleaninstall plutôt que makeinstall. Le confirmes-tu ? juil. 03 17:21:35 qui est-ce qui m'a dit qu'il avait essayé d'installer un module hier sans succès ? juil. 03 17:21:52 Golffies: alors remet toi dans le dossier hello/ juil. 03 17:21:56 et fais un make clean juil. 03 17:22:09 tu vois voir, clean sert simplement à "faire le ménage" juil. 03 17:22:18 tout cela est dans Makefille juil. 03 17:22:20 Makefile juil. 03 17:22:31 si vous faites un less Makefile, vous allez voir les deux règles juil. 03 17:22:35 illovae: c'est moi juil. 03 17:22:50 la règle clean (pour nettoyez, faites le, ça virera le .ko et tout ce qui est sale) juil. 03 17:22:51 insmod ok - modpobe Module hello not found juil. 03 17:23:03 yoclif: alors tu as fait ? juil. 03 17:23:13 insmod oui ca marche juil. 03 17:23:23 mais pas modprobe juil. 03 17:23:31 hahan juil. 03 17:23:37 alors qu'est-ce que j'ai oublié... juil. 03 17:23:49 ah oui oui en effet juil. 03 17:24:04 faut copier quelque chose /lib/modules ? juil. 03 17:24:07 il manque des choses dans le .c pour l'utilisation de modprobe juil. 03 17:24:16 yoclif: non non faut définir des règles pour que modprobe s'en sorte juil. 03 17:24:23 les règles de dépendances, les param etc juil. 03 17:24:48 bon je peux pas te confirmer ce qu'il manque je fais ça de tête... juil. 03 17:24:56 quoique juil. 03 17:24:57 attend juil. 03 17:24:57 c est au programme ou pas ? juil. 03 17:25:44 yoclif: non juil. 03 17:26:09 ok juil. 03 17:26:17 c'est pas dans le .c afaik, c'est dans /lib/modules/`uname -r`/modules.dep juil. 03 17:26:58 yoclif: alors juil. 03 17:27:04 yoclif: comme dit c'est parce qu'il manque des règles juil. 03 17:27:18 yoclif: comme on l'a vu tout à l'heure modprobe utilise d'autres fichiers pour bosser juil. 03 17:27:22 donc si tu veux le lancer avec modprobe juil. 03 17:27:29 re juil. 03 17:27:37 sudo cp hello.ko /lib/modules//extra/ juil. 03 17:27:42 puis sudo depmod juil. 03 17:27:47 et enfin sudo modprobe hello juil. 03 17:28:06 je me suis emmelé les pinceaux tout à l'heure, c'est là que je voulais placer le depmod donc juil. 03 17:28:15 (qui est absolument nécessaire pour modprobe je le rappelle) juil. 03 17:28:33 on le voit en lancant modprobe foobar sans sudo juil. 03 17:28:41 FATAL: Could not load /lib/modules/2.6.29.6-smp/modules.dep: Permission denied juil. 03 17:28:59 c'est bon pour tout le monde ? juil. 03 17:29:05 ouep juil. 03 17:29:14 jzGreen: c'était qoui le module que tu as voulu testé hier ? juil. 03 17:29:20 c'est pas encore fini, j'etait vite alors juil. 03 17:29:28 termitor: on vient de terminer :p juil. 03 17:29:32 :p juil. 03 17:30:01 c juil. 03 17:30:07 cool ca marche merci juil. 03 17:30:11 --> brendel (~brice@ALyon-259-1-15-14.w90-57.abo.wanadoo.fr) a rejoint #u-classroom juil. 03 17:30:16 alors je me permet de paster un message de roscop : je rejoins Krunch, insmod cherche pas a comprendre et injecte sans crier gare. Modprobe ce réfère au module.dep pour faire les choses plus gentillement avec le noyau, il me semble. Les informations pour modprobe visent à renseigner depmod la premiere fois. juil. 03 17:30:29 mkdir extra? juil. 03 17:30:37 rbnt: oui s'il existe pas juil. 03 17:30:44 oki juil. 03 17:31:12 sudo mkdir /lib/modules//extra && sudo cp hello.ko /lib/modules//extra/ juil. 03 17:31:49 donc pour rebondir sur ce que disait roscop, c'est la raison pour laquelle modprobe voulait pas lancer ton hello.ko :) juil. 03 17:31:56 illovae: hello.c (dupuis un autre site) mais je suis en train de installer kernel source parce que je crois je manque quelque chose juil. 03 17:31:57 yoclif: ^ juil. 03 17:32:12 jzGreen: bah tu n'as pas eu de soucis à la compilation ? juil. 03 17:32:27 jzGreen: btw, y'a des tas de hello.c qui sont pas digne d'être présent hein :) juil. 03 17:32:33 faut voir ton hello.c juil. 03 17:33:49 les sources du kernel ne servent qu'à faire appel aux includes juil. 03 17:33:59 jzGreen: donc si t'as pas de merde à la compil' normalement ça va juil. 03 17:34:10 après faut voir la tronche de ton hello.c que tu as testé et voir ce qu'il est censé faire et comment juil. 03 17:34:27 bon vous avez des questions à part ça ? juil. 03 17:34:51 Pour résumer, en cas de problème de reconnaissance de matériel: juil. 03 17:35:01 ben dejà merci beaucoup !! ma vie a presque changée ! juil. 03 17:35:07 1 - blacklister les modules qui posent problème juil. 03 17:35:07 boogie777: rofl juil. 03 17:35:26 non merci beaucoup en tout cas juil. 03 17:35:38 2 - les renmmer / supprimer, s'ils continuent à se charger malgré avoir été blacklistés juil. 03 17:35:41 illovae: ca va pour install/remove/info du modules, merci :) juil. 03 17:35:54 jzGreen: t'as réussi à loader mon module hello ? juil. 03 17:35:56 3 - télécharger le source du module depuis le site du fabricant du matériel juil. 03 17:36:09 Golffies: fabricant/ou gars dans son garage qui s'est penché dessus juil. 03 17:36:22 4 - lancer le script d'installation s'il est fournis avec les sources juil. 03 17:36:28 Golffies: je serais toi je me centrerai pas sur les fabricant de matos, c'est les pires ;) sinon oui c'est l'idée juil. 03 17:36:49 5 - sinon, compiler le module, l'installer, le charger avec modprobe juil. 03 17:36:54 6 - se reposer heureux juil. 03 17:36:57 Golffies: haha tout à fait juil. 03 17:36:57 bon, pour terminer en beauté et se deconnecter de maniere classe, PETIT CHALLENGE: ajoutez une ligne de C dans hello.c qui fasse planter votre kernel pour commencer a connaitre la vie des developpeurs kernels :) juil. 03 17:36:59 illovae: alors a quoi sert la commande perf- ? juil. 03 17:37:09 itzhack: haha \o/ juil. 03 17:37:21 termitor: hahan alors attend je vais regarder ça juil. 03 17:37:23 juste avant juil. 03 17:37:45 je voudrais dire que quand vous avez un matos qui n'est pas détecté, qu'il n'y a pas de module pour vous, ne baissez pas les bras juil. 03 17:37:57 ouais rajouter char c; free(c); juil. 03 17:38:00 * gapz de passage juil. 03 17:38:08 kfree* juil. 03 17:38:10 en fait je debarques j'ai matté le post sur linux.fr, après j'ai rodé sur le wiki ...vraiment vraiment Kool .Vous faites souvent des trips de ce type ?? Parce que perso pour moi c'est archi bien gaulé et constructif .Bravo en tout cas ! juil. 03 17:38:12 la première chose à faire est de cherché si quelqu'un a déjà écrit ce module, souvent sur les forums pleins de gens testent des tas de trucs pour leur matos, regardez les comz et voyez s'ils sont content juil. 03 17:38:30 une fois cela fait, récupérer les sources et juste make;make install;depmod;modprobe et voilà juil. 03 17:38:49 illovae: trouver le pciid avant aussi ! juil. 03 17:38:52 boogie777: merci beaucoup, on ne l'a pas refait depuis plus d'un an :) juil. 03 17:39:00 termitor: oui oui tout à fait merci juil. 03 17:39:14 enfin il faut être sûr que le module soit bien fait pour votre matos juil. 03 17:39:14 gapz: free() n'étant pas une fonction disponible dans le kernel, tu as perdu juil. 03 17:39:20 lsusb/lspci sont vos amis juil. 03 17:39:22 Krunch: 17:38 @gapz: kfree* juil. 03 17:39:36 gapz: booouh :p juil. 03 17:39:39 panic() par contre... juil. 03 17:39:42 gapz qui a perdu, mon monde s'écroule /o\ juil. 03 17:39:53 illovae: haha, non mais le k est venu la ligne du dessous juil. 03 17:39:55 bon je voudrais remercier gapz pour son amour inconditionnel (ça c'est fait) juil. 03 17:40:00 (: juil. 03 17:40:07 mais aussi starinux pour avoir permis de relancer les sessions sur #u-classroom juil. 03 17:40:13 ou BUG() juil. 03 17:40:16 illovae + gapz = amour juil. 03 17:40:16 je remercie gpocentek de nous guider dans la nuit comme toujours juil. 03 17:40:16 d'ailleurs si des gens sont motivés j'ai un vieux module à débugger sur un noyau récent :p juil. 03 17:40:27 merci à Golffies pour sa sympathie juil. 03 17:40:38 (ou alors tout simplement essayer de porter usbnet sur un noyau récent) juil. 03 17:40:38 ben je fais une collecte générale pour vous remettre dans les starting blocks !!ARCHI KOOL ! juil. 03 17:40:39 merci juil. 03 17:40:45 et merci bien sûr aussi au /tmp/lab ; ça fait des mois que je veux venir vous voir, et j'ai encore loupé une occasion :p juil. 03 17:40:52 ah bein, quand tu veux juil. 03 17:40:54 gapz: je suis preneur :-) juil. 03 17:40:56 merci juil. 03 17:41:04 tout le monde est bienvenue ici, tous les jeudis soirs, sessions ouvertes juil. 03 17:41:14 merci à tous pour être là, on essayera de se refaire une session bientôt juil. 03 17:41:16 et workshops aux dates fixées juil. 03 17:41:19 Golffies: non IRC for the win :p juil. 03 17:41:23 avec plaisir juil. 03 17:41:25 yup, cool, merci illovae juil. 03 17:41:25 illovae: haha, ça fait longtemps que j'ai plus de pétrole sur la torche malheureusement, heureusement que t'as des piles dans ta lampe de poche juil. 03 17:41:36 itzhack: tu vas aux estives numériques ? juil. 03 17:41:37 merci illovae juil. 03 17:41:47 gpocentek: \o/ juil. 03 17:42:00 gpocentek guru@ juil. 03 17:42:06 merci beaucoup illovae juil. 03 17:42:17 illovae: merci juil. 03 17:42:18 gapz: oui! juil. 03 17:42:19 merci juil. 03 17:42:20 merci illovae juil. 03 17:42:21 merci illovae juil. 03 17:42:21 merci illovae juil. 03 17:42:21 merci Illovae juil. 03 17:42:22 merci illovae juil. 03 17:42:22 merci illovae juil. 03 17:42:24 <: juil. 03 17:42:24 merci illovae juil. 03 17:42:24 merci illovae juil. 03 17:42:27 merci illovae juil. 03 17:42:34 merci illovae juil. 03 17:42:40 bande de leche botte ! juil. 03 17:42:43 merci illovae juil. 03 17:42:43 :p juil. 03 17:42:44 ouai clairement juil. 03 17:43:50 <-- boctai11 est parti (Quit: Quitte) juil. 03 17:43:52 C'est quand la Udev session ? juil. 03 17:43:56 moauf ! juil. 03 17:44:19 boogie777: haha je sais pas, faudrait voir ça ouai juil. 03 17:44:27 je pensais pas que ça intéresserait autant de monde le udev juil. 03 17:44:36 je me doutais qu'on dériverai un peu mais, ça mérite de faire une session juil. 03 17:44:58 petite question illovae juil. 03 17:45:06 quand tu as un module qui te dit: juil. 03 17:45:11 # rmmod hello.ko ERROR: Module hello is in use juil. 03 17:45:20 ben avec ce que j'ai du payer en bibines a des potes pour que mon matos daigne bien se faire dompté ;-) juil. 03 17:45:26 # lsmod |grep hello hello 1464 1 juil. 03 17:45:35 tu as une astuce? juil. 03 17:45:40 itzhack: hahaha euhm... juil. 03 17:45:44 itzhack: comment t'as fait ton compte ? juil. 03 17:45:54 (pour info, c'est un kernel module qui a oopsé car j'ai essayé de me crasher avec un dangling pointer) juil. 03 17:46:18 gapz: viens répondre à ma place s'il te plaît :] juil. 03 17:47:17 <-- Guest95473 est parti (Quit: Quitte) juil. 03 17:47:26 itzhack: ça me dépasse complètement là juil. 03 17:47:35 illovae: moi je voudrais plutot en savoir plus sur le precessus de boot , avec initrd , et tout ce qui passe avant et apres le montage du systeme de fichier racine, ou les parametre kernel au boot, et ce genre de choses juil. 03 17:47:36 itzhack: tu peux essayer de reseter le compteur d'utilisation du module avec un debugger juil. 03 17:47:43 itzhack: puis rmmod devrait passer juil. 03 17:47:50 itzhack: mais viens pas te plaindre si ça panic juil. 03 17:48:10 termitor: ouai à l'origine, j'avais pensé faire d'abord une sesions kernel puis la session LKM juil. 03 17:48:33 termitor: Golffies m'a raconté que les users de starinux avait déjà fait cette session, donc elle a pas été faite, mais il faudrait la faire ici juil. 03 17:48:41 on a Lutin qui pourrait nous en parler du kernel :p juil. 03 17:48:48 juil. 03 17:49:16 http://www.cse.iitb.ac.in/~prabhu/mtech1/seminar/selinux/Linux%20Kernel%202.6%20documentation.pdf juil. 03 17:49:56 itzhack: tableau ref de la struct module juil. 03 17:50:18 itzhack: tu fais voir les sources de ton hello qui pose problème stp ? juil. 03 17:50:18 <-- paris1555 est parti (Quit: Quitte) juil. 03 17:50:38 (il est dans la doc là ?° juil. 03 17:50:42 s/°/)/ juil. 03 17:50:47 * Krunch pourrait éventuellement parler de SystemTap, de profiling et de debugging kernel et/ou applicatif si ça intéresse des gens juil. 03 17:51:07 Krunch: à mort carrément, tu pourrais faire une session ici, ça serait bien ouai juil. 03 17:51:30 Krunch: si t'as un sujet qui te branche, on orga ça ici quand tu veux et on fait de la promo pour le jour J sans problème juil. 03 17:51:32 +1 pour le profiling juil. 03 17:51:36 est ce que on peut décoder un module "non source" ? juil. 03 17:51:48 ameen: des binaires tu veux dire ? juil. 03 17:51:54 oui juil. 03 17:52:06 bah héhé hexdump :p juil. 03 17:52:21 ojbdump est plus pratique juil. 03 17:52:26 ameen: enfin si tu veux des sources digne de ce nom, non c'est pas comme ça que ça marche juil. 03 17:52:28 objdump même juil. 03 17:52:58 Krunch: btw tu traînes souvent sur irc ? juil. 03 17:53:10 illovae: je vais envisager ça mais ça sera pas avant août (sinon je parle de stap aux RMLL et à HaxoGreen :) juil. 03 17:53:11 si t'es motivé on peut s'organiser ça prochainement si tu veux juil. 03 17:53:25 illovae: pas sur ce chan, j'ai juste /j parce que j'ai vu l'annonce sur dlfp juil. 03 17:53:36 Krunch: quel debugger pour decrementer le use count? juil. 03 17:53:43 Krunch: ouai pas de soucis, c'est pas préssé, mais on a jamais eu de sujet de ce genre, le formule #u-classroom est bien pour se genre de session juil. 03 17:53:50 itzhack: le seul debugger noyal que je connaisse un peu c'est crash(8) juil. 03 17:53:55 <-- jzGreen est parti (Quit: Leaving.) juil. 03 17:54:23 Krunch: okay, bah écoute, si jamais, on se tiens au courant juil. 03 17:54:27 notez que si ya un budget pour me payer le train jusqu'au local, ça marche aussi :) juil. 03 17:54:33 haha juil. 03 17:54:35 ya une mailing list ou quoi ? juil. 03 17:54:46 Krunch: pour u-classroom ouai y'a une ml juil. 03 17:54:52 mais non nous perso on a pas de fond du tout juil. 03 17:55:08 enfin on bosse uniquement sur IRC, donc le côté "avec un local" là c'est très exceptionnel juil. 03 17:55:17 <-- ameen est parti (Quit: Ex-Chat) juil. 03 17:55:33 <-- lekernel (~azerty0@abo-22-96-68.mrs.modulonet.fr) est parti #u-classroom ("Leaving") juil. 03 17:55:44 ok juil. 03 17:55:52 Krunch: http://effraie.org/mailman/listinfo/u-classroom pour la classroom juil. 03 17:56:00 sinon t'as la ML du /tmp/lab juil. 03 17:56:24 http://lists.tmplab.org/listinfo.cgi/tmplab-tmplab.org juil. 03 17:56:25 hop juil. 03 17:56:30 --- illovae enlève le statut operator de canal de illovae juil. 03 17:56:41 <-- britney est parti (Remote host closed the connection) juil. 03 17:56:56 illovae: j'ai été deco au milieu de la session, tu va mettre les logs en lignes? juil. 03 17:57:16 * Krunch s'inscrit sur u-classroom juil. 03 17:57:31 brendel: ouai, je dois m'absenter un peu là, mais je fais ça dans quelques heures (ce soir), ça sera dans le topic de ce canal juil. 03 17:57:41 super merci :) juil. 03 17:57:41 brendel: si t'es encore là je te pinguerai quand ça sera up juil. 03 17:57:48 oki juil. 03 17:57:50 le cours sera mis en forme sur le wiki aussi juil. 03 17:58:10 bon je dois filer bye, à plus juil. 03 17:58:12 Golffies: ++ juil. 03 17:58:14 salut juil. 03 17:58:16 Multi Thx ! ++ juil. 03 17:58:22 (: juil. 03 17:58:32 <-- boogie777 est parti (Quit: leaving) juil. 03 18:00:55 illovae: ca a l'air specifique a ubuntu le linux-tools juil. 03 18:03:47 itzhack: ha ouais généralement quand ca oops tu es pour faire un truc moche à coup de debugger ou alors reboot (: juil. 03 18:04:04 * gapz backlog juil. 03 18:04:06 <-- Honorat est parti (Quit: Lost terminal) juil. 03 18:04:21 quelqu'un à les logs de la session ? juil. 03 18:04:32 (pour que je rajoute le lien dans le topic juil. 03 18:05:59 <-- guigui-75000 est parti (Quit: Quitte) juil. 03 18:07:23 bon bon juil. 03 18:07:49 --- gapz a changé le sujet en : Canal francophone d'apprentissage || http://u-classroom.net || Si quelqu'un a les logs de la session LKM... juil. 03 18:07:52 --- gapz enlève le statut operator de canal de gapz juil. 03 18:08:21 bin je doit avoir les log logiquement tu les veux ? juil. 03 18:08:30 merci et a une prochaine session juil. 03 18:08:46 s'il est propre & en UTF8 ouais pourquoi pas juil. 03 18:09:08 <-- yoclif (~nafissa@fre57-1-88-172-123-219.fbx.proxad.net) a quitté #u-classroom