So verbinden und verwenden Sie ssh ohne Bildschirm mit BUILDROOT


12

Ich möchte ein minimales System für Himbeer-Pi (B +) erstellen, um die Leistung meines Gesichtserkennungsalgorithmus zu verbessern ... Ich habe festgestellt BuildRoot: Für die Konfiguration habe ich festgestellt, dass es nicht erforderlich ist, die Konfiguration selbst vorzunehmen, und stattdessen habe ich das bereitgestellte verwendet einer :

make raspberrypi_defconfig
make

Jetzt habe ich kein HDMI-Kabel zum Anschließen des Pi ... Beim Anschließen an meinen Laptop leuchtet die rote LED und die grüne LED beginnt zu blinken. Das bedeutet, dass der Pi die SD-Karte richtig liest. Es ist das erste Mal, dass ich Ich verwende Buildroot und weiß nicht, wie ich SSH für den Pi aktivieren oder wie ich die Pi-Adresse anzeigen soll. Beachten Sie, dass dies kein Duplikat von Prepare for ssh ohne Bildschirm ist, da in der von ihnen bereitgestellten Lösung

Um ssh beim Start zu aktivieren, sichern Sie boot.rc auf der Bootpartition auf dem SD-Image und ersetzen Sie es durch boot_enable_ssh.rc

Nun, ich habe keine Datei namens boot.rc

Ich kann mit Ubuntu 14.04 auf die SD-Karte zugreifen. Führen Sie ls aus dem Boot-Ordner aus. Zeigen Sie Folgendes:

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

Ich habe auch versucht, eine statische IP durch Hinzufügen von 10.42.0.5 zu cmdline.txt zu verwenden, aber danach kann ich mit dieser Adresse keine Verbindung zum Pi herstellen. Ich habe also zwei Probleme:

  1. So stellen Sie bei Verwendung von buildroot eine Verbindung zur pi-Adresse her: Link zur Lösung
  2. So richten Sie den pi mit ssh mit buildroot und ohne HDMI ein und stellen eine Verbindung zum pi her.

Übrigens benutze ich ein Ethernet-Kabel, um eine Verbindung zum Pi herzustellen

Vielen Dank :)

UPDATE : Ich habe den Link zur Lösung für das erste Problem hinzugefügt. Jetzt wird die Pi-Adresse nach dem Scannen des Ethernet-Netzwerks angezeigt:

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

Jetzt ist das Problem, das ich habe, wie ssh aktiviert werden kann , um eine Verbindung zum pi ohne HDMI herzustellen (mit Buildroot)

Beim Versuch, den pi zu ssh (buildroot ist der verwendete Systemhostname):

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

Ich denke es, weil ssh es nicht aktiviert ist !!!


AFAIK ist standardmäßig SSH-fähig. Übrigens, verwenden Sie den Ethernet-Anschluss oder einen USB-WLAN-Adapter?
wb9688

Was bedeutet AFAIK? Nein, ich benutze ein Ethernet-Kabel
The Beast

A s F ar A s I K jetzt ...! Auf dem PC, auf dem Ubuntu ausgeführt wird, müssen sudo nmap -sP 192.168.0.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'Sie möglicherweise die angegebene Netzwerkadresse anpassen, indem 192.168.x.0/24X irgendwo zwischen 0 und einschließlich 255 liegt, was Sie für den privaten Adressbereich der Klasse C abdeckt, der für LANs reserviert ist. Dies filtert die Ergebnisse für die eindeutige MAC-Adresse, die die Ethernet-Schnittstelle auf dem Pi haben wird ...
SlySven

1
@SlySven Ich habe stattdessen verwendet, sudo nmap -sP 10.42.0/24gib mir 1 Host ist aktiv (es ist mein Laptop), aber keine anderen Geräte erkannt !!! Hinweis: Meine Ethernet-Adresse ist 10.42.0.1 und der Befehl sudo nmap -sP 10.42.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'gibt eine leere Ausgabe
The Beast

1
@ wb9688 Ja, ich habe es bei der Installation von Raspbian verwendet, und verbinden Sie sich einfach mit, ssh@10.42.0.5nachdem Sie diese statische IP ausgewählt haben
The Beast

Antworten:


3

Wenn Sie nur getan haben make raspberrypi_defconfig && make, müssen Sie noch viel tun, um ein nützliches laufendes System zu erhalten.

In der Standardkonfiguration von BuildRoot ist alles außer BusyBox deaktiviert. Der SSH-Server antwortet nicht, weil Sie BuildRoot nicht mitgeteilt haben, dass Sie ihn kompilieren möchten!

Beginnen Sie mit der Ausführung make menuconfigin Ihrem BuildRoot-Verzeichnis. Openssh kann aktiviert werden, indem Sie zu Zielpaketen, Netzwerkanwendungen und openssh navigieren.

Es wird wahrscheinlich sehr schwierig sein, dies ohne einen Monitor auf dem Pi zum Laufen zu bringen. Sie müssen es in der endgültigen Version nicht mehr verwenden, sobald ssh funktioniert, aber es wird sehr schwierig sein, Startprobleme ohne Monitor zu diagnostizieren. Kaufen Sie sich ein HDMI-Kabel oder einen HDMI -> DVI-Konverter und verwenden Sie die lokale Konsole.


