Как подключить и использовать ssh без экрана используя BUILDROOT


12

Я хочу построить минимальную систему для Raspberry Pi (B +), чтобы улучшить производительность моего алгоритма распознавания лиц ... Я обнаружил BuildRoot: для конфигурации я обнаружил, что нет необходимости выполнять настройку самостоятельно, и вместо этого я использовал предоставленный один :

make raspberrypi_defconfig
make

Теперь у меня нет кабеля HDMI для подключения пи ... при подключении к ноутбуку красный светодиод горит и зеленый светодиод начинает мигать: это означает, что пи правильно читает SD-карту. Это первый раз, когда я Я использую buildroot, и я не знаю, как включить SSH для Пи или как отобразить адрес Пи. Обратите внимание, что это не дубликат Prepare для ssh без экрана, потому что в решении, которое они предоставили

Чтобы включить ssh при запуске, сделайте резервную копию boot.rc в загрузочном разделе образа SD и замените его на boot_enable_ssh.rc

Ну, у меня нет файла с именем boot.rc

Я могу получить доступ к SD-карте с помощью Ubuntu 14.04, запустив ls из загрузочной папки, покажите это:

bootcode.bin  cmdline.txt  config.txt  fixup.dat  start.elf  zImage

Я также пытался использовать статический IP-адрес, добавив 10.42.0.5 в cmdline.txt, но после этого я не могу подключиться к пи с этим адресом. Итак, у меня есть две проблемы:

  1. Как подключиться к пи-адресу при использовании buildroot: ссылка на решение
  2. Как настроить и подключиться к пи с помощью ssh, используя buildroot и без HDMI.

Кстати, я использую кабель Ethernet для подключения к пи

Спасибо :)

ОБНОВЛЕНИЕ : я добавил ссылку на решение для первой проблемы. Теперь пи-адрес появляется после сканирования сети Ethernet:

nmap -sP 10.42.0.0/24
Nmap scan report for 10.42.0.5
Host is up (0.00076s latency).

Теперь у меня есть проблема, как включить ssh, чтобы иметь возможность подключиться к пи без HDMI (используя Buildroot)

При попытке ssh пи (buildroot является системным именем хоста):

ssh buildroot@10.42.0.5
ssh: connect to host 10.42.0.5 port 22: Connection refused

Я думаю это потому что ssh не включен !!!


AFAIK SSH включен по умолчанию ... Кстати, вы используете порт Ethernet или какой-нибудь USB WiFi адаптер?
wb9688

что значит AFAIK? Нет, я использую кабель Ethernet
Зверь

A сек F ар сек I K теперь ...! На ПК с Ubuntu попытайтесь настроить сетевой адрес, указанный где где X находится где-то между 0-255 включительно, что охватит вас для диапазона адресов частного класса C, зарезервированного для локальных сетей. Это фильтрует результаты для уникального MAC-адреса, который будет иметь интерфейс Ethernet на Pi ... sudo nmap -sP 192.168.0.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'192.168.x.0/24
SlySven

1
@SlySven, который я использовал вместо этого, sudo nmap -sP 10.42.0/24дает мне 1 хост (это мой ноутбук), но другие устройства не обнаружены !!! Примечание: мой сетевой адрес - 10.42.0.1, и команда выдает sudo nmap -sP 10.42.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'пустой вывод
Зверь

1
@ wb9688 да, я использовал его при установке raspbian и легко подключаюсь ssh@10.42.0.5после выбора статического ip
The Beast

Ответы:


3

Если все, что вы сделали make raspberrypi_defconfig && make, - это еще много работы, чтобы получить полезную работающую систему.

Конфигурация BuildRoot по умолчанию предназначена для отключения всего, кроме BusyBox. Сервер ssh не отвечает, потому что вы не сказали BuildRoot, что хотите его скомпилировать!

Начните с запуска make menuconfigв каталоге BuildRoot. Openssh может быть включен путем перехода к целевым пакетам, сетевым приложениям, openssh.

Вероятно, будет очень трудно заставить это работать без монитора на Pi. Вам не нужно использовать его в окончательной версии, как только вы запустите ssh, но диагностировать проблемы при запуске без монитора будет очень сложно. Купите себе кабель HDMI или конвертер HDMI -> DVI и используйте локальную консоль.


1
Для отладки я бы также рекомендовал подключить кабель USB к TTL UART. Это работает только на образе buildroot 2016.05 rpi2. Должно быть достаточно для настройки OP x11vnc.
Сиро Сантилли 冠状 病毒 审查 六四 事件 法轮功

3

Предисловие: я использую buildroot-2017.02.3 для Raspberry PI 2 и включил openssh из make menuconfig. Без дальнейших изменений логин ssh не будет работать, потому что сгенерированное значение по умолчанию /etc/ssh/sshd_configне разрешает root-вход.

