Bagaimana cara men-debug lag menggunakan mouse yang terhubung Bluetooth dan headset A2DP?

13

Saya memiliki mouse Logitech M555b untuk digunakan dengan laptop HP Elitebook 8570w saya yang menjalankan Kubuntu 12.04. Bekerja dengan baik setelah terhubung menggunakan modul kontrol Bluetooth KDE.

Namun, setelah beberapa waktu (tampaknya acak), ia mulai tertinggal. Pergerakan sedang tertunda sekitar 500 ms untuk waktu yang singkat. Biasanya pulih setelah beberapa waktu juga, tetapi bisa memakan waktu beberapa menit. Semua tindakan sedang ditunda: gerakan, klik, gulir. Selain itu, gerakan dapat berombak selama waktu-waktu ini.

Solusi yang selalu berfungsi untuk periode waktu yang sama adalah untuk melepaskan koneksi ulang mouse. Ini dapat dilakukan dengan menggunakan modul kontrol Bluetooth KDE yang sama.

Apa yang sudah saya coba?

  • Menjalankan ini saat boot:

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

    Untuk menonaktifkan fitur hemat daya pada hci0perangkat Bluetooth .

  • Periksa baterai mouse (ini baru berumur seminggu, baterai baru lainnya: hasil yang sama)

  • Memeriksa log dan pesan kernel tentang entri terkait Bluetooth: tidak ada selain pesan yang diharapkan pada waktu koneksi.
  • Saya menjalankan kernel 3.5.0-13-genericseperti yang disediakan di PPA xorg-edgers . Mem-boot kernel biasa 3.2 Precise menghasilkan perilaku yang sama.

Beberapa informasi lain yang dapat membantu:

  • Itu terjadi ketika tidak ada koneksi Bluetooth lain yang aktif pada mesin.
  • Gejala serupa juga terjadi pada headset stereo Bluetooth (A2DP) saya, tetapi kemudian audio lagging dan skipping. Bertukar profil Bluetooth seperti yang dijelaskan di sini akan membantu. Kesimpulan: bukan mouse yang salah.
  • Headset selalu bekerja dengan baik menggunakan Thinkpad T61p saya yang sudah mati dengan Bluetooth bawaan.
  • Modul bluetooth di laptop saya terhubung melalui USB dan muncul sebagai

    0a5c:21e1 Broadcom Corp. 
    
  • Mematikan adaptor Bluetooth bawaan dan menggunakan yang lain berfungsi dengan baik, tanpa jeda.

    0a5c:2046 Broadcom Corp. Bluetooth Device
    

Saya mobile dan beberapa orang di sekitar saya menggunakan Bluetooth di tempat kerja (sebagian besar A2DP). Ini juga terjadi di rumah, di mana tetangga saya mungkin juga menggunakan Bluetooth. Itu bisa saja gangguan radio, tapi saya pikir koneksi Bluetooth harusnya langsung ke saluran lain. Dan, apalagi, itu hanya berfungsi dengan baik secara instan saat menghubungkan kembali.

Karena itu saya pikir ini masalah driver perangkat lunak dan saya ingin men-debug-nya. Apakah ada cara untuk mendapatkan lebih banyak logging verbose pada modul Bluetooth (-hid)?

gertvdijk
sumber
Sampai saya diganti oleh motherboard, saya memiliki port USB yang buruk di komputer saya. Sudahkah Anda mencoba menggunakan yang berbeda untuk mencolokkan modul bluetooth Anda? Anda juga dapat mencoba membawa komputer Anda untuk bepergian ke negara itu, mematikan mobil dan ponsel Anda, dan melihat apakah masih ada masalah dengan tidak adanya gangguan RF.
John S Gruber
Saya telah menemukan dongle Bluetooth 2.0 USB yang lebih lama dan yang ini berfungsi seperti pesona. Sepertinya 0a5c:21e1 Broadcom Corp.masalah khusus di Linux.
gertvdijk
Pembaruan lain tentang masalah asli. Sejak saya menggunakan Linux kernel 3.7.x, ini tampaknya lenyap pada adaptor internal - semuanya bekerja dengan sangat baik. Mungkin menabrak bug di sini sekarang diperbaiki. Setelah saya punya waktu untuk mencari tahu lebih banyak detail saya akan melaporkan ini sebagai bug.
gertvdijk

