sabato, dicembre 12, 2015

La connessione wireless si resetta su Debian

Ovvero, porca di quella...

Allora, quando si usa Linux capita di oscillare tra la meraviglia di potere mettere insieme le cose come ci pare e lo sgomento causato dalla complessità caotica che risulta mettendo insieme software eterogenei, sviluppati ognuno per conto suo, ognuno con le sue idiosincrasie peculiari.

Un giorno si presenta questo problema: la connessione wireless tramite adattatore USB si resetta di continuo, oppure l'adattatore si spegne e si riaccende, o si spegne e rimane morto, tutte queste cose in ordine sparso. Ci sono cento cose differenti coinvolte nella connessione, dal "kernel" che deve utilizzare il "firmware" appropriato per la periferica in uso, ai servizi di rete, al "wpa-supplicant" e il "networkmanager". Essendo l'adattatore un dispositivo USB ci sono poi tutti gli aggeggi che rilevano le periferiche in modalità plug&play.

Insomma, provo a pasticciare di qui e di la, gli stessi errori che vedo nel log hanno centomila cause diverse, non cavo un ragno dal buco. Reinstallo tutto passando dalla versione "stabile" alla versione "testing" di Debian per vedere se si risolve qualche bug con versioni più aggiornate di tutti gli aggeggi. Niente, non funziona.

Alla fine era il maledettissimo networkmanager.

Si tratta del "demone" con la sua bella interfaccia Gnome accessibile tramite icona, che permette di visualizzare le reti disponibili, configurare la connessione, passare da una connessione ad un'altra. A quanto pare questo software viene sviluppato all'interno di Gnome/Fedora/Redhat e ci investono abbastanza risorse. Secondo loro è un software fighissimo, che fa tutto nel modo migliore, eccetera. Peccato che NON FUNZIONI. I bug di questo aggeggio sono catastrofici perché sono una cosa che impedisce di usare il PC, quindi non mi capacito del fatto che in Debian sia usato di default sia su "stabile" che su "testing" in tutte le configurazioni disponibili.

Per risolvere l'inconveniente ho installato "wicd" al posto di "networkmanager", un aggeggio grossomodo analogo, il fratello povero sviluppato da qualche volenteroso senza dietro chissà quale organizzazione. E' un po' più spartano ma adesso la connessione non si resetta di continuo, l'adattatore non viene spento e scollegato, quindi funziona.

Esistono due alternative. Una è un altro aggeggio sviluppato credo da Intel per i furbofoni e che funziona anche sui PC, si chiama "connman", io però non sono riuscito a farlo funzionare, avendone anche un po' le scatole piene in questo momento. L'altra è configurare tutte le connessioni di rete a manina, editando i soliti file di testo, cosa che va bene se si usa una connessione ethernet, sempre quella ma è poco pratico per le connessioni wireless.

Comunque, riassumendo, se vi si resetta di continuo la connessione wireless, provate a sostituire "networkmanager" con "wicd".

Se qualcuno poi mi spiega come usare "connman" e "connman-ui" in Debian, ve ne sarei grato.

