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
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
Hello clochette.
Merci pour ta réponse
En effet j’ai oublié de donner des renseignements importants, je m’en excuse
C’est une carte physique, une asus tinkerboard avec comme os armbian ( debian jessie )
Hello mattotop.
Encore merci pour tes réponses si rapides
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
Hello.
Je vais checker,avec cat ou nano, tous les fichiers dans /sys en espérant trouver mon petit numéro de série
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
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
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
Je bataille depuis deux nuits mais je n’arrive à rien
Merci d’avance
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!!
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
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
Je vais également essayer avec sed, la commande à l’air plus simple à comprendre
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 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