Hardware Detection Tool (HDT), un module particulier de Syslinux

Posté par . Modéré par tuiu pol.
Étiquettes : aucune
36
16
déc.
2009
Linux
HDT, pour Hardware Detection Tool porte bien son nom : il s'agit de dĂ©tection matĂ©rielle. Cette dĂ©pĂȘche ne rentrera pas dans les dĂ©tails et se concentre sur la prĂ©sentation pour tous de cet utilitaire.

HDT est sorti initialement en version publique en avril 2009. À cette Ă©poque, HDT rĂ©vision 0.2.7 avait intĂ©grĂ© le projet Syslinux alors en version 3.74. Il s'agit donc d'un module de type com32 pour Syslinux (NdR : nous en sommes maintenant Ă  HDT v0.3.6).

Syslinux, vous le savez, c'est le tout premier message qui s'affiche Ă  chaque fois que vous dĂ©marrez une machine GNU/Linux Ă  partir d'un support amovible (clef USB, CDROM ou DVDROM d'installation ou live de nos chĂšres distributions) et ce juste avant que le noyau Linux lui-mĂȘme ne se charge.

Mais si... Regardez de plus prĂšs... SYSLINUX, copyright H Peter Anvin... Haa, voilĂ  : vous voyez que vous connaissez ;-) Syslinux en quelques mots :

Syslinux a pour objectif initial de permettre de démarrer le noyau Linux sur un modÚle de systÚme de fichiers de type MS-DOS FAT. Avec Syslinux, les débutants pouvaient démarrer le noyau Linux facilement. Mais Syslinux n'est pas un outil, plutÎt une suite complÚte d'outils. Le plus connu d'entre eux est ISOLINUX car il est massivement utilisé afin de créer tout systÚme amorçable depuis un un systÚme de fichier ISO 9660 ; en fait toutes nos distributions l'utilisent, que cela soit pour leur systÚme d'installation ou bien leur LiveCD. Il existe également le moins connu EXTLINUX, qui est un petit frÚre de lilo et grub, rapide, simple, efficace : il permet d'amorcer le noyau Linux sur un systÚme de fichiers de type EXTended. Enfin, tout administrateur normalement constitué utilise, a utilisé et utilisera PXELINUX, permettant d'amorcer depuis un serveur de type PXE/TFPT sur le réseau.

Le projet Syslinux comporte, en plus de cette suite d'utilitaires, des modules permettant d'ajouter des fonctions. Le plus connu du grand public est certainement MEMTEST86, développé pour réaliser des tests sur la mémoire vive afin de valider son fonctionnement et de déceler d'éventuels problÚmes.

HDT est un de ces précieux et peu nombreux modules de Syslinux :

Il permet d'analyser le matĂ©riel d'une machine et ce, sans avoir besoin d'amorcer un quelconque systĂšme d'exploitation. HDT ira mĂȘme jusqu'Ă  vous dire de quels modules le noyau linux a besoin pour faire fonctionner ce matĂ©riel !

Pour ceux d'entre vous ne connaissant que peu les utilitaires classiques que l'on trouve avec nos distributions, ils pourront aller tester : lsmod (permet de lister les modules noyaux en cours de fonctionnement) / lspci (lister le matĂ©riel) / lsusb (lister le matĂ©riel usb) / ainsi que l'essentiel dmidecode (tout savoir sur son matĂ©riel). Eh bien, HDT permet tout cela, avant mĂȘme de lancer un systĂšme d'exploitation.

DÚs lors, on pourrait se dire naturellement qu'en dehors des OEM, des assembleurs de PC, et de quelques professionnels, il ne sert à rien, étant certainement trop dur à appréhender pour les Mr et Mme Michu que nous sommes.
Non, rassurez-vous : HDT présente ces informations simplement, d'une maniÚre agréable et claire, permettant à tout un chacun de connaßtre rapidement et facilement son matériel. Il propose ainsi une présentation en mode "graphique", avec menus et explications.

