Preparare la scheda SD per Wifi su Headless Pi


158

Ho bisogno di SSH il mio Pi tramite Wi-Fi, ma poiché si tratta di una scheda modello A (non è mai possibile utilizzare un hub USB) e non ho Ethernet, non riesco a configurare il Pi per connettermi alla mia rete Wi-Fi protetta. Voglio avere la scheda SD collegata al mio laptop e voglio modificare un file con le informazioni di configurazione wifi in esso in modo che il mio Pi si connetterà automaticamente alla mia rete all'avvio in modo da poterlo SSH per ottenere il controllo. So come abilitare SSH su un sistema senza testa grazie a questa risposta .

Modifica . Ho cercato in giro e mi chiedo se sono in grado di modificare il file /etc/network/interfacesmentre la scheda SD è nel mio PC e inserire tutte le cose di rete ssid, psk e wlan0 in esso. Funzionerà? Grazie


Ci si trova di fronte a una situazione difficile lì. Suggerirei di utilizzare temporaneamente una LAN USB per connettersi tramite SSHS. La maggior parte dei driver sono inclusi per quelli. Inserisci il tuo WiFi e segui questa risposta per impostare il tuo WiFi sul Pi. Dopo aver riavviato i reparti, scollegare la LAN e avviare utilizzando Wifi. Dovrebbe connettersi automaticamente entro pochi minuti.
Piotr Kula,

2
Il modo economico per configurare è utilizzare un adattatore USB-seriale per connettersi al seriale nell'intestazione GPIO. Non è nemmeno necessario abilitare ssh per fare questo
John La Rooy,

vedi la mia risposta [qui] [1] per un metodo alternativo [1]: raspberrypi.stackexchange.com/a/31397/30719
memebrain

Risposte:


239

Ci sono alcune grandi risposte qui, ma molte non sono aggiornate. Da maggio 2016, Raspbian è stato in grado di copiare i dettagli Wi-Fi da /boot/wpa_supplicant.confin /etc/wpa_supplicant/wpa_supplicant.confper configurare automaticamente l'accesso alla rete wireless:

Se un file wpa_supplicant.conf viene inserito nella directory / boot /, questo verrà spostato nella directory / etc / wpa_supplicant / al successivo avvio del sistema, sovrascrivendo le impostazioni di rete; ciò consente di precaricare una configurazione Wi-Fi su una scheda da Windows o da un altro computer che può vedere solo la partizione di avvio.

- L'ultimo aggiornamento di Raspbian - Raspberry Pi , 13/05/2016

Poiché la /bootpartizione è accessibile da qualsiasi computer con un lettore di schede SD, la configurazione Wi-Fi è ora molto più semplice.

Un tipico file wpa_supplicant.conf è:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=«your_ISO-3166-1_two-letter_country_code»

network={
    ssid="«your_SSID»"
    psk="«your_PSK»"
    key_mgmt=WPA-PSK
}

Sostituisci «your_ISO-3166-1_two-letter_country_code» con il tuo codice paese ISO (come CAper il Canada), «your_SSID» con il nome del tuo punto di accesso wireless e «your_PSK» con la tua password wifi.

Se non si desidera memorizzare la password Wi-Fi in testo semplice, è possibile utilizzare l' wpa_passphraseutilità per memorizzare la password con hash:

wpa_passphrase «your_SSID»

L'utilità richiederà la password e restituirà il valore hash esadecimale. Si noti che questa password con hash è memorizzata senza virgolette /boot/wpa_supplicant.conf, ad esempio:

psk=b76dc68cb76bfea7232e32634f859ca760cd8abeee318a346b51d3bde00b8965

Si noti che le country, ctrl_interfacee le update_configlinee sono tenuti in file come creato /boot: se mancano il sistema non si connette alla rete. Il processo sopra può essere ripetuto per correggere le omissioni.

Questo processo è stato testato con Raspbian e Raspbian Lite a partire dalla versione di novembre 2018.


Inoltre, potresti voler aggiungere l'accesso Secure Shell (SSH) al tuo Raspberry Pi senza testa. SSH è disabilitato su Raspbian per impostazione predefinita per motivi di sicurezza. È possibile abilitarlo creando un file chiamato /boot/ssh:

