Nessun router + nessuno schermo + cavo Ethernet normale + RPI 2 + Raspbian Lite 2018-11-13 + host Ubuntu 18.10
Innanzitutto dobbiamo abilitare il server SSH sul Pi, che è disabilitato di default per sicurezza.
Se hai già una shell sul Pi attraverso un metodo non SSH come schermo + tastiera o UART (vedi sotto), esegui semplicemente:
sudo systemctl enable ssh
sudo service sshd start
come spiegato in: SSH non funziona con una nuova installazione Questo persiste su tutti gli stivali.
Altrimenti, inserisci la scheda SD sul tuo host e crea un file magico vuoto chiamato ssh
file nella boot/
partizione.
Sugli host Ubuntu, viene montato automaticamente e puoi fare solo:
sudo touch /media/$USER/boot/ssh
che puoi confermare con:
lsblk
che contiene:
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 non si abilita il demone SSHD su Pi, la connessione SSH fallirà con:
ssh: connect to host 10.42.0.160 port 22: Connection refused
quando lo proveremo più tardi.
Dopo aver abilitato il server SSH
Quindi, avvia il Pi e collega un cavo Ethernet dal tuo laptop direttamente al Pi:
Su Ubuntu 17.04 per aggirare questo bug come indicato in questa risposta è necessario innanzitutto:
sudo apt-get install dnsmasq-base
Sull'host, apri il gestore di rete:
nm-connection-editor
E vai:
+
segno (Aggiungi una nuova connessione)
- Ethernet
- Creare
- Impostazioni IPv4
- Metodo: condiviso con altri computer
- Impostare un buon nome per questo
- Salva
Trova l'IP del Pi sull'host:
cat /var/lib/misc/dnsmasq.leases
produce qualcosa come:
1532204957 b8:27:eb:0c:1f:69 10.42.0.160 raspberrypi 01:b8:27:eb:0c:1f:69
10.42.0.160
è l'IP, quindi come al solito:
ssh pi@10.42.0.160
Ho anche quanto segue nel mio .bashrc
:
piip() ( cat /var/lib/misc/dnsmasq.leases | cut -d ' ' -f 3; )
pissh() ( sshpass -p raspberry ssh "pi@$(piip)"; )
Dall'interno del Pi, nota che può accedere a Internet normalmente attraverso le altre interfacce del tuo host:
ping google.com
Ad esempio sul mio laptop, il Pi occupa Ethernet, ma l'host è anche connesso a Internet tramite WiFi.
Il cavo crossover non è necessario se la scheda di rete host supporta Auto MDI-X . Questo è il caso dell'hardware più recente, incluso ad esempio il Lenovo T430 2012 con cui ho provato, che ha una "Connessione di rete Intel® 82579LM Gigabit" che documenta il supporto per Auto MDI-X .
Ora puoi anche:
Convertitore seriale USB UART
Questa è un'alternativa a SSH se vuoi semplicemente ottenere una shell sul Pi: https://en.wikipedia.org/wiki/Serial_port
Questo non utilizza SSH o la rete stessa, ma piuttosto l'interfaccia seriale più vecchia, più semplice, più diretta, più affidabile, con larghezza di banda inferiore e distanza inferiore. Il Pi non avrà accesso a Internet con questo metodo.
I computer desktop hanno ancora una porta seriale che puoi collegare direttamente filo a filo con il Pi, ma questi sono nascosti nella maggior parte dei laptop, quindi è necessario acquistare un adattatore USB economico. Qui ho usato: https://www.amazon.co.uk/gp/product/B072K3Z3TL Vedi anche: https://unix.stackexchange.com/questions/307390/what-is-the-difference-between- ttyS0-ttyUSB0-e-ttyama0-in-linux / 367882 # 367882
Innanzitutto collegare la scheda SD sull'host e modificare il config.txt
file presente nella prima partizione per aggiungere:
enable_uart=1
come spiegato a: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195
Questa prima partizione contiene il bootloader, i suoi file di configurazione e il kernel (Linux / your), config.txt
essendo uno di questi. La seconda partizione contiene l'attuale filesystem di root Linux.
Ora collega il tuo computer al Pi come:
Hai solo bisogno di collegare 3 cavi:
- Terra a Terra
- Tx su Pi a Rx sull'USB alla porta seriale
- Rx su Pi a Tx su USB a porta seriale
Questo è anche documentato su: https://www.raspberrypi.org/documentation/usage/gpio/README.md
Fai attenzione a non collegare il Ground al 5V, così ho già masterizzato 2 UART su chip USB!
Non è necessario collegare affatto il 5V al 5V. Penso che puoi alimentare il tuo Pi in quel modo, ma ho letto che questa è una cattiva idea, basta usare la solita fonte di alimentazione USB.
Infine, collega il lato USB del connettore al computer host e ottieni una shell con:
sudo apt install screen
sudo usermod -a -G dialout $USER
screen /dev/ttyUSB0 115200
Esci con Ctrl-A \
.
Ecco un video di Adafruit che lo mostra: https://www.youtube.com/watch?v=zUBPeoLW16Q