HDT : Hardware Detection Tool (v 0.5.0)

PostĂ© par . ModĂ©rĂ© par Bruno Michel. Licence CC By‐SA.
Étiquettes :
37
22
avr.
2011
Noyau

Hardware Detection Tool est un outil de bas niveau permettant l’identification du matĂ©riel cible sur le matĂ©riel cible : extraire les informations, vĂ©rifier la conformitĂ©, valider ce matĂ©riel, voire anticiper les besoins d’installations et mettre en Ɠuvre les processus adĂ©quats.

Cette nouvelle version, sortie aujourd’hui, ajoute la possibilitĂ© d’extraction et d’envoi du rapport par le rĂ©seau.

Sommaire

Hardware Detection Tool (HDT) liste de multiples informations :

  • Processeur
  • MĂ©moire (e820, e801, 8800h)
  • Bus PCI
    • Carte mĂšre
    • BIOS
    • Chassis
    • Module MĂ©moire
    • CPU
    • SystĂšme
    • SĂ©curitĂ© du systĂšme
    • IPMI
    • Batterie
  • Disques durs
    • Section du MBR
    • DĂ©tection de bootloader
    • Identification de swap
  • Ainsi que la dĂ©tection des modules noyau

Visualisations

Le « Menu Mode », une interface graphique permettant une navigation aisĂ©e, Ă  l’aide des flĂšches directionnelles, dans la totalitĂ© des informations. DiffĂ©rents modes de CLI — interface en ligne de commande — permettent d’avoir le rĂ©sumĂ© des informations, mais aussi d’interroger type par type, et cela pour les modes d’affichage TEXT et VESA.

Par exemple, ici, une vue sur l’interface graphique, pour une carte rĂ©seau :

Qemu 8139 RealTek

Et ici, une vue de la CLI, en mode VESA, pour l’ACPI :

Qemu acpi

Supports disponibles

  • Image de disquette 1,44 Mio
  • Image ISO amorçable
  • Module COM32 pour SYSLINUX

Création d'une clef USB

À noter que l’utilisation de HDT peut Ă©galement s’avĂ©rer pratique pour le particulier, afin de jeter un Ɠil de maniĂšre prĂ©cise sur le matĂ©riel convoitĂ© (les informations pertinentes Ă©tant souvent absentes des Ă©tiquettes, pourtant souvent indispensables Ă  tout geek sourcilleux sur son achat). Cet usage sera Ă©galement utile lors d’install parties. Pour l’utiliser simplement, voici les instructions :

  • rĂ©cupĂ©rez l’image de CD amorçable ;
  • rendez‐la « hybride » : « isohybrid --partok hdt-0.5.0.iso » ;
  • copiez‐la sur votre clef USB : « dd if=hdt-0.5.0.iso of=/dev/sdc » ;
  • Et hop, dans la popoche la clef HDT :).

Exportation réseau

Le dump

HDT 0.5.0 propose dĂ©sormais l’exportation des informations au travers du rĂ©seau. Cette exportation se fait sous la forme d’une archive tar compressĂ©e gzip contenant plusieurs fichiers : chaque fichier correspondant Ă  une partie du dump, soit processeur(s), DMI, ACPI, PCI, mĂ©moire, disques, VESA... Ces fichiers sont formatĂ©s au standard JSON, permettant un traitement facile et efficace, quels que soient les outils choisis.

Intégration : triviale et rapide

Ce court rĂ©sumĂ© se place dans la configuration la plus simple : celle d’une machine unique servant Ă  la fois de serveur DHCP, de serveur TFT, ce dernier Ă©tant unique, sans restrictions sur les adresses MAC, ni configuration particuliĂšre. Il devrait permettre Ă  tous de tester facilement, tout en apportant les informations utiles pour l’intĂ©gration de HDT dans des systĂšmes complexes existants.

  • CrĂ©ez un rĂ©pertoire nommĂ© « hdt » Ă  la racine de votre serveur TFTP (par exemple : « /tftpboot/hdt/ »).

  • Renseignez le fichier default du service TFTP afin qu’il pointe vers les modules COM32 de HDT :

    Le fichier default est le bon choix : toutes les machines inconnues seront automatiquement enregistrées (numéros de série, identifiants matériels, etc.) sans impacter les machines connues, qui bénéficient certainement de fichiers de configurations distincts nommés en fonction de chaque adresse MAC.

LABEL HDT

kernel hdt.c32 auto='dump'

