Wi-Fi non funziona in Linux? Ecco come risolverlo

Una delle grandi sfide che gli utenti tendono ad affrontare con Linux è il Wi-Fi. I driver Wi-Fi spesso non sono inclusi nel kernel e, di conseguenza, ci sono molti problemi per far funzionare bene i moduli Wi-Fi non Intel su Linux. Qui trattiamo cosa succede quando il Wi-Fi non funziona su Linux e come risolverlo.
Indice
- Problemi Wi-Fi Hardware vs. Software
- Installare i driver dall’ISO di Ubuntu
- Problema Uno: Dispositivo non Rilevato
- Problema Due: Modulo Driver Mancante
- Problema Tre: DNS
- Problema Quattro: Nessun Network Manager
Suggerimento: scopri come trovare le password Wi-Fi salvate in Linux.
Problemi Wi-Fi Hardware vs. Software
Un problema di connessione Wi-Fi può essere sia hardware che software. I problemi hardware sono relativamente facili da diagnosticare: tutto ciò che devi fare è aprire il terminale e inserire il seguente comando:
ping localhost
Questo è un modo semplice per controllare se l’hardware fisico funziona. localhost funge da indirizzo per controllare la circuiteria della tua scheda NIC. Se questo non funziona, potresti aver bisogno di fare qualche intervento sull’hardware, sia da solo che con l’aiuto di qualcun altro.
Se il ping viene restituito pulito o non vedi nemmeno la tua scheda Wi-Fi, probabilmente hai un problema di software.
A parte ciò, puoi anche controllare se il tuo sistema rileva un’interfaccia di rete attiva eseguendo ip addr. La maggior parte delle distro etichetta le schede wireless attualmente attive come “wl” seguite dai numeri di bus e slot nella scheda madre del computer.
Ad esempio, un’etichetta di “wlp0s1” significa che si tratta di un’interfaccia di rete wireless sul bus 0, slot 1.

Nota: Se non riesci a navigare in internet, potrebbe essere necessario disabilitare IPv6 sulla tua macchina Linux.
Installare i driver dall’ISO di Ubuntu
Se la tua distro non rileva affatto la tua rete Wi-Fi o se si verificano errori, puoi provare a installare o reinstallare i driver Wi-Fi dal file ISO di Ubuntu. Prima, devi scaricare l’ISO di Ubuntu corrispondente alla tua versione di Ubuntu. (Presumibilmente, devi scaricarlo su un dispositivo diverso o scaricarlo utilizzando la tua connessione Ethernet su Ubuntu.)
Apri un terminale, quindi inserisci la seguente sequenza di comandi per montare l’ISO di Ubuntu su un’unità virtuale:
sudomkdir/media/cdrom
sudomount-o loop ~/Downloads/ubuntu-*.iso /media/cdromVai su “Aggiornamento Software” dal dashboard, poi fai clic sul pulsante Impostazioni nell’angolo inferiore sinistro della finestra.

Fai clic sulla scheda Driver Aggiuntivi, quindi seleziona l’opzione Adattatore di Rete Wireless e fai clic su Applica Modifiche.
Problema Uno: Dispositivo non Rilevato
Se il dispositivo wireless non è rilevato da Ubuntu (o da qualsiasi distro per quell’argomento), apri una sessione terminale e digita il seguente comando:
sudo lsusbQuesto comando stamperà tutti i dispositivi USB attualmente collegati al tuo computer. Cerca qualsiasi riga che contenga “Adattatore Wireless” o “RTL”.
sudo lsusb | grep "RTL"
Oltre a elencare tutti gli adattatori USB, puoi anche sondare il tuo sistema per eventuali dispositivi wireless PCI. Per fare ciò, esegui il seguente comando:
sudo lspciProprio come con il comando lsusb, cerca nelle righe dell’output di lspci eventuali etichette contenenti “Controllore di Rete” o “Controllore Ethernet”.

Trova il modulo driver esatto che il tuo dispositivo wireless sta attualmente utilizzando eseguendo il seguente comando:
sudo lshw -C network | grep "driver"Evidenzia il valore della variabile “driver” e copialo negli appunti.

Problema Due: Modulo Driver Mancante
Dopo aver eseguito con successo i comandi lsusb e lspci, confermando che la tua distro Linux può vedere la scheda wireless, puoi supporre che il firmware funzioni, solo che il sistema non sa cosa fare con il dispositivo. È qui che servono i driver o i moduli.
Digita il seguente comando e sostituisci “modulename” con il contenuto degli appunti:
sudo modprobe modulenameAd esempio, se il tuo driver wireless è “iwlwifi,” sarebbe come segue:
sudo modprobe iwlwifiDopo questo, esegui sudo lsmod | grep "modulename" per vedere se il kernel Linux ha caricato correttamente il tuo dispositivo Wi-Fi.

Carica il Modulo Driver Automaticamente all’Avvio
È un caso raro, ma a volte il modulo non persiste dall’avvio. In questo caso, puoi forzarlo a caricarsi permanentemente. Inserisci il comando seguente nel terminale:
sudo nano /etc/modulesAggiungi il nome del tuo modulo in fondo e salva il file.

