Làm cách nào để gỡ lỗi lag bằng chuột được kết nối Bluetooth và tai nghe A2DP?


13

Tôi sở hữu một con chuột Logitech M555b để sử dụng với máy tính xách tay HP Elitebook 8570w của tôi chạy Kubfox 12.04. Hoạt động tốt ngay sau khi kết nối bằng mô-đun điều khiển Bluetooth KDE.

Tuy nhiên, sau một thời gian (dường như ngẫu nhiên), nó bắt đầu tụt hậu. Các chuyển động đang bị trì hoãn trong khoảng 500ms trong một khoảng thời gian ngắn. Thông thường nó sẽ phục hồi sau một thời gian, nhưng nó có thể mất vài phút. Tất cả các hành động đang bị trì hoãn: chuyển động, nhấp chuột, cuộn. Ngoài ra, các phong trào có thể bị biến dạng trong thời gian này.

Một cách giải quyết luôn hoạt động trong cùng một khoảng thời gian ngắn là ngắt kết nối lại chuột. Điều này có thể được thực hiện bằng cách sử dụng cùng một mô-đun điều khiển Bluetooth KDE.

Tôi đã thử cái gì rồi?

  • Chạy cái này lúc khởi động:

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

    Để tắt mọi tính năng tiết kiệm năng lượng trên hci0thiết bị Bluetooth .

  • Kiểm tra pin của chuột (nó chỉ mới một tuần, pin mới khác: kết quả tương tự)

  • Kiểm tra nhật ký và tin nhắn kernel về các mục liên quan đến Bluetooth: không bỏ qua các tin nhắn dự kiến ​​về thời gian kết nối.
  • Tôi đang chạy kernel 3.5.0-13-genericnhư được cung cấp trong PPA xorg-edgers . Khởi động nhân chính xác 3.2 thường xuyên dẫn đến kết quả tương tự.

Một số thông tin khác có thể giúp:

  • Nó xảy ra khi không có kết nối Bluetooth nào khác đang hoạt động trên máy.
  • Các triệu chứng tương tự cũng xảy ra trên tai nghe âm thanh nổi Bluetooth (A2DP) của tôi, nhưng sau đó nó bị trễ và bỏ qua âm thanh. Trao đổi cấu hình Bluetooth như được mô tả ở đây sau đó giúp. Kết luận: không phải con chuột bị lỗi.
  • Tai nghe luôn hoạt động tốt khi sử dụng Thinkpad T61p đã chết của tôi với Bluetooth tích hợp.
  • Mô-đun bluetooth trong máy tính xách tay của tôi được kết nối qua USB và hiển thị dưới dạng

    0a5c:21e1 Broadcom Corp. 
    
  • Tắt bộ điều hợp Bluetooth tích hợp và sử dụng bộ chuyển đổi khác hoạt động tốt, không bị lag.

    0a5c:2046 Broadcom Corp. Bluetooth Device
    

Tôi là điện thoại di động và một số người xung quanh tôi đang sử dụng Bluetooth tại nơi làm việc (chủ yếu là A2DP). Nó cũng xảy ra ở nhà, nơi hàng xóm của tôi có thể cũng đang sử dụng Bluetooth. Nó chỉ có thể là nhiễu sóng radio, nhưng tôi nghĩ các kết nối Bluetooth chỉ nên chuyển sang kênh khác. Và hơn nữa, nó chỉ hoạt động chính xác ngay lập tức khi kết nối lại.

Vì vậy, tôi nghĩ rằng đó là một vấn đề trình điều khiển phần mềm và tôi muốn gỡ lỗi nó. Có cách nào để có được ghi nhật ký dài hơn trên các mô-đun Bluetooth (-hid) không?


Cho đến khi tôi thay thế bằng bo mạch chủ, tôi đã có một cổng USB xấu trên máy tính của mình. Bạn đã thử sử dụng một cái khác để cắm vào mô-đun bluetooth của mình chưa? Bạn cũng có thể thử đưa máy tính của mình đi xe đến đất nước, tắt xe hơi và điện thoại di động, và xem liệu nó vẫn còn là một vấn đề trong sự vắng mặt của nhiễu RF.
John S Gruber

Tôi đã tìm thấy một USB Bluetooth 2.0 cũ hơn và cái này hoạt động như một bùa mê. Có vẻ như một 0a5c:21e1 Broadcom Corp.vấn đề cụ thể trong Linux.
gertvdijk

