Come eseguire il debug del ritardo utilizzando il mouse Bluetooth connesso e l'auricolare A2DP?


13

Possiedo un Logitech M555b mouse per l'utilizzo con la mia HP Elitebook 8570w portatile con Kubuntu 12.04. Funziona bene subito dopo la connessione usando il modulo di controllo Bluetooth di KDE.

Tuttavia, dopo qualche tempo (apparentemente casuale), inizia a rimanere in ritardo. I movimenti vengono ritardati di circa 500 ms per un breve periodo di tempo. Di solito si recupera anche dopo un po 'di tempo, ma può richiedere alcuni minuti. Tutte le azioni vengono ritardate: movimenti, clic, pergamene. Inoltre, i movimenti possono essere instabili durante questi periodi.

Una soluzione alternativa che funziona sempre per lo stesso breve periodo di tempo è quella di disconnettere e riconnettere il mouse. Questo può essere fatto usando lo stesso modulo di controllo Bluetooth di KDE.

Cosa ho già provato?

  • Eseguendo questo all'avvio:

    echo on > `readlink -f /sys/class/bluetooth/hci0`/../../../power/level
    

    Per disabilitare eventuali funzioni di risparmio energetico sul hci0dispositivo Bluetooth .

  • Controlla le batterie del mouse (ha appena una settimana, altre nuove batterie: stesso risultato)

  • Controllo dei log e dei messaggi del kernel relativi alle voci relative al Bluetooth: nessuno a parte i messaggi previsti al momento della connessione.
  • Sto eseguendo il kernel 3.5.0-13-genericcome indicato nel PPA xorg-edgers . L'avvio del normale 3.2 3.2 kernel preciso porta allo stesso comportamento.

Alcune altre informazioni che potrebbero aiutare:

  • Succede quando non sono attive altre connessioni Bluetooth sulla macchina.
  • Sintomi simili si verificano anche sulle mie cuffie stereo Bluetooth (A2DP), ma poi sono ritardi e salti audio. Lo scambio di profili Bluetooth come descritto qui aiuta. Conclusione: non è il mouse ad essere difettoso.
  • Le cuffie hanno sempre funzionato bene usando il mio ormai morto Thinkpad T61p con Bluetooth integrato.
  • Il modulo bluetooth nel mio laptop è collegato tramite USB e si presenta come

    0a5c:21e1 Broadcom Corp. 
    
  • La disattivazione dell'adattatore Bluetooth integrato e l'utilizzo di un altro funziona correttamente, senza ritardi.

    0a5c:2046 Broadcom Corp. Bluetooth Device
    

Sono mobile e diverse persone intorno a me usano il Bluetooth al lavoro (principalmente A2DP). Si verifica anche a casa, dove probabilmente anche i miei vicini usano il Bluetooth. Si potrebbe essere solo interferenze radio, ma penso che le connessioni Bluetooth dovrebbero semplicemente saltare su un altro canale. Inoltre, funziona correttamente all'istante quando si riconnette.

Pertanto penso che sia un problema con il driver del software e vorrei eseguirne il debug. Esiste un modo per ottenere una registrazione più dettagliata sui moduli Bluetooth (-hid)?


Fino a quando non ho sostituito con la scheda madre, avevo una porta USB difettosa sul mio computer. Hai provato a usarne uno diverso per collegare il tuo modulo bluetooth? Potresti anche provare a portare il tuo computer in giro per il paese, spegnere la tua auto e il tuo cellulare e vedere se è ancora un problema in assenza di interferenze RF.
John S Gruber,

Ho trovato un vecchio dongle USB Bluetooth 2.0 e questo funziona come un fascino. Sembra un 0a5c:21e1 Broadcom Corp.problema specifico in Linux.
gertvdijk,

Un altro aggiornamento sul problema originale. Da quando sono sul kernel Linux 3.7.x questo sembra svanire anche sull'adattatore interno - tutto funziona molto bene. Probabilmente ha colpito un bug qui ora risolto. Una volta che avrò il tempo di capire qualche dettaglio in più, lo segnalerò come un bug.
gertvdijk,

Risposte:


6

Puoi provare a utilizzare l' hcidumputilità dal pacchetto bluez-hcidumpper monitorare i tuoi dispositivi bluetooth e ottenere informazioni approfondite:

sudo apt-get install bluez-hcidump

Nella descrizione del pacchetto, si nota che:

L'utilità hcidump consente il monitoraggio dell'attività Bluetooth. Fornisce uno smontaggio del traffico Bluetooth e può visualizzare pacchetti da protocolli di livello superiore come RFCOMM, SDP e BNEP.

È possibile utilizzare l'utilità per registrare l'output dal dispositivo su schermo o file; dove si hciXtrova il proprio dispositivo bluetooth (hci0 è l'impostazione predefinita e utilizzata se non si specifica nulla con -i), è possibile eseguire:

sudo hcidump -x -i hciX

È possibile salvare il dump su file aggiungendo il comando -w ~/outpute se si desidera conoscere in modo specifico i dati audio, è possibile utilizzare lo -Aswitch e quindi estrarre i dati audio SCO, anche se in questo caso è necessario specificare sempre un file di output:

sudo hcidump -x -A -i hciX -w ~/output

È possibile visualizzare un file di dump salvato utilizzando

sudo hcidump -r ~/output

Ci sono molte opzioni più specifiche che potresti voler esaminare; è possibile filtrare per tipo di pacchetto se lo si desidera, poiché per impostazione predefinita tutti i pacchetti vengono scaricati. Per ulteriori informazioni, consultare man hcidumple manpage di Ubuntu online .

L'unica altra opzione è installare wiresharke vedere se è in grado di rilevare i tuoi dispositivi; se possibile, sarà in grado di analizzare il traffico usb e bluetooth, come indicato qui , ma hcidumpdovrebbe dare risultati migliori.


Grazie! La particolarità di questo è che durante l'esecuzione hcidumpdel problema non viene visualizzato. Inoltre, nel momento in cui inizio a eseguirlo, il problema scompare immediatamente. Questa sonda di debug sembra rendere ineccepibile.
gertvdijk,

2

Ho avuto un po 'di fortuna usando la traccia USB per risolvere strani problemi audio. A volte è possibile determinare qualcosa dal contenuto o dai tempi dei pacchetti. Nel mio caso è stato un cambiamento occasionale nella lunghezza del pacchetto corrispondente al rumore che stavo ascoltando.

Ecco una pagina di Wireshark che fornisce alcune informazioni.

Puoi ottenere una traccia semplicemente procedendo come segue:

  1. sudo modprobe usmon
  2. cd / sys / kernel / debug / usb / usbmon
  3. sudo cat 0u | tee ~ / myusbtrace> / dev / null
  4. esegui il test
  5. termina il processo dal passaggio 3

Ecco informazioni dal progetto Linux su questo, incluso come restringere ciò che stai rintracciando.

La seconda colonna sembra contenere l'ora, quindi dovresti fare attenzione a come aumenta. Se inizia senza intoppi e successivamente diventa nervoso, il problema potrebbe essere nella sezione bluetooth.

Se la traccia mostra pacchetti irregolari quando c'è un problema che potrebbe essere USB o bluetooth, ma la direzione dei pacchetti irregolari può indicare se si tratta del kernel o del driver piuttosto che qualcosa sull'altro lato del bus USB.


Molto utile, grazie. Avrebbe offerto una piccola ricompensa se ciò fosse possibile. :)
gertvdijk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.