Bref vous l'aurez compris, l'utilitaire HDT est un utilitaire Ă  avoir sur soi... VĂ©rifiez complĂštement le matĂ©riel du portable que vous lorgnez sur le prĂ©sentoir...et payez vous le luxe de connaĂźtre les modules noyaux dont votre GNU/Linux aura besoin pour ce portable-lĂ , sans perdre de temps Ă  lancer un liveCD dessus ! En ces fĂȘtes de NoĂ«l, en ces moment de cadeaux, ĂȘtre sĂ»r de ce qu'on offre est bien pratique.

HDT est distribué sous licence MIT, comme tous modules com32 de Syslinux. Il est déjà utilisé par de nombreux projets, dont vous trouverez une liste non exhaustive sur le site officiel. Téléchargement de la version stable actuelle, incluse dans Syslinux :
http://www.kernel.org/pub/linux/utils/boot/syslinux/
Téléchargement du module HDT seul, version stable, mais pour Syslinux version 3.84 :
http://www.hdt-project.org/raw-attachment/wiki/hdt-0.3.6/hdt(...)
Les sources, quant à elles, sont dans le dépÎt git de Syslinux.

Voici en quelques mots, pour une réalisation en moins d'une minute, comment créer sa clef USB bootable avec Syslinux de maniÚre non destructive (vous n'avez pas besoin d'effacer vos fichiers et/ou de formater votre clef, préservant ainsi l'usage de votre clef).
L'espace occupé est minime et vous pouvez continuez d'utiliser votre clef USB normalement. Ceci évite d'avoir à lancer une distribution liveCB ou liveUSB pour prendre connaissance entiÚrement du matériel. C'est rapide : les informations sont obtenues en moins de dix secondes.
  • Installez Syslinux (soit avec le gestionnaire de paquets de votre distribution, soit en le tĂ©lĂ©chargeant sur le site du projet) ;
  • Branchez votre clef USB ;
  • Montez la clef, puis crĂ©ez-y un rĂ©pertoire pour Syslinux, par exemple : mkdir /media/clef/syslinux. (oĂč clef est le point de montage, par exemple /media/zyrus) ;
  • Lancez la commande : syslinux -d syslinux mon_dev # oĂč mon_devest votre clef, par exemple : syslinux -d syslinux /dev/sdb1 ;
  • Copiez le module hdt.com32 et le fichier modules.pcimap dans le mĂȘme dossier ;
  • CrĂ©ez un fichier, toujours dans le mĂȘme dossier, nommĂ© syslinux.cfg et contenant par exemple :
    label hdt
    kernel hdt.c32
    append modules=modules.pci
  • Bootez votre clef.

Feuille de route :

Les administrateurs pourront noter qu'en plus de tout ça, la feuille de route de HDT prĂ©voit l'utilisation de LWIP, dĂšs qu'il sera intĂ©grĂ© Ă  Syslinux, peut ĂȘtre pour la version 4 de syslinux. LWIP est une pile IP particuliĂšrement lĂ©gĂšre.
Remerciements à l'équipe de HDT : Erwan Velu (Project Leader), Pierre-Alexandre Meyer (Core developer), Gert Hulselmans (Testing), Alexander Andino (Design & Art)