15 commenti:

  1. Grande Lorenzo.
    Capisco il MAZZO che ti sei fatto.

    RispondiElimina
    Risposte
    1. Ho visto di peggio. La cosa però è triplicemente frustrante. Primo, non capisci dove sia il problema. Secondo, non ci puoi fare niente perché sono uno o più bug annidati nei meandri interni di cento aggeggi che interagiscono. Terzo, è impresa impossibile riportare il bug e se anche ti metti d'impegno, alla fine di solito ti rispondono che rimane tutto cosi perché non sanno come ricreare il problema.

      Elimina
    2. Nel mio caso, secondo me la soluzione di "wicd" è una mossa "stop-gap", cioè aggira il problema ma non lo risolve. Probabile che i bug siano ancora li da qualche parte solo che con una diversa concatenazione non scatenano il reset dell'adattatore e/o della connessione. Solo che non ho proprio idea di dove possano essere. A naso sembra che ci sia qualcosa che periodicamente va a controllare cosa c'è attaccato allo hub USB del PC e quando lo fa interferisce col funzionamento dell'adattatore. Penso che non lo saprò mai.

      Elimina
    3. La proliferazione dei bachi è un esempio lampante di quel che succede quando si porta un sistema (non necessariamente informatico) oltre i livelli di complessità ragionevolmente gestibili dalla mente umana ordinaria. Il gigantismo non è mai costruttivo, ed è un bel po' che ne abbiamo fulgidi esempi praticamente in ogni campo. In crescita ulteriore.

      Elimina
    4. Ci sono due aggravanti, la prima è che un po' di sviluppatori sono pagati da grandi aziende che usano il software "libero" per i propri processi/servizi/prodotti e questi rispondono a logiche aziendali, poi ci sono un po' di sviluppatori hobbisti che fanno solo quello che gli va di fare, come gli va di farlo. Quando si mette tutto insieme viene fuori un disastro, non tanto per la qualità eterogenea del software ma per finalità e modalità contrastanti.

      La seconda aggravante è che nello IT non esiste il concetto del conquistare e consolidare una posizione, poi da li allargarsi. Si corre sempre più veloce senza sapere dove e togliendo i binari dietro per metterli davanti, per cui sono tutti contenti di dire "guarda la nuova figata" e non gli importa se nel frattempo sono saltate per aria altre dieci cose che prima funzionavano.

      Non conosco soluzioni.

      Elimina
    5. Hai presente il recente spot Apple? Quello che, saccentemente, afferma "E' cambiata una sola cosa. Tutto." come se fosse chissà quale conquista? Ecco... cambia, cambia, che la mamma ha fatto gli gnocchi. Il bello è che ci sono frotte di coglionazzi che corrono dietro al pifferaio del cambiamento senza se e senza ma come se fosse chissà quale portatore di progresso (nel senso di avanzamento verso il meglio)!!!

      Elimina
    6. Ho indagato un po' la cultura americana. Loro per esempio sono convinti che una cosa "nuova" sia sempre e comunque intrinsecamente migliore di una cosa "vecchia".

      Essendo la gente programmata per adeguarsi a quel modello, più o meno vale anche per noi.

      Anche perché, avrai notato, la gente è infastidita dal fatto di porsi delle domande, da dovere prendere una posizione, anche piccola. Correre tutti insieme verso il nulla è preferibile che andare controcorrente, per mille ragioni.

      Elimina
  2. io sul mio pc debian fatico a istallare il firmware dell'adattatore (dwa-131 di dlink) e ho risolto usando "come adattatore" lo smartphone collegato con usb e thetering verso l'adsl di casa.... ...però mi si scollega quando il telefono raggiunge il massimo della carica della batteria :(

    RispondiElimina
    Risposte
    1. Ti spiego come fare.

      Se riesci a collegarti ad Internet in un modo qualsiasi, apri Synaptic (l'aggeggio per gestire i pacchetti), vai nei repository e li metti cosi:

      http://httpredir.debian.org/debian/
      jessie
      main contrib non-free

      http://security.debian.org/
      jessie/updates
      main contrib non-free

      http://httpredir.debian.org/debian/
      jessie-updates
      non-free contrib main

      Nota: la parte "httpredir" è un automatismo che pesca un mirror a caso, in modo da non doverne selezionare uno. La parte "main" - "contrib" - "non-free" ti dice che puoi installare software che Debian non distribuisce di default per problemi con le licenze.

      Chiudi Synaptic, apri il terminale.
      Fai "su"- ti chiede la password di root.
      una volta che sei root, fai:
      "apt update".
      Apt va a verificare il tuo sistema contro i repository. Quando finisce, fai:
      "apt full-upgrade"
      Apt aggiorna il sistema, quando ha finito fai:
      "apt install firmware-linux firmware-linux-free firmware-linux-nonfree firmware-realtek"
      Apt installa tutti i firmware generici e l'ultimo è quello che ti serve per il dispositivo "D-link DWA-131".

      Se invece non hai una connessione Internet, puoi scaricare da un altro PC il pacchetto "deb" che trovi qui: Firmware, lo copi sul PC dove lo vuoi installare e poi fai
      "dpkg -i [nome del pacchetto]"
      Questo dovrebbe installare il pacchetto in modalità manuale.

      Fammi sapere.

      Elimina
  3. sto facendo apt update ma mi da questi errori che mi pare si riferiscano airepository appena aggiunti... è normale ?

    Err http://security.debian.org jessie/non-free Sources
    404 Not Found [IP: 212.211.132.250 80]
    Err http://httpredir.debian.org jessie/non-free Sources

    Err http://security.debian.org jessie/contrib Sources
    404 Not Found [IP: 212.211.132.250 80]
    Err http://security.debian.org jessie/main Sources
    404 Not Found [IP: 212.211.132.250 80]
    Err http://httpredir.debian.org jessie-updates/non-free Sources
    404 Not Found [IP: 213.157.243.77 80]
    Err http://httpredir.debian.org jessie/non-free Sources
    404 Not Found [IP: 129.132.53.171 80]
    Err http://httpredir.debian.org jessie-updates/main Sources
    404 Not Found [IP: 213.157.243.77 80]
    Err http://httpredir.debian.org jessie/contrib Sources
    404 Not Found [IP: 213.157.243.77 80]
    Err http://httpredir.debian.org jessie/main Sources
    404 Not Found [IP: 129.187.10.100 80]
    Err http://httpredir.debian.org jessie-updates/contrib Sources
    404 Not Found [IP: 130.59.10.36 80]

    RispondiElimina
    Risposte
    1. Se usi la opzione dentro Synaptic non puoi sbagliare, ti chiede tre campi uno sotto l'altro e devi metterci esattamente quello che ho scritto sopra.

      Quella opzione non fa altro che scrivere il file "/etc/apt/sources.list" con queste righe:

      deb http://httpredir.debian.org/debian/ jessie non-free contrib main

      deb http://security.debian.org/ jessie/updates non-free contrib main

      deb http://httpredir.debian.org/debian/ jessie-updates main contrib non-free

      Volendo lo puoi scrivere a mano, editandolo come root.

      Se la connessione Internet è attiva, deve funzionare.

      Elimina
    2. Controlla di avere messo esattamente quanto scritto sopra, se per caso hai omesso qualche segno / o qualche segno -

      Elimina
  4. forse avrò sbagliato a copiare qualcosa....

    comunque ho cercato il firmware e l'ho installato manualmente come hai indicato tu e ora funziona.

    grazie di tutto!!

    RispondiElimina
    Risposte
    1. Bene, i repository comunque li devi sistemare perché sono necessari per installare qualsiasi programma ti possa servire e anche per aggiornarli con i backport.

      Elimina
    2. Ti spiego il motivo: installare un singolo pacchetto manualmente funziona solo nel caso di qualcosa che non richiede nessuna libreria condivisa con altri software, come nel caso del driver per la periferica.

      Invece se installi un programma più complicato la procedura di installazione deve verificare che tutte le dipendenze siano soddisfatte ed eventualmente aggiungere le cose che mancano o togliere quelle superflue.

      Lo strumento per installare i programmi in Debian è "apt" oppure "synaptic" (che è una interfaccia grafica per apt). In entrambi i casi bisogna configurare i repository da cui "apt" prende i software necessari e contro cui verifica le dipendenze.

      Elimina