Cómo conectar y usar ssh sin una pantalla usando BUILDROOT

12

Quiero construir un sistema mínimo para raspberry pi (B +) para mejorar el rendimiento de mi algoritmo de detección de rostros ... He encontrado BuildRoot: para la configuración, encontré que no es necesario hacer la configuración yo mismo y en su lugar he usado el proporcionado uno :

make raspberrypi_defconfig
make

Ahora no tengo un cable HDMI para conectar el pi ... cuando lo conecto a mi computadora portátil, el led rojo está encendido y el led verde comienza a parpadear: eso significa que el pi está leyendo la tarjeta SD correctamente. Es la primera vez que Estoy usando buildroot, y no sé cómo habilitar ssh para el pi o cómo mostrar la dirección pi. Tenga en cuenta que esto no es un duplicado de Prepararse para ssh sin una pantalla porque en la solución que proporcionaron

Para habilitar ssh al inicio, haga una copia de seguridad de boot.rc en la partición de arranque en la imagen SD y reemplácela con boot_enable_ssh.rc

Bueno, no tengo un archivo llamado boot.rc

Puedo acceder a la tarjeta sd usando ubuntu 14.04, ejecutando ls desde la carpeta de inicio, muestra esto:

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

También he intentado usar una ip estática agregando 10.42.0.5 a cmdline.txt, pero después de eso no puedo conectarme al pi con esta dirección. Entonces tengo dos problemas:

  1. Cómo conectarse a la dirección pi cuando se usa buildroot: Enlace a la solución
  2. Cómo configurar y conectarse al pi usando ssh usando buildroot y sin HDMI.

Por cierto, estoy usando un cable de ethernet para conectarme a la pi

Gracias :)

ACTUALIZACIÓN : he agregado el enlace a la solución para el primer problema Ahora aparece la dirección pi después de escanear la red ethernet:

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

Ahora el problema que tengo es cómo habilitar ssh para poder conectarse al pi sin HDMI (usando Buildroot)

Al intentar ssh el pi (buildroot es el nombre de host del sistema utilizado):

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

¡Lo creo porque ssh no está habilitado!

La bestia
fuente
AFAIK está habilitado para SSH de forma predeterminada ... Por cierto, ¿está utilizando el puerto ethernet o algún adaptador USB WiFi?
wb9688
¿Qué significa AFAIK? No, estoy usando un cable de Ethernet
The Beast
A s F ar A s I K ahora ...! En la PC que ejecuta Ubuntu sudo nmap -sP 192.168.0.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}', puede que tenga que ajustar la dirección de red especificada por 192.168.x.0/24donde X está en algún lugar entre 0-255 inclusive, lo que lo cubriría para el rango de direcciones privadas de Clase C reservado para LAN. Esto filtra los resultados para la dirección MAC única que tendrá la interfaz Ethernet en el Pi ...
SlySven
1
@SlySven que he usado en su lugar, ¡ sudo nmap -sP 10.42.0/24dame 1 host está activo (es mi computadora portátil) pero no se detectaron otros dispositivos! Nota: mi dirección de ethernet es 10.42.0.1 y el comando sudo nmap -sP 10.42.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'da una salida vacía
The Beast el
1
@ wb9688 sí, lo he usado al instalar raspbian, y me conecto fácilmente [email protected]después de elegir esa ip estática
The Beast

Respuestas:

3

Si todo lo que hiciste fue make raspberrypi_defconfig && make, entonces todavía tienes mucho trabajo por hacer para obtener un sistema operativo útil.

La configuración predeterminada de BuildRoot es que todo se apague, excepto BusyBox. ¡El servidor ssh no responde porque no le dijiste a BuildRoot que querías compilarlo!

Comience ejecutando make menuconfigen su directorio BuildRoot. Openssh se puede habilitar navegando a los paquetes de Target, aplicaciones de red, openssh.

Probablemente va a ser muy difícil hacer que esto funcione sin un monitor en el Pi. No necesita usarlo en la versión final, una vez que ssh funcione, pero será muy difícil diagnosticar problemas de inicio sin un monitor. Compre un cable HDMI o un convertidor HDMI -> DVI y use la consola local.

David Yaw
fuente
1
Para depurar, también recomendaría obtener un cable USB a TTL UART. Eso solo funciona en la imagen buildpiot 2016.05 rpi2. Debería ser suficiente para que OP se configure x11vnc.
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功
3