C’est ici qu’il faut dĂ©finir les informations Ă  extraire, en spĂ©cifiant les options idoines, en utilisant la directive « auto= » ici « \'dump\' », afin d’automatiquement envoyer les informations extraites sur le serveur TFTP. Par dĂ©faut, c’est le mĂȘme serveur que celui utilisĂ© prĂ©cĂ©demment, c’est donc ici Ă©galement que vous pourrez placer la directive « tftp_ip= », s’il faut envoyer ces informations sur un serveur tiers. C’est Ă©galement ici qu’on pourra prendre soin d’utiliser la directive de reboot aprĂšs celle de dump :p.

  • Utilisez les fichiers dump :

zcat <filename> | cpio -id

Illustration : résultat de traitement sur un dump :


"vesa.product" : "Intel(r) 82945GM Chipset Family Graphics Controller"
"cpu.model" : "Intel(R) Atom(TM) CPU N270 @ 1.60GHz"
"dmi.system.serial" : "LUS030A073826166682500"

LĂ , on pourra faire en sorte de crĂ©er des dossiers correspondant Ă  chaque machine, y placer l’extraction, puis lancer un traitement tiers se servant des informations rĂ©cupĂ©rĂ©es.

Boot de hdt.c32 par le réseau, sur un client :
pxe boot

Ici, ce client vient d’envoyer sa configuration :
dump on lan

Exemples d’usage

Cette nouvelle fonction de HDT prend dĂšs Ă  prĂ©sent en option l’adresse IP de votre choix comme serveur TFTP. Ceci permet, dans le cas d’un rĂ©seau dense, d’envoyer les fichiers ailleurs que sur le serveur TFTP indiquĂ© par le serveur DHCP, et permet donc une meilleure granularitĂ© dans le traitement des tĂąches dĂ©volues Ă  chaque service, Ă  chaque machine, lorsque c’est nĂ©cessaire dans votre rĂ©seau. On pourra, par exemple, imaginer un serveur DHCP central indiquant le serveur TFTP nommĂ© « install » ayant en dĂ©faut pour toute adresse MAC inconnue un envoi de hdt.c32 avec la directive tftp_ip qui envoie vers le serveur nommĂ© « asset », lui‐mĂȘme chargĂ© de recueillir toutes les informations matĂ©rielles, prĂ©cises et rĂ©elles, sur les nouvelles machines. Luxueux, n’est‐ce pas ?

L’administrateur systĂšme pourra aller plus loin encore, en traitant ses informations au fur et Ă  mesure, afin d’aiguiller automatiquement un type d’installation en fonction du modĂšle et du matĂ©riel, dans un systĂšme d’installation prĂ©parĂ© pour cela. Ainsi, au lieu d’avoir besoin au prĂ©alable des informations telles que « mac_address liĂ©e Ă  type_installation », il devient possible de distinguer automatiquement un portable d’une station de travail ou d’une machine serveur, sans jamais avoir vu « la couleur de la machine » auparavant (et plus finement encore, selon la complexitĂ© de vos installations automatiques)... Le gain de temps et de main d’Ɠuvre devient trĂšs intĂ©ressant.

Mise Ă  jour des infos pour HDT

Pour terminer, HDT utilise les fichiers pci.ids, modules_alias et modules_pcimap. Il est capable de prendre ces fichiers en externe via les directives correspondantes. Par exemple, « pciids=path_to_file ». Il sera simple d’avoir cette base toujours Ă  jour pour HDT.

Il est Ă©galement possible de tester une mĂȘme machine, avec plusieurs fichiers venant de plusieurs versions diffĂ©rentes de systĂšmes... Par exemple, pour savoir si telle machine n’aura pas de problĂšme majeur avec telle version de tel systĂšme... Il est Ă©galement possible d’envisager une extraction d’informations tierces de ces fichiers, afin de faire un traitement pour une crĂ©ation automatique du nom du fichier initial vide, dont HDT a besoin dans l’arborescence « path_tftp/hdt/ ». Mais ici, il serait plus simple d’avoir simplement des fichiers dont les noms sont les adresses MAC, pour un traitement automatique et immĂ©diat suivant l’extraction d’informations. ;)

Conclusion

Hardware Detection Tool remplit diverses fonctions utiles Ă  divers besoins :

  • avoir toujours dans la poche de quoi regarder avec prĂ©cision un matĂ©riel ;
  • enregistrer tout matĂ©riel effectuant des requĂȘtes sur le serveur PXE ; non seulement son adresse MAC, mais aussi ses numĂ©ros de sĂ©rie, permettant ainsi de lancer une procĂ©dure automatique ;
  • renseigner avec ces informations auprĂšs d’un serveur d’asset, ou une feuille de calcul, immĂ©diatement et Ă  bas niveau, permettant Ă©galement de lancer une procĂ©dure automatique ;
  • affiner une solution d’installation par le rĂ©seau, en la rendant plus autonome en temps et en intervention humaine.

