Jak połączyć się i korzystać z ssh bez ekranu za pomocą BUILDROOT


12

Chcę zbudować minimalny system dla Raspberry pi (B +), aby poprawić wydajność mojego algorytmu wykrywania twarzy ... Znalazłem BuildRoot: dla konfiguracji stwierdziłem, że konfiguracja nie jest konieczna sama, a zamiast tego użyłem dostarczonego jeden:

make raspberrypi_defconfig
make

Teraz nie mam kabla HDMI do podłączenia pi ... podczas podłączania go do laptopa czerwona dioda świeci, a zielona dioda zaczyna migać: oznacza to, że pi prawidłowo odczytuje kartę SD To pierwszy raz Używam buildroot i nie wiem, jak włączyć ssh dla pi ani jak wyświetlić adres pi. Zauważ, że nie jest to kopia Przygotuj się na ssh bez ekranu, ponieważ w dostarczonym przez nich rozwiązaniu

Aby włączyć ssh podczas uruchamiania, wykonaj kopię zapasową boot.rc na partycji rozruchowej obrazu SD i zamień ją na boot_enable_ssh.rc

Nie mam pliku o nazwie boot.rc

Jestem w stanie uzyskać dostęp do karty SD za pomocą Ubuntu 14.04, uruchamiając ls z folderu rozruchowego pokaż to:

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

Próbowałem również użyć statycznego adresu IP, dodając 10.42.0.5 do cmdline.txt, ale potem nie mogę połączyć się z pi za pomocą tego adresu. Mam więc dwa problemy:

  1. Jak połączyć się z adresem pi podczas korzystania z buildroot: Link to Solution
  2. Jak skonfigurować i podłączyć do pi za pomocą ssh przy użyciu buildroot i bez HDMI.

Przy okazji używam kabla Ethernet do połączenia z pi

Dzięki :)

AKTUALIZACJA : dodałem link do rozwiązania pierwszego problemu. Teraz adres pi pojawia się po przeskanowaniu sieci Ethernet:

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

Teraz mam problem, jak włączyć ssh, aby móc połączyć się z pi bez HDMI (przy użyciu Buildroot)

Podczas próby ssh pi pi (buildroot to używana nazwa hosta systemu):

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

Myślę, że ponieważ ssh nie jest włączony !!!


AFAIK jest domyślnie włączony SSH… BTW, czy korzystasz z portu Ethernet lub jakiegoś adaptera USB WiFi?
wb9688

co znaczy AFAIK? Nie, używam kabla Ethernet
The Beast

A s F ar A s I K teraz ...! Na komputerze z systemem Ubuntu spróbuj sudo nmap -sP 192.168.0.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'zmodyfikować adres sieciowy podany 192.168.x.0/24gdzie X znajduje się między 0-255 włącznie, co obejmowałoby prywatny zakres adresów klasy C zarezerwowany dla sieci LAN. Filtruje to wyniki dla unikalnego adresu MAC, który będzie miał interfejs Ethernet na Pi ...
SlySven

1
@SlySven użyłem zamiast tego sudo nmap -sP 10.42.0/24daj mi 1 host jest włączony (to mój laptop), ale nie wykryto innych urządzeń !!! Uwaga: mój adres ethernetowy to 10.42.0.1, a polecenie sudo nmap -sP 10.42.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'daje pusty wynik
Bestia

1
@ wb9688 tak, użyłem go podczas instalowania raspbian i łatwo się łączyłem ssh@10.42.0.5po wybraniu tego statycznego adresu IP
The Beast

Odpowiedzi:


3

Jeśli wszystko, co zrobiłeś make raspberrypi_defconfig && make, to nadal masz dużo pracy, aby uzyskać przydatny system operacyjny.

Domyślna konfiguracja BuildRoot służy do wyłączania wszystkiego oprócz BusyBox. Serwer ssh nie odpowiada, ponieważ nie powiedziałeś BuildRoot, że chcesz go skompilować!

Zacznij od uruchomienia make menuconfigw katalogu BuildRoot. Openssh można włączyć, przechodząc do pakietów docelowych, aplikacji sieciowych, openssh.

Prawdopodobnie będzie to bardzo trudne do uruchomienia bez monitora na Pi. Nie musisz używać go w ostatecznej wersji, gdy zaczniesz działać ssh, ale naprawdę trudno będzie zdiagnozować problemy z uruchomieniem bez monitora. Kup sobie kabel HDMI lub konwerter HDMI -> DVI i skorzystaj z lokalnej konsoli.


1
W celu debugowania zalecam również zakup kabla USB do TTL UART. To działa tylko na obrazie buildroot 2016.05 rpi2. Powinno wystarczyć do skonfigurowania OP x11vnc.
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功