Вариант А: Добавить пользователя

Вы можете добавлять пользователей через buildroot. Следующие записи могут помочь:

По сути, вы создаете текстовый файл, который определяет вашего пользователя в специальном синтаксисе, например так:

foo -1 foo -1 =bar /home/foo /bin/sh - no_comment

и Телль Buildroot в make menuconfig> System Configuration> user tablesгде найти файл таблицы пользователя. Приведенный выше пример контента создаст дополнительного пользователя fooс паролем bar(логин активирован). Этот пользователь может сразу войти через ssh, так как он не root.

Вариант Б: Разрешить рут-логин

Когда вы используете SD-карту для системы (например, на Raspberry), вы можете просто смонтировать карту на свой ПК, отредактировать /media/<pathToYourSD>/etc/ssh/sshd_config(требуется sudo) и найти строку

#PermitRootLogin prohibit-password

и изменить на

PermitRootLogin yes

Это позволяет root войти в систему через ssh. Обратите внимание, что я установил пароль для root. Не уверен, что это работает без пароля. Если вы не можете смонтировать вашу SD-карту, вам придется писать сценарии после сборки, которые выполняют те же изменения, что и описанные, но на хосте сборки (до того, как rootfs будет упакован).


1

Нет маршрутизатора + обычный кабель Ethernet + RPI 2 + Buildroot 2016.05 + хост Ubuntu 16.04

После того, как я разделил эту проблему на две части, все заработало:

  1. получите SSH ethernet, работающий с Raspbian, и прямое кабельное соединение (на котором уже работает правильно настроенный демон sshd) /raspberrypi//a/54394/33424

  2. Узнайте, как правильно настроить sshd в QEMU + buildroot: /programming//a/39301480/895245

    На реальной плате у вас нет окна QEMU для изменения, /etc/ssh/sshd_configконечно, поэтому вам нужно будет либо:

    • перед перепрошивкой измените его на хосте (либо BR2_ROOTFS_OVERLAYустановите output/images/sdcard.imgс помощью /ubuntu//a/496576/52975 , либо поиграйте с ним output/target)
    • подключиться через последовательный UART. Возможно, вы захотите заставить это работать рано или поздно, так как это лучший способ отладки вашего дистрибутива buildroot на плате.

.configпросто raspberrypi2_defconfig+ opensshвключен с make menuconfig.

Тогда просто:

ssh "root@$(cat /var/lib/misc/dnsmasq.leases | cut -d ' ' -f 3)"

TTL на изображении используется только для питания.


0

Я знаю, что это тихий старый, но у меня была точно такая же проблема. Я должен был отредактировать файл конфигурации sshd в /etc/ssh. Я отредактировал этот файл, установив SD-карту в другой системе. Вы должны будете разрешить root войти в систему с помощью ssh (что-то вроде PermitRootLogin yes ).


-1

SSH включен по умолчанию - попробуйте pi@10.42.0.5(или, root@10.42.0.5если вы действительно в отчаянии!). Обычная ssh 10.42.0.5тоже может быть стоящей.

Вы используете пароли или sshдля подключения?


OP хочет использовать образ buildroot, а не Raspbian. С raspbian raspberrypi.stackexchange.com/questions/38/… работает.
Сиро Сантилли 冠状 病毒 审查 六四 事件 法轮功

-1

Вот как я сделал установку безголового пи:

  1. скачал etcher и последнюю распрабскую программу с raspberrypi.org

  2. Использовал etcher для записи файла на мою SD-карту

  3. etcher автоматически извлекает SD-карту, снова помещает ее в компьютер

  4. создал файл, в котором ничего не было, назвал его ssh (убедитесь, что расширение не включено при сохранении)

  5. вставил его в мой Raspberry Pi, подключил Ethernet от RPi к маршрутизатору и подключил микро USB к RPi.

  6. Запустил RPi, подождал 1-2 минуты.

  7. зашел на страницу моего роутера (введите ip вашего роутера, должен быть на самом роутере)

  8. Искал подключенные устройства, нашел мой IP-адрес Raspberry Pi.

  9. запишите IP-адрес и открытый терминал

  10. в терминале пиши: ssh pi @ ВАШЕПРОМ

  11. замените ВАШУ ПУТЬ на IP-адрес rpis

  12. нажмите ввод и введите пароль по умолчанию, малина

  13. для настройки RPi сделайте sudo raspi-config, отредактируйте свои настройки, перезагрузитесь!

Надеялась на эту помощь!


1
ОП использует Buildroot, а не предварительно построенный Raspbian
Иеремия Роуз
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.