ネットワーク

【無線LAN】組み込みボードで無線LANを動かしてみた(QCA9377失敗編)②ath10kをBD-SABRE-LITEに組み込む

【※ 当記事は2020年7月2日時点の情報です】

ペイヴメント(@pavement1234)です。

エンジニア
エンジニア

【無線LAN】組み込みボードで無線LANを動かしてみた(Intel N6300編)を実験したところ、Intel N6300はAPモードになれないことが判明。

そこでクアルコムアセロス社のQCA9377というAPモード対応デバイスを挿してみることにした。

先に結果を書きますが、いろいろやった結果、手詰まりになりました(QCA9377の認識に失敗します。STAすら動いてません)。

最後にも書きましたが、どこかで仕切り直したいです。そのときに今回の失敗事例が役にたつと思うので、記録しておきました。

中途半端で申し訳ありません。

こんな悩みを解決します。

今回やることは1つ。

  1. ath10kをBD-SABRE-LITEに組み込む

バージョン情報

Linux Kernel 3.14

ath10kをBD-SABRE-LITEに組み込む

例によってカーネルconfigを呼び出します。(詳細は【組込Linuxボード】Boundary Devices社のSabre Liteボード(i.MX6)を動かしてみたを参照)

$ cd ~/fido
$ MACHINE=nitrogen6x . setup-environment core-image-sato
$ MACHINE=nitrogen6x bitbake -f -c menuconfig virtual/kernel
Loading cache: 100% |###############################################################| ETA: 00:00:00
Loaded 2088 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION = “1.26.0”
BUILD_SYS = “x86_64-linux”
NATIVELSBSTRING = “Ubuntu-14.04”
TARGET_SYS = “arm-poky-linux-gnueabi”
MACHINE = “nitrogen6x”
DISTRO = “poky”
DISTRO_VERSION = “1.8.2”
TUNE_FEATURES = “arm armv7a vfp thumb neon callconvention-hard cortexa9”
TARGET_FPU = “vfp-neon”
meta
meta-yocto = “(nobranch):87631919819b6f85f23f57689cd1065c64d7fb03”
meta-oe
meta-multimedia = “(nobranch):902964a4da26e46018d2a8d17dcdda1ac4627a39”
meta-fsl-arm = “(nobranch):c9f259a4bf8472dfa3ff75f1c3fcbe5e0ded7aaf”
meta-fsl-arm-extra = “(nobranch):b292f6204912ace18e30b7683748a311c5dfa780”
meta-fsl-demos = “(nobranch):17f9da65efb5c65c1d44b5cc18584034b29a742b”

NOTE: Preparing RunQueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
Currently 1 running tasks (258 of 258):
0: linux-boundary-3.14.28-r0 do_menuconfig (pid 22956)

フルビルド…OK。

$ bitbake core-image-sato
Loading cache: 100% |###############################################################| ETA: 00:00:00
Loaded 2088 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies
NOTE: multiple providers are available for jpeg (jpeg, libjpeg-turbo)
NOTE: consider defining a PREFERRED_PROVIDER entry to match jpeg
NOTE: multiple providers are available for jpeg-native (jpeg-native, libjpeg-turbo-native)
NOTE: consider defining a PREFERRED_PROVIDER entry to match jpeg-native

Build Configuration:
BB_VERSION = “1.26.0”
BUILD_SYS = “x86_64-linux”
NATIVELSBSTRING = “Ubuntu-14.04”
TARGET_SYS = “arm-poky-linux-gnueabi”
MACHINE = “nitrogen6x”
DISTRO = “poky”
DISTRO_VERSION = “1.8.2”
TUNE_FEATURES = “arm armv7a vfp thumb neon callconvention-hard cortexa9”
TARGET_FPU = “vfp-neon”
meta
meta-yocto = “(nobranch):87631919819b6f85f23f57689cd1065c64d7fb03”
meta-oe
meta-multimedia = “(nobranch):902964a4da26e46018d2a8d17dcdda1ac4627a39”
meta-fsl-arm = “(nobranch):c9f259a4bf8472dfa3ff75f1c3fcbe5e0ded7aaf”
meta-fsl-arm-extra = “(nobranch):b292f6204912ace18e30b7683748a311c5dfa780”
meta-fsl-demos = “(nobranch):17f9da65efb5c65c1d44b5cc18584034b29a742b”