Per una configurazione senza testa, SSH può essere abilitato posizionando un file chiamato "ssh", senza alcuna estensione, nella partizione di avvio della scheda SD. Quando il Pi si avvia, cerca il file 'ssh'; se viene trovato, SSH è abilitato e quindi il file viene eliminato. Il contenuto del file non ha importanza: potrebbe contenere testo o niente.

- SSH (Secure Shell) - Documentazione Raspberry Pi

Se si abilita l'accesso SSH, è necessario modificare la password dell'utente standard pi il più presto possibile. Poiché la password predefinita ( raspberry ) è ampiamente nota, Raspberry Pi è effettivamente aperto a tutti gli utenti della rete fino a quando non si modifica la password. Puoi farlo con il passwdcomando.


2
Esistono due restrizioni per questa soluzione (testato con le immagini del 2016-09-23): 1. Il file deve essere formattato con terminazioni di linea in stile Linux (LF anziché CR LF). 2. Non funzionava con l'immagine leggera di Raspbian sul mio Raspberry Pi 3.
user2154065

1
@ user2154065 1. Converti il ​​file in LF con Notepad ++ facendo clic con il tasto destro su "Dos \ Windows" in basso a destra e selezionando "Formato UNIX / OSX". 2. Il wpasupplicantpacchetto probabilmente non è incluso in Raspbian Lite.
Hydraxan14

1
Ora ho un paio di macchine Raspbian Lite in esecuzione, sono abbastanza sicuro che il mio commento sia sbagliato: wpa_supplicant è incluso o può essere facilmente installato.
scruss

5
@kleinfreund non include la passphrase in chiaro. Esegui "wpa_passphrase SSID" (con il tuo SSID) e inserisci la passphrase quando richiesto. Copia l'output nel tuo file wpa_supplicant.conf, rimuovendo la riga che include il testo in chiaro e lasciando solo la versione con hash. (Puoi farlo su un altro sistema in modo da avere il file in anticipo quando configuri la tua micro SD per il Pi.)
Peter Hansen,

4
@scruss - la tua risposta è quasi corretta, per favore aggiungi questa riga all'esempio wpa_supplicant.confsopra: ctrl_interface=/var/run/wpa_supplicant ho appena provato un nuovo Zero W con Raspbian Strech Lite
ctekse,

23

Alcune istruzioni specifiche:

Contenuto di /etc/network/interfaces:

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
    wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
    post-up ifdown eth0
iface default inet dhcp

Contenuto di /etc/wpa_supplicant/wpa_supplicant.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="YOUR_SSID_HERE"
    psk="YOUR_SECRET_PASSPHRASE_HERE"
    id_str="SOME_DESCRIPTIVE_NAME"
}

Onesto. Quei due file, con un determinato contenuto, sono quelli che uso su tutti i miei pi. Si avviano e si connettono immediatamente al mio router wireless. La negoziazione DHCP fornisce un indirizzo e il mio router risolve il nome host con l'indirizzo IP corretto. Assicurati di nominare ciascun IP in modo appropriato tramite /etc/hostname.

La stranezza nel interfacesfile nel trailing iface default...è necessaria, altrimenti la connessione WPA wireless non verrà fuori.