Một cập nhật khác về vấn đề ban đầu. Kể từ khi tôi dùng Linux kernel 3.7.x, điều này dường như cũng biến mất trên bộ điều hợp bên trong - tất cả đều hoạt động rất tốt. Có lẽ đã sửa một lỗi ở đây bây giờ đã được sửa. Khi tôi có thời gian để tìm hiểu thêm một số chi tiết tôi sẽ báo cáo đây là một lỗi.
gertvdijk

Câu trả lời:


6

Bạn có thể thử sử dụng hcidumptiện ích từ gói bluez-hcidumpđể theo dõi các thiết bị bluetooth của mình và nhận thông tin chuyên sâu:

sudo apt-get install bluez-hcidump

Trong mô tả gói, lưu ý rằng:

Tiện ích hcidump cho phép giám sát hoạt động Bluetooth. Nó cung cấp sự phân tách lưu lượng Bluetooth và có thể hiển thị các gói từ các giao thức cấp cao hơn như RFCOMM, SDP và BNEP.

Bạn có thể sử dụng tiện ích để ghi nhật ký đầu ra từ thiết bị của mình vào màn hình hoặc tệp; hciXthiết bị bluetooth của bạn ở đâu (hci0 là mặc định và được sử dụng nếu bạn không chỉ định bất cứ điều gì với -i), bạn có thể chạy:

sudo hcidump -x -i hciX

Bạn có thể lưu kết xuất vào tệp bằng cách nối thêm lệnh -w ~/outputvà nếu bạn muốn biết cụ thể về dữ liệu âm thanh, bạn có thể sử dụng công -Atắc và từ đó trích xuất dữ liệu âm thanh SCO, mặc dù trong trường hợp này bạn phải luôn chỉ định tệp đầu ra:

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

Bạn có thể xem tệp kết xuất đã lưu bằng cách sử dụng

sudo hcidump -r ~/output

Có rất nhiều lựa chọn cụ thể hơn mà bạn có thể muốn điều tra; bạn có thể lọc theo loại gói nếu bạn muốn, theo mặc định tất cả các gói được kết xuất. Vui lòng xem man hcidumphoặc các trang web Ubuntu trực tuyến để biết thêm thông tin.

Tùy chọn duy nhất khác là cài đặt wiresharkvà xem liệu nó có thể phát hiện thiết bị của bạn không; nếu có thể, nó sẽ có thể phân tích lưu lượng usb và bluetooth, như đã lưu ý ở đây , nhưng hcidumpsẽ cho kết quả tốt hơn.


Cảm ơn! Điều đặc biệt ở đây là trong khi chạy hcidumpvấn đề không xuất hiện. Ngoài ra, thời điểm tôi bắt đầu chạy nó, vấn đề biến mất ngay lập tức. Đầu dò gỡ lỗi này dường như không thể thực hiện được.
gertvdijk

2

Tôi đã có một số may mắn khi sử dụng theo dõi USB để giải quyết các vấn đề âm thanh lạ. Đôi khi bạn có thể xác định một cái gì đó từ nội dung hoặc thời gian của các gói. Trong trường hợp của tôi, đó là một sự thay đổi không thường xuyên về độ dài gói tương ứng với tiếng ồn tôi đang nghe.

Đây là một trang từ Wireshark cung cấp một số thông tin.

Bạn có thể nhận được một dấu vết đơn giản bằng cách làm như sau:

  1. sudo modprobe usmon
  2. cd / sys / kernel / gỡ lỗi / usb / usbmon
  3. mèo sudo 0u | tee ~ / myusbtrace> / dev / null
  4. chạy thử
  5. giết quá trình từ bước 3

Dưới đây là thông tin từ dự án linux về điều này, bao gồm cả cách thu hẹp những gì bạn đang theo dõi.

Cột thứ hai dường như chứa thời gian, vì vậy bạn nên theo dõi cẩn thận về cách tăng thời gian. Nếu nó bắt đầu trơn tru và sau đó trở nên khó khăn, vấn đề có thể nằm ở phần bluetooth.

Nếu dấu vết hiển thị các gói không đều khi có sự cố có thể là USB hoặc bluetooth, nhưng hướng của các gói không đều có thể cho biết đó là kernel hay trình điều khiển chứ không phải là thứ gì đó ở phía bên kia của bus USB.


Rất hữu ích, cảm ơn. Sẽ cung cấp một tiền thưởng nhỏ nếu điều đó là có thể. :)
gertvdijk
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.