Comment se connecter et utiliser ssh sans écran en utilisant BUILDROOT

12

Je veux construire un système minimal pour Raspberry Pi (B +) pour améliorer les performances de mon algorithme de détection de visage ... J'ai trouvé BuildRoot: pour la configuration, j'ai trouvé qu'il n'était pas nécessaire de faire la configuration moi-même et j'ai plutôt utilisé le fourni une :

make raspberrypi_defconfig
make

Maintenant, je n'ai pas de câble HDMI pour connecter le pi ... lorsque je le connecte à mon ordinateur portable, le voyant rouge est allumé et le voyant vert commence à clignoter: cela signifie que le pi lit correctement la carte SD C'est la première fois que je utilise buildroot, et je ne sais pas comment activer ssh pour le pi ou comment afficher l'adresse pi. Notez qu'il ne s'agit pas d'un doublon de Préparer pour ssh sans écran car dans la solution qu'ils ont fournie

Pour activer ssh au démarrage, sauvegardez boot.rc sur la partition de démarrage sur l'image SD et remplacez-la par boot_enable_ssh.rc

Eh bien, je n'ai pas de fichier appelé boot.rc

Je peux accéder à la carte SD en utilisant Ubuntu 14.04, en exécutant ls à partir du dossier de démarrage, montrez ceci:

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

j'ai également essayé d'utiliser une adresse IP statique en ajoutant 10.42.0.5 à cmdline.txt mais après cela, je ne peux pas me connecter au pi avec cette adresse. J'ai donc deux problèmes:

  1. Comment se connecter à l'adresse pi lors de l'utilisation de buildroot: Lien vers la solution
  2. Comment configurer et se connecter au pi à l'aide de ssh en utilisant buildroot et sans HDMI.

BTW j'utilise un câble Ethernet pour se connecter à la pi

Merci :)

MISE À JOUR : j'ai ajouté le lien vers la solution pour le premier problème Maintenant, l'adresse pi apparaît après avoir analysé le réseau Ethernet:

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

Maintenant, le problème que j'ai est de savoir comment activer ssh pour pouvoir se connecter au pi sans HDMI (en utilisant Buildroot)

Lorsque vous essayez de ssh le pi (buildroot est le nom d'hôte système utilisé):

ssh [email protected]
ssh: connect to host 10.42.0.5 port 22: Connection refused

Je le pense car ssh ce n'est pas activé !!!

La bête
la source
AFAIK est SSH activé par défaut… BTW utilisez-vous le port Ethernet ou un adaptateur WiFi USB?
wb9688
ce que signifie AFAIK? Non, j'utilise un câble Ethernet
The Beast
A s F ar A s I K maintenant ...! Sur le PC exécutant Ubuntu, sudo nmap -sP 192.168.0.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'vous devrez peut-être modifier l'adresse réseau spécifiée par 192.168.x.0/24où X se situe entre 0 et 255 inclus, ce qui vous couvrirait pour la plage d'adresses de classe C privée réservée aux réseaux locaux. Cela filtre les résultats pour l'adresse MAC unique que l'interface Ethernet sur le Pi aura ...
SlySven
1
@SlySven que j'ai utilisé à la place, sudo nmap -sP 10.42.0/24donnez-moi 1 hôte (c'est mon ordinateur portable) mais aucun autre appareil détecté !!! Remarque: mon adresse Ethernet est 10.42.0.1 et la commande sudo nmap -sP 10.42.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'donne une sortie vide
The Beast
1
@ wb9688 oui je l'ai utilisé lors de l'installation de raspbian, et je me connecte facilement avec [email protected]après avoir choisi cette adresse IP statique
The Beast

Réponses:

3

Si tout ce que vous avez fait était make raspberrypi_defconfig && make, alors vous avez encore beaucoup de travail à faire pour obtenir un système d'exploitation utile.

La configuration par défaut de BuildRoot est que tout soit désactivé sauf BusyBox. Le serveur ssh ne répond pas car vous n'avez pas dit à BuildRoot que vous vouliez le compiler!

Commencez par exécuter make menuconfigdans votre répertoire BuildRoot. Openssh peut être activé en accédant à Packages cible, Applications de mise en réseau, openssh.

Il va probablement être très difficile de faire fonctionner cela sans moniteur sur le Pi. Vous n'avez pas besoin de l'utiliser dans la version finale, une fois que ssh fonctionne, mais il sera très difficile de diagnostiquer les problèmes de démarrage sans moniteur. Achetez-vous un câble HDMI ou un convertisseur HDMI -> DVI et utilisez la console locale.

David Yaw
la source
1
Pour déboguer, je recommanderais également d'obtenir un câble UART USB vers TTL. Cela fonctionne uniquement sur l'image buildroot 2016.05 rpi2. Cela devrait être suffisant pour que OP s'installe x11vnc.
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功
3