Riavvia la macchina per verificare se il kernel Linux ha caricato correttamente il dispositivo wireless.
Buono a sapersi: scopri come il tuo computer gestisce il suo hardware installando il tuo kernel Linux personalizzato in Ubuntu oggi.
Problema Tre: DNS
È raro che ci siano problemi con il DNS; tuttavia, vale la pena indagare se hai ancora problemi di connessione. Dal terminale, digita il seguente comando per controllare il risolutore DNS predefinito del sistema:
nmcli device show INTERFACE-NAME | grep IP4.DNSPer impostazione predefinita, questo sarà impostato sull’indirizzo IP del tuo router. Se non funziona, potresti dover cambiare “wlp0s1” con qualsiasi sia l’utilizzo del tuo wireless. Puoi utilizzare anche il seguente comando per ottenere la designazione:
ip addr | grep ": "Una volta ottenute queste informazioni, ping il tuo indirizzo del risolutore DNS. Se funziona, puoi anche inviare un ping a una rete esterna come i risolutori DNS di Google:
ping 8.8.8.8Se tutti i dispositivi nella tua rete danno errori di caricamento della pagina, allora cambia i risolutori DNS sul tuo router con quelli di Google o di OpenNIC. Dovrai consultare il produttore del tuo router per come fare questo, ma in generale si fa accedendo alla console di amministrazione del dispositivo. Puoi trovare questo su maggior parte dei router andando su “192.168.0.1” o “192.168.254.254” su un browser web.
Aggiungere un Server DNS Personalizzato in NetworkManager
Detto ciò, puoi anche cambiare il risolutore DNS su base per dispositivo. Per farlo in Ubuntu, fai clic sul Pulsante Menu di Controllo nell’angolo in alto a destra del desktop, poi seleziona l’icona dell’Ingranaggio.

Fai clic sulla categoria Wi-Fi, poi cerca la categoria Reti Visibili.

Seleziona l’icona dell’Ingranaggio sulla riga che contiene il nome del tuo punto di accesso wireless.
Fai clic sulla scheda IPv4 nella barra superiore della finestra più piccola.

Vai alla sezione DNS, poi disattiva l’interruttore Automatico.

Digita “8.8.8.8,8.8.4.4” nella casella di testo DNS, poi fai clic su Applica per confermare le impostazioni.

Apri un nuovo terminale, poi esegui il seguente comando per rimuovere eventuali dati precedenti del risolutore DNS:
resolvectl flush-cachesTesta se il tuo sistema ora utilizza le nuove impostazioni del risolutore DNS eseguendo il seguente comando:
resolvectl status | grep "Current DNS Server"Controlla se le impostazioni DNS correnti hanno risolto il tuo problema di rete caricando una pagina web su un browser web.

Buono a sapersi: scopri di più sui server di nomi e i risolutori DNS utilizzando dig in Linux.
Problema Quattro: Nessun Network Manager
Supponiamo che tu abbia rimosso il Network Manager o lo abbia disinstallato per errore. Questa è una situazione davvero problematica: non hai internet e non hai Network Manager, ma ci sono cose che puoi fare.
Assumendo che il pacchetto sia ancora nel tuo cache, puoi andare al terminale e inserire:
# Debian/Ubuntu
sudo apt install network-manager
# Fedora
sudo dnf install NetworkManager
# Arch Linux
sudo pacman -Syu networkmanagerSe ciò non funziona, puoi forzare il tuo sistema a connettersi a un punto di accesso wireless utilizzando wpa_supplicant. Questo è uno strumento da linea di comando che utilizza il driver del tuo dispositivo wireless per connettersi a un punto di accesso senza utilizzare Network Manager.
Per cominciare, crea un file di configurazione per wpa_supplicant utilizzando il tuo editor di testo preferito:
sudo nano /etc/wpa_supplicant.confIncolla il seguente blocco di codice all’interno del file di configurazione, quindi sostituisci “SSID” e “PASSWORD” con il nome del punto di accesso e la password del tuo router:
network={
ssid="SSID"
password="PASSWORD"
}Salva il file di configurazione, poi incolla la seguente riga di codice nella tua sessione terminale:
sudo wpa_supplicant -B -i INTERFACE-NAME -c /etc/wpa_supplicant.conf -D nl80211Sostituisci il valore del flag “-i” con il nome della tua interfaccia wireless.
Nota: questo comando funzionerà solo su schede wireless più recenti. Se stai cercando di collegare una scheda Wi-Fi più vecchia, sostituisci il valore del flag “-D” con “wext.”
Richiedi un nuovo indirizzo IP dal tuo router ricaricando il demone DHCP:
sudo dhclient INTERFACE-NAMETesta se la tua connessione Wi-Fi ora funziona eseguendo un ping a un sito esterno:
ping -c 5 maketecheasier.comReinstalla il Network Manager per ripristinare la piena funzionalità Wi-Fi del tuo sistema Linux:
sudo apt install network-managerRiavvia la tua macchina per caricare la nuova installazione del Network Manager.
Comprendere come funzionano i moduli Wi-Fi e i driver del kernel è solo il primo passo per capire come funziona Linux sotto il cofano. Esplora di più il lato tecnico di questo sistema operativo creando un filesystem nascosto con Shufflecake.