<> ||<>|| == Sommario == Se la segnalazione dell'anomalia è pertinente a network-manager che non può connettersi, il titolo deve essere in questo formato: "[CHIPSET] non si connette a (ENCRYPT_METHOD)" dove CHIPSET è il driver wireless usato e ENCRYPT_METHOD è il metodo di crittografia usato dalla vostra rete wireless. == Capire l'anomalia ed ottenere informazioni == * Molte informazioni per il debugging sono reperibili sul wiki GNOME Live: [[http://live.gnome.org/NetworkManager/Debugging|NetworkManager/Debugging]]. * Potrebbe tornare utile guardare in [[http://live.gnome.org/DarrenAlbers/NetworkManagerFAQ|Darren Albers' FAQ]]. * Informazioni aggiuntive inerenti disconnessioni o altre anomalie in DebuggingNetworkManager/ReasonCodes . * Un codice reason/status similare ma valido per wpasupplicant è reperibile su: [[http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob;f=src/common/ieee802_11_defs.h|ieee802_11_defs.h]] == Ottenere informazioni per il debug == Innanzitutto, assicurarsi di avere lo script debug helper: [[http://cgit.freedesktop.org/NetworkManager/NetworkManager/plain/test/debug-helper.py| debug-helper.py]]. Scaricabile anche con il comando: {{{ wget http://cgit.freedesktop.org/NetworkManager/NetworkManager/plain/test/debug-helper.py }}} Sarà così possibile seguire le istruzioni dello sviluppatore nella segnalazione sull'opportuna linea di comando da usare; oppure eseguirlo direttamente come: === Ottenere file di debug da NetworkManager === {{{ sudo python debug-helper.py --nm debug }}} Il file generato sarà scritto in /var/log/syslog. Per disabilitarlo, passare '''info''' invece di '''debug''' nel precedente comando, o riavviare. === Ottenere file di debug da ModemManager === {{{ sudo python debug-helper.py --mm debug }}} Il file generato sarà scritto in /var/log/syslog. Per disabilitarlo, passare '''info''' invece di '''debug''' nel precedente comando, o riavviare. Vedere anche [[DebuggingModemmanager_it]]. === Ottenere file di debug da wpasupplicant === {{{ sudo python debug-helper.py --wpa msgdump }}} Il file generato sarà scritto in /var/log/syslog. Per disabilitarlo, passare '''info''' invece di '''debug''' nel precedente comando, o riavviare. === Catturare un syslog === Mischiando quanto sopra è perfettamente accettabile se si vuole vedere come NetworkManager ed altre parti dello stack interaginscono insieme. Ma per tracciare ed analizzare una anomalia, si ha la necesssità di avere un file di log completo. Per fare ciò catturare un test case completo ed allegarlo alla segnalazione (per cortesia evitate di tagliare...). Se possibile aggiungere dei marcatori, così il triager potrà vedere quali azioni avete fatto e in quale momento (non è essenziale ma aiuta molto). Per catturare il syslog: {{{ tail -n0 -f /var/log/syslog > /tmp/syslog }}} per fermarlo premere Ctrl-C (sarà necessario aprire un 'altra finestra se si devono eseguire altri comandi). Aggiungere dei marcatori è come aggiungere nuove linee con un editor di testo che indicano al triager cosa succede ed in quale momento. Potete farlo anche `al volo` mentre testate con il comando {{{logger "[ clicked on wireless network 'ubuntu']" }}}. Esempio di marcatore: {{{ Sep 6 08:12:30 ... [ clicked on wireless network 'ubuntu'] Sep 6 08:12:31 ... ... }}} === Gestione problemi 3G / modem === Una piccola cosa da aggiungere, ma molto utile, nel caso di problemi con 3G: L'output di udevadm per tty devices, e l'output di lsusb: {{{ $ udevadm info --query=all --path=/sys/class/tty/... --attribute-walk }}} {{{ $ lsusb }}} == Un Testcase == Un buon testcase è un elenco passo passo di istruzioni per poter riprodure il bug partendo dal driver `scaricato` e NetworkManager `fermato`. Fermare NetworkManager {{{ sudo stop network-manager }}} Per scaricare il driver {{{ sudo modprobe -r DRIVER }}}. Quindi ricaricare il driver {{{ sudo modprobe DRIVER }}} ed avviare NetworkManager: {{{ sudo start network-manager }}} == Debugging del crash == Per installare i simboli di debug, aggiungere le seguenti linee al vostro {{{/etc/apt/sources.list}}} {{{ deb http://ddebs.ubuntu.com/ precise main universe }}} o {{{ deb http://ddebs.ubuntu.com/ oneiric main universe }}} Quindi installare gli appropriati pacchetti dbgsym: {{{ sudo apt-get update sudo apt-get install network-manager-dbgsym libnm-util2-dbgsym libnm-glib4-dbgsym libglib2.0-0-dbgsym }}} Fermare quindi NetworkManager: {{{ sudo stop network-manager }}} Eseguire NetworkManager in un debugger {{{ sudo gdb /usr/sbin/NetworkManager ... (gdb) run --no-daemon }}} Quando avviene il crash ottenere la backtrace {{{ (gdb) bt ... (gdb) bt full ... (gdb) thread apply all bt full ... }}} ed allegare la backtrace insieme a {{{/var/log/syslog}}} alla segnalazione. == Bug Tags == Qesti tags consentono di isolare i bug in piccoli sottogruppi, fornendo un semplice e veloce metodo per lavorare a specifici problemi. || '''Tag''' || '''caso d'uso''' || || [[https://launchpad.net/ubuntu/+bugs?field.tag=driver-madwifi|`driver-madwifi`]] || Bugs dove viene usato il driver madwifi || || [[https://launchpad.net/ubuntu/+bugs?field.tag=driver-ndiswrapper|`driver-ndiswrapper`]] || Bugs dove viene usato il driver ndiswrapper || || [[https://launchpad.net/ubuntu/+bugs?field.tag=vpn|`vpn`]] || Bug relativi ai moduli vpn di network-manager: openvpn, vpnc o pptp || || [[https://launchpad.net/ubuntu/+bugs?field.tag=encryption-wep|`encryption-wep`]] || Bug dove viene usata la crittografia WEP || || [[https://launchpad.net/ubuntu/+bugs?field.tag=encryption-wpa|`encryption-wpa`]] || Bug dove viene usata la crittografia WPA || || [[https://launchpad.net/ubuntu/+bugs?field.tag=encryption-wpa2|`encryption-wpa2`]] || Bug dove viene usata la crittografia WPA2 || I sopradescritti tag sono specifici dell'applicazione [[NetworkManager]], per dei tag più generici, consultare la pagina [[Bugs/Tags]]. == Testare una patch == È sempre una buona idea controllare in [[https://edge.launchpad.net/~network-manager/+archive/trunk|NM trunk PPA]] per vedere se una nuova versione di NetworkManager fixa il bug che state sperimentando. Vi preghiamo di essere cauti, dato che questi sono rilasci giornalieri che potrebbero influenzare altre cose e sono da considerarsi instabili. Talvolta lo sviluppatore potrebbe richiedere di provare una patch. Procedere come segue se il bug riguarda network-manager, altrimenti se riguarda network-manager-applet o qualche altro pacchetto, semplicemente sostituire il nome Vedere [[DebuggingModemmanager_it]] per le stesse istruzioni per Modemmanager. {{{ # installare le dipendenze sudo apt-get install build-essential fakeroot devscripts sudo apt-get build-dep network-manager # ottenenre il sorgente sudo apt-get source network-manager # spostarsi nella directory del sorgente cd network-manager-*/ # applicare la patch (notare che -p1 potrebbe anche essere -p0 se la patch è stata creata senza un prefisso extra in diff path) patch -p1 < /tmp/yourdownloadedpatch.diff # build dei binari debuild -b -uc # i pacchetti sono prodotti nella directory genitrice cd ../ # installare tutti i pacchetti nm sudo dpkg -i network-manager*.deb libnm-*.deb }}} Nota che non si deve cambiare la versione del pacchetto. Così per ritornare alla versione uff basterà eseguire: {{{ sudo apt-get install --reinstall network-manager libnm-util2 libnm-glib4 }}} Se durante il build avete installato altri pacchetti, fate lo stesso anche per questi ultimi. ---- CategoryBugSquad