Як визначити пі


13

У мене є стек з п'яти Pis, кожен з яких має окреме ім'я хоста і знаходиться в одній мережі. Мені потрібно фізично ідентифікувати кожен Pi від іншого Pi, можливо, блимаючи бортові світлодіоди впізнаваним чином. Будь-яка ідея, як я можу це зробити з Bash в ідеалі, і не підключаючи нічого до цього?


1
Ви можете керувати бортовими світлодіодами, хоча на деяких моделях є певні обмеження. Ви, мабуть, хочете використовувати зелений ACT як червоний PWR, можливо, не так легко скористатися. raspberrypi.stackexchange.com/search?q=onboard+leds
goldilocks


1
Ви просто хотіли щось запустити в баш для того, щоб визначити один конкретний Пі за один раз, чи Ви хотіли чогось, що призведе до того, що Пі завжди "блимати" власною унікальною послідовністю?
Jaromanda X

Відповіді:


25

Як мінімум на Pi 3, ви можете увімкнути зелений світлодіод (активність на SD-картці), щоб постійно увімкнено за допомогою наступної команди (як root):

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

Тепер, коли Pi буде мати зелений світлодіод на постійному рівні, що робить його дуже легким для ідентифікації та маркування.

Щоб повернути світлодіод до його стандартного стану:

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

Ітерируйте через усі ваші Pis таким чином, поки ви не вирішите їх усіх і не позначаєте відповідно.



1
Ви можете це зробити і на Pi 1 та 2
Jaromanda X

@stevieb, який добре вирішив проблему, дякую. Завершення роботи та перезавантаження або відключення від мережі не працювали, оскільки мені потрібно підтримувати кластер. Мені просто потрібно було визначити, який Pi був у верхній частині стека, щоб я міг стати в нього і повернути порт HDMI назад, щоб я міг прикріпити його до дисплея.
Нік

Дякую @Nick. Якщо це дійсно вирішило вашу проблему, будь ласка, прийміть відповідь.
stevieb

13

Закрийте одну з них. З зеленого світла має бути впізнавана поведінка, яка згодом згасне.

Потім поставте мітку на цю пі з її іменем.

Тоді ви можете почати його знову.

Повторюйте, поки всі не позначені.

Або ви можете вимкнути їх, а потім підняти їх по черзі і подивитися, який номер ip з'являється у вашому маршрутизаторі.

Або фізична мітка, або ім'я хоста з дійсно хорошим описом того, де вони знаходяться, якщо це не зміниться, дуже корисна річ. Якщо вони використовують Ethernet, ви можете обмотати етикетку навколо кабелю.


3

Я рекомендую просто потягнути кабель Ethernet і пінгнути кожен Pi по черзі. Що не відповідає? Ці інші рішення акуратні, але пінг вічнозелений. Якщо ви чомусь відфільтрували запити icmp на цих Pis, ви можете використовувати nping з пакету nmap: nping —arp 192.168.0.25

Якщо ви поспішаєте, просто скористайтеся Fing (безкоштовно) з магазину Play / App, щоб зробити швидке сканування арп, і побачити, який хост випадає, коли ви потягнете кабель.

І призначте статичні IP-адреси на основі MAC-адреси у своєму dhcpd.conf, щоб уникнути подібних проблем. ISC-DHCPD - саме те, що вам потрібно. Це прекрасна послуга. Не використовуйте dnsmasq, якщо вам не потрібні багато ++ функцій.

Роздрукуйте диметикетки з MAC, IP-адресами та іменами хостів та наклейте їх на кожен Pi. Не покладайтеся на mDNS / avahi / bonjour / auto-будь-що, це не є надійним. Крім того, avahi-демон демонстрував серйозні проблеми з безпекою протягом багатьох років.

/etc/hosts залишається королем для невеликих мереж лабораторій / SoHo, я завжди використовую це як орієнтир для своїх статичних клієнтів dhcpd.


1
Коли я непокоївся починати використовувати свій (одиночний) Pi як dhcp-сервер, я пішов вперед і створив підроблений домен (звичайно .ivan) і зробив записи DNS для речей, для яких я встановив статичний dhcp ... бути моїми пристроями. Гості отримують справжній DHCP. Набагато простіше, ніж /etc/hostsособливо для пристроїв, де цього не можна зробити, як-от мій айфон.
іваніван

@ivanivan Я зберігаю лише записи / etc / hosts для статичних записів dhcp. Легше гребіти, ніж dhcpd.conf
user2497
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.