3

Przedmowa: Używam buildroot-2017.02.3 dla Raspberry PI 2 i włączonego openssh z make menuconfig. Bez dalszych zmian logowanie ssh nie działa, ponieważ wygenerowane ustawienie domyślne /etc/ssh/sshd_confignie zezwala na logowanie roota.

Opcja A: Dodaj użytkownika

Możesz dodawać użytkowników poprzez buildroot. Pomocne mogą być następujące wpisy ręczne:

Zasadniczo tworzysz plik tekstowy, który definiuje użytkownika w specjalnej składni, takiej jak:

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

i powiedzieć buildroot w make menuconfig> System Configuration> user tablesgdzie znaleźć plik tabeli użytkownika. Powyższa przykładowa treść utworzyłaby dodatkowego użytkownika fooz hasłem bar(logowanie jest aktywowane). Ten użytkownik może od razu zalogować się przez ssh, ponieważ nie jest rootem.

Opcja B: Zezwalaj na logowanie root

Kiedy używasz karty SD w systemie (np. Na malinie), możesz po prostu zamontować kartę na komputerze, edytować /media/<pathToYourSD>/etc/ssh/sshd_config(wymagane sudo) i zlokalizować linię

#PermitRootLogin prohibit-password

i zmień na

PermitRootLogin yes

Pozwala to rootowi zalogować się przez ssh. Pamiętaj, że ustawiłem hasło dla roota. Nie jestem pewien, czy to działa bez hasła. Jeśli nie możesz zamontować karty SD, musisz napisać skrypty po kompilacji, które wykonują tę samą modyfikację, jak opisano, ale na hoście kompilacji (przed spakowaniem rootfów).


1

Brak routera + zwykły kabel Ethernet + RPI 2 + Buildroot 2016.05 + host Ubuntu 16.04

Udało mi się to po podzieleniu tego problemu na dwie części:

  1. uzyskaj Ethernet SSH współpracujący z Raspbian i bezpośrednie połączenie kablowe (które już ma poprawnie skonfigurowanego demona sshd) /raspberrypi//a/54394/33424

  2. dowiedz się, jak wykonać poprawną konfigurację sshd na QEMU + buildroot: /programming//a/39301480/895245

    Na prawdziwej planszy /etc/ssh/sshd_configoczywiście nie masz okna QEMU do modyfikacji , więc musisz:

    • zmodyfikuj go na hoście przed flashowaniem (albo BR2_ROOTFS_OVERLAYzamontuj output/images/sdcard.imgz /ubuntu//a/496576/52975 , albo graj z output/target)
    • połączyć przez UART serial. Będziesz chciał, aby to działało wcześniej czy później, ponieważ jest to najlepszy sposób na debugowanie dystrybucji buildroot na płycie.

.configjest po prostu raspberrypi2_defconfig+ opensshwłączone za pomocą make menuconfig.

Więc po prostu:

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

TTL na obrazie służy tylko do zasilania.


0

Wiem, że to jest stare, ale miałem dokładnie ten sam problem. Musiałem edytować plik konfiguracyjny sshd /etc/ssh. Edytowałem ten plik, instalując kartę SD w innym systemie. Musisz zezwolić rootowi na zalogowanie się za pomocą ssh (coś takiego jak PermitRootLogin tak ).



-1

Oto jak wykonałem konfigurację bezgłowego pi:

  1. pobrałem etcher i najnowsze oprogramowanie raspbian z raspberrypi.org

  2. Użyłem etchera do wypalenia pliku na mojej karcie SD

  3. etcher automatycznie wysuwa kartę SD, ponownie umieszcza ją w komputerze

  4. utworzył plik bez niczego, o nazwie ssh (upewnij się, że żadne rozszerzenie nie jest włączone po zapisaniu)

  5. wrzuciłem go do mojego Raspberry Pi, podłączyłem ethernet z RPi do routera i podłączyłem micro USB do RPi.

  6. Odpaliłem RPi, czekałem 1-2 minuty.

  7. poszedł na stronę mojego routera (wpisz adres IP routera, powinien znajdować się na samym routerze

  8. Szukałem podłączonych urządzeń, znalazłem mój adres IP Raspberry Pi.

  9. zapisz adres IP i otwarty terminal

  10. w terminalu napisz: ssh pi @ YOURRPIiphere!

  11. zastąp YOURRPIiphere adresem rpis ip

  12. naciśnij enter i wpisz domyślne hasło, malina

  13. aby skonfigurować RPi do sudo raspi-config, edytuj ustawienia, uruchom ponownie!

Miałem nadzieję, że ta pomoc!


1
OP używa Buildroot, a nie preinstalowanego Raspbian
Jeremiah Rose
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.