Kysymys:
Vadelma Pi -laitteiston tunnus
Alexandru Irimiea
2016-02-04 21:45:17 UTC
view on stackexchange narkive permalink

Onko jokaiselle Raspberry Pi -pohjaiselle laitteelle mahdollista tallentaa laitteistotunnus?

Oletetaan, että minulla on 10 Raspberry Pi -alustaan ​​perustuvaa mukautettua laitetta, joita käytetään hajautettuihin tehtäviin. Jossain vaiheessa jostain syystä haluan poistaa kaiken yhdestä niistä. Kuinka voin tunnistaa levyn sen jälkeen?

Onko Pi: llä siru, joka tallentaa yksilöllisen tunnuksen, kuten sarjanumeron jokaiselle levylle? Jos ei, voinko lisätä (vain luku) -muistin (joka voi tallentaa yksinkertaisen arvon myös ilman virtaa) voidakseni kommunikoida sen kanssa GPIO: n kautta milloin tahansa?

Mitkä ovat vaihtoehdot?

Älkää kysykö kysymystä, päättäkää sitten vastauksen perusteella, haluatko todella kysyä tai haluatko uuden kysymyksen. Tämä tuhlaa niiden ihmisten aikaa, joilta pyydät apua. Tästä syystä olen palauttanut muokkauksesi takaisin. Jos sinulla on toinen kysymys, kysy toinen kysymys.
@goldilocks: Olet oikeassa. Minun olisi pitänyt jakaa tämä kysymys kahtia.
Entä 'ZERO'? ei täällä MAC-osoitetta ... onko mitään muuta yksilöllistä tunnusta?
Neljä vastused:
Ralph
2016-02-04 21:48:09 UTC
view on stackexchange narkive permalink

Kyllä, jokaisella levyllä on sarjanumero. Menetelmät tämän hankkimiseksi on kuvattu täällä: Kuinka saan sarjanumeron?

Tämä ei ole täydellinen vastaus, koska se käsittelee vain Linuxia eikä siinä mainita ikkunoita ollenkaan. Olisi mielenkiintoista tietää, miten tämä tehdään myös Windowsissa.
@Savinykh ... linux _ja_ Mac OS. Awk, grep ja cut ovat työkaluja, jotka ovat käytettävissä molemmissa käyttöjärjestelmissä, mutta olen samaa mieltä siitä, että Windows jätetään pois, koska sillä ei ole näitä käteviä komentorivityökaluja.
Et voi käyttää Mac OS: ää Pi: llä, joten se ei ole merkitystä. Uskon, että voit ajaa vain päätöntä Win10 IOT -versiota Pi: llä. Realistisesti 99% Pi-käyttäjistä käyttää Linuxia.
@ripat,, voitko käyttää Mac OS: tä vadelma-piillä? Epäilen jotenkin sitä.
Maxthon Chan
2016-02-05 09:12:16 UTC
view on stackexchange narkive permalink

Tässä on helpompi käyttää: MAC-osoite IPv6 NDP: n automaattisen määrityksen kautta. Tämä on yleinen menetelmä, jota voidaan käyttää kaikissa verkkoliitännöissä.

Jokaisella verkkokortilla, myös Pi: ssä käytetyllä USB: llä, on 48-bittinen MAC-osoite, esimerkiksi 14: cf: 92: 20: 26: 3c .

Jokaisella 48-bittisellä MAC-osoitteella on ainutlaatuinen yksilöllinen kartoitus EUI-64-osoitteeseen peittämällä kolmannen kolmannen viimeisen bitin tavu ( 92 - 90 ) ja lisää tavut feff kolmannen ja neljännen tavun väliin. Edellä mainittu 48-bittinen MAC voidaan yhdistää EUI-64: een: 14cf:90fe:ff20:263c.

IPv6-osoitteen automaattinen määritysprosessi käyttää NDP-protokollaa 64 -bitinen verkko-osoite 128-bittisessä osoitteessa. Tämä prosessi antaa kaikille saman verkon laitteille saman 64-bittisen etuliitteen. Edellä mainittua EUI-64: tä käytetään 64-bittisen aseman osoitteen täyttämiseen, mikä johtaa 128-bittiseen maailmanlaajuisesti ainutlaatuiseen IPv6-osoitteeseen. Joten jos sinulla on IPv6-verkon etuliite 2001: 470: d: 472 :: / 64 , yllä mainitulla verkkokortilla, kun sitä käytetään tässä verkossa, taataan olevan IPv6: n globaalisti reititettävä osoite 2001: 470: d: 472: 14cf: 90fe: ff20: 263c . Niin kauan kuin hallintatyökalusi on määritetty käyttämään IPv6: ta, liitä vain tämä osoite siihen ja sen pitäisi olla hyvä mennä.