Prefacio: Estoy usando buildroot-2017.02.3 para un Raspberry PI 2 y desde openssh habilitado make menuconfig. Sin más cambios, el inicio de sesión ssh no funciona, porque el valor predeterminado generado /etc/ssh/sshd_configno permite el inicio de sesión raíz.

Opción A: agregar un usuario

Puede agregar usuarios a través de buildroot. Las siguientes entradas manuales pueden ayudar:

Básicamente, crea un archivo de texto que define a su usuario en una sintaxis especial como esta:

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

y digo en buildroot make menuconfig> System Configuration> user tablesdónde encontrar el archivo de tabla de usuario. El contenido de muestra anterior crearía un usuario adicional foocon contraseña bar(el inicio de sesión está activado). Este usuario puede iniciar sesión a través de ssh de inmediato, ya que no es root.

Opción B: inicio de sesión de permiso de raíz

Cuando usa una tarjeta SD para el sistema (por ejemplo, en una frambuesa), simplemente puede montar la tarjeta en su PC, editar /media/<pathToYourSD>/etc/ssh/sshd_config(se requiere sudo) y ubicar la línea

#PermitRootLogin prohibit-password

y cambiar a

PermitRootLogin yes

Esto permite que root inicie sesión a través de ssh. Tenga en cuenta que he establecido una contraseña para root. No estoy seguro si esto funciona sin contraseña. Si no puede montar su tarjeta SD, tendría que escribir scripts posteriores a la compilación que realicen la misma modificación que se describe, pero en el host de compilación (antes de que se empaquete el rootfs).

Patrick Stalph
fuente
1

Sin enrutador + cable Ethernet normal + RPI 2 + Buildroot 2016.05 + Ubuntu 16.04 host

Lo hice funcionar después de dividir este problema en dos partes:

  1. haga que Ethernet SSH funcione con Raspbian y una conexión de cable directo (que ya tiene un demonio sshd configurado correctamente en ejecución) /raspberrypi//a/54394/33424

  2. aprenda a hacer una configuración sshd adecuada en QEMU + buildroot: /programming//a/39301480/895245

    En el tablero real, no tiene una ventana QEMU para modificar /etc/ssh/sshd_config, por lo que deberá:

    • modifíquelo en el host antes de flashear (ya sea BR2_ROOTFS_OVERLAY, monte output/images/sdcard.imgcon /ubuntu//a/496576/52975 , o juegue con output/target)
    • conectarse a través de la serie UART. Querrá que esto funcione tarde o temprano, ya que es la mejor manera de depurar su distribución buildroot en el tablero.

.configes simplemente raspberrypi2_defconfig+ opensshhabilitado con make menuconfig.

Entonces solo:

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

TTL en la imagen solo se usa para energía.

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

Sé que esto es bastante antiguo, pero tuve exactamente el mismo problema. Tuve que editar el archivo de configuración sshd en /etc/ssh. Edité ese archivo montando la tarjeta SD en otro sistema. Tendrá que permitir que root inicie sesión usando ssh (algo así como PermitRootLogin sí ).

usuario46829
fuente
-1

Así es como hice una configuración pi sin cabeza:

  1. descargó etcher y el último software raspbian de raspberrypi.org

  2. Usé Ether para grabar el archivo en mi tarjeta SD

  3. etcher expulsa automáticamente la tarjeta sd, vuelve a colocarla en tu computadora

  4. hizo un archivo sin nada, lo llamó ssh (asegúrese de que ninguna extensión esté habilitada cuando se guarde)

  5. Lo metí en mi Raspberry Pi, conecté Ethernet desde RPi al enrutador y conecté el micro usb ti al RPi.

  6. Disparó el RPi, esperó 1-2 minutos.

  7. fui a la página de mi enrutador (escriba la dirección IP de su enrutador, debe estar en su enrutador)

  8. Busqué dispositivos conectados, encontré mi dirección IP de frambuesa pi.

  9. anote la dirección IP y el terminal abierto

  10. en terminal escriba: ssh pi @ YOURRPIiphere!

  11. reemplace YOURRPIiphere con la dirección IP de rpis

  12. presione enter y escriba la contraseña predeterminada, frambuesa

  13. para configurar el RPi do sudo raspi-config, edite su configuración, reinicie!

Esperaba esta ayuda!

N2O más oscuro
fuente
1
OP está usando Buildroot, no Raspbian preconstruido
Jeremiah Rose