Préface: J'utilise buildroot-2017.02.3 pour un Raspberry PI 2 et openssh activé à partir de make menuconfig. Sans autres modifications, la connexion ssh ne fonctionne pas, car la valeur par défaut générée /etc/ssh/sshd_configne permet pas la connexion root.

Option A: ajouter un utilisateur

Vous pouvez ajouter des utilisateurs via buildroot. Les entrées manuelles suivantes peuvent vous aider:

Essentiellement, vous créez un fichier texte qui définit votre utilisateur dans une syntaxe spéciale comme ceci:

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

et tell buildroot dans make menuconfig> System Configuration> user tablesoù trouver votre fichier de table utilisateur. L'exemple de contenu ci-dessus créerait un utilisateur supplémentaire fooavec un mot de passe bar(la connexion est activée). Cet utilisateur peut se connecter via ssh immédiatement, car il n'est pas root.

Option B: Autoriser la connexion root

Lorsque vous utilisez une carte SD pour le système (par exemple sur une framboise), vous pouvez simplement monter la carte sur votre PC, la modifier /media/<pathToYourSD>/etc/ssh/sshd_config(sudo requis) et localiser la ligne

#PermitRootLogin prohibit-password

et changer pour

PermitRootLogin yes

Cela permet à root de se connecter via ssh. Notez que j'ai défini un mot de passe pour root. Je ne sais pas si cela fonctionne sans mot de passe. Si vous n'êtes pas en mesure de monter votre carte SD, vous devrez écrire des scripts post-build qui font la même modification que celle décrite, mais sur l'hôte de build (avant que le rootfs ne soit compressé).

Patrick Stalph
la source
1

Pas de routeur + câble Ethernet standard + RPI 2 + Buildroot 2016.05 + hôte Ubuntu 16.04

Je l'ai fait fonctionner après avoir divisé ce problème en deux parties:

  1. faire fonctionner Ethernet SSH avec Raspbian et une connexion par câble directe (qui a déjà un démon sshd correctement configuré en cours d'exécution) /raspberrypi//a/54394/33424

  2. Apprenez à faire une configuration sshd correcte sur QEMU + buildroot: /programming//a/39301480/895245

    Sur le vrai tableau, vous n'avez pas de fenêtre QEMU à modifier /etc/ssh/sshd_configbien sûr, vous devrez donc:

    • le modifier sur l'hôte avant de flasher (soit BR2_ROOTFS_OVERLAY, montez output/images/sdcard.imgavec /ubuntu//a/496576/52975 , ou jouez avec output/target)
    • se connecter via UART série. Vous souhaiterez que cela fonctionne tôt ou tard, car c'est le meilleur moyen de déboguer votre distribution buildroot sur la carte.

.configest simplement raspberrypi2_defconfig+ opensshactivé avec make menuconfig.

Alors juste:

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

TTL sur l'image uniquement utilisé pour l'alimentation.

Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功
la source
0

Je sais que c'est vieux, mais j'avais exactement le même problème. J'ai dû éditer le fichier de configuration sshd dans /etc/ssh. J'ai édité ce fichier en montant la carte SD sur un autre système. Vous devrez autoriser root à se connecter en utilisant ssh (quelque chose comme PermitRootLogin oui ).

user46829
la source
-1

Voici comment j'ai fait une configuration pi sans tête:

  1. téléchargé etcher et le dernier logiciel raspbian depuis raspberrypi.org

  2. Graveur utilisé pour graver le fichier sur ma carte SD

  3. etcher éjecte automatiquement la carte sd, replacez-la dans votre ordinateur

  4. créé un fichier sans rien, appelé ssh (assurez-vous qu'aucune extension n'est activée lors de l'enregistrement)

  5. l'a inséré dans mon Raspberry Pi, connecté Ethernet du RPi au routeur et connecté le micro USB au RPi.

  6. A tiré le RPi, a attendu 1-2 minutes.

  7. est allé à ma page de routeur (tapez l'IP de votre routeur, devrait être sur votre routeur lui-même

  8. J'ai cherché des appareils connectés, j'ai trouvé mon adresse IP Raspberry Pi.

  9. notez l'adresse IP et le terminal ouvert

  10. dans le terminal, écrivez: ssh pi @ YOURRPIiphere!

  11. remplacez YOURRPIiphere par l'adresse IP rpis

  12. appuyez sur entrée et saisissez le mot de passe par défaut, framboise

  13. pour configurer le RPi do sudo raspi-config, modifiez vos paramètres, redémarrez!

J'espère que cette aide!

Darkest N2O
la source
1
OP utilise Buildroot, pas de Raspbian pré-construit
Jeremiah Rose