Как определить пи


13

У меня есть стек из пяти Pis, каждый из которых имеет отдельное имя хоста и находится в одной сети. Мне нужно физически идентифицировать каждый Пи от другого Пи, возможно, мигая встроенными светодиодами в узнаваемой форме. Любая идея, как я мог бы сделать это от Bash в идеале, и ничего не подключать?


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


1
Вы просто хотели запустить что-то в bash, чтобы идентифицировать одного конкретного Пи за раз, или вы хотели что-то, что приводило бы к тому, что Пи всегда «мигал» своей собственной уникальной последовательностью?
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 был на вершине стека, чтобы я мог подключиться к нему через ssh и снова включить порт HDMI, чтобы подключить его к дисплею.
Ник

Спасибо @ Ник. Если это действительно решило вашу проблему, пожалуйста, примите ответ.
Stevieb

13

Выключи одного из них. Там должно быть узнаваемое поведение от зеленого света, который в конечном итоге погаснет.

Затем поместите метку на этот пи с его IP-именем.

Тогда вы можете начать это снова.

Повторяйте, пока все не будут отмечены.

Или вы можете отключить их все, а затем вызвать их по одному и посмотреть, какой номер ip появляется в вашем маршрутизаторе.

Либо физическая метка, либо имя хоста с действительно хорошим описанием того, где они находятся, если это не изменится, очень полезная вещь. Если они используют Ethernet, вы можете обернуть этикетку вокруг кабеля.


3

Я бы порекомендовал просто тянуть кабель Ethernet и пинговать каждый Pi по очереди. Который тогда не отвечает? Эти другие решения аккуратны, но пинг вечнозелен. Если по какой-то причине вы отфильтровали запросы icmp на этих Pis, вы можете использовать nping из пакета nmap: nping —arp 192.168.0.25

Если вы спешите, просто используйте Fing (бесплатно) из магазина Play / App для быстрого сканирования arp и посмотрите, какой хост отваливается, когда вы тянете кабель.

И назначьте статические IP-адреса на основе MAC-адреса в вашем файле dhcpd.conf, чтобы избежать подобных проблем. ISC-DHCPD - это то, что вам нужно. Это красивый сервис. Не используйте dnsmasq, если вам не нужны многие функции ++.

Напечатайте dymo-метки с MAC-адресами, IP-адресами и именами хостов и наклейте их поверх каждого Pi. Не полагайтесь на mDNS / avahi / bonjour / auto-что-нибудь, это не надежно. Кроме того, на протяжении многих лет у avahi-daemon были серьезные проблемы с безопасностью.

/etc/hosts остается королем для небольших лабораторий / сетей SoHo, я всегда использую его в качестве эталона для моих статических клиентов dhcpd.


1
Когда я начал использовать мое (одиночное) Pi в качестве сервера dhcp, я решил создать поддельный домен (конечно, .ivan) и сделал записи DNS для вещей, для которых настроен static-dhcp ... чтобы быть все мои устройства. Гости получают настоящий DHCP. Гораздо проще, чем /etc/hostsособенно для устройств, где вы не можете этого сделать - например, мой iphone.
Иваниван

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