Bluetooth 장치를 QEMU로 프록시하려고 할 때 btproxy가 Bluetooth 소켓에 바인딩할 수 없습니다.

Bluetooth 장치를 QEMU로 프록시하려고 할 때 btproxy가 Bluetooth 소켓에 바인딩할 수 없습니다.

호스트 시스템 Bluetooth 컨트롤러를 사용하여 QEMU에서 실행하는 방법에 대한 Zephyr의 가이드를 따르고 있습니다. Ubuntu 20.10을 사용하고 있는데 btproxy가 없어서 아래 링크된 가이드의 지침에 따라 BlueZ를 구축했습니다. 실험 모드도 활성화했습니다.bluetoothd

btproxy를 시작하면 제대로 작동하지만 QEMU에서 Zephyr를 시작하면 다음 오류가 발생합니다.

sudo tools/btproxy -u -i 0
Opening user channel for hci0
Failed to bind Bluetooth socket: Device or resource busy

나는 우분투 쉘이 블루투스 컨트롤러를 계속 점유하고 있다고 생각했고 아마도 그랬을 것입니다. 설정에서 이 기능을 끄면 rfkill이 작동하지 않게 됩니다. 나도 활성화했다

기본 POSIX 모드에서 Zephyr를 실행하려는 시도도 실패했으며 드라이버를 열 수 없습니다.

sax@decibel:~/zephyrproject/zephyr$ sudo ./build/zephyr/zephyr.exe --bt-dev=hci0
*** Booting Zephyr OS build zephyr-v2.5.0-530-gff5b040f7822  ***
Starting Beacon Demo
[00:00:00.000,000] <err> bt_hci_core: HCI driver open failed (-16)
Bluetooth init failed (err -16)

ASUS USB-BT400 및 ASUS USB-BT500에서 위의 작업을 시도했지만 비슷한 결과가 나타났습니다. 제가 잊어버린 것이 있나요? 내가 구축한 버전과 Ubuntu 20.10과 함께 제공된 버전 간의 BlueZ 버전 불일치 때문입니까?

https://docs.zephyrproject.org/latest/guides/bluetooth/bluetooth-tools.html#bluetooth-qemu-posix

관련 정보