Bluetooth 연결 마우스 및 A2DP 헤드셋을 사용하여 지연을 디버깅하는 방법은 무엇입니까?


13

Kubuntu 12.04를 실행하는 HP Elitebook 8570w 랩톱에 사용할 Logitech M555b 마우스를 소유하고 있습니다. KDE Bluetooth 제어 모듈을 사용하여 연결 한 후 바로 작동합니다.

그러나 일정 시간이 지나면 (임의로 보이는 경우) 지연되기 시작합니다. 짧은 시간 동안 약 500ms 동안 움직임이 지연되고 있습니다. 보통 시간이 지나면 복구되지만 몇 분이 걸릴 수 있습니다. 이동, 클릭, 스크롤과 같은 모든 작업이 지연되고 있습니다. 또한이 시간 동안 움직임이 고르지 않을 수 있습니다.

항상 동일한 짧은 시간 동안 작동 하는 해결 방법 은 마우스를 다시 연결 해제하는 것입니다. 동일한 KDE Bluetooth 제어 모듈을 사용하여 수행 할 수 있습니다.

나는 무엇을 이미 시도 했습니까?

  • 부팅시 이것을 실행하십시오 :

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

    Bluetooth hci0장치 에서 절전 기능을 비활성화합니다 .

  • 마우스의 배터리를 확인하십시오 (1 주일이 지났고 다른 새 배터리 : 동일한 결과).

  • Bluetooth 관련 항목에 대한 로그 및 커널 메시지 확인 : 연결시 예상되는 메시지는 제외합니다.
  • xorg-edgers PPA에3.5.0-13-generic 제공된대로 커널 을 실행 중 입니다. 일반 3.2 정확한 커널을 부팅하면 동일한 동작이 발생합니다.

도움이 될만한 다른 정보들 :

  • 기기에서 다른 Bluetooth 연결이 활성화되지 않은 경우 발생합니다.
  • Bluetooth 스테레오 (A2DP) 헤드셋에서도 비슷한 증상이 발생하지만 오디오가 느려지거나 건너 뜁니다. 여기에 설명 된대로 Bluetooth 프로파일을 교환 하면 도움이됩니다. 결론 : 결함이있는 것은 마우스가 아닙니다.
  • 헤드셋은 항상 내장 Bluetooth가 장착 된 죽은 Thinkpad T61p를 사용하여 정상적으로 작동했습니다.
  • 랩탑의 블루투스 모듈이 USB를 통해 연결되고

    0a5c:21e1 Broadcom Corp. 
    
  • 내장 Bluetooth 어댑터를 끄고 다른 어댑터를 사용하면 지연없이 정상적으로 작동합니다.

    0a5c:2046 Broadcom Corp. Bluetooth Device
    

저는 모바일로 주변의 여러 사람들이 직장에서 Bluetooth를 사용하고 있습니다 (주로 A2DP). 또한 이웃 사람들이 Bluetooth를 사용하고있는 가정에서도 발생합니다. 그것은 할 수 있었다 단지 무선 간섭이 될,하지만 난 블루투스 연결이 또 다른 채널로 도약한다고 생각합니다. 또한 다시 연결할 때 바로 작동합니다.

따라서 소프트웨어 드라이버 문제라고 생각하고 디버깅하고 싶습니다. Bluetooth (-hid) 모듈에서 더 자세한 로깅을 얻을 수있는 방법이 있습니까?


마더 보드로 교체 할 때까지 컴퓨터에 USB 포트가 잘못되었습니다. 블루투스 모듈을 연결하기 위해 다른 것을 사용해 보셨습니까? 컴퓨터를 타고 자동차를 타러 가거나 자동차와 휴대 전화를 끄고 RF 간섭이없는 상태에서 여전히 문제가 있는지 확인하십시오.
John S Gruber

구형 Bluetooth 2.0 USB 동글을 찾았는데 이것이 매력처럼 작동합니다. 0a5c:21e1 Broadcom Corp.Linux 의 특정 문제 처럼 보입니다 .
gertvdijk