Il wpa_supplicant.conffile può contenere anche più network={voci, ero solito portare il mio pi al lavoro ... collegarlo e voilà, si collegava anche lì automagicamente, la configurazione del lavoro era un po 'più contorta. Incluso qui come esempio, aggiungere / sostituire quanto segue nel wpa_supplicant.conffile:

network={
    ssid="THE_OFFICE"
    scan_ssid=1
    key_mgmt=WPA-EAP
    eap=PEAP
    identity="WORK_USERNAME"
    password="WORK_PASSWORD"
    phase1="peaplabel=0"
    phase2="auth=MSCHAPV2"
    id_str="SOME_DESCRIPTIVE_NAME"
}

In sostanza, esegue la scansione del wpa_supplicant.conffile e si connette alla prima rete che trova corrispondente. Molto maneggevole. In questo modo è anche possibile collegarlo automaticamente a qualsiasi rete "aperta". Non la cosa più intelligente da fare, ma fattibile.


Ho bisogno di avere un IP statico anche come headless e non sarò in grado di inviarlo senza conoscere il suo indirizzo IP. Al momento ho id_str="home"in wpa_supplicant.conf e iface home inet static(informazioni ip statiche sotto questo) nel file interfaces, questo mi dà un ip statico ma non sono sicuro se questo è il modo migliore per installarlo ed è un po 'confuso da configurare ( e viene visualizzato l'errore "Impossibile trovare il dispositivo" home "" all'avvio).
11chubby11

1
Uso dyn.com (o dyndns.com) per consentire a un nome proprio di accedere ai miei pi, uso ddclient per impostare automaticamente il nome sull'indirizzo corretto. In alternativa, utilizzare il router per specificare un indirizzo dhcp statico, molto più utile. Uso anche upnpcd per configurare dinamicamente le impostazioni upnp per consentirmi di collegarmi ai miei sistemi dall'esterno della mia rete, nessun IP statico è mai stato necessario ora, si configura ovunque si trovi. (la stanza iface può avere solo lo / eth0 / wlan0 / default come opzione, 'home' non funzionerà)
lornix

Come posso aggiungere /etc/network/interfacesl'avvio SD? Mettilo ovunque e lo copierà?
denislexic,

Fondamentalmente un commento alla risposta di lornix - la cui soluzione ho usato con successo - dal momento che non ho un rappresentante per scrivere commenti. Per modificare il file system di root, è necessario montare la seconda partizione, non la prima, partizione di avvio. Ho fatto: sudo mount / dev / sdc2 / mnt dopo il quale ho potuto modificare i file sotto la radice / mnt, ovvero /mnt/etc/wpa_supplicant/wpa_supplicant.conf e / mnt / etc / network / interfaces e / mnt / etc / hostname (usando ancora sudo). Al termine, estrarre dalla gerarchia / mnt ed eseguire sudo umount / mnt È quindi possibile inserire la scheda SD in Rπ e avviare. Si noti che ciò richiede una macchina Linux,
Ketil Malde,

10

Da novembre 2016 SSH è stato disabilitato per impostazione predefinita nelle immagini Raspbian standard per motivi di sicurezza.

Per riattivarlo, creare un file vuoto chiamato ssho ssh.txtnella cartella di avvio della scheda SD (partizione fat32 accessibile da Windows)

Per preconfigurare le impostazioni wifi, creare anche un file chiamato wpa_supplicant.conflì contenente:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={ 
ssid="MySSID" 
psk="MyPassword" 
}

Entrambi questi file possono essere creati su Windows e modificati tramite Blocco note.

Quindi inserire la scheda SD nel pi e si dovrebbe essere in grado di SSH dentro.


Bello vedere che hanno semplificato notevolmente l'installazione! Bella risposta!
lornix,

3

A partire da RASPBIAN STRETCH devi includere ctrl_interfacee update_configinwpa_supplicant.conf

Per ottenere il wifi con ssh all'avvio, fai questi semplici passaggi sulla tua scheda SD:

  1. touch /<sd mount point>/boot/ssh
  2. nano <sd mount point>/boot/wpa_supplicant.conf

Con i contenuti:

country=AU  #omit if US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="YourNetworkSSID-1"
    psk="passwordOne"
}
  1. Smonta scheda SD, inserisci pi, avvia pi

2

Puoi usare il interfacesfile. Caricalo con tutte le informazioni di rete e mettilo in una chiavetta USB e riavvia l'RPi con quello. L'RPi prende le impostazioni e configura il WiFi senza la necessità di hardware o monitor aggiuntivi.

Successivamente è possibile SSH in Pi e installare VNC per ottenere una GUI. Se si desidera un passo per passo le istruzioni per esso, controlla Option 3: Connect with WiFiil http://www.dexterindustries.com/BrickPi/getting-started/using-the-pi/


Impossibile farlo funzionare. Non riesco a trovare altre informazioni su Internet su questo modo di configurare il wifi.
11chubby11

Ho dimenticato di menzionare lo script utilizzato per automatizzare questo. Eccolo qui
karan,

2

Puoi anche configurare una scheda SD che installerà automaticamente Rasbian con una connessione WiFi preconfigurata sul tuo Raspberry pi (configurazione senza testa di Raspberry Pi). Ciò consente al tuo pi di essere appena collegato all'alimentazione per il suo primo avvio.

Passaggio 1: Scarica Noobs Ottieni e decomprimi il software Noobs più recente (versione offline e installazione di rete) su https://www.raspberrypi.org/downloads/