1
Zum Debuggen würde ich auch empfehlen, ein USB-zu-TTL-UART-Kabel zu erwerben. Das funktioniert nur auf dem Buildroot 2016.05 RPI2-Image. Sollte für die Einrichtung des OP ausreichen x11vnc.
Ciro Santilli 事件 改造 中心 法轮功 六四

3

Vorwort: Ich verwende buildroot-2017.02.3 für einen Raspberry PI 2 und aktiviere openssh von make menuconfig. Ohne weitere Änderungen funktioniert die SSH-Anmeldung nicht, da die generierte Standardeinstellung /etc/ssh/sshd_configkeine Root-Anmeldung zulässt.

Option A: Benutzer hinzufügen

Sie können Benutzer über Buildroot hinzufügen. Die folgenden manuellen Einträge könnten helfen:

Im Wesentlichen erstellen Sie eine Textdatei, die Ihren Benutzer in einer speziellen Syntax wie folgt definiert:

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

und tell buildroot in make menuconfig> System Configuration> user tableswo Ihre Benutzertabellendatei zu finden. Der obige Beispielinhalt würde einen zusätzlichen Benutzer foomit Passwort erstellen bar(Login ist aktiviert). Dieser Benutzer kann sich sofort über ssh anmelden, da er kein Root ist.

Option B: Root-Login zulassen

Wenn Sie eine SD-Karte für das System verwenden (z. B. eine Himbeere), können Sie die Karte einfach in Ihren PC einbinden, bearbeiten /media/<pathToYourSD>/etc/ssh/sshd_config(Sudo erforderlich) und die Leitung suchen

#PermitRootLogin prohibit-password

und wechseln zu

PermitRootLogin yes

Dadurch kann sich root über ssh anmelden. Beachten Sie, dass ich ein Passwort für root festgelegt habe. Ich bin mir nicht sicher, ob dies ohne Passwort funktioniert. Wenn Sie Ihre SD-Karte nicht mounten können, müssen Sie Post-Build-Skripte schreiben, die die gleichen Änderungen wie beschrieben vornehmen, jedoch auf dem Build-Host (bevor das rootfs gepackt wird).


1

Kein Router + normales Ethernet-Kabel + RPI 2 + Buildroot 2016.05 + Ubuntu 16.04-Host

Nachdem ich dieses Problem in zwei Teile geteilt habe, hat es funktioniert:

  1. Ethernet SSH funktioniert mit Raspbian und einer direkten Kabelverbindung (auf der bereits ein ordnungsgemäß eingerichteter sshd-Daemon ausgeführt wird) /raspberrypi//a/54394/33424

  2. Erfahren Sie, wie Sie eine ordnungsgemäße sshd-Konfiguration unter QEMU + buildroot durchführen: /programming//a/39301480/895245

    Auf der realen Platine müssen Sie /etc/ssh/sshd_confignatürlich kein QEMU-Fenster ändern , daher müssen Sie entweder:

    • Ändern Sie es auf dem Host, bevor Sie es flashen (entweder mit /ubuntu//a/496576/52975BR2_ROOTFS_OVERLAY mounten oder mit spielen )output/images/sdcard.imgoutput/target
    • Verbindung über UART seriell. Sie sollten dies früher oder später zum Laufen bringen, da dies der beste Weg ist, um Ihre Buildroot-Distribution auf dem Board zu debuggen.

.configist einfach raspberrypi2_defconfig+ opensshaktiviert mit make menuconfig.

Dann einfach:

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

TTL auf Bild wird nur zur Stromversorgung verwendet.


0

Ich weiß, dass dies ziemlich alt ist, aber ich hatte genau das gleiche Problem. Ich musste die sshd-Konfigurationsdatei in bearbeiten /etc/ssh. Ich habe diese Datei bearbeitet, indem ich die SD-Karte auf einem anderen System gemountet habe. Sie müssen root erlauben, sich mit ssh anzumelden (so etwas wie PermitRootLogin yes ).



-1

So habe ich ein kopfloses Pi-Setup gemacht:

  1. Etcher und die neueste Raspbian-Software von raspberrypi.org heruntergeladen

  2. Ich habe Etcher verwendet, um die Datei auf meine SD-Karte zu brennen

  3. Etcher wirft die SD-Karte automatisch aus und legt sie wieder in Ihren Computer ein

  4. hat eine Datei mit nichts darin erstellt, die ssh heißt (stellen Sie sicher, dass beim Speichern keine Erweiterung aktiviert ist)

  5. steckte es in mein Himbeer-Pi, verband das Ethernet von RPi mit Router und artachierte den Micro-USB mit dem RPi.

  6. Feuerte das RPi ab und wartete 1-2 Minuten.

  7. ging zu meiner Router-Seite (geben Sie die IP Ihres Routers ein, sollte sich auf Ihrem Router selbst befinden

  8. Ich habe nach angeschlossenen Geräten gesucht und meine Himbeer-Pi-IP-Adresse gefunden.

  9. Notieren Sie sich die IP-Adresse und das geöffnete Terminal

  10. im Terminal schreiben: ssh pi @ YOURRPIiphere!

  11. Ersetzen Sie YOURRPIiphere durch die IP-Adresse von rpis

  12. Drücken Sie die Eingabetaste und geben Sie das Standardkennwort Himbeere ein

  13. Um das RPi zu konfigurieren, machen Sie sudo raspi-config, bearbeiten Sie Ihre Einstellungen, starten Sie neu!

Hoffe diese Hilfe!


1
OP verwendet Buildroot, nicht vorgefertigte Raspbian
Jeremiah Rose
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.