Récupérer numéro série carte mère

Hello a toutes et tous
Pour mon projet, j’aimerais créer une “empreinte digitale” non changeable même si il y a un formatage du support.
J’avais pense a récupérer le numéro de série de la carte avec lshw et l’écriture dans un fichier texte mais en retour je n’ai que des zéro.
Quelqu’un aurait une idée :slight_smile:

Dans /sys/class/dmi/id, tu dois avoir des choses plus stables que la sortie de lshw.
Notament tous les éléments “board_*” qui concernent la carte mère.

Par contre plus de précisions ne serait pas de refus …

Par exemple dans le cas d’une machine virtuelle tu n’aura pas accès au matériel (en générale) chez un hébergeur.

L’idée de Matt est top :rofl:

Hello clochette.
Merci pour ta réponse :slight_smile:
En effet j’ai oublié de donner des renseignements importants, je m’en excuse :stuck_out_tongue:
C’est une carte physique, une asus tinkerboard avec comme os armbian ( debian jessie )

Hello mattotop.
Encore merci pour tes réponses si rapides :slight_smile:

J’ai essayé de suvire ton conseil mais je n’ai pas dmi

root@diagbox:/sys/class# ls
backlight    drm          input     power_supply  scsi_device    tpm
bdi          dvb          iommu     ppp           scsi_disk      tpmrm
block        gpio         leds      pps           scsi_host      tty
bluetooth    graphics     mdio_bus  ptp           sound          udc
bsg          hidraw       mem       pwm           spidev         usbmisc
cuse         hwmon        misc      rc            spi_host       usbmon
devcoredump  i2c-adapter  mmc_host  regulator     spi_master     vc
devfreq      i2c-dev      net       rfkill        spi_transport  video4linux
dma          ieee80211    phy       rtc           thermal        vtconsole

Zut.
Je croyais que le dmi etait standard sur toutes les cartes méres, mais manifestement pas.
/sys te fournit des données sur tout le matos, si c’est pour vérifier un élément de ce matos là, tu peux gratter ce qu’il y a dans /sys (cat des fichiers qui te paraissent pertinent) pour en trouver un qui te permette d’identifier un composant de la machine qui l’identifie pour verrouiller si absent.
J’ai regardé aussi dans /proc s’il n’y avait pas accés à un numéro de série quelconque de la carte mère chargé par le noyau, mais je n’ai pas trouvé.
Désolé.

Le paquet dmidecode n’est peut-être tout simplement pas installé ?

https://packages.debian.org/fr/stretch/dmidecode

Ce qui expliquerai

Hello Clochette :).
Après vérification j’ai bien le paquet dmidecode d’installé.
Je continue a chercher une alternative :stuck_out_tongue:

Hello.
Je vais checker,avec cat ou nano, tous les fichiers dans /sys en espérant trouver mon petit numéro de série :slight_smile:
Une alternative serait de prendre l’@ Mac comme empreinte( je cherche une empreinte unique a chaque carte), mais c’est la forme de l’adresse qui ne me plaît pas : Xx:Xx:Xx.
Je préférerais des tirets ou rien du tout a la place des deux points.
Merci en tout cas pour ton aide :slight_smile:

Bonjour

Tu pourrais utiliser le N° de série du disque dur utilisé par la machine
celui qui est retourné par la commande :

udisksctl status

Hello merci pour ton idée mais je me suis penché sur l’@ mac de la carte éthernet finalement :slight_smile:

Hello
Finalement je vais prendre l’adresse mac mais en enlevant les :

J’ai commencé à faire mon script mais je bloque :

    #!/bin/bash
    ifconfig eth0 >> /diagbox/web/tmp/eth0_temp.txt
    grep HWaddr /diagbox/web/tmp/eth0_temp.txt >> /diagbox/web/tmp/eth0_mac.txt
    rm /diagbox/web/tmp/eth0_temp.txt

Et voila ce qui en ressort :

eth0 Link encap:Ethernet HWaddr 2c:4d:54:43:34:dd

J’aimerais extraire 2c:4d:54:43:34:dd et enlever les :
si c’est possible :slight_smile:

Je bataille depuis deux nuits mais je n’arrive à rien

Merci d’avance :slight_smile:

Il est possible de récupérer le numéro de série de la carte mère via /sys/class/dmi comme indiqué plus haut. Cependant beaucoup de fabriquants de carte mère ne remplissent tout simplement pas les champs.

Par exemple sur ma carte mère:

-> % sudo cat /sys/class/dmi/id/board_{vendor,name,serial} 
MSI
B75MA-E33 (MS-7808)
To be filled by O.E.M.

sympa le numéro de série hein ? merci qui ? Merci MSI!! :slight_smile:

maceth0=$(</sys/class/net/eth0/address)
maceth0=${maceth0//:/}

echo $maceth0

eth0 n’est vrai que si tu es connecté en ethernet, je suis en wifi seul et donc…

$ maceth0=</sys/class/net/eth0/address
bash: /sys/class/net/eth0/address: Aucun fichier ou dossier de ce type

Tu peux utiliser la commande inxi ( paquet inxi à installer)

un rapport complet lisible par un humain:

sudo inxi -F

tu y trouveras peut etre une information “permanente” pour ton projet
Exemple le modèle de la carte graphique

sudo inxi -G | grep Device-1
  Device-1: AMD RS880M [Mobility Radeon HD 4225/4250] driver: radeon 

Hello
Merci pour ta réponse mais a priori asus le ne fait pas :stuck_out_tongue:
Je n’ai pas ces info sur ma tinkerboard
merci quand meme

As-tu essayé les trois lignes de commande que je te proposais
dans mon précédent message ?

maceth0=$(</sys/class/net/eth0/address)
maceth0=${maceth0//:/}

echo $maceth0

Tu peux aussi faire avec sed :

sed 's/://g' /sys/class/net/eth0/address

Hello ^^
Je viens d’essayer et c’est ce que je recherche :slight_smile:
Je vais également essayer avec sed, la commande à l’air plus simple à comprendre :stuck_out_tongue:

J’ai lu le message de grandtoubab mais je pense que je mettrai un script au démarrage qui va verifier la présence du fichier où est stocké l’adresse mac (/sys/class/net/eth0/address) et une fois existant lancer le script que tu m’as proposé

Merci encore.
Grace à des personnes comme toi,grandtoubab,clochette,mattotop et j’en passe :stuck_out_tongue: j’arrive à avancer et surtout à comprendre ce que vous proposez.

Rectification:
En fait tout est fonction des règles de nommage des interfaces.

Dans mon installation ce sont les nouvelles règles

/sys/class/net$  -alrt
total 0
drwxr-xr-x 57 root root 0 mars  22 17:14 ..
drwxr-xr-x  2 root root 0 mars  22 17:36 .
lrwxrwxrwx  1 root root 0 mars  22 17:36 wlp3s0b1 -> ../../devices/pci0000:00/0000:00:05.0/0000:03:00.0/bcma0:1/net/wlp3s0b1
lrwxrwxrwx  1 root root 0 mars  22 17:36 lo -> ../../devices/virtual/net/lo
lrwxrwxrwx  1 root root 0 mars  22 17:36 enp4s0 -> ../../devices/pci0000:00/0000:00:06.0/0000:04:00.0/net/enp4s0
1 J'aime