원래 문제에 대한 또 다른 업데이트입니다. Linux 커널 3.7.x를 사용하고 있기 때문에 내부 어댑터에서도 사라진 것처럼 보입니다. 모두 잘 작동합니다. 아마 여기에 버그가 발생했습니다. 더 자세한 내용을 알아낼 시간이되면 이것을 버그로보고하겠습니다.
gertvdijk

답변:


6

hcidump패키지 에서 유틸리티를 사용 bluez-hcidump하여 블루투스 장치를 모니터링하고 자세한 정보를 얻을 수 있습니다.

sudo apt-get install bluez-hcidump

패키지 설명에서 다음 사항에 유의하십시오.

hcidump 유틸리티를 사용하면 Bluetooth 활동을 모니터링 할 수 있습니다. Bluetooth 트래픽의 분해를 제공하며 RFCOMM, SDP 및 BNEP와 같은 상위 레벨 프로토콜의 패킷을 표시 할 수 있습니다.

유틸리티를 사용하여 장치의 출력을 화면 또는 파일에 기록 할 수 있습니다. hciX블루투스 장치는 어디에 있습니까? (hci0이 기본값이며으로 아무것도 지정하지 않으면 사용됩니다 -i) 다음을 실행할 수 있습니다.

sudo hcidump -x -i hciX

명령을 추가하여 덤프를 파일에 저장할 수 있으며 -w ~/output오디오 데이터에 대해 구체적으로 알고 싶다면 -A스위치를 사용하여 SCO 오디오 데이터를 추출 할 수 있습니다. 이 경우 항상 출력 파일을 지정해야합니다.

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

다음을 사용하여 저장된 덤프 파일을 볼 수 있습니다

sudo hcidump -r ~/output

조사하고자하는보다 구체적인 옵션이 많이 있습니다. 기본적으로 모든 패킷이 덤프되므로 원하는 경우 패킷 유형별로 필터링 할 수 있습니다. 자세한 내용 man hcidumpUbuntu 맨 페이지 를 참조하십시오.

다른 옵션은 wireshark장치를 감지하고 장치를 감지 할 수 있는지 확인하는 것입니다. 가능하다면 여기 에 언급 된대로 USB 및 블루투스 트래픽을 분석 할 수 있지만 hcidump더 나은 결과를 제공해야합니다.


감사! 이것에 대해 특이한 점 hcidump은 문제 를 실행하는 동안 나타나지 않습니다. 또한 실행하기 시작하면 문제가 즉시 사라집니다. 이 디버깅 프로브는 재현 할 수없는 것으로 보입니다.
gertvdijk

2

이상한 오디오 문제를 해결하기 위해 USB 추적을 사용하여 운이 좋았습니다. 때로는 콘텐츠 또는 패킷 타이밍에서 무언가를 결정할 수 있습니다. 내 경우에는 내가 듣고있는 소음에 해당하는 패킷 길이가 가끔 변경되었습니다.

다음 은 몇 가지 정보를 제공하는 Wireshark 의 페이지 입니다.

다음을 수행하여 간단히 추적 할 수 있습니다.

  1. sudo modprobe usmon
  2. CD / sys / kernel / debug / usb / usbmon
  3. 스도 고양이 0u | 티 ~ / myusbtrace> / dev / null
  4. 테스트를 실행
  5. 3 단계에서 프로세스를 종료하십시오.

다음 은 추적 대상을 좁히는 방법을 포함하여 Linux 프로젝트의 정보입니다.

두 번째 열에는 시간이 포함되어 있으므로 시간이 어떻게 증가하는지주의 깊게 지켜봐야합니다. 원활하게 시작되고 나중에 튀어 나오는 경우 Bluetooth 섹션에 문제가있을 수 있습니다.

USB 또는 Bluetooth 문제 일 수있는 경우 추적에 불규칙한 패킷이 표시되지만 불규칙한 패킷의 방향은 USB 버스의 다른쪽에있는 것이 아니라 커널인지 드라이버인지를 나타낼 수 있습니다.


매우 도움이되었습니다. 감사합니다. 가능하다면 작은 현상금을 제공했을 것입니다. :)
gertvdijk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.