====== Networking con Raspberry Pi 3 e 4 ======
La versione **3** e **4** del **Raspberry Pi** dispone di una interfaccia **Ethernet** e di una **Wifi**. La gestione della rete in Raspbian 9 e 10 (basate su Debian Strech e Buster rispettivamente) utilizza il pacchetto **dhcpcd5**, in particolare il file **/etc/network/interfaces** è vuoto e **non dovrebbe essere più utilizzato**. Vedere queste pagina per una trattazione completa e moderna:
* **[[https://www.raspberrypi.org/documentation/configuration/tcpip/|Raspberry Pi TCP/IP networking]]**
* **[[https://raspberrypi.stackexchange.com/questions/37920/how-do-i-set-up-networking-wifi-static-ip-address|How do I set up networking/WiFi/static IP address?]]**
* **[[https://raspberrypi.stackexchange.com/questions/37920/how-do-i-set-up-networking-wifi-static-ip-address/74428#74428|Setup a Static IP Address]]**
In generale:
* Non usare **/etc/network/interfaces** per configurare indirizzi IP statici o dinamici.
* Utilizzare il file **/etc/dhcpcd.conf** per definire indirizzi IP statici oppure il fallback statico nel caso in cui il DHCP fallisca. Lo stesso file viene utilizzato per disabilitare l'interfaccia **WiFi** (wlan0).
* Il programma **wpa_supplicant** viene avviato da **dhcpcd**, pertanto il servizio **systemd** chiamato **wpa_supplicant.service** deve essere disabilitato, altrimenti si avranno due istanza del programma che vanno in conflitto fra loro. Solo l'instanza avviata da ''dhcpcd'' utilizza il contenuto di **/etc/wpa_supplicant/wpa_supplicant.conf**.
* Il programma **Network Manager** non è necessario, anzi va in conflitto con la configurazione predefinita.
* Se si desidera una interfaccia grafica, utilizzare il plugin **lxplug-network**.
===== /etc/dhcpcd.conf =====
Snippet per configurare **eth0 con IP statico**:
interface eth0
static ip_address=10.0.0.72/24
static routers=10.0.0.189
static domain_name_servers=8.8.4.4 10.0.0.189
Per configurare **eth0 con DHCP e fallback con profilo statico**. La configurazione statica viene applicata solo quando la Ethernet sente la portante (carrier attivo, cavetto inserito) e dopo un timeout di circa 30 secondi.
profile static_eth0
static ip_address=10.0.0.72/24
static routers=10.0.0.189
static domain_name_servers=8.8.4.4 10.0.0.189
interface eth0
fallback static_eth0
Per configurare **wlan0** tramite **DHCP** è necessario configurare il file **/etc/wpa_supplicant/wpa_supplicant.conf**, comprese le righe iniziali con le impostazioni **country**, ecc.:
country=IT
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="MyESSID"
psk="MyWPA2Secret"
}
Per configurare **wlan0** con **IP statico**, oltre alla configurazione del file ''/etc/wpa_supplicant/wpa_supplicant.conf'' come visto sopra, è necessario aggiungere una sezione in **/etc/dhcpcd.conf**:
interface wlan0
static ip_address=10.0.0.73/24
static routers=10.0.0.189
static domain_name_servers=8.8.4.4
==== Configurare il WiFi con raspi-config ====
Se si desidera una configurazione guidata dell'interfaccia wireless (ma senza interfaccia grafica) si può esguire **raspi-config**. Le voci da selezionare sono:
* Localization Options => Wlan Country
* System Options => Wireless LAN
Entrambe le impostazioni verrano scritte in **/etc/wpa_supplicant/wpa_supplicant.conf**.
===== Network Manager =====
Se viene installato il pacchetto **network-manager** vengono ignorate le impostazioni di **/etc/wpa_supplicant/wpa_supplicant.conf**. In questo modo non è possibile attivare una connessione WiFi come impostazione di sistema, ma è l'utente che deve abilitare la connessione. In tal caso le impostazioni della rete WiFi vengono salvate in **/var/lib/NetworkManager/**.
FIXME: Qual'è la combinazione software consigliata da Raspberry Pi per gestire il WiFi con XFCE?
===== Configurazione legacy con /etc/network/interfaces =====
Se si desidera continuare ad utilizzare il file **/etc/network/interfaces** come con le vecchie versioni Debian, è possibile disabilitare i servizi **dhcpcd.service** e **wpa_supplicant.service** da systemd:
systemctl disable dhcpcd.service
systemctl disable wpa_supplicant.service
===== Altre pagine (più o meno aggiornate) =====
* **[[raspberry_eth_wifi]]**
* **[[raspberrypi_wpa_supplicant_problem]]**
* **[[raspberrypi_wifi_country_not_set]]**
* **[[..:linux:sa:dhcpcd_ip_alias]]**