So identifizieren Sie einen Pi

12

Ich habe einen Stapel von fünf Pis, von denen jeder einen separaten Hostnamen hat und sich im selben Netzwerk befindet. Ich muss jeden Pi physisch von einem anderen Pi unterscheiden, indem ich möglicherweise die integrierten LEDs auf erkennbare Weise aufleuchtete. Hast du eine Idee, wie ich das im Idealfall von Bash aus machen könnte, ohne irgendetwas zu verkabeln?

Nick
quelle
1
Sie können die Onboard-LEDs steuern, obwohl es bei einigen Modellen Einschränkungen zu geben scheint. Wahrscheinlich möchten Sie den grünen ACT-Wert verwenden, da der rote PWR-Wert möglicherweise nicht so einfach ausgewählt werden kann. raspberrypi.stackexchange.com/search?q=onboard+leds
goldilocks
1
Wollten Sie nur etwas in bash ausführen, um jeweils einen bestimmten Pi zu identifizieren, oder wollten Sie etwas, das dazu führt, dass die Pi immer ihre eigene eindeutige Sequenz "aufblitzt"?
Jaromanda X

Antworten:

25

Auf mindestens einem Pi 3 können Sie die grüne LED (SD-Kartenaktivität) mit dem folgenden Befehl (als Root) dauerhaft einschalten:

echo 1 > /sys/class/leds/led0/brightness

Jetzt leuchtet die grüne LED auf dem Pi, was das Identifizieren und Beschriften sehr einfach macht.

So setzen Sie die LED in den Standardzustand zurück:

echo 0 > /sys/class/leds/led0/brightness
echo mmc0 > /sys/class/leds/led0/trigger

Durchlaufen Sie alle Ihre Pis auf diese Weise, bis Sie alle adressiert und entsprechend gekennzeichnet haben.

stevieb
quelle
1
Sie können das auch auf einem Pi 1 und 2 machen
Jaromanda X 10.06.18
@stevieb das hat das problem schön behoben, danke. Herunterfahren und Neustarten oder Trennen des Netzwerks waren nicht in Betrieb, da ich den Cluster in Betrieb halten muss. Ich musste nur herausfinden, welcher Pi oben auf dem Stapel war, damit ich ihn einlesen und den HDMI-Anschluss wieder einschalten konnte, damit ich ihn an ein Display anschließen konnte.
Nick
Danke @Nick. Wenn es Ihr Problem tatsächlich gelöst hat, akzeptieren Sie die Antwort.
Stevieb
13

Fahren Sie einen von ihnen herunter. Am grünen Licht sollte ein erkennbares Verhalten erkennbar sein, das irgendwann erlischt.

Setzen Sie dann ein Etikett mit dem IP-Namen auf das Pi.

Dann können Sie diesen erneut starten.

Wiederholen, bis alle markiert sind.

Sie können sie auch alle herunterfahren und dann einzeln aufrufen, um festzustellen, welche IP-Nummer in Ihrem Router vorhanden ist.

Entweder eine physische Bezeichnung oder ein Hostname mit einer wirklich guten Beschreibung, wo sie sich befinden, wenn sich das nicht ändert, ist eine sehr nützliche Sache. Wenn sie Ethernet verwenden, können Sie das Etikett um das Kabel wickeln.

NomadMaker
quelle
3

Ich würde empfehlen, nur das Ethernet-Kabel zu ziehen und jeden Pi der Reihe nach anzupingen. Welches antwortet dann nicht? Diese anderen Lösungen sind ordentlich, aber Ping ist immergrün. Wenn Sie aus irgendeinem Grund ICMP-Anfragen nach diesen Pis gefiltert haben, können Sie nping aus dem nmap-Paket verwenden: nping —arp 192.168.0.25

Wenn Sie es eilig haben, verwenden Sie einfach Fing (kostenlos) aus dem Play / App Store, um einen schnellen Arp-Scan durchzuführen und festzustellen, welcher Host beim Ziehen eines Kabels abfällt.

Weisen Sie statische IP-Adressen basierend auf der MAC-Adresse in Ihrer dhcpd.conf zu, um solche Probleme zu vermeiden. ISC-DHCPD ist genau das, was Sie brauchen. Es ist ein wunderschöner Service. Verwenden Sie dnsmasq nur, wenn Sie die vielen ++ - Funktionen benötigen.

Drucken Sie Dymo-Etiketten mit MACs, IPs und Hostnamen und kleben Sie sie auf jeden Pi. Verlassen Sie sich nicht auf mDNS / avahi / bonjour / auto-anything, es ist nicht kinderleicht. Außerdem hatte avahi-daemon im Laufe der Jahre einige schwerwiegende Sicherheitsprobleme.

/etc/hosts bleibt der König für kleine Labor- / SoHo-Netzwerke, ich verwende es immer als Referenz für meine statischen dhcpd-Clients.

user2497
quelle
1
Als ich mir die Mühe gemacht habe, meinen (einzelnen) Pi als DHCP-Server zu verwenden, habe ich eine gefälschte Domain (natürlich .ivan) eingerichtet und DNS-Einträge für Dinge vorgenommen, für die ich einen statischen DHCP-Server eingerichtet habe darauf aus, alle meine Geräte zu sein. Gäste erhalten echtes DHCP. Viel einfacher als /etc/hostsbesonders für Geräte, bei denen Sie das nicht können - wie mein iPhone.
Ivanivan
@ivanivan Ich behalte nur / etc / hosts-Einträge für statische DHCP-Einträge. Es ist einfacher zu grep als dhcpd.conf
user2497