前回、ath10k_pci.koドライバロード時にファームのダウンロードに失敗し迷宮入り。今回デバイスを変えてみることにした。

【関連記事】
【組込ボードで無線LAN】②(無線LANカードN-6300を組込ボードに接続するには?)
【組込ボードで無線LAN】⑧(iwのビルド:後編-1)【組込ボードで無線LAN】⑰(QCA9377-5を挿してみた)
【組込ボードで無線LAN】㉓(backportをビルドしてみる‐2)
  • 一旦立ち止まる
backportsでやったことを整理してみる(詳細は過去記事を参照)。
①backportsのソースコード(backports-5.2.8-1)をダウンロードした(成功
②LinuxPCでbackports-5.2.8-1のmake menuconfigを実行しカーネルコンフィグを変更した(成功
③LinuxPCでbackports-5.2.8-1のmakeを実行しドライバを生成した(成功
※但し、ath10kドライバがビルドされなかった。
④LinuxPCでbackports-5.2.8-1のmake defconfig-ath10kを実行しath10kがターゲットに含まれるようにしてmakeを実行しドライバを生成した(成功
※ath10kドライバがビルドされるようになった。但し、ath10kドライバがPCに挿さらないため動作確認はせず。
⑤Yoctoの環境変数を読み込み、クロスコンパイラでbackportss-5.2.8-1のmakeを実行しドライバを生成した(失敗
※backportsはYoctoの環境変数ではなくCROSS_COMPILE、ARCH、KLIB、KLIB_BUILDを指定することを推奨している。
⑥CROSS_COMPILE、ARCH、KLIB、KLIB_BUILDを設定して、クロスコンパイラでbackports-5.2.8-1のmakeを実行しドライバを生成した(成功
※当初、KLIB、KLIB‗BUILDの設定をミスっていたが正しい設定を見つけた。
※但し、ath10kドライバがビルドされなかった。
⑦CROSS_COMPILE、ARCH、KLIB、KLIB_BUILDを設定して、クロスコンパイラでbackports-5.2.8-1のmake defconfig-ath10kを行うことでath10kドライバをビルドできるようにした(成功
※試行錯誤したところ、backports-4.4.2-1以下のバージョンにすることでBD-SABRE-LITE向けカーネル3.14のath10kドライバがビルドできることを確認した。
※ath10kドライバがビルドされるようになり、実機にインストールした。
⑧実機にath10kドライバをインストールした(失敗
※ath10k_pci.koをインストールするときにQCA9377ファーム読み込みでエラー発生(ファイルがない)。
⑨実機にath10kファームをインストールしてath10kドライバをインストールした(失敗
※ath10k_pci.koをインストールするときにQCA9377ファーム読み込みでエラー発生(ファイルはあるがモジュールから応答が来ない)。
  • デバイスを変えてみる
以下、【右】がQCA9377(miniPCIe)だがドライバ・ファームインストールしたときにモジュールが応答を返してくれない。そのため【中】のQCA6174(M.2)を【左】のM.2からminiPCIeに変換するアダプタにつなぎ、BD-SABRE-LITEに接続した。
IMG_20191117_142943
IMG_20191117_143006
IMG_20191117_143038

BD-SABRE-LITEを起動し、lspciを見てみる。ハードウェアは認識した様子。
# lspci -k
00:00.0 PCI bridge: Synopsys, Inc. Device abcd (rev 01)
        Kernel driver in use: pcieport
01:00.0 Network controller: Qualcomm Atheros Device 003e (rev 32)
        Subsystem: Lenovo Device 0827
ドライバたちをインストールした。QCA6174のファームがないと言っている。インストールしてないから当たり前。
# insmod ./compat.ko
Loading modules backported from Linux version v4.4.2-0-g1cb8570
Backport generated by backports.git v4.4.2-1-0-gbec4037
# insmod ./cfg80211.ko
# insmod ./mac80211.ko
# insmod ./ath.ko
# insmod ./ath10k_core.ko
# insmod ./ath10k_pci.ko
ath10k_pci 0000:01:00.0: pci irq msi interrupts 1 irq_mode 0 reset_mode 0
# ath10k_pci 0000:01:00.0: could not fetch firmware file 'ath10k/QCA6174/hw3.0/firmware-5.bin': -2
ath10k_pci 0000:01:00.0: could not fetch firmware file 'ath10k/QCA6174/hw3.0/firmware-4.bin': -2
ath10k_pci 0000:01:00.0: could not fetch firmware file 'ath10k/QCA6174/hw3.0/firmware-3.bin': -2
ath10k_pci 0000:01:00.0: could not fetch firmware file 'ath10k/QCA6174/hw3.0/firmware-2.bin': -2
ath10k_pci 0000:01:00.0: could not fetch firmware (-2)
ath10k_pci 0000:01:00.0: could not fetch firmware files (-2)
ath10k_pci 0000:01:00.0: could not probe fw (-2)

全ドライバをアンインストールしておく。
# rmmod ath10k_pci
# rmmod ath10k_core
# rmmod ath
# rmmod mac80211
# rmmod cfg80211
# rmmod compat
QCA6174のファームをSD-SABRE-LITEの/lib/firmware/ath10k/QCA6174にコピー。QCA6174に何が入ってるか見てみた。予想通りhw3.0/firmware-5.binがない。
# cd /lib/firmware/ath10k/QCA6174/hw3.0
# ls -la
drwxr-x---    8 root     root          1024 Nov  7 13:31 .
drwxr-x---    4 root     root          1024 Nov  7 13:25 ..
drwxr-x---    2 root     root          1024 Nov  7 13:25 4.4
drwxr-x---    2 root     root          4096 Nov  7 13:25 4.4.1
drwxr-x---    2 root     root          1024 Nov  7 13:25 4.4.1.c1
drwxr-x---    2 root     root          1024 Nov  7 13:25 4.4.1.c2
drwxr-x---    2 root     root          1024 Nov  7 13:25 4.4.1.c3
-rwxr-x---    1 root     root        567608 Nov  7 13:25 board-2.bin
-rwxr-x---    1 root     root          8124 Nov  7 13:25 board.bin
-rwxr-x---    1 root     root        733784 Nov  7 13:25 firmware-4.bin_WLAN.RM.2.0-00180-QCARMSWPZ-1
-rwxr-x---    1 root     root         79801 Nov  7 13:25 notice.txt_WLAN.RM.2.0-00180-QCARMSWPZ-1
drwxr-x---    2 root     root          1024 Nov  7 13:25 sdio-4.4.1
ファームがどこにあるか見てみた。No5のファームは1つだけ(水色)。
/lib/firmware/ath10k/QCA6174/hw2.1./firmware-5.bin_SW_RM.1.1.1-00157-QCARMSWPZ-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4/firmware-6.bin_WLAN.RM.4.4-00022-QCARMSWPZ-2
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1/firmware-6.bin_WLAN.RM.4.4.1-00008-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1/firmware-6.bin_WLAN.RM.4.4.1-00014-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1/firmware-6.bin_WLAN.RM.4.4.1-00026-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1/firmware-6.bin_WLAN.RM.4.4.1-00051-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1/firmware-6.bin_WLAN.RM.4.4.1-00058-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1/firmware-6.bin_WLAN.RM.4.4.1-00065-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1/firmware-6.bin_WLAN.RM.4.4.1-00079-QCARMSWPZ-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1/firmware-6.bin_WLAN.RM.4.4.1-00102-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1/firmware-6.bin_WLAN.RM.4.4.1-00110-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1/firmware-6.bin_WLAN.RM.4.4.1-00119-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1/firmware-6.bin_WLAN.RM.4.4.1-00124-QCARMSWPZ-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1/firmware-6.bin_WLAN.RM.4.4.1-00128-QCARMSWPZ-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1/firmware-6.bin_WLAN.RM.4.4.1-00132-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1/firmware-6.bin_WLAN.RM.4.4.1-00140-QCARMSWPZ-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c1/firmware-6.bin_RM.4.4.1.c1-00031-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c1/firmware-6.bin_RM.4.4.1.c1-00035-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c1/firmware-6.bin_RM.4.4.1.c1-00037-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c1/firmware-6.bin_RM.4.4.1.c1-00038-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c1/firmware-6.bin_RM.4.4.1.c1-00041-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c1/firmware-6.bin_RM.4.4.1.c1-00042-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c1/firmware-6.bin_RM.4.4.1.c1-00045-QCARMSWP-3
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c1/firmware-6.bin_RM.4.4.1.c1-00049-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c2/firmware-6.bin_RM.4.4.1.c2-00041-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c2/firmware-6.bin_RM.4.4.1.c2-00057-QCARMSWP-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c3/firmware-6.bin_RM.4.4.1.c3-00013-QCARMSWPZ-1
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c3/firmware-6.bin_WLAN.RM.4.4.1.c3-00030
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c3/firmware-6.bin_WLAN.RM.4.4.1.c3-00031
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c3/firmware-6.bin_WLAN.RM.4.4.1.c3-00035
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c3/firmware-6.bin_WLAN.RM.4.4.1.c3-00037-
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c3/firmware-6.bin_WLAN.RM.4.4.1.c3-00038
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c3/firmware-6.bin_WLAN.RM.4.4.1.c3-00049-
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c3/firmware-6.bin_WLAN.RM.4.4.1.c3-00050
/lib/firmware/ath10k/QCA6174/hw3.0/4.4.1.c3/firmware-6.bin_WLAN.RM.4.4.1.c3-00058
/lib/firmware/ath10k/QCA6174/hw3.0/firmware-4.bin_WLAN.RM.2.0-00180-QCARMSWPZ-1
/lib/firmware/ath10k/QCA6174/hw3.0/sdio-4.4.1/firmware-sdio-6.bin_WLAN.RMH.4.4.1-00011-QCARMSWP-2
/lib/firmware/ath10k/QCA6174/hw3.0/sdio-4.4.1/firmware-sdio-6.bin_WLAN.RMH.4.4.1-00017-QCARMSWPZ-2
一致したファームを/lib/firmware/ath10k/QCA6174/hw3.0/firmware-5.binに配置して、再度ドライバをインストール。またもやタイムアウトエラー(firmware-6.binとかfirmware-4.binをfirmware-5.binに書き換えてやってみたが結果変わらず)。
# insmod ./compat.ko
Loading modules backported from Linux version v4.4.2-0-g1cb8570
Backport generated by backports.git v4.4.2-1-0-gbec4037
# insmod ./cfg80211.ko
# insmod ./mac80211.ko
# insmod ./ath.ko
# insmod ./ath10k_core.ko
# insmod ./ath10k_pci.ko
ath10k_pci 0000:01:00.0: pci irq msi interrupts 1 irq_mode 0 reset_mode 0
# # ath10k_pci 0000:01:00.0: failed to receive control response completion, polling..
ath10k_pci 0000:01:00.0: ctl_resp never came in (-110)
ath10k_pci 0000:01:00.0: failed to connect to HTC: -110
ath10k_pci 0000:01:00.0: could not init core (-110)
ath10k_pci 0000:01:00.0: could not probe fw (-110)
う~ん。HWを変えてもダメってことはLinuxカーネル(PCIeのMSI、MSI-X割込み?)、backportsドライバあたりをもう一度疑わなくてはならないのだろうか?

続く
IMG_20191112_191144






スポンサードリンク