Como conectar e usar ssh sem uma tela usando BUILDROOT


12

Eu quero construir um sistema mínimo para o raspberry pi (B +) para melhorar o desempenho do meu algoritmo de detecção de rosto ... Encontrei BuildRoot: para a configuração, descobri que não é necessário fazer a configuração sozinho e, em vez disso, usei o fornecido 1 :

make raspberrypi_defconfig
make

Agora não tenho um cabo HDMI para conectar o pi ... ao conectá-lo ao meu laptop, o led vermelho está aceso e o led verde começa a piscar: isso significa que o pi está lendo o cartão SD corretamente É a primeira vez que eu estou usando buildroot, e eu não sei como ativar o ssh para o pi ou como exibir o endereço pi. Observe que isso não é uma duplicata do Prepare for ssh sem uma tela porque na solução fornecida

Para ativar o ssh na inicialização, faça o backup do boot.rc na partição de inicialização na imagem SD e substitua-o por boot_enable_ssh.rc

Bem, eu não tenho um arquivo chamado boot.rc

Eu sou capaz de acessar o cartão sd usando o ubuntu 14.04, executando ls a partir da pasta de inicialização.

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

Eu também tentei usar um IP estático adicionando 10.42.0.5 ao cmdline.txt, mas depois disso não consigo conectar ao pi com esse endereço. Então, eu tenho dois problemas:

  1. Como conectar-se ao endereço pi ao usar o buildroot: Link to Solution
  2. Como configurar e conectar-se ao pi usando ssh usando buildroot e sem HDMI.

Btw eu estou usando um cabo ethernet para conectar ao pi

Obrigado :)

ATUALIZAÇÃO : adicionei o link da solução para o primeiro problema. Agora, o endereço pi aparece após a verificação da rede Ethernet:

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

Agora, o problema que tenho é como habilitar o ssh para poder se conectar ao pi sem HDMI (usando o Buildroot)

Ao tentar ssh o pi (buildroot é o nome do host do sistema usado):

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

Eu acho que porque ssh não está habilitado !!!


O AFAIK é SSH ativado por padrão ... BTW, você está usando a porta Ethernet ou algum adaptador USB WiFi?
wb9688

o que AFAIK significa? Não, eu estou usando um cabo Ethernet
The Beast

A s F ar Um s I K agora ...! No PC executando o Ubuntu try, sudo nmap -sP 192.168.0.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'talvez seja necessário ajustar o endereço de rede especificado em 192.168.x.0/24que X está entre 0 e 255, inclusive, o que cobriria o intervalo de endereços de Classe C privado reservado para LANs. Este filtra os resultados para o endereço MAC único que a interface Ethernet do Pi terá ...
SlySven

1
@SlySven eu usei, em vez disso, sudo nmap -sP 10.42.0/24me dê 1 host ativo (é o meu laptop), mas nenhum outro dispositivo foi detectado !!! Nota: meu endereço Ethernet é 10.42.0.1 e o comando sudo nmap -sP 10.42.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'fornece uma saída vazia
The Beast

1
@ wb9688 sim eu tê-lo usado ao instalar raspbian, e se conectar facilmente com ssh@10.42.0.5depois de escolher que IP estático
The Beast

Respostas:


3

Se tudo o que você fez foi make raspberrypi_defconfig && make, ainda há muito trabalho a fazer para obter um sistema em execução útil.

A configuração padrão do BuildRoot é para que tudo seja desativado, exceto o BusyBox. O servidor ssh não está respondendo porque você não disse ao BuildRoot que queria compilá-lo!

Comece executando make menuconfigno diretório BuildRoot. O Openssh pode ser ativado navegando para Pacotes de destino, Aplicativos de rede, openssh.

Provavelmente será muito difícil fazer isso funcionar sem um monitor no Pi. Você não precisa usá-lo na versão final, quando o ssh estiver funcionando, mas será realmente difícil diagnosticar problemas de inicialização sem um monitor. Compre um cabo HDMI ou um conversor HDMI -> DVI e use o console local.


1
Para depurar, também recomendo adquirir um cabo USB para TTL UART. Isso apenas funciona na imagem buildroot 2016.05 rpi2. Deve ser suficiente para a configuração do OP x11vnc.
Ciro Santilli escreveu

3

Prefácio: Estou usando o buildroot-2017.02.3 para um Raspberry PI 2 e habilitei o openssh make menuconfig. Sem outras alterações, o login ssh não funciona, porque o padrão gerado /etc/ssh/sshd_confignão permite o login raiz.

Opção A: Adicionar um usuário

Você pode adicionar usuários via buildroot. As seguintes entradas manuais podem ajudar:

Essencialmente, você cria um arquivo de texto que define seu usuário em uma sintaxe especial como esta:

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

e BuildRoot tell em make menuconfig> System Configuration> user tablesonde encontrar o arquivo de tabela de usuário. O conteúdo de exemplo acima criaria um usuário adicional foocom senha bar(o login está ativado). Este usuário pode efetuar o login via ssh imediatamente, pois não é root.

Opção B: Permitir login raiz

Quando você usa um cartão SD para o sistema (por exemplo, em uma framboesa), você pode simplesmente montar o cartão no seu PC, editar /media/<pathToYourSD>/etc/ssh/sshd_config(necessário o sudo) e localizar a linha

#PermitRootLogin prohibit-password

e mude para

PermitRootLogin yes

Isso permite que o root efetue login via ssh. Observe que eu configurei uma senha para root. Não tenho certeza se isso funciona sem senha. Se você não conseguir montar seu cartão sd, teria que escrever scripts pós-compilação que façam a mesma modificação descrita, mas no host de compilação (antes que o rootfs seja compactado).


1

Sem roteador + cabo Ethernet comum + RPI 2 + Buildroot 2016.05 + host Ubuntu 16.04

Ele funcionou depois que eu dividi esse problema em duas partes:

  1. obtenha o SSH Ethernet trabalhando com Raspbian e uma conexão direta por cabo (que já possui um daemon sshd configurado corretamente em execução) /raspberrypi//a/54394/33424

  2. Aprenda a fazer uma configuração sshd adequada no QEMU + buildroot: /programming//a/39301480/895245

    No quadro real, você não tem uma janela QEMU para modificar /etc/ssh/sshd_config, é claro, portanto, você precisará:

    • modifique-o no host antes de piscar ( BR2_ROOTFS_OVERLAYmonte output/images/sdcard.imgcom /ubuntu//a/496576/52975 ou brinque com output/target)
    • conectar via serial UART. Você deseja que isso funcione mais cedo ou mais tarde, pois é a melhor maneira de depurar sua distribuição de buildroot no quadro.

.configé simplesmente raspberrypi2_defconfig+ opensshativado com make menuconfig.

Então apenas:

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

TTL na imagem usada apenas para energia.


0

Eu sei que isso é velho e silencioso, mas eu tive exatamente o mesmo problema. Eu tive que editar o arquivo de configuração do sshd /etc/ssh. Editei esse arquivo montando o cartão SD em outro sistema. Você precisará permitir que o root efetue login usando o ssh (algo como PermitRootLogin yes ).



-1

Isto é como eu fiz uma instalação pi sem cabeça:

  1. etcher baixado e o software raspbian mais recente em raspberrypi.org

  2. Etcher usado para gravar o arquivo no meu cartão SD

  3. O etcher ejeta automaticamente o cartão SD, coloque-o novamente no seu computador

  4. criou um arquivo com nada, chamado ssh (verifique se nenhuma extensão está ativada quando salva)

  5. Coloquei-o no meu raspberry pi, conecte a Ethernet do RPi ao roteador e prenda o micro usb no RPi.

  6. Disparou o RPi, esperou 1-2 minutos.

  7. foi para a página do meu roteador (digite o ip do seu roteador, deve estar no próprio roteador

  8. Procurado por dispositivos conectados, encontrei o meu endereço IP do raspberry pi.

  9. anote o endereço IP e abra o terminal

  10. no terminal write: ssh pi @ YOURRPIiphere!

  11. substitua YOURRPIiphere pelo endereço IP rpis

  12. pressione enter e digite a senha padrão, raspberry

  13. para configurar o RPi do sudo raspi-config, edite suas configurações, reinicie!

Esperava esta ajuda!


1
OP está usando Buildroot, não pré-construídos Raspbian
Jeremias Rose
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.