こんにちは、
現在、Android 11でimx8mpに取り組んでいます。
私たちは Bluetooth モジュールrtl8822buを持っており、これを内部的にUSBにコネクテッドされているmini PCIeポートを介して imx8mp ベースの evk にコネクテッドしています。
Bluetooth モジュールを起動しようとしており、ディレクトリ パスandroid_build/hardware/nxp/libbt/conf/nxp/evk_8mpの下にある、 UARTに関連するbt_vendor.confファイルを確認できました。
bt_vendor.conf:
mchar_port = /dev/ttymxc0
pFileName_helper = /vendor/firmware/mrvl/helper_uart_3000000.bin
pFileName_image = /vendor/firmware/mrvl/uart8997_bt_v4.bin
ボーレート_dl_helper = 115200
ボーレート_dl_image = 3000000
iSecondボーレート = 0
ボーレート_fw_init = 115200
ボーレート_bt = 3000000
enable_download_fw=0
ここで、構成はUARTに関連していますが、 USBには関連していないことがわかります。
Bluetooth モジュールを起動するには、このbt_vendor.confファイルでどのような変更を行う必要がありますか?
入力してください。
ありがとうございます。
こんにちは@ducho7783 @Dhruvit
QCA9377 WiFi/BT USB モジュールでも同じ問題が発生しています。
カーネルバージョン 5.4.70 では正常に動作しますが、Android 11 で使用すると問題が発生します。
この問題をどのように解決したかを共有していただけますか?
感謝と敬意を込めて、
ディーパック・クマール・ベニヤ
こんにちは@ducho7783さん、
お元気でお過ごしでしょうか。
ご説明ありがとうございます。ただし、チップセットを動作させるには、AndroidにベンダーHALを統合する必要があります。
-> 下記の場所に HAL ライブラリを追加してください。
-> 「
mek_8q.mk を編集し 、製品パッケージを追加します。-> NXP リファレンスに基づいて例を共有しました。realtek HAL ライブラリと提供されているパッケージを選択してください。
目的の例:-
こんにちは@Dhruvit 、
ご返信ありがとうございます。
私が見ている限り、この問題は Android でも発生していますが、Linux プラットフォームで実行したのと同じことであり、問題なく動作しています。同じドライバと同じファームウェアをロードし、Dmesg から Bluetooth ログを確認しましたが、これも同じです。
こちらを参照してください(AndroidとLinuxの両方のログ) 。
////////////////////////////////////////// Android ログ////////////////////////////////////////////////////////////////////////////////
phyboard_pollux:/ # dmesg |grep Bluetooth
[ 0.145549] Bluetooth: コアバージョン 2.22
[ 0.145576] Bluetooth: HCIデバイスと接続マネージャが初期化されました
[ 0.145585] Bluetooth: HCIソケットレイヤーが初期化されました
[ 0.145592] Bluetooth: L2CAPソケット層が初期化されました
[ 0.145599] Bluetooth: SCOソケット層が初期化されました
[ 2.078613] Bluetooth: HCI UART ドライバー バージョン 2.3
[ 2.083076] Bluetooth: HCI UARTプロトコルH4登録済み
[ 2.088223] Bluetooth: HCI UARTプロトコル BCSP登録済み
[ 2.093577] Bluetooth: HCI UARTプロトコルLL登録済み
[ 2.098724] Bluetooth: HCI UARTプロトコルATH3K登録済み
[ 2.104156] Bluetooth: HCI UARTプロトコル 3線式(H5) 登録済み
[ 2.110670] Bluetooth: HCI UARTプロトコル Broadcom登録
[ 2.116360] Bluetooth: HCI UARTプロトコルQCA登録済み
[ 2.543073] Bluetooth: RFCOMM TTYレイヤーが初期化されました
[ 2.547968] Bluetooth: RFCOMMソケット層が初期化されました
[ 2.553113] Bluetooth: RFCOMM バージョン 1.11
[ 2.556871] Bluetooth: BNEP (イーサネットエミュレーション) バージョン 1.3
[ 2.562189] Bluetooth: BNEPフィルター: プロトコルマルチキャスト
[ 2.567441] Bluetooth: BNEPソケット層が初期化されました
[ 2.572420] Bluetooth: HIDP (ヒューマンインターフェースエミュレーション) バージョン 1.2
[ 2.578352] Bluetooth: HIDPソケット層が初期化されました
[ 5.287075] Bluetooth: hci0: コマンド 0xfc18 送信タイムアウト
[ 7.582211] Bluetooth: hci1: RTL: hci_ver=07 hci_rev=000b lmp_ver=07 lmp_subver=8822 を調べています
[ 7.596121] Bluetooth: hci1: RTL: rom_version ステータス=0 バージョン=2
[ 7.602203] Bluetooth: hci1: RTL: rtl_bt/rtl8822b_fw.bin をロードしています
[ 7.616147] Bluetooth: hci1: RTL: rtl_bt/rtl8822b_config.bin を読み込んでいます
[ 7.626129] Bluetooth: hci1: RTL: cfg_sz 14、合計サイズ 20270
[ 8.383877] Bluetooth: hci1: RTL: ファームウェアバージョン 0xab6b705c
[ 13.283103] Bluetooth: hci0: BCM: 更新ボーレートの書き込みに失敗しました (-110)
[ 13.289865] Bluetooth: hci0: ボーレートの設定に失敗しました
[ 15.299101] Bluetooth: hci0: コマンド 0x0c03 送信タイムアウト
[ 23.523087] Bluetooth: hci0: BCM: リセットに失敗しました (-110)
////////////////////////////////////////////////////// Linux ログ////////////////////////////////////////////////////////////////////////////
root@phyboard-pollux-imx8mp-2:~#
root@phyboard-pollux-imx8mp-2:~#
root@phyboard-pollux-imx8mp-2:~# dmesg | grep Bluetooth
[ 0.085671] Bluetooth: コアバージョン 2.22
[ 0.085701] Bluetooth: HCIデバイスと接続マネージャが初期化されました
[ 0.085709] Bluetooth: HCIソケットレイヤーが初期化されました
[ 0.085718] Bluetooth: L2CAPソケット層が初期化されました
[ 0.085731] Bluetooth: SCOソケット層が初期化されました
[ 1.660212] Bluetooth: HCI UART ドライバ バージョン 2.3
[ 1.664671] Bluetooth: HCI UARTプロトコルH4登録済み
[ 1.669816] Bluetooth: HCI UARTプロトコル BCSP登録済み
[ 1.675165] Bluetooth: HCI UARTプロトコルLL登録済み
[ 1.680308] Bluetooth: HCI UARTプロトコルATH3K登録済み
[ 1.685733] Bluetooth: HCI UARTプロトコル 3線式(H5) 登録済み
[ 1.692124] Bluetooth: HCI UARTプロトコル Broadcom登録
[ 1.697814] Bluetooth: HCI UARTプロトコルQCA登録済み
[ 1.703047] Bluetooth: HCI UARTプロトコル AG6XX 登録済み
[ 2.187207] Bluetooth: RFCOMM TTY層の初期化
[ 2.192100] Bluetooth: RFCOMMソケット層が初期化されました
[ 2.197263] Bluetooth: RFCOMM バージョン 1.11
[ 2.201039] Bluetooth: BNEP (イーサネットエミュレーション) バージョン 1.3
[ 2.206356] Bluetooth: BNEPフィルター: プロトコルマルチキャスト
[ 2.211590] Bluetooth: BNEPソケットレイヤーが初期化されました
[ 2.216561] Bluetooth: HIDP (ヒューマンインターフェースエミュレーション) バージョン 1.2
[ 2.222489] Bluetooth: HIDPソケット層が初期化されました
[ 4.393652] Bluetooth: hci1: RTL: hci_ver=07 hci_rev=000b lmp_ver=07 lmp_subver=8822 を調べています
[ 4.403608] Bluetooth: hci1: RTL: rom_version ステータス=0 バージョン=2
[ 4.409633] Bluetooth: hci1: RTL: rtl_bt/rtl8822b_fw.bin を読み込んでいます
[ 4.420974] Bluetooth: hci1: RTL: rtl_bt/rtl8822b_config.bin を読み込んでいます
[ 4.428100] Bluetooth: hci1: RTL: cfg_sz 14、合計サイズ 20270
[ 5.178236] Bluetooth: hci1: RTL: ファームウェアバージョン 0xab6b705c
[ 5.374577] Bluetooth: hci0: コマンド 0xfc18 送信タイムアウト
[ 13.534838] Bluetooth: hci0: BCM: 更新ボーレートの書き込みに失敗しました (-110)
[ 13.541560] Bluetooth: hci0: ボーレートの設定に失敗しました
[ 15.550852] Bluetooth: hci0: コマンド 0x0c03 送信タイムアウト
[ 23.774857] Bluetooth: hci0: BCM: リセットに失敗しました (-110)
これに基づいて、ここで何か意見をCANいただけますか。
ありがとうございます。
こんにちは@ducho7783さん、
お元気でお過ごしでしょうか。
同じ目的で NXP Wifi/Bt チップセットを使用していない場合は、そのチップをカスタム ボードに統合する必要があります。そのためには、Realtek ベンダーにお問い合わせください。
ログから、チップセットが結合されていないことがわかり、それが毎回サービスがシャットダウンされる理由です。
詳細については、チップセットベンダーにお問い合わせください。
ありがとう。よろしく。
ドゥルヴィット・ヴァサヴァダ
こんにちは@Dhruvit 、
ご対応ありがとうございます。
私たちが使用しているボードはphycore i.mx 8M plusで、Wi-Fi/BT モジュールは統合されていません。
私たちは、ベンダーRealtekの別の BT/Wifi モジュール ( rtl8822bu ) を使用しています。
そして、あなたが言及した方法、つまり許可を与えるためのsetenforce permissiveを試しました。
それでも、私たちは同じ問題に悩まされていました。
問題解決にご協力ください。
ありがとうございます。
こんにちは@ducho7783さん、
お元気でお過ごしでしょうか。
USB を使用しているSO、なぜ hci_uart.ko を追加するのでしょうか?
-> これは、NXP チップセットが WiFi と BT のサポートを提供するためです。WiFi は SDIO 経由でアクセスでき、PCIe と BT は UART 経由でアクセスでき、これが推奨されており、そのため私は推奨しました。
ログから、bt サービスが起動しようとしたが、シグナル 6 を受信して停止したことがわかります。
それは許可の問題かもしれません。
以下のコマンドを実行して、サービスを開始するためのすべての権限を付与し、何も制限CANないようにしてください。
setenforce 許可
こんにちは@Dhruvit 、
ご回答ありがとうございます。
ここではbtusbドライバを使用しているため、Boardconfig.mkファイルにbtintel.koとbtusb.koを追加しました。
ボードベンダーカーネルモジュール += \
$(KERNEL_OUT)/ドライバ/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko \
$(KERNEL_OUT)/ドライバ/net/wireless/broadcom/brcm80211/brcmutil/brcmutil.ko \
$(KERNEL_OUT)/ドライバ/bluetooth/btintel.ko\
$(KERNEL_OUT)/ドライバ/bluetooth/btusb.ko。
USB を使用している SO、なぜ hci_uart.ko を追加するのでしょうか?
また、パスhardware/nxp/libbt/conf/nxp/evk_8mp/bt_vendor.conf にある bt_vendor.conf ファイルを以下のように設定しました。
mchar_port = /dev/ttyUSB0
is_uart_port = 1
ボーレート_bt = 115200
ボーレート_fw_init = 3000000
bd_address = 00:0E:8E:BA:9C:C3
サービスコールbluetooth_manager 6を試しましたが、まだ同じ問題が発生しています。
phyboard_pollux:/ # [ 130.613196] バインダー: リリース 381:381 トランザクション 102338 が受信、まだアクティブ
[ 130.618284] init: 追跡されていない pid 2068 がステータス 0 で終了しました
[ 130.624843] バインダー: トランザクション 102338 の失敗した応答を 2019:2063 に送信
[ 130.625756] init: サービス 'vendor.bluetooth-1-0' (pid 381) がシグナル 6 を受信しました
[ 130.639905] init: サービス 'vendor.bluetooth-1-0' にシグナル 9 を送信しています(pid 381) プロセス グループ...
[ 130.649573] libprocessgroup: プロセス cgroup uid 1002 pid 381 を 0 ミリ秒で正常に終了しました
[ 130.663488] init: 追跡されていない pid 2070 がステータス 0 で終了しました
[ 130.671540] init: サービス 'vendor.bluetooth-1-0' を開始しています...
[ 132.170331] init: 追跡されていない pid 2077 がステータス 0 で終了しました
[ 132.183551] init: 追跡されていない pid 2080 がステータス 0 で終了しました
[ 132.189615] バインダー: 未配達死亡通知書、b400fbe68b305430
[ 132.975210] init: 追跡されていない pid 2138 がステータス 0 で終了しました
[ 132.982704] バインダー: リリース 2078:2082 トランザクション 117792 がまだアクティブ
[ 132.989946] init: サービス 'vendor.bluetooth-1-0' (pid 2078) がシグナル 6 を受信しました
[ 132.997356] バインダー: トランザクション 117792 の失敗した応答を 2090:2133 に送信
[ 133.803851] バインダー: 未配達死亡通知書、b400fbe68b304b40
[ 135.033733] バインダー: リリース 2203:2204 トランザクション 134781 がまだアクティブ
[ 135.040654] バインダー: トランザクション 134781 の失敗した応答を 2157:2199 に送信
[ 135.817674] init: 追跡されていない pid 2218 がステータス 0 で終了しました
[ 135.829812] init: 追跡されていない pid 2220 がステータス 0 で終了しました
[ 135.852323] バインダー: 未配達死亡通知書、b400fbe68b305590
[ 137.110735] init: サービス 'vendor.bluetooth-1-0' を開始しています...
[ 137.119695] init: 制御メッセージ: '[email protected]::IBluetoothHci/default' の ctl.interface_start を処理しましたpid: 242 (/system/bin/hwservicemanager) から
[ 137.135703] init: 制御メッセージ: '[email protected]::IBluetoothHci/default' の ctl.interface_start を処理しましたpid: 242 (/system/bin/hwservicemanager) から
[ 137.229808] init: 追跡されていない pid 2281 がステータス 0 で終了しました
[ 137.233920] バインダー: リリース 2275:2275 トランザクション 150957 がまだアクティブ
[ 137.235522] init: サービス 'vendor.bluetooth-1-0' (pid 2275) がシグナル 6 を受信しました
[ 137.249332] init: サービス 'vendor.bluetooth-1-0' にシグナル 9 を送信しています(pid 2275) プロセス グループ...
[ 137.250210] バインダー: トランザクション 150957 の失敗した応答を 2229:2271 に送信します
[ 137.258604] libprocessgroup: プロセス cgroup uid 1002 pid 2275 を 0 ミリ秒で正常に終了しました
[ 137.276012] init: 追跡されていない pid 2283 がステータス 0 で終了しました
[ 138.018302] バインダー: 未配達死亡通知、b400fbe68b30cff0
[ 139.744951] AidlLazyServiceRegistrar: サービスをシャットダウンしようとしています。処理中のサービスには使用中のクライアントはありません。
[ 139.756441] AidlLazyServiceRegistrar: すべてのクライアントを登録解除して終了します
[ 139.766204] printk: Binder:310_3: レート制限により221行の出力が抑制されました
[ 140.235868] バインダー: リリース 2346:2348 トランザクション 151341 が受信、まだアクティブ
[ 140.242779] バインダー: トランザクション 151341 の失敗した応答を 2300:2342 に送信します
[ 140.982090] init: 追跡されていない pid 2362 がステータス 0 で終了しました
[ 140.993324] init: 追跡されていない pid 2364 がステータス 0 で終了しました
[ 141.006019] バインダー: 未配達死亡通知書、b400fbe68b306560
[ 142.256253] init: サービス 'vendor.bluetooth-1-0' を開始しています...
[ 142.264741] init: 制御メッセージ: '[email protected]::IBluetoothHci/default' の ctl.interface_start を処理しましたpid: 242 (/system/bin/hwservicemanager) から
[ 142.280467] init: 制御メッセージ: '[email protected]::IBluetoothHci/default' の ctl.interface_start を処理しましたpid: 242 (/system/bin/hwservicemanager) から
[ 142.373321] init: 追跡されていない pid 2424 がステータス 0 で終了しました
[ 142.380679] バインダー: リリース 2418:2418 トランザクション 151673 がまだアクティブ
[ 142.380978] init: サービス 'vendor.bluetooth-1-0' (pid 2418) がシグナル 6 を受信しました
[ 142.387502] バインダー: トランザクション 151673 の失敗した応答を 2372:2414 に送信
[ 142.401996] init: サービス 'vendor.bluetooth-1-0' にシグナル 9 を送信しています(pid 2418) プロセス グループ...
[ 142.411619] libprocessgroup: プロセス cgroup uid 1002 pid 2418 を 0 ミリ秒で正常に終了しました
[ 142.420565] init: 更新可能なプロセス 'vendor.bluetooth-1-0'4分間に4回退出
[ 143.146742] バインダー: 未配達死亡通知書、b400fbe68b30a080
[ 147.267761] init: サービス 'vendor.bluetooth-1-0' を開始しています...
問題解決にご協力ください。
ありがとうございます。
こんにちは@ducho7783さん、
お元気でお過ごしでしょうか。
->ファイルを確認してください: android_build/device/fsl/
BOARD_VENDOR_KERNEL_MODULES += $(KERNEL_OUT)/ドライバ/net/
BOARD_HAVE_BLUETOOTH := true
->初期起動時にBluetoothドライバをロードするように初期init設定ファイルを設定できる
insmod ベンダー/lib/modules/hci_uart.ko
-> bt_vendor.conf ファイルに以下の例のような構成があることを確認してください。
mchar_port = /dev/ttyUSB0
is_uart_port = 1
ボーレート_bt = 115200
ボーレート_fw_init = 3000000
bd_address = 12:34:56:78:9a:bc
->以下のコマンドでBluetoothを有効にすることができます
adbシェルサービスコールbluetooth_manager 6
ありがとう、よろしく。
ドゥルヴィット・ヴァサヴァダ
こんにちは@Dhruvit 、
ご対応ありがとうございます。
ご提供いただいた設定変更をすべて試しましたが、それでも Bluetooth を有効にできません。
この問題を解決できる他の方法はありますか?SOご提供ください。
ありがとうございます