Ubuntu: Palliativo per il bug dei dongle bluetooth usb
Di seguito documento un rimedio che ho adottato, e che pone riparo almeno parzialmente, ai problemi causati su Ubuntu nel momento in cui si collega un dongle usb bluetooth che risulta “antipatico” alla nostra distribuzione preferita.
Il problema pare non sia causato da tutti i dongle usb, però può capire (nel mio caso è capitato) che nel momento in cui il dongle viene collegato vengono generati un infinita di repliche di un errore che dovrebbe essere simile a questo:
hci_scodata_packet: hci0 SCO packet for unknown connection handle 92
Questa infinità di errori generata a raffica rende praticamente inutilizzabili i terminali, ma non solo, purtroppo questo errore viene loggato nel log di sistema: /var/log/syslog che data l’elevato numero di questi messaggi raggiunge in pochissimo, e dico davvero pochissimo tempo, delle dimensioni spaventose.
Quindi i problemi sono due:
- Terminali tty inutilizzabili mentre il dongle è collegato;
- Syslog che cresce in dimensioni con il tempo fino a saturare il disco;
- Cicli di cpu persi a causa di questo “errore”;
Personalmente ho constatato che nonostante si verifichi questo errore il dongle funziona perfettamente, invia e riceve file regolarmente.
Il problema pare sia dovuto ad un bug del kernel, come si può constatare qui.
Il metodo che propongo pone rimedio al secondo effetto indesiderato, creando un filtro per i messaggi che vengono salvati sul log di sistema.
Innanzi tutto bisogna installare il pacchetto syslog-ng che è un tool molto potente che tra le altre cose permette di creare dei filtri sui messaggi che dovrebbero essere salvati sui log.
Quindi digitiamo da terminale:
sudo apt-get install syslog-ng
A questo punto andiamo a modificare il seguente file:
sudo gedit /etc/syslog-ng/syslog-ng.conf
Nella sezione in del file in cui vengono definiti i filtri, inseriamo come primo filtro, un filtro per il messaggio di errore che ci assilla, incollando quanto segue:
# Filtro i messaggi di errore della chiavetta bluetooth
filter f_bluetooth_error {
facility(kern) and match(”hci_scodata_packet”);
};
Fatto ciò mettiamo il nostro filtro nuovo nuovo, in and con i filtri già esistenti che si trovano sotto il filtro da noi creato aggiungendo tra le graffe prima del “;”, quanto segue:
and not filter(f_bluetooth);
Ad esempio:
filter f_auth { facility(auth, authpriv) and not filter(f_bluetooth); };
A questo punto riavviamo syslog-ng digitando da terminale syslog-ng, e avremo risolto il problema delle dimensioni crescenti del file di log.
Nessun Commento »
Puoi lasciare una risposta, oppure fare un trackback dal tuo sito.









Pubblicato il 14 12 2007 alle 18:24 | Numero: 1
Un affettuoso augurio di Buon Natale
Pubblicato il 20 12 2007 alle 20:24 | Numero: 2
Ciao! Grazie per gli auguri!! tanti auguri anche a te! ti ho risposto anche sul tuo blog
torna a trovarmi.