Alternativa: collegamento diretto al file: http://downloads.raspberrypi.org/NOOBS_latest

Al momento in cui scrivo, l'ultima versione di NOOBS è la 1.4.0

Passaggio 2: configurazione senza testa Nella directory os /, eliminare tutte le cartelle diverse da rasbian /. In effetti dovresti avere solo un'altra cartella chiamata Data_Partition.

Nella cartella rasbian /, modifica il file flavours.json. Dovresti vedere quanto segue:

{
  "flavours": [
    {
      "name": "Raspbian - Boot to Scratch",
      "description": "A version of Raspbian that boots straight into Scratch",
      "supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041"
    },
    {
      "name": "Raspbian",
      "description": "A Debian wheezy port, optimised for the Raspberry Pi",
      "supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041"
    }
  ]
}

Elimina la parte "Raspbian - Boot to Scratch", quindi il file dovrebbe apparire così alla fine:

{
  "flavours": [
    {
      "name": "Raspbian",
      "description": "A Debian wheezy port, optimised for the Raspberry Pi",
      "supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041"
    }
  ]
}

Modificare il file recovery.cmdline nella directory NOOBS radice e aggiungere silentinstall all'elenco degli argomenti. Il file dovrebbe apparire così alla fine:

runinstaller quiet vt.cur_default=1 elevator=deadline silentinstall

Passaggio 4 (facoltativo): configurare il layout e la lingua della tastiera personalizzati Se si desidera modificare il layout di tastiera predefinito (us) e / o la lingua predefinita (di default è 'us') append lang = XX keyboard = XX nell'elenco degli argomenti del recupero File .cmdline (XX dovrebbe essere sostituito dalla lingua e dal codice della tastiera, che potrebbero essere fr, de, ... L'impostazione predefinita è noi).

Il file dovrebbe apparire così alla fine:

runinstaller quiet vt.cur_default=1 elevator=deadline silentinstall lang=fr keyboard=fr

Passaggio 5 (opzionale): Configura Wifi Noobs Config è uno strumento che copia / incolla alcuni file subito dopo l'installazione di Rasbian. Tra le altre cose, questo strumento ti consente di preconfigurare Wifi sul tuo Pi. Ciò presuppone tuttavia che il dongle wifi utilizzato sia supportato direttamente da Raspbian.

La prima cosa è scaricare Noobs Config su GitHub ( https://github.com/procount/noobsconfig/archive/master.zip )

Quindi decomprimere noobsconfig.zip e:

  • copia "customise.sh" nella directory principale dei tuoi file Noobs

  • copia "os / Rasbian / partition_setup.sh" nella tua directory "os / Rasbian /" dei tuoi file Noobs.

  • creare una cartella denominata "wifi" in "os / Rasbian /"

  • copia "Esempi / Rasbian / wifi / wifi / wpa_supplicant.conf" nella
    directory "os / Rasbian / wifi /" dei tuoi file Noobs.

  • copia "Esempi / Rasbian / wifi / Raspbian_root.txt" nella
    directory "os / Rasbian /" dei tuoi file Noobs.

L'ultima cosa è configurare il tuo wifi ssid e psk (password) in wpa_supplicant.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="MyNetwork"
psk="MyPassword"
}

Passaggio 5 (facoltativo): modifica della password predefinita Anche se questo passaggio è facoltativo, si consiglia vivamente di modificare la password predefinita della configurazione di Rasbian.

Modifica il file os / Rasbian / os.json. Dovrebbe sembrare come questo :

{
  "name": "Raspbian",
  "version": "wheezy",
  "release_date": "2015-02-16",
  "kernel": "3.18",
  "description": "A community-created port of Debian wheezy, optimised for the Raspberry Pi",
  "url": "http://www.raspbian.org/",
  "username": "pi",
  "password": "raspberry",
  "supported_hex_revisions": "2,3,4,5,6,7,8,9,d,e,f,10,11,12,14,19,1040,1041"
}

Cambiamo la password predefinita sulla linea 9.

Passaggio 5: copia i file sulla scheda SD e avvia il tuo Raspberry pi Copia / i file passati su una scheda SD formattata FAT.

