こんにちは、
OpenWrt 25(カーネル6.12)でIW610Gモジュールを起動するのに苦労しています。列挙は順調に進み、ファームウェアのダウンロードも問題なさそうですが、クラッシュが発生します。
USBの列挙とファームウェアのダウンロードは毎回成功します。モジュールはメインファームウェアを起動し、「WLAN FW is active」と表示し、VDLLブロック(48000バイト)をロードします。その後、**一貫して約3.9~4.1秒後**にファームウェアがクラッシュし、独自のダンプ(「FW trigger fw dump」)がトリガーされます。このタイミングは数十回のブート(コールドブートとウォームEHCIリバインドサイクルの両方)で非常にデターミニスティックであり、ランダムな信号ノイズではなく固定された内部タイマー/ウォッチドッグであると推測します。
この正確な起動時からのフルファームウェアダンプ(「file_fwdump」、1,230,600バイト)とドライバー情報ダンプ(「file_drv_info」、259,772バイト)が添付されています。
最新のクリーンブート時の関連するdmesgの抜粋全文:
[ 34.484411] usb 1-1: 新しいUSBデバイスが見つかりました。idVendor=0471、idProduct=0214、bcdDevice=40.00
[ 34.500356] USB 1-1: 製品:NXPワイヤレスデバイス
[ 34.525526] VID/PID = 471/214、Boot2 バージョン = 4000
[ 34.573668 リクエストファームウェア:nxp/usbusb_iw610.bin.se
[ 37.189918] fw_dnld: 808824バイトダウンロード
[ 37.381917] USB 1-1:USB切断、デバイス番号2
[ 37.883662] USB 1-1:EHCIプラットフォームを使用した新しい高速USBデバイス番号3
[ 38.115044] USB 1-1:新しいUSBデバイスが発見、idVendor=0471、idProduct=0215、bcdDevice=32.01
[ 38.131013] USB 1-1:製品:BluetoothおよびワイヤレスLANコンポジットデバイス
[ 38.288804] USB probe: idVendor=471 idProduct=215 bInterfaceNumber=0
[ 38.295470] VID/PID = 471/215、Boot2 バージョン = 3201
[ 38.300509] woal_usb_probe: 無効なエンドポイント割り当て
[ 38.306315] USB probe: idVendor=471 idProduct=215 bInterfaceNumber=0
[ 38.312906] VID/PID = 471/215、Boot2 バージョン = 3201
[ 38.318003] woal_usb_probe: 無効なエンドポイント割り当て
[ 38.473628] USB probe: idVendor=471 idProduct=215 bInterfaceNumber=0
[ 38.480227] VID/PID = 471/215、Boot2 バージョン = 3201
[ 38.485411] モアルハンドル操作を取り付けろ、カードインターフェースタイプ:0x40d
[ 38.628304 ] WLAN FWは稼働中
[ 38.631408 on_time 38628138922
[ 38.655388] VDLL: ファームウェアをリクエスト:nxp/usbusb_iw610.bin.se
[ 38.671234] VDLLイメージ: 長さ=48000
[ 38.675868] fw_cap_info=0x487cbf03、dev_cap_mask=0xffffffff
[ 38.681912] uuid: 30548cc5aad797baaa0885c430d55486
[ 38.686932] max_p2p_conn = 8、max_sta_conn = 8
[ 42.576334] FW トリガー fw ダンプ <-- 「WLAN FW がアクティブです」から約 3.95 秒後
[ 42.579535] =====FWトリガーダンプ====
[ 42.589155] ディレクトリ /var/dump_42 の作成に成功しました
[ 42.601497] ファームウェアダンプディレクトリ名は /var/dump_42 です
[ 42.607105] DRVダンプデータは/var/dump_42/file_drv_infoにあります
[ 43.786094] IOCTL が失敗しました: d64defa8 id=0xd0000、sub_id=0xd0004 action=1、status_code=0x80000007 [CMD_CANCEL] (MLAN_OID_11D_DOMAIN_INFO_EXT)
[ 43.796200] IOCTL が失敗しました: 12d298a2 id=0x30000、sub_id=0x30003 action=2、status_code=0x80000007 [CMD_CANCEL] (MLAN_OID_ANT_CFG)
[43.807348] 11D: FW でドメイン情報を設定する際にエラーが発生しました
[ 43.844117] ファームウェア情報の取得に失敗しました!ステータス=-1、エラーコード=0x0
[43.954897] ファームウェア初期化失敗
[43.963379] カードが削除されました: -2
[ 44.027311] woal_usb_probe: woal_add_card が失敗しました
「WLAN FWがアクティブになった」状態から約4秒後に発生するという決定性、およびキャンセルされた2つのコマンド(`ANT_CFG`、`11D_DOMAIN_INFO_EXT`)を考慮すると、このクラッシュのシグネチャは`MM6X18540`シリーズの既知の問題と一致しますか?それとも、ファームウェアダンプで確認すべき特定の事項がありますか?必要であれば、`file_fwdump`/`file_drv_info`を直接共有することも可能です。どのような方法で送信すればよろしいでしょうか?
アドバイスをいただければ幸いです。
- **ホストSoC**:Qualcomm Atheros QCA9533(AR9531/QCA9533ファミリ)、カスタムボード、OpenWrt、Linuxカーネル6.12.71(ath79ターゲット)。
- **モジュール**:NXP IW610(Wi-Fi 6 + BLE 5.4 + 802.15.4コンボ)、このテスト用にUSB2.0(Wi-Fi + BT)経由で接続;SPI(802.15.4)リンクはボード上にありますが、現在は無効化されています(下記参照)。
- **ドライバ**: 'nxp-imx/mwifiex', コミット '09f41e1423e4806a127507d5fa284cd02c46772f' — 「ホットフィックスリリースMM6X18540.p41のドライバコミット(2025-12-23)、ブランチ `hotfix/lf-6.12.49_2.2.0_hotfix`。`MLAN_RELEASE_VERSION "540.p41"`をコンパイルしました。
- **ファームウェア**: `usbusb_iw610.bin.se`(Wi-Fi+BTのみ、SPIブロックなし)、`nxp-imx/imx-firmware`コミット`216a015fea`から取得 — "ホットフィックスリリースMM6X18540.p41 2025-12-23のファームウェアコミット"、内部タグ`IW610-18.99.5.p86`。これはNXP独自のリリースノートとp41ドライバーのペアです。
- モジュールパラメータ (`wifi_mod_para.conf`):'USBIW610 = { dual_nb=0 fw_name=nxp/usbusb_iw610.bin.se }' — これは明示的に2つ目の狭帯域(802.15.4/SPI)ファームウェアブロックを無効化するため、純粋なUSB Wi-Fi+BTを単独でテストしています。
デバッグモードでは、DOMIAN INFO が FW から応答されなかった最後のコマンドのようです。
[ 1221.243476]QUEUE_CMD: 802_11_SNMP_MIB [0x16] がキューに追加されました
[ 1221.251155] 11D:Country=US band=0 sub-band=1 dfs_region=1
[ 1221.256730] 11D: 最初のチャネル=1、チャネル数=11、最大送信電力=23
[ 1221.262395] mlan%d:
[ 1221.262402]QUEUE_CMD:802_11D_DOMAIN_INFO[0x5b]がキューに入っています
[ 1221.270406 wlan_set_regiontable: 2.4G 0x10
[ 1221.274723 wlan_set_regiontable: 5G 0x10
[ 1221.283423] mlan%d:
[ 1221.283454]DNLD_CMD (1221.280171):802_11_SNMP_MIB [0x16]、act 0x1、len 16、seqno 0x18、タイムアウト 5000
[ 1221.295486] mlan_write_data_async_complete: CMD
[ 1221.300210] mlan_recv: CMD (1221.296961)
[ 1221.313352] mlan%d:
[ 1221.313384]CMD_RESP (1221.310098):802_11_SNMP_MIB [0x8016]、結果 0、長さ 16、シーケンス番号 0x18
[ 1221.324316] mlan%d:
[ 1221.324327]DNLD_CMD (1221.321067):802_11D_DOMAIN_INFO [0x5b]、act 0x1、len 32、seqno 0x19、タイムアウト 5000
[ 1221.336726] mlan_write_data_async_complete: CMD
[ 1221.498408] mlan%d:
[ 1221.498441]QUEUE_CMD:802_11_RF_ANTENNA[0x20]がキューに入っています
[ 1221.540732 mlan_recv: イベント0x73 (1221.537479)
[ 1221.545540]FWトリガーfwダンプ
[ 1221.548946] =====FWトリガーダンプ====
Big Endian版では変換が見落とされているようです
Nxpケースはもう使えないので、ここでパッチを投稿しています
こんにちは、 @Nicolas07
現時点では、最新リリースでこの問題がまだ起きているかどうか試してみることをおすすめします。
FW:
imx-firmware/FwImage_IW610_USB (lf-6.18.20_2.0.0) · nxp-imx/imx-firmware · GitHub
ドライバ:
GitHub - nxp-imx/mwifiex: WiFi拡張機能 · GitHub
同時に、これが既知の問題かどうかを社内で確認し、また、当社のI.MX 8MMiniボードとIW610-EVK(USB-USBモードに設定)を使用して、当社のボードに問題があるかどうかを試してみます。
よろしくお願いいたします。
Christine。
こんにちは、 @Christine_Li さん。
私は、関連するファームウェアを含む、ほぼ最新のコミットであるb8c868b7cb9feef21cfca1f6797c7ecddd2a154fを使用しています。
ビッグエンディアン用のパッチを追加し、代数計算はスワップ値で行い、最後にスワップをする代わりにしています。また、継続的なニーズスワップもいくつかあり、rssiの署名付きキャラも悪い変換ですが、今度はFWとドライバが起動します。クラッシュはなくなり、BT連携は進んでいますが、BTドライバがすべてのインターフェースを捕捉しないように、WiFiとBTを分離するためにbtusbをパッチする必要があります。
現在、BT dmesg にいくつかのエラーが表示されています。
[ 730.281450] Bluetooth: hci0: オペコード 0x2037 が失敗しました: -89
[ 889.879426] Bluetooth: hci0: オペコード 0x2037 が失敗しました: -89
[ 1316.825236]Bluetooth: hci0: オペコード 0x2037 が失敗しました: -89
[ 1624.159890]Bluetooth: hci0: オペコード 0x2036 が失敗しました: -16
[ 1666.734681]Bluetooth: hci0: 予期しない cc 0x0c14 の長さ: 1 < 249
なぜなのかを解明しようとしている
よろしくお願いいたします。
ニコラス
私の過ちです、
AndroidデバイスでBLE広告を確認しましたが、プロフィールがないためフィルターがかかっています。nrF Connectではデバイスを見て接続できます。
ご協力ありがとうございます@Christine_Li次のステップはspiを経由したzigbee radioです。また別の話です
よろしくお願いいたします。
ニコラス
こんにちは、 @Nicolas07
出力されたエラーログから判断して、以下のことをお勧めします。
[ 730.281450] Bluetooth: hci0: オペコード 0x2037 が失敗しました: -89
[ 889.879426] Bluetooth: hci0: オペコード 0x2037 が失敗しました: -89
[ 1316.825236]Bluetooth: hci0: オペコード 0x2037 が失敗しました: -89
==>HCI_LE_Set_Extended_Advertising_Data(OGF: 0x08, OCF:0x0037) 。ビッグエンディアンに関連していると思われます。btusb RX パスのバイト順処理を確認してください。まず 0x2036 が成功することを確認してください。
[ 1624.159890] Bluetooth: hci0: オペコード0x2036が失敗しました: -16
==> まずHCI_LE_Set_Extended_Advertising(OGF:0x08、OCF:0x0036)を送信して無効にしてから、パラメータを変更します。
[ 1666.734681] Bluetooth: hci0: 予期しない cc 0x0c14 の長さ: 1 < 249
==>IW610はBLEのみをサポートし、BR EDRはサポートしていません。したがって、送信HCI_Read_Local_Name 0x0c14(OGF: 0x03 とOCF :0x0014) コマンドを送ると、FWは1バイトのエラーステータスしか返しません。BlueZセットアップフローでこのコマンドをスキップすれば試すことができます。
よろしくお願いいたします。
Christine。
こんにちは、 @Christine_Li さん。
Threadで答えがつかなくてすみません。BlueZでエンディアン性の問題を修正し、コマンドはスムーズに動作しますが、デバイスを検出できません(ただしデバイスは他のペリフェラルを検出できます)。
Usbmonは特に問題が起きていないようですが、問題を理解するために何を確認すればいいでしょうか?(必要であればusbmonのトレースデータもありますが、投稿されているかどうかを確認するために、メッセージはできるだけシンプルにしています... :s )
# LE Set Extended Advertising Parameters(0x2036)、25バイトコマンド
83a97380 S Co:1:003:0 S 20 00 0000 0000 001c 28 =
36201901 1300a000 00a00000 0700000 0000000 00007f01 00010000
^^^^ opcode 0x2036 ^^ handle=1
^^ plen=25(0x19) ^^^^ プロパティ=0x0013(接続可能|スキャン可能)
^^^^^^ min_interval=0x0000a0(100ms、24ビットLE)
^^^^^^ max_interval=0x0000a0(100ms)
^^ channel_map=0x07 (37,38,39)
^^ own_addr_type=0x00(公開)
# -> コマンド完了
8396db00 C ii:1:003:6 0:1 7 = 0e050136 20000c
^^ event=0x0e ^^ plen=5 ^^ ncmd=1 ^^^^ opcode=0x2036 ^^ status=0x00 (Success) ^^ TX power=0x0c (12dBm)
# LE 拡張広告データの設定 (0x2037)、7バイトコマンド
83a97380 S Co:1:003:0 s 20 00 0000 0000 000a 10 =
37200701 03010302 0106
^^^^ オペコード 0x2037 ^^ ハンドル=1 ^^ 操作=0x03 (完了) ^^ フラグメントプレフィックス=0x01
^^ data_len=0x03 ^^ AD: len=2,type=0x01(Flags),val=0x06
# -> コマンド完了: ステータス 0x00 (成功)
# LE 拡張広告有効化設定 (0x2039): ステータス 0x00 (成功)
よろしくお願いいたします。
ニコラス
こんにちは、 @Nicolas07
フィードバックありがとうございます。WLANとBluetoothの両方が正常に動作するようになったとのこと、大変嬉しく思います。
今後も問題があれば、このチケットを一旦閉じて、新しいチケットを作成してもよろしいでしょうか?
よろしくお願いいたします。
Christine。