Linux 노트북에서 작동이 중지된 Bluetooth를 재설정하는 방법은 무엇입니까? (대기 모드에서 재개한 후)

Linux 노트북에서 작동이 중지된 Bluetooth를 재설정하는 방법은 무엇입니까? (대기 모드에서 재개한 후)

문맥:

  • Linux 커널 5.10.x(및 5.18.x)
  • Thinkpad X1c(7세대) 노트북

질문:

가끔 시스템을 절전 모드(RAM 일시 중지)로 설정했다가 다시 시작하면블루투스 어댑터를 찾을 수 없습니다. 재부팅하면 다시 작동됩니다.

그것이 작동할 때,

이것은 아래와 같이 (내부) Bluetooth 어댑터입니다 lsusb.

# lsusb | grep 8087 
Bus 001 Device 006: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)

Bluetooth 장치를 스캔하고 연결하고 사용할 수 있습니다.

작동하지 않을 때:

  • 일반적으로 컴퓨터 전원이 일시 중단/복원된 후(시스템 접지가 아님)
  • lsusb이 장치를 다시 표시하지 않음,
  • Bluetooth 어댑터를 스캔하거나 연결하거나 볼 수도 없습니다.

그리고 kern.log말했다:

usb usb1-port10: Cannot enable. Maybe the USB cable is bad? 
usb usb1-port10: Cannot enable. Maybe the USB cable is bad? 
usb usb1-port10: attempt power cycle
usb 1-10: new low-speed USB device number 71 using xhci_hcd
usb 1-10: Device not responding to setup address.
usb 1-10: Device not responding to setup address.
usb 1-10: device not accepting address 71, error -71
usb 1-10: new low-speed USB device number 72 using xhci_hcd
usb 1-10: Device not responding to setup address.
usb 1-10: Device not responding to setup address.
usb 1-10: device not accepting address 72, error -71
usb usb1-port10: unable to enumerate USB device

포트 10은 Bluetooth 어댑터에 연결된 포트입니다.

내가 시도한 것(작동하지 않음):

  • systemctl restart bluetooth.service,
  • modprobe -r btusb && modprobe btusb,
  • bluetoothctl power on: 설명하다 No default controller available,
  • rfkill unblock bluetooth, 블루투스 장치가 표시되고 명령을 수락하더라도 마찬가지입니다.

내 질문

전체 컴퓨터를 다시 시작하지 않고 Bluetooth를 다시 작동시키려면 어떻게 해야 합니까?

답변1

약간 과잉일 수도 있지만 작동합니다.

  • 전체 USB "버스" 재설정블루투스 어댑터가 유선으로 연결되어 있습니다.

해결책(아래 경고 참조)

버스 1 "루트 허브"의 PCI ID를 가져옵니다(오류가 보고되는 이유를 모르겠습니다).

# lsusb -v -s1:1 | grep iSerial
can't get device qualifier: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
  iSerial                 1 0000:00:14.0

그리고 그것을 사용하여풀다(관련된 모든 USB 장치의 연결을 끊습니다) 다시제본, 루트( su, sudo -i, sudo bash -c "...")로:

echo -n '0000:00:14.0' >| /sys/bus/pci/drivers/xhci_hcd/unbind && \
sleep 3 && \
echo -n '0000:00:14.0' >| /sys/bus/pci/drivers/xhci_hcd/bind

~을 경계하다,내 모든(내부 및 외부) USB 장치가 이 허브에 연결됩니다: 외부 마우스, 외부 키보드, 내부 웹캠, 내부 지문 센서...모두(일시적으로) 연결이 끊어집니다진행 중입니다.

결과

그런 다음 kern.log그는 이렇게 말했습니다.

usb 1-10: new full-speed USB device number 6 using xhci_hcd
usb 1-10: New USB device found, idVendor=8087, idProduct=0aaa, bcdDevice= 0.02
usb 1-10: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[...]
Bluetooth: hci0: Bootloader revision 0.1 build 42 week 52 2015
[...]
Bluetooth: hci0: Firmware loaded in 1643271 usecs
Bluetooth: hci0: Waiting for device to boot
Bluetooth: hci0: Device booted in 13788 usecs

그리고 lsusb | grep 8087:

Bus 001 Device 006: ID 8087:0aaa Intel Corp.

그리고 블루투스를 다시 사용할 수 있습니다!

다른 방법은?

재부팅하는 것보다는 낫지만,"덜 침습적인" 또 다른 솔루션을 알고 계십니까?

관련 정보