Aller plus loin

  • # Excellent article

    PostĂ© par . ÉvaluĂ© Ă  5.

    Merci, vraiment instructif! J'ai hate te voir ca dans les prochaines distributions !
    • [^] # Re: Excellent article

      PostĂ© par (site web personnel) . ÉvaluĂ© Ă  4.

      C'est déjà dans Mandriva depuis 2009.1. J'avais été assez impressionné lorsque je l'ai découvert !
  • # MatĂ©riel non-gĂ©rĂ©

    PostĂ© par (site web personnel) . ÉvaluĂ© Ă  3.

    Est-ce que les matériaux non-géré par linux sont indiqué de maniÚre clair ?
    • [^] # Re: MatĂ©riel non-gĂ©rĂ©

      PostĂ© par . ÉvaluĂ© Ă  4.

      Ça m'Ă©tonnerait, ne serait-ce que parce que le matĂ©riel gĂ©rĂ© par un noyau Linux donnĂ© dĂ©pend trĂšs prĂ©cisĂ©ment de la version de ce noyau: Ă  chaque nouvelle version, on a des pilotes en plus, et parfois d'autres pilotes qui s'en vont.

      Ajoute à cela les pilotes, libres ou pas, qui ne sont pas intégrés au noyau mais y sont intégrables.

      THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

      • [^] # Re: MatĂ©riel non-gĂ©rĂ©

        PostĂ© par . ÉvaluĂ© Ă  3.

        Oui oui, excusez le manque de précisions au sujet de cette possibilité annexe. Mais tout est sur ( nouveau et zoli) site web, regardez en particulier les liens 'define modules.pcimap' et 'define pci.ids' ;)
        (C est pas un rtfm (!!!) c est juste que cet aspect est bien détaillé)
      • [^] # Re: MatĂ©riel non-gĂ©rĂ©

        PostĂ© par . ÉvaluĂ© Ă  5.

        Oui, et les options de pci maps dĂ©crites ci dessous sont trĂšs souples (encore, excusez le manque de prĂ©cisions Ă  ce sujet pour la dĂ©pĂȘche).

        Par exemple :
        Comment savoir si sa Fedora / ArchLinux / Debian / (et les autres) dans la version que l'on veut, prend en charge le portable sur lequel on lorgne depuis quelques temps ? Et cela sans avoir besoin de recopier le résultat de hdt, pour le comparer ensuite ? Ben avec ces options, c'est possible :
        Copier les fichiers modules.pcimap et pci.ids dans le mĂȘme repertoire, sur votre clef usb dans le mĂȘme dossier, toujours l'exemple d'un dossier se nommant syslinux. Puis Ă©crivez le fichier syslinux.cfg de la sorte :

        LABEL hdt
        COM32 hdt.c32
        APPEND modules_pcimap=syslinux/modules.pcimap pciids=syslinux/pci.ids

        Vous trouverez ces fichiers dans les dossiers respectifs : /usr/lib/modules/_version_noyau pour modules.pcimap et /usr/share/hwdata/ pour pci.ids.

        Ainsi, vous saurez si votre derniÚre Ubuntu/Mandriva (et les autres) est ok avec ce zoli portable, là, sur l'étagÚre, "tu as vu, comme il est pas cher" ;-)
        • [^] # Re: MatĂ©riel non-gĂ©rĂ©

          PostĂ© par (site web personnel) . ÉvaluĂ© Ă  1.

          Comment savoir si sa Fedora / ArchLinux / Debian / (et les autres) ...

          La réponse est données plus haut : c'est dans Mandriva depuis la version 9.1.
          Il suffit de booter sur une Mandriva One et le tour est joué !

          Alors que j'étais un habitué des versions cooker et powerpack, j'ai installé il y a quelques jours une Mandriva 2010 One sur un EeePC 900 (1Go de RAM et 16Go de SSD). J'ai été bluffé par cette version. Wifi, webcam, accélération graphique, installation des miroirs pour les mises à jour, tout fonctionne tout fonctionne comme par enchantement.
          • [^] # Re: MatĂ©riel non-gĂ©rĂ©

            PostĂ© par . ÉvaluĂ© Ă  2.

            C'est cool, mais ce n'est pas parce que ça marche sous Mandriva que ça marche partout: les versions du noyal sont différentes entre les versions, les attitudes vis-à-vis des pilotes "plus ou moins" privateurs aussi.

            THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

  • # TrĂšs intĂ©ressant

    PostĂ© par (site web personnel, Mastodon) . ÉvaluĂ© Ă  2.

    Ça a l'air d'ĂȘtre un trĂšs bon outil qui comble un gros manque des BIOS.

    Comme grub2 arrive et que le liveUSB de ma distrib peut Ă©galement utiliser maintenant grub2, je me demande dans quelle mesure ce module syslinux pourrait ĂȘtre adaptĂ© pour ĂȘtre lancĂ© par grub2. Est-ce que c'est un binaire lançable depuis un gestionnaire de dĂ©marrage comme grub(2), lilo, syslinux, ou uniquement par syslinux.
    J'ai du mal à comprendre la dépendance à syslinux. Peut-on m'expliquer svp.
    • [^] # Re: TrĂšs intĂ©ressant

      PostĂ© par . ÉvaluĂ© Ă  5.

      Je trouve également que cela apporte une grosse avancée, en complément du (peu) d info des bios.

      Pour grub2 c est oui et non Ă  la fois :
      Non techniquement, on ne peux pas lancer hdt depuis grub2. A noter que c'est une demande récurente. Cela réponds également à la question de la dépendance à syslinux : hdt est un module pour syslinux.
      Et oui aussi, car il est possible de jongler entre grub et syslinux. Il faut regarder comment font les projets utilisant déjà hdt, (ultimate-bootcd ou partmagic sont des livecd, n'ont pas d usage de grub donc. Mais il me semble que d autres jonglent sans pb).
      Par contre, je n en vois l intĂ©ret exact, dans la mesure ou hdt est taillĂ© pour la dĂ©couverte, je ne vois d intĂ©rĂȘt Ă  l'avoir dans/pour un grub. Par contre sur un serveur pxe pour les admins et/ou les dev, oui. Autant que sur une clef usb qu on pourra booter partout, y compris sur son pc dĂ©jĂ  installĂ© ;-)
    • [^] # Re: TrĂšs intĂ©ressant

      PostĂ© par . ÉvaluĂ© Ă  4.

      Salut,

      Tu peux tres bien charger hdt depuis un grub, soit en chargant nos images disquettes, soit en chargant l'image iso.

      Tu trouveras les details ici:
      http://www.hdt-project.org/wiki/howtostarthdt
  • # liveCB

    PostĂ© par . ÉvaluĂ© Ă  5.

    He oui, vous pouvez aussi installer votre Linux préféré sur une carte bancaire!
    • [^] # Re: liveCB

      PostĂ© par . ÉvaluĂ© Ă  10.

      HDT permet-il, dans ce cas, d'accéder facilement au contenu des cassettes du distributeur ?

      The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

  • # Automatisation de la compilation du kernel?

    PostĂ© par (site web personnel) . ÉvaluĂ© Ă  2.

    On peut espĂšre une automatisation de la compilation du kernel des distributions source (type Gentoo?) en fonction des machines? Ou je dis une grosse Ăąnerie... -_-
    • [^] # Re: Automatisation de la compilation du kernel?

      PostĂ© par . ÉvaluĂ© Ă  5.

      HDT n'est pas vraiment l'outil fait pour ça. Par contre, le code de syslinux permettrait par exemple de refaire a la volée un initramfs en fonction du matériel.

      Syslinux permet de detecter le matériel dans sa quasi intégralité, il est en suite facile de realiser des modules pour délencher des actions en fonction de ces elements.
      • [^] # Re: Automatisation de la compilation du kernel?

        PostĂ© par (site web personnel) . ÉvaluĂ© Ă  2.

        En gros, cela pourrait aider Ă  faire une partie de initramfs et peut ĂȘtre aussi changer la donne concernant udev et tmpdevfs au moment du boot. A-t-on besoin de tmpdevfs si on arrive Ă  passer cela au noyau sur la ligne de commande de maniĂšre automatique ?

Suivre le flux des commentaires

Note : les commentaires appartiennent Ă  celles et ceux qui les ont postĂ©s. Nous n’en sommes pas responsables.