NOTE: Preparing RunQueue
WARNING: /home/pavement1234/fido/sources/meta-fsl-arm-extra/recipes-kernel/linux/linux-boundary_3.14.28.bb.do_compile is tainted from a forced run
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
WARNING: log_check: There is a warn message in the logfile
WARNING: log_check: Matched keyword: [WARNING:] WARNING: log_check: WARNING: The license listed Firmware-ti-connectivity was not in the licenses collected for linux-firmware

NOTE: Tasks Summary: Attempted 5308 tasks of which 5192 didn’t need to be rerun and all succeeded.

Summary: There were 4 WARNING messages shown.

BD-SABRE-LITEのホームディレクトリにあるファイルたち(hostapdとかiwとか色々)をUSBメモリ(/dev/sda)にバックアップして、シャットダウン。

# mount /dev/sda /mnt
# cp ~/* /mnt
# shutdown -h now

BD-SABRE-LITEからmicroSDカードを取り出し、カードリーダ経由でUbuntu14 PCに挿し、microSDカードを初期化します。

$ sudo dd if=/dev/zero of=/dev/sdc bs=1M
dd: `/dev/sdc’ の書き込みエラー: デバイスに空き領域がありません

15071+0 レコード入力
15070+0 レコード出力
15802040320 バイト (16 GB) コピーされました、 816.964 秒、 19.3 MB/秒

BD-SABRE-LITEのSDカードイメージをmicroSDに書き込みます。

$ cd ~/fido/core-image-sato/tmp/deploy/images/nitrogen6x/
$ sudo umount /dev/sdc
$ sudo dd if=core-image-sato-nitrogen6x.sdcard of=/dev/sdc bs=1M
288+0 レコード入力
288+0 レコード出力
301989888 バイト (302 MB) コピーされました、 18.4428 秒、 16.4 MB/秒
$ sync

microSDカードをBD-SABRE-LITEに挿し、起動。lspciしてみます。デバイスの認識はしてるようです。

# lspci
00:00.0 PCI bridge: Synopsys, Inc. Device abcd (rev 01)
01:00.0 Network controller: Qualcomm Atheros Device 0042 (rev 31)

ath10kドライバはありますね。

# ls /lib/modules/3.14.28-1.0.0_ga+yocto+g7ff62b2/kernel/drivers/net/wireless/ath/ath10k
ath10k_core.ko ath10k_pci.ko

lsmodしました。cfg80211がありません…。

# lsmod
Module Size Used by
ov5640_camera_mipi 53356 0
mxc_v4l2_capture 24972 1 ov5640_camera_mipi
ipu_bg_overlay_sdc 4175 1 mxc_v4l2_capture
ipu_still 1719 1 mxc_v4l2_capture
ipu_prp_enc 4791 1 mxc_v4l2_capture
ipu_csi_enc 2969 1 mxc_v4l2_capture
ipu_fg_overlay_sdc 5059 1 mxc_v4l2_capture
adv7180_tvin 8323 0
v4l2_int_device 1796 3 ov5640_camera_mipi,adv7180_tvin,mxc_v4l2_capture
snd_soc_fsl_asrc 23760 0

cfg80211は…ありました。

# ls /lib/modules/3.14.28-1.0.0_ga+yocto+g7ff62b2/kernel/net/wireless
cfg80211.ko

何はともあれ、cfg802.11.koをinsmod。なんかCRDAのメッセージが出ますが一応OKっぽいです。

# cd /lib/modules/3.14.28-1.0.0_ga+yocto+g7ff62b2/kernel/net/wireless
# insmod cfg80211.ko
cfg80211: Calling CRDA to update world regulatory domain

lsmodしてみます。cfg80211が読み込まれてます。

# lsmod
Module Size Used by
cfg80211 190001 0
ov5640_camera_mipi 53356 0
mxc_v4l2_capture 24972 1 ov5640_camera_mipi
ipu_bg_overlay_sdc 4175 1 mxc_v4l2_capture
ipu_still 1719 1 mxc_v4l2_capture
ipu_prp_enc 4791 1 mxc_v4l2_capture
ipu_csi_enc 2969 1 mxc_v4l2_capture
ipu_fg_overlay_sdc 5059 1 mxc_v4l2_capture
adv7180_tvin 8323 0
v4l2_int_device 1796 3 ov5640_camera_mipi,adv7180_tvin,mxc_v4l2_capture
snd_soc_fsl_asrc 23760 0

ath10kに行き、ath10k_core.koをinsmodしましたがエラー発生。ieee80211_radar_detected などのシンボルが見つからないと言われてます。

# cd /lib/modules/3.14.28-1.0.0_ga+yocto+g7ff62b2/kernel/drivers/net/wireless/ath/ath10k
# insmod ath10k_core.ko
ath10k_core: Unknown symbol ieee80211_free_hw (err 0)
ath10k_core: Unknown symbol ieee80211_alloc_hw (err 0)
ath10k_core: Unknown symbol ieee80211_register_hw (err 0)
ath10k_core: Unknown symbol ieee80211_restart_hw (err 0)
ath10k_core: Unknown symbol ieee80211_find_sta (err 0)
ath10k_core: Unknown symbol ieee80211_tx_status_irqsafe (err 0)
ath10k_core: Unknown symbol wiphy_to_ieee80211_hw (err 0)
ath10k_core: Unknown symbol ath_reg_notifier_apply (err 0)
ath10k_core: Unknown symbol ieee80211_remain_on_channel_expired (err 0)
ath10k_core: Unknown symbol ieee80211_rx (err 0)
ath10k_core: Unknown symbol ath_is_world_regd (err 0)
ath10k_core: Unknown symbol ieee80211_wake_queues (err 0)
ath10k_core: Unknown symbol ieee80211_free_txskb (err 0)
ath10k_core: Unknown symbol ieee80211_tx_status (err 0)
ath10k_core: Unknown symbol ieee80211_ready_on_channel (err 0)
ath10k_core: Unknown symbol ieee80211_stop_queues (err 0)
ath10k_core: Unknown symbol ieee80211_scan_completed (err 0)
ath10k_core: Unknown symbol ieee80211_iterate_active_interfaces_atomic (err 0)
ath10k_core: Unknown symbol ieee80211_unregister_hw (err 0)
ath10k_core: Unknown symbol ath_regd_init (err 0)
ath10k_core: Unknown symbol ieee80211_beacon_get_tim (err 0)
ath10k_core: Unknown symbol ieee80211_radar_detected (err 0)
ath10k_core: Unknown symbol ieee80211_queue_work (err 0)
insmod: ERROR: could not insert module ath10k_core.ko: Unknown symbol in module

なんとなくath10k_pci.koのinsmodも試してみましたが失敗(ath10k_pci.koはath10k_core.koに依存している様子)。

# insmod ath10k_pci.ko
ath10k_pci: Unknown symbol ath10k_warn (err 0)
ath10k_pci: Unknown symbol ath10k_err (err 0)
ath10k_pci: Unknown symbol ath10k_core_create (err 0)
ath10k_pci: Unknown symbol ath10k_core_destroy (err 0)
ath10k_pci: Unknown symbol ath10k_core_register (err 0)
ath10k_pci: Unknown symbol ath10k_info (err 0)
ath10k_pci: Unknown symbol ath10k_core_unregister (err 0)
insmod: ERROR: could not insert module ath10k_pci.ko: Unknown symbol in module

ath10k_core.koのエラーを見ると、ieee80211_radar_detectedなどのシンボルが解決できない様子だったので、ieee80211_radar_detectedをgoogle検索するとLinux source code: ieee80211_radar_detected identifier (v4.1) – Bootlinが見つかりました。ieee80211_radar_detectedはmac80211.hに定義されているようです。

mac80211.koをinsmodしたところ、エラーは出ませんでした。

# cd /lib/modules/3.14.28-1.0.0_ga+yocto+g7ff62b2/kernel/net/mac80211
# insmod mac80211.ko

lsmodしてみるとmac80211がロードされています(mac80211はcfg80211に依存している様子)。

# lsmod
Module Size Used by
mac80211 259271 0
cfg80211 190001 1 mac80211
ov5640_camera_mipi 53356 0
mxc_v4l2_capture 24972 1 ov5640_camera_mipi
ipu_bg_overlay_sdc 4175 1 mxc_v4l2_capture
ipu_still 1719 1 mxc_v4l2_capture
ipu_prp_enc 4791 1 mxc_v4l2_capture
ipu_csi_enc 2969 1 mxc_v4l2_capture
ipu_fg_overlay_sdc 5059 1 mxc_v4l2_capture
adv7180_tvin 8323 0
v4l2_int_device 1796 3 ov5640_camera_mipi,adv7180_tvin,mxc_v4l2_capture
snd_soc_fsl_asrc 23760 0

再びath10k_core.koをinsmodしてみます。ath_reg_notifier_apply が見つからないと言ってるのでgoogle検索するとLinux source code: ath_reg_notifier_apply identifier (v4.7) – Bootlinが見つかりました。ath_reg_notifier_apply はath/regd.hに定義されてる様子。

# cd /lib/modules/3.14.28-1.0.0_ga+yocto+g7ff62b2/kernel/drivers/net/wireless/ath/ath10k
# insmod ath10k_core.ko
ath10k_core: Unknown symbol ath_reg_notifier_apply (err 0)
ath10k_core: Unknown symbol ath_is_world_regd (err 0)
ath10k_core: Unknown symbol ath_regd_init (err 0)
insmod: ERROR: could not insert module ath10k_core.ko: Unknown symbol in module

ath.koをinsmodしてみました。エラーは出ませんでした。

# cd /lib/modules/3.14.28-1.0.0_ga+yocto+g7ff62b2/kernel/drivers/net/wireless/ath
# insmod ath.ko

lsmodしてみました。athが読み込まれてます(athもcfg80211に依存してる様子)。

# lsmod
Module Size Used by
ath 17462 0
mac80211 259271 0
cfg80211 190001 2 ath,mac80211
ov5640_camera_mipi 53356 0
mxc_v4l2_capture 24972 1 ov5640_camera_mipi
ipu_bg_overlay_sdc 4175 1 mxc_v4l2_capture
ipu_still 1719 1 mxc_v4l2_capture
ipu_prp_enc 4791 1 mxc_v4l2_capture
ipu_csi_enc 2969 1 mxc_v4l2_capture
ipu_fg_overlay_sdc 5059 1 mxc_v4l2_capture
adv7180_tvin 8323 0
v4l2_int_device 1796 3 ov5640_camera_mipi,adv7180_tvin,mxc_v4l2_capture
snd_soc_fsl_asrc 23760 0

再びath10k_core.koをinsmodしたところエラーは出ません。
続いてinsmod ath10k_pci.koもinsmodすると、これもエラーはでません。

# cd /lib/modules/3.14.28-1.0.0_ga+yocto+g7ff62b2/kernel/drivers/net/wireless/ath/ath10k
# insmod ath10k_core.ko
# insmod ath10k_pci.ko

lsmodしました。これでath10kに関係するドライバは全て読み込めた感じ。

# lsmod
Module Size Used by
ath10k_pci 25979 0
ath10k_core 76884 1 ath10k_pci
ath 17462 1 ath10k_core
mac80211 259271 1 ath10k_core
cfg80211 190001 3 ath,mac80211,ath10k_core
ov5640_camera_mipi 53356 0
mxc_v4l2_capture 24972 1 ov5640_camera_mipi
ipu_bg_overlay_sdc 4175 1 mxc_v4l2_capture
ipu_still 1719 1 mxc_v4l2_capture
ipu_prp_enc 4791 1 mxc_v4l2_capture
ipu_csi_enc 2969 1 mxc_v4l2_capture
ipu_fg_overlay_sdc 5059 1 mxc_v4l2_capture
adv7180_tvin 8323 0
v4l2_int_device 1796 3 ov5640_camera_mipi,adv7180_tvin,mxc_v4l2_capture
snd_soc_fsl_asrc 23760 0

こんな感じの依存関係になってました。上から順にinsmodすれば良いです。

cfg80211
mac80211
ath
ath10k_core
ath10k_pci

iwたちをUSBメモリからホームディレクトリにコピー。iwは実行できました。

# mount /dev/sda /mnt
# cd /mnt
# cp iwlwifi-6000-4.ucode hostapd_cli hostapd.conf2 iw hostapd.conf hostapd ~
# cd
# ./iw
Usage: ./iw [options] command
Options:
–debug enable netlink debugging
–version show version (5.3-3-g3708f61)
Commands:
dev <devname> ap stop
(以下略)

lspci -kを実行。PCIは認識してます。

# 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 0042 (rev 31)
Subsystem: AzureWave Device 2a51

ip linkを打ってみます。wlan0はありません。

# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: can0: <NOARP40000> mtu 16 qdisc noop qlen 10
link/[280] 3: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:19:b8:06:ca:7f brd ff:ff:ff:ff:ff:ff
4: sit0@NONE: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0

firmwareがロードされたか見てみます。athと名の付くファームは無い感じです。

# dmesg | grep firmware
imx-sdma 20ec000.sdma: loaded firmware 3.1
usbserial: USB Serial support registered for Keyspan – (without firmware)
egalax_ts 2-0004: Failed to read firmware version
ili210x_i2c 2-0041: Failed to get firmware version, err: -5

/lib/firmwareをlsしてみます。athはありません。カーネルコンフィグで選択しないとダメでしょうか?

# ls /lib/firmware
TIInit_7.2.31.bts wl127x-fw-4-mr.bin wl128x-fw-4-plt.bin
ti-connectivity wl127x-fw-4-plt.bin wl128x-fw-4-sr.bin
vpu wl127x-fw-4-sr.bin wl128x-fw-5-mr.bin
wl1251-fw.bin wl127x-fw-5-mr.bin wl128x-fw-5-plt.bin
wl1251-nvs.bin wl127x-fw-5-plt.bin wl128x-fw-5-sr.bin
wl1271-fw-2.bin wl127x-fw-5-sr.bin wl128x-fw-ap.bin
wl1271-fw-ap.bin wl127x-fw-plt-3.bin wl128x-fw-plt-3.bin
wl1271-fw.bin wl127x-nvs.bin wl128x-fw.bin
wl1271-nvs.bin wl128x-fw-3.bin wl128x-nvs.bin
wl127x-fw-3.bin wl128x-fw-4-mr.bin wl12xx-nvs.bin

再びカーネルconfigを呼び出します。

$ cd ~/fido
$ MACHINE=nitrogen6x . setup-environment core-image-sato
$ MACHINE=nitrogen6x bitbake -f -c menuconfig virtual/kernel
Loading cache: 100% |###############################################################| ETA: 00:00:00
Loaded 2088 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION = “1.26.0”
BUILD_SYS = “x86_64-linux”
NATIVELSBSTRING = “Ubuntu-14.04”
TARGET_SYS = “arm-poky-linux-gnueabi”
MACHINE = “nitrogen6x”
DISTRO = “poky”
DISTRO_VERSION = “1.8.2”
TUNE_FEATURES = “arm armv7a vfp thumb neon callconvention-hard cortexa9”
TARGET_FPU = “vfp-neon”
meta
meta-yocto = “(nobranch):87631919819b6f85f23f57689cd1065c64d7fb03”
meta-oe
meta-multimedia = “(nobranch):902964a4da26e46018d2a8d17dcdda1ac4627a39”
meta-fsl-arm = “(nobranch):c9f259a4bf8472dfa3ff75f1c3fcbe5e0ded7aaf”
meta-fsl-arm-extra = “(nobranch):b292f6204912ace18e30b7683748a311c5dfa780”
meta-fsl-demos = “(nobranch):17f9da65efb5c65c1d44b5cc18584034b29a742b”

NOTE: Preparing RunQueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
Currently 1 running tasks (258 of 258):
0: linux-boundary-3.14.28-r0 do_menuconfig (pid 22956)

カーネルコンフィグにath10kのファームウェアに関する設定は見つかりませんでした。

Linux Wirelessのath10k firmwareを読みました。ath10k-firmware(github)にath10kのファームがある様子。QCA9377の記載があります。

このページの下の方にあるhttps://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/に進んでみます。

gitのサイトにたどり着きました。

このページの下の方に書いてあるURLをクローン。半分ぐらいダウンロードしたところでサイズを見ると165Mbyte。どこまで増えるんだこれ。。

もしかするとLinuxのファームウェアを全て含んだアーカイブってことですかね。一旦キャンセル。

$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
Cloning into ‘linux-firmware’…
remote: Counting objects: 8694, done.
remote: Compressing objects: 100% (3061/3061), done.
Receiving objects: 53% (4627/8694), 165.01 MiB | 429.00 KiB/s

改めてath10k-firmware(github)の右上にある緑ボタンを押しZIPをダウンロード。約81Mbyte。これならいけそうです。

ath10k-firmware-master.zipを解凍。ath10k-firmware-masterの中はこんな感じです。QCA9377もあります。

さて、このファイルをどう置けばいいのでしょう。Ubuntu14のファームを見たところ、この階層に置けば良さそうです。

$ ls /lib/firmware/ath10k/QCA988X/hw2.0
board.bin firmware.bin otp.bin

QCA9377のファームが格納されたディレクトリを /lib/firmware/ath10kにコピーしreboot。

# mkdir /lib/firmware/ath10k
# mount /dev/sda /mnt
# cp -r /mnt/ath10k-firmware-master/QCA9377 /lib/firmware/ath10k
# reboot

ドライバたちをinsmod。

insmod /lib/modules/3.14.28-1.0.0_ga+yocto+g7ff62b2/kernel/net/wireless/cfg80211.ko
insmod /lib/modules/3.14.28-1.0.0_ga+yocto+g7ff62b2/kernel/net/mac80211/mac80211.ko
insmod /lib/modules/3.14.28-1.0.0_ga+yocto+g7ff62b2/kernel/drivers/net/wireless/ath/ath.ko
insmod /lib/modules/3.14.28-1.0.0_ga+yocto+g7ff62b2/kernel/drivers/net/wireless/ath/ath10k/ath10k_core.ko
insmod /lib/modules/3.14.28-1.0.0_ga+yocto+g7ff62b2/kernel/drivers/net/wireless/ath/ath10k/ath10k_pci.ko

再びlspci -kを実行。PCIは認識してます。

# 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 0042 (rev 31)
Subsystem: AzureWave Device 2a51

再びip linkを打ってみます。wlan0はありません。嫌な予感…。

# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: can0: <NOARP40000> mtu 16 qdisc noop qlen 10
link/[280] 3: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:19:b8:06:ca:7f brd ff:ff:ff:ff:ff:ff
4: sit0@NONE: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0

firmwareがロードされたか見てみると、やはりathと名の付くファームは無い感じです。ath10kのQCA9377ファームを読ませるために何をすればよいのか分かりません。

# dmesg | grep firmware
imx-sdma 20ec000.sdma: loaded firmware 3.1
usbserial: USB Serial support registered for Keyspan – (without firmware)
egalax_ts 2-0004: Failed to read firmware version
ili210x_i2c 2-0041: Failed to get firmware version, err: -5

一旦頭をリセットして記事を読み返してみました。そういえばcfg80211.koをinsmodしたときにcfg80211: Calling CRDA to update world regulatory domainってメッセージが出てました。これは何でしょう。

cfg80211: Calling CRDA to update world regulatory domainをgoogleで検索したら、Linuxドライバのはなし(SILEX)がヒットしました。いい感じのことが書いてあるかもしれません。

まとめ

とりあえず、カーネル3.14.28のカーネルコンフィグでath10kを入れてみたがQCA9377ファームが無く、ファームを読み込ませるための方法がイマイチわからない。と言う状況です。

 

ABOUT ME
ペイヴメント
ペイヴメントのエンジニア塾(当ブログ)では20年以上の経験から得られたプログラミング系ノウハウについてベテランにも満足して頂けるような内容の濃いコンテンツを初心者にも分かりやすい形で日々発信しています。【経歴】ベンチャーのソフトハウスで4年勤務後、精密機器メーカーのソフト開発部門に勤務し今に至ります。