Recompiler un kernel avec support USB

Dernière mise à jour : 01/04/2003

    Cet article avait quand même quelques mois (voire années) et voyant les informations contenues dedans, j'ai décidé de le réécrire afin de refléter les dernières évolutions du kernel 2.4 et du 2.6 à venir. Fort est de constater que le kernel est devenu bien amical avec les périphériques USB. Utilisant moi-même deux ans plus tard un grand nombre de périphériques USB (clavier, souris, webcam, scanner, zen, appareil numérique, etc ...), j'ai revu cet article avec le plus grand nombre d'options pour vous aider dans un support plus complet.

    Vous allez bien évidemment devoir mettre les mains dans le cambouis et recompiler un kernel tout seul comme un grand. Il est à savoir que la plupart des kernels de distributions récentes contiennent déjà le support USB complètement compilé en modules, vous ne devriez donc avoir aucun soucis à utiliser votre système. Ce qui suit peut vous servir un peu plus si vous êtes sous Gentoo et désirez avoir une machine bien paramétrée (Gentoo étant un exemple parmis tant d'autres). Je vous conseille donc de lire ma page sur la compilation du kernel (section Système) avant de continuer la lecture de cet article si vous n'êtes pas totalement familier avec la procédure.

    Dirigez vous ensuite dans votre source kernel et tapez : cd /usr/src/linux/ ; make xconfig. Le Xconfig vous donnera les mêmes fenêtres que dans les exemples de captures, je préfère généralement menuconfig mais les débutants trouveront xconfig plus simple. Allez ensuite dans Input Core Support et modifiez les options qui suivent. Si vous avez un clavier ou une souris USB, activez les bien en Y (Yes), l'event sert aux webcams.



    Allez ensuite dans la section Video For Linux et mettez la en Y. Cette option s'applique aux webcams comme expliqué auparavant mais aussi aux cartes d'acquisition vidéo sous Linux (type DC10 et autres). N'oubliez donc pas d'activer cette options si vous possédez l'un de ces périphériques.



    Vous devez ensuite appuyer sur le bouton Video For Linux et vous assurer que vous avez activé V4L information in proc filesystem qui ici encore sert pour la webcam. Ne possédant pas de carte d'acquisition, je ne sais pas quelles autres options sont nécessaires pour leur bonne marche, donc vérifiez la documentation si vous en avez une pour être sûr d'avoir tout intégré.



    Rendez vous ensuite dans la section USB Support. Celle-ci contient beaucoup d'options pour les périphériques de votre carte mère. Ainsi, activez en Y Support for USB et Preliminary USB device filesystem. N'oubliez pas de le faire, sans ca vos périphériques USB ne marcheront pas normalement. Vous devez ensuite choisir les controlleurs de votre carte. J'ai tendance à tout passer en modules afin de pouvoir les charger à la volée. Pour ceux qui possèdent l'USB 2.0, EHCI devrait être disponible sur leur machine. Mettez-le en Y ou M. Pour les autres, le module usb-uhci marche généralement très bien (attention, cela dépends tout de même de votre chipset de carte mère, le bouton d'aide devrait bien vous aider pour cela). Activez également en M le support USB audio.



    Comme je le précisais plus haut, il se peut que vous ayez des périphériques USB que je n'ai pas, donc n'hésitez pas à activer des options si vous pensez qu'elles sont nécessaires à votre système. Je vous conseille de placer l'USB storage en module ainsi que USB Printer Support, cela devrait vous éviter de devoir recompiler un kernel. Vous pouvez activer les options de debug afin d'obtenir plus de messages mais je vous conseile de recompiler un kernel sans ces options de debug par la suite (lorsque vous serez sûr que vos périphériques marchent correctement) afin d'éviter de surcharger vos logs inutilement.



    Comme l'indique la capture d'écran ci-dessous, il est relativement important d'activer l'HID (faute de quoi votre clavier ou souris USB ne marcheront simplement pas). Je vous conseille d'ailleurs de le mettre en Y plutôt que module. Pensez bien à activer les sous-options : HID input layer support et le raw device support. Enfin dans les deux autres options importantes que je place toujours en module : USB Scanner et USB Philips Cameras qui me servent tous les deux. Si vous avez des cartes réseau USB, activez également les options se trouvant dans la section USB Network Adaptors plus bas.



    Avec ces options, votre kernel devrait être à peu près présentable. Recompilez-le alors en suivant les instructions sur ma page dans la section Système puis redémarrez sur le nouveau kernel. Il est conseillé d'installer aussi libusb, usbview et hotplug pour utiliser correctement les périphériques USB. Vous pouvez ensuite vérifier le résultat du chargement avec un lsmod, voici le résultat du mien sous gentoo (je n'ai gardé que les périphériques USB), sur une carte mère possédant l'USB 2.0 :

    Pour ceux qui voudraient automatiser cela, plus besoin de présenter l'indispensable /etc/modules.autoload sur Gentoo dans lequel vous pouvez placer tous les noms des modules que vous avez besoin de charger. J'espère que cet article est suffisemment clair et vous servira dans votre incursion de l'USB sous Linux.