tämä on mielestäni parempi tapa vastata tähän kysymykseen. MAC on ainutlaatuinen. voit hajauttaa sen hieman, jos haluat, mutta vain luottaa MAC-osoitteeseen voidaan tehdä millä tahansa alustalla.
@Havnar Parempaa, tämä kääntää MAC-osoitteen suoraan globaalisti reititettäväksi IPv6-osoitteeksi, jota voidaan käyttää pakettien lähettämiseen suoraan Pi: lle (mikä tahansa sovelluskerrosprotokolla toimii niin kauan kuin se toimii useimmissa IPv6: ssa) )
En tiedä monia ihmisiä, jotka todella käyttävät ipv6: ta kotona tai tuotannossa.
@Havnar Olen ottanut IPv6-tunnelin käyttöön kotiverkossani siihen pisteeseen, että kaikki kodini laitteet, paitsi itse reititin, voivat toimia ilman IPv4: n käyttöä.
Milliways
2016-02-05 04:56:52 UTC
view on stackexchange narkive permalink

Kuten toisessa vastauksessa, Pi: llä on yksilöllinen tunnus, joka liittyy MAC: ään.

Käytännössä verkkoon on kätevämpää käyttää yksilöllistä hostname . Käytän seuraavaa komentosarjaa nimien asettamiseen CPUID.

  #! / Bin / bash # -komennon avulla Pi-isäntänimi MAC: n (tai sarjanumeron) perusteella # 2017-08-18 # Tämä komentosarja tulisi suorittaa pääkäyttäjänä (tai sudolla) nimien muuttamiseksi # Jos käyttäjä ajaa käyttäjän, se ilmoittaa muutoksista, mutta EI toteuta niitä # Toimii PiB: lle (kaikki mallit), Pi2, Pi3 , PiZeroW ja verkkoyhteydet # PiA-mallit asettavat yksilöllisen nimen sarjanumeron perusteellaPDIR = "$ (dirname" $ ​​0 ")" # # hakemiston sisältävä hakemistoCURRENT_HOSTNAME = $ (cat / etc / hostname) # Etsi eth0: n MAC tai jos ei olemassa wlan0if [-e / sys / class / net / eth0]; sitten MAC = $ (cat / sys / class / net / eth0 / address) elif [-e / sys / class / net / enx *]; sitten MAC = $ (cat / sys / class / net / enx * / address) else MAC = $ (cat / sys / class / net / wlan0 / address) fi # HUOMAUTUS, että MAC: n ja CPUID: n viimeiset 6 tavua ovat identtiset CPUID = $ (awk '/ Serial / {print $ 3}' / proc / cpuinfo | sed 's / ^ 0 * //') echo "Nykyinen nimi" $ CURRENT_HOSTNAMEecho "MAC" $ MAC # Jos haluat määrittää isäntänimet, luo tiedosto PiNames .txt ja MAC-isäntänimiluettelo, esim. # b8: 27: eb: 01: 02: 03 MyPi # Jos ei löydy yksilöivää nimeä sarjanumeron perusteella, se asetetaanNEW_HOSTNAME = $ (awk / $ MAC / '{print $ 2}' $ PDIR "/PiNames.txt")echo" Nimi löytyi "$ NEW_HOSTNAMEif [$ NEW_HOSTNAME ==" "]; sitten NEW_HOSTNAME = "pi" $ CPUIDfiif [$ NEW_HOSTNAME = $ CURRENT_HOSTNAME]; sitten echo "Nimi on jo asetettu" muu echo "Asetuksen nimi" $ NEW_HOSTNAME echo $ NEW_HOSTNAME > / etc / hostname sed -i "/127.0.1.1/s/$CURRENT_HOSTNAME/$NEW_HOSTNAME/" / etc / hostsfi  
Vaikka tietysti As: lla ja Nollalla, ilman Ethernet-yhteyttä, ei ole MAC: ää käytettäväksi! WiFi-sovitin toimii, mutta sovittimen siirtäminen Pis: n välillä tarkoittaa, että yksilöllinen tunnus seuraa sovitinta!
@SlySven Minulla ei ole nollaa (ja en voi vielä ajatella mitään pätevää syytä), mutta minun pitäisi muokata komentosarjaani ohittamaan puuttuva MAC. Oletan, ettei `/ sys / class / net / eth0 / address` ole
Toinen tapa tunnistaa kaikki Pi: t, joilla on yksilöllinen tunnus, on saada sen dbus-koneen tunnus, joka ei ole käyttöliittymästä riippuvainen "cat / var / lib / dbus / machine-id" [lue lisää] (http://0pointer.de/blog /projects/ids.html)
... unohdin hyvittää yllä olevan kommenttini "lue lisää" -linkkiä sen kirjoittajalle: Lennart Poetteringille, systemd-isälle.
Ghanima
2016-02-04 21:54:45 UTC
view on stackexchange narkive permalink

Jos sillä ei ole tunnusta (jolla sillä on, kuten näyttää siltä, ​​katso Ralphin vastaus), vaihtoehto voisi olla I2C-sarjanumerosiru. Ne on todella helppo yhdistää (sarjaliitäntä) ja tarjoavat yksilöllisen sarjanumeron.

Joitakin esimerkkejä:

  • Maximin I²C / SMBus Silicon -sarjanumero, esim. DS2401, DS28CM00
  • Microchipin Unique ID Chip -tuotteet, esim. 24AA02UID, 24AA025UID
  • itse ohjelmoitu I²C EEPROM
Voi myös käyttää vain I2C EEPROM -piiriä ja ohjelmoida siihen yksilöllinen tunnus. AT24C32 ovat melko halpoja, kun ne ostetaan irtotavarana.


Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...