Jak zidentyfikować Pi

13

Mam stos pięciu Pis, z których każdy ma osobną nazwę hosta i jest w tej samej sieci. Muszę fizycznie zidentyfikować każde Pi z innego Pi, być może poprzez flashowanie wbudowanych diod LED w rozpoznawalny sposób. Masz pomysł, jak mógłbym to zrobić idealnie od Basha i bez podłączania czegokolwiek?

Nacięcie
źródło
1
Możesz kontrolować wbudowane diody LED, chociaż niektóre modele wyglądają na pewne ograniczenia. Prawdopodobnie chcesz użyć zielonego ACT one, ponieważ czerwony PWR może nie być tak łatwo dokupiony. raspberrypi.stackexchange.com/search?q=onboard+leds
goldilocks
1
czy chciałeś po prostu uruchomić coś w bash, aby zidentyfikować jednego konkretnego Pi na raz, czy też chciałeś czegoś, co spowodowałoby, że Pi zawsze „miga” swoją unikalną sekwencją?
Jaromanda X

Odpowiedzi:

25

W co najmniej Pi 3 możesz włączyć zieloną diodę LED (aktywność karty SD), aby świeciła stale, wykonując następujące polecenie (jako root):

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

Teraz, gdy Pi będzie świeciła zielona dioda LED, co bardzo ułatwi identyfikację i etykietowanie.

Aby przywrócić LED do stanu domyślnego:

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

Iteruj przez wszystkie swoje Piki w ten sposób, aż wszystkie zostaną odpowiednio zaadresowane i oznaczone.

stevieb
źródło
1
możesz to zrobić również na Pi 1 i 2
Jaromanda X
@stevieb, który ładnie naprawił problem, dzięki. Zamykanie i ponowne uruchamianie lub odłączanie od sieci nie były uruchomione, ponieważ muszę utrzymać klaster w działaniu. Musiałem tylko określić, które Pi jest na szczycie stosu, aby móc ssh w nim włączyć i ponownie włączyć port HDMI, aby móc podłączyć go do wyświetlacza.
Nick
Dzięki @Nick. Jeśli to rzeczywiście rozwiązało problem, zaakceptuj odpowiedź.
stevieb
13

Zamknij jeden z nich. Powinno być rozpoznawalne zachowanie z zielonego światła, które ostatecznie zgaśnie.

Następnie umieść etykietę na tym pi za pomocą jego nazwy ip.

Następnie możesz zacząć od nowa.

Powtarzaj, aż wszystkie zostaną zaznaczone.

Możesz też zamknąć je wszystkie, a następnie wywoływać pojedynczo i sprawdzać, jaki numer ip pojawia się w routerze.

Bardzo przydatna jest fizyczna etykieta lub nazwa hosta z naprawdę dobrym opisem, gdzie się znajdują, jeśli to się nie zmieni. Jeśli używają Ethernetu, możesz owinąć etykietę wokół kabla.

NomadMaker
źródło
3

Poleciłbym po prostu wyciągnąć kabel Ethernet i pingować kolejno każde Pi. Które zatem nie odpowiada? Te inne rozwiązania są zgrabne, ale ping jest wiecznie zielony. Jeśli z jakiegoś powodu odfiltrowałeś żądania icmp na tych Pisach, możesz użyć nping z pakietu nmap: nping —arp 192.168.0.25

Jeśli się spieszysz, po prostu skorzystaj z Fing (bezpłatnie) ze sklepu Play / App Store, aby wykonać szybkie skanowanie arp i sprawdź, który host odpadnie po pociągnięciu kabla.

I przypisuj statyczne adresy IP na podstawie adresu MAC w pliku dhcpd.conf, aby uniknąć tego rodzaju problemów. ISC-DHCPD jest właśnie tym, czego potrzebujesz. To piękna usługa. Nie używaj dnsmasq, chyba że potrzebujesz jego wielu funkcji ++.

Drukuj etykiety dymo z adresami MAC, adresami IP i nazwami hostów i przyklejaj je na każdym pi. Nie polegaj na mDNS / avahi / bonjour / auto-cokolwiek, to nie jest niezawodne. Poza tym avahi-daemon przez lata miał poważne problemy z bezpieczeństwem.

/etc/hosts pozostaje królem dla małych sieci laboratoryjnych / SoHo, zawsze używam go jako odniesienia dla moich statycznych klientów dhcpd.

użytkownik2497
źródło
1
Kiedy zadałem sobie trud, zacząłem używać mojego (pojedynczego) Pi jako serwera dhcp, poszedłem naprzód i założyłem fałszywą domenę (oczywiście .ivan) i wprowadziłem wpisy DNS dla rzeczy, które mam statyczne dhcp skonfigurowane dla ... na wszystkich moich urządzeniach. Goście otrzymują prawdziwy DHCP. Znacznie łatwiej niż /etc/hostsszczególnie w przypadku urządzeń, w których nie można tego zrobić - takich jak mój iPhone.
ivanivan
@ivanivan Przechowuję tylko wpisy / etc / hosts dla statycznych wpisów dhcp. Łatwiej jest grep niż
dhcpd.conf