ホストシステムの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
私はUbuntuシェルがBluetoothコントローラを占有し続けていると思っていたので、おそらくそうでした。設定でこの機能をオフにすると、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