Passaggio 6: avvia e collega Avvia sulla nostra scheda SD, dopo alcuni minuti (a seconda della scheda SD, il processo di installazione può richiedere più di 30 minuti) e connettiti al tuo Pi tramite SSH.

Che ...


Queste istruzioni sembrano promettenti, ma a partire da NOOBS v1.9.2 non esiste alcun file flavours.json nella directory os / Raspbian. Poiché il motivo principale per modificarlo è stato rimuovere una versione alternativa, sto pensando che è sicuro saltare semplicemente quel passaggio quando non è necessario.
natevw,

2

Il processo di installazione senza testa è leggermente cambiato per Raspbian Stretch e le versioni più recenti di RetroPie.

all'interno della directory di avvio ...

touch ssh

nano wpa_supplicant.conf

aggiungilo a wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
    ssid="YOUR_NETWORK_NAME"
    psk="YOUR_PASSWORD"
    key_mgmt=WPA-PSK
}

smontare la scheda SD e inserirla in pi per l'avvio

dagli un minuto e trova l'indirizzo IP del tuo pi

ssh nel pi

ssh pi@pi-ip-address

la password predefinita è raspberry


1

È necessario modificare il wpa_supplicant.conffile sulla sdcard (è in /etco in /etc/wpa_supplicantbase alla versione di distribuzione). Il formato del file è spiegato qui: http://linux.die.net/man/5/wpa_supplicant.conf


Ma se il wireless si interrompe, non si riconnetterà automaticamente utilizzando le impostazioni di base. Richiede l'utilizzo della modalità manuale e del roaming con file di configurazione aggiuntivi.
Piotr Kula,

Beh, dovrebbe essere abbastanza da configurare, giusto? Poiché si collegherà sicuramente all'avvio di wpa_supplicant se la rete è disponibile. Penso anche che wpa_supplicant dovrebbe riconnettersi automaticamente se perdi la rete.
hogliux,

Oltre al mio ultimo commento, vorrei aggiungere che ho usato questo metodo da solo su un modello A di lampone con l'ultimo debian.
hogliux,

WPA Supplicant sarà non riconnettersi se si utilizza AUTO, è necessario utilizzare STATICcon ROAMINGe definire SSID per connettersi a ... che è un po 'difficile da configurare.
Piotr Kula,

1

Ho creato uno strumento di script di shell (purtroppo funziona solo su Linux), automatizza l'intero processo di download dell'immagine Raspbian più recente, scompattando l'immagine, incorporando le impostazioni Wi-Fi ed Ethernet (fornite dall'utente) nell'immagine, reimballando l'immagine e masterizzarla sulla scheda SD. Quando avvii il tuo Pi con la scheda SD, questo si collega immediatamente alla tua rete. Lo script ha anche la capacità di cercare un Pi appena configurato sulla rete.

Puoi collegare direttamente un dongle Wi-Fi con il tuo Pi, utilizzare lo script RaspImgConfig.sh per incorporare l'immagine Raspbian con credenziali Wi-Fi e masterizzare l'immagine sulla scheda. Non è necessario alcun monitor, mouse o tastiera.

Video di Youtube sull'uso dello strumento: https://youtu.be/WdYb1L2WzjM

Saluti, Subhajit Ghosh


-2

Puoi configurare il tuo pi per funzionare con un wifi protetto da password e abilitare automaticamente ssh senza avviare il pi, con i file di configurazione nella partizione / boot.

L'ho usato per il mio AIY e ho scansionato la rete usando nmap per trovare il mio pi.

Da lì puoi semplicemente connetterti al pi.


Dovresti almeno spiegare i nomi dei file necessari e il loro contenuto, nonché un link per ulteriori informazioni.
Steve Robillard,

-3

Penso che a tutte queste risposte manchi il punto che il modello RPi A NON HA Ethernet, no wi-fi, quindi non importa cosa fai, a meno che tu non abbia un dongle esterno, non sarai in grado di collegarti al RPi tramite ssh .. .. la tua scommessa migliore è usarla direttamente su una TV o usarla attraverso la porta seriale sulle intestazioni, o come ho detto, ottenere un dongle esterno per il wifi.


5
Penso che sia implicito che ne stia già usando uno. Si potrebbe presumere che l'OP sia consapevole di non poter connettersi a una rete wireless senza una sorta di adattatore.
Impulss,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.