Jawaban:

6

Anda dapat mencoba menggunakan hcidumputilitas dari paket bluez-hcidumpuntuk memantau perangkat bluetooth Anda dan mendapatkan informasi mendalam:

sudo apt-get install bluez-hcidump

Dalam deskripsi paket, dicatat bahwa:

Utilitas hcidump memungkinkan pemantauan aktivitas Bluetooth. Ini menyediakan pembongkaran lalu lintas Bluetooth dan dapat menampilkan paket dari protokol tingkat yang lebih tinggi seperti RFCOMM, SDP dan BNEP.

Anda dapat menggunakan utilitas untuk mencatat output dari perangkat Anda ke layar atau file; di mana hciXperangkat bluetooth Anda sendiri (hci0 adalah default dan digunakan jika Anda tidak menentukan apa-apa dengan -i), Anda dapat menjalankan:

sudo hcidump -x -i hciX

Anda dapat menyimpan dump to file dengan menambahkan perintah -w ~/output, dan jika Anda secara khusus ingin tahu tentang data audio, Anda dapat menggunakan -Asakelar dan karenanya mengekstrak data audio SCO, meskipun dalam hal ini Anda harus selalu menentukan file keluaran:

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

Anda dapat melihat file dump yang disimpan dengan menggunakan

sudo hcidump -r ~/output

Ada banyak opsi spesifik yang mungkin ingin Anda selidiki; Anda dapat memfilter menurut jenis paket jika Anda mau, karena secara default semua paket dibuang. Silakan lihat man hcidumpatau manual Ubuntu online untuk informasi lebih lanjut.

Satu-satunya pilihan lain adalah menginstal wiresharkdan melihat apakah itu dapat mendeteksi perangkat Anda; jika bisa, itu akan dapat menganalisis lalu lintas usb dan bluetooth, seperti disebutkan di sini , tetapi hcidumpharus memberikan hasil yang lebih baik.


sumber
Terima kasih! Yang aneh tentang ini adalah bahwa saat menjalankan hcidumpmasalah tidak muncul. Juga, saat saya mulai menjalankannya, masalah tersebut segera hilang. Probe debugging ini sepertinya tidak bisa diproduksi ulang.
gertvdijk
2

Saya beruntung menggunakan pelacakan USB untuk menyelesaikan masalah audio yang aneh. Terkadang Anda dapat menentukan sesuatu dari konten, atau waktu paket. Dalam kasus saya itu adalah perubahan sesekali dalam panjang paket yang sesuai dengan kebisingan yang saya dengar.

Ini adalah halaman dari Wireshark yang menyediakan beberapa informasi.

Anda bisa mendapatkan jejak hanya dengan melakukan hal berikut:

  1. sudo modprobe usmon
  2. cd / sys / kernel / debug / usb / usbmon
  3. sudo cat 0u | tee ~ / myusbtrace> / dev / null
  4. jalankan tes Anda
  5. matikan proses dari langkah 3

Berikut adalah informasi dari proyek linux tentang ini, termasuk bagaimana mempersempit apa yang Anda lacak.

Kolom kedua tampaknya berisi waktu, jadi Anda harus berhati-hati tentang peningkatannya. Jika mulai mulus dan kemudian gelisah masalahnya mungkin ada di bagian bluetooth.

Jika jejak menunjukkan paket tidak teratur ketika ada masalah yang bisa berupa USB atau bluetooth, tetapi arah paket tidak teratur dapat menunjukkan apakah itu adalah kernel atau driver daripada sesuatu di sisi lain dari bus USB.

John S Gruber
sumber
Terima kasih banyak. Akan menawarkan hadiah kecil jika itu mungkin terjadi. :)
gertvdijk