À vous d’en faire l’usage correspondant Ă  vos besoins et / ou amĂ©liorant vos systĂšmes.

Syslinux & Kernel

HDT Ă©tant un module pour Syslinux, son intĂ©gration se fera dans le prochain Syslinux. L’hĂ©bergement Ă©tant assurĂ© par kernel.org. Puis, il rejoindra naturellement toutes les distributions GNU/Linux dans leurs empaquetages respectifs de Syslinux.

HDT est distribué sous licence MIT.

Aller plus loin

  • # La dĂ©pĂȘche dont vous ĂȘtes l'auteur

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

    Vous pouvez éditer ce paragraphe en cliquant dessus

    Vous pouvez éditer ce paragraphe en cliquant dessus

    (juste Ă  la fin du sommaire)

    • [^] # Re: La dĂ©pĂȘche dont vous ĂȘtes l'auteur

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

      CorrigĂ©. VoilĂ  ce que c'est de laisser les publiant 100 dĂ©pĂȘches relire les dĂ©pĂȘches de leurs camarades :)

    • [^] # Re: La dĂ©pĂȘche dont vous ĂȘtes l'auteur

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

      gni ? comprends pas, je n'ai pas cette option ??

      Sinon, deux précisions, sur deux formulations malheureuses :

      1. "Mais ici, il serait plus simple d’avoir simplement des fichiers dont les noms sont les adresses MAC, pour un traitement automatique et immĂ©diat suivant l’extraction d’informations. ;)" Dans le contexte, extraction d'informations signifie plus "fonction de hdt". Dans ce cas, la formulation serait "pour un traitement automatique et immĂ©diat prĂ©cĂ©dant l’extraction d’informations." Ou bien encore " pour un traitement automatique et immĂ©diat suivant l’extraction d’informations venant du serveur tftp, pour crĂ©ation automatique pour prĂ©parer la rĂ©ception du dump de hdt".

      2. "en la rendant plus autonome en temps et en intervention humaine". Un simple "en la rendant plus autonome, permettant un gain de temps et une économie d'intervention humaine"

      Note aux admi-relecteurs-modos : Merci pour avoir remplacer l'usage de > qui ne fait rien de bien clair pour ce cas. Mais n'ai rien trouver d'autre pour avoir un fond, pour 'citer' un fichier de conf. C'est mieux comme cela qu'avec > effectivement. Merci aussi pour le tar gzippé.

      • [^] # Re: La dĂ©pĂȘche dont vous ĂȘtes l'auteur

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

        Ai pas mal hĂ©sitĂ© pour savoir dans quelle case ça pouvait rentrer. Ai finalement opter pour "kernel" puisqu'il s'agit d'un com32 pour syslinux, lui mĂȘme au service du noyau. Mais en oubliant que cela allait noter en gros "kernel" dans le titre.

        A propos de com32, l'introduction aurait p'tĂȘte besoin de prĂ©cision Ă  ce sujet, puisqu'il s'agit d'un outil destinĂ© exclusivement Ă  l'architecture x86 Intel. Hum. Bon, corrections tardives, toussa, pardon aux mamans ours :)

      • [^] # Re: La dĂ©pĂȘche dont vous ĂȘtes l'auteur

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

        Dans ce cas, la formulation serait "pour un traitement automatique et immĂ©diat prĂ©cĂ©dant l’extraction d’informations." Ou bien encore " pour un traitement automatique et immĂ©diat suivant l’extraction d’informations venant du serveur tftp, pour crĂ©ation automatique pour prĂ©parer la rĂ©ception du dump de hdt".

        Heu, on va prendre « pour un traitement automatique et immĂ©diat prĂ©cĂ©dant l’extraction d’informations. », parce que « pour un traitement automatique et immĂ©diat suivant l’extraction d’informations venant du serveur tftp, pour crĂ©ation automatique pour prĂ©parer la rĂ©ception du dump de hdt », c’est trop long, trop lourd et la rĂ©pĂ©tition « pour (...) pour (...) pour » est particuliĂšrement inĂ©lĂ©gante... Tu as tendance Ă  faire des phrase trop longues dans lesquelles on se perd un peu. Je me suis permis d’en couper quelques-unes.

        D’autre part, HDT, DHCP, TFTP, etc., doivent ĂȘtre en majuscules, puisque ce sont des initiales.

        PS : je suis ravi qu’« archive tar compressĂ©e gzip » (on ne peut plus mettre une espace insĂ©cable aprĂšs une fin d’italique, ça fait chier cette rĂ©gression !) t’ait plu. C’est quand mĂȘme plus joli qu’une « boule de goudron ». :)

Suivre le flux des commentaires

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