Sem roteador + sem tela + cabo Ethernet normal + RPI 2 + Raspbian Lite 2018-11-13 + host Ubuntu 18.10
Primeiro, devemos ativar o servidor SSH no Pi, que está desativado por padrão por segurança.
Se você já possui um shell no Pi por um método não SSH, como tela + teclado ou UART (veja abaixo), basta executar:
sudo systemctl enable ssh
sudo service sshd start
conforme explicado em: SSH não está funcionando com a instalação nova Isso persiste nas inicializações.
Caso contrário, insira o cartão SD no seu host e crie um arquivo vazio mágico chamado ssh
file na boot/
partição.
Nos hosts Ubuntu, ele é montado automaticamente e você pode fazer exatamente:
sudo touch /media/$USER/boot/ssh
com o qual você pode confirmar:
lsblk
que contém:
mmcblk0 179:0 0 14.4G 0 disk
├─mmcblk0p1 179:1 0 43.9M 0 part /media/ciro/boot
└─mmcblk0p2 179:2 0 14.4G 0 part /media/ciro/rootfs
Se você não ativar o daemon SSHD no Pi, a conexão SSH falhará com:
ssh: connect to host 10.42.0.160 port 22: Connection refused
quando tentamos mais tarde.
Depois de ativar o servidor SSH
Em seguida, inicialize o Pi e conecte um cabo Ethernet do seu laptop diretamente ao Pi:
No Ubuntu 17.04, para solucionar esse erro, conforme mencionado nesta resposta, você primeiro precisa:
sudo apt-get install dnsmasq-base
No host, abra o gerenciador de rede:
nm-connection-editor
E ir:
+
assinar (Adicionar uma nova conexão)
- Ethernet
- Crio
- Configurações IPv4
- Método: Compartilhado com outros computadores
- Defina um bom nome para ele
- Salve
Encontre o IP do Pi no host:
cat /var/lib/misc/dnsmasq.leases
produz algo como:
1532204957 b8:27:eb:0c:1f:69 10.42.0.160 raspberrypi 01:b8:27:eb:0c:1f:69
10.42.0.160
é o IP, como sempre:
ssh pi@10.42.0.160
Eu também tenho o seguinte no meu .bashrc
:
piip() ( cat /var/lib/misc/dnsmasq.leases | cut -d ' ' -f 3; )
pissh() ( sshpass -p raspberry ssh "pi@$(piip)"; )
De dentro do Pi, observe que ele pode acessar a Internet normalmente por meio de outras interfaces do seu host:
ping google.com
Por exemplo, no meu laptop, o Pi ocupa a Ethernet, mas o host também está conectado à Internet por Wi-Fi.
O cabo cruzado não é necessário se a placa de rede host suportar Auto MDI-X . É o caso do hardware mais recente, incluindo, por exemplo, o Lenovo T430 2012 que eu testei, que possui uma "Conexão de rede Gigabit Intel® 82579LM" que documenta o suporte ao Auto MDI-X .
Agora você também pode:
Conversor USB serial UART
Esta é uma alternativa ao SSH se você quiser obter um shell no Pi: https://en.wikipedia.org/wiki/Serial_port
Isso não usa SSH ou a própria rede, mas a interface serial mais antiga, mais simples, mais direta, mais confiável, menor largura de banda e menor distância. O Pi não terá acesso à Internet com esse método.
Os computadores de mesa ainda têm uma porta serial na qual você pode conectar fio a fio com o Pi, mas estes estão ocultos na maioria dos laptops e, portanto, precisamos comprar um adaptador USB barato. Aqui eu usei: https://www.amazon.co.uk/gp/product/B072K3Z3TL Veja também: https://unix.stackexchange.com/questions/307390/what-is-the-difference-between- ttys0-ttyusb0-e-ttyama0-em-linux / 367882 # 367882
Primeiro conecte o cartão SD no host e edite o config.txt
arquivo presente na primeira partição para adicionar:
enable_uart=1
conforme explicado em: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195
Esta primeira partição contém o carregador de inicialização, seus arquivos de configuração e o kernel (Linux / your), config.txt
sendo um deles. A segunda partição contém o sistema de arquivos raiz Linux real.
Agora conecte seu computador ao Pi como:
Você só precisa conectar 3 cabos:
- Terra a Terra
- Tx em Pi para Rx na porta USB para serial
- Rx em Pi para Tx em porta USB para serial tye
Isso também está documentado em: https://www.raspberrypi.org/documentation/usage/gpio/README.md
Cuidado para não ligar o terra aos 5V, já queimei 2 UART em chips USB ao fazer isso!
Você não precisa conectar o 5V ao 5V. Acho que você pode alimentar seu Pi dessa maneira, mas li que é uma má ideia, basta usar a fonte de alimentação USB usual.
Por fim, conecte o lado USB do conector ao computador host e obtenha um shell com:
sudo apt install screen
sudo usermod -a -G dialout $USER
screen /dev/ttyUSB0 115200
Saia com Ctrl-A \
.
Aqui está um vídeo de Adafruit mostrando: https://www.youtube.com/watch?v=zUBPeoLW16Q