前回、N-6300を認識させるところまでは進んだが、私の作ったBD-SABRE-LITE向けLinuxイメージ(Yocto)には無線LANの設定ツールiwが入っていなかったため初期化できず。ちょっと作戦を練りなおそうと思った次第。

【関連記事】
【組込ボードで無線LAN】②(無線LANカードN-6300を組込ボードに接続するには?)
【組込ボードで無線LAN】⑧(iwのビルド:後編-1)【組込ボードで無線LAN】⑰(QCA9377-5を挿してみた)
  • 作戦練り直し
iwを入れるのは後でやるとして、そもそも無線LANドライバの初期化ってどうやるんだっけ?
とりあえずLinuxの無線LANについて俯瞰すべくワイヤレス設定を読んだ。

まず、ip linkというコマンドを打ってwlan0が生成されているか確認せよ、と書いてあるのですぐに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
wlan0ナイネのときは、dmesgでiwlwifiのファームが読み込まれてるか?iwlwifiのエラーが発生してないか?調べてみろと書いてあるので実行してみると…。”iwlwifi-6000-4.ucode”というファームがなくて、ファームの読み込みが失敗していることが分かった。
# 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

# dmesg | grep iwlwifi
iwlwifi 0000:01:00.0: request for firmware file 'iwlwifi-6000-4.ucode' failed.
iwlwifi 0000:01:00.0: no suitable firmware found!
思いついた入手方法は以下の2つ。どっちも454608バイトでバイナリ比較結果も一致。今回は②を使った。
①BD-SABRE-LITEをYoctoでビルドしたときのSDKに含まれる/lib/firmware。

/opt/poky/1.8.2/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/lib/firmware/iwlwifi-6000-4.ucode

②Ubuntu14(開発PC)の/lib/firmware。

/lib/firmware/iwlwifi-6000-4.ucode

②の/lib/firmware/iwlwifi-6000-4.ucodeはTeraTermのメニューから「ファイル」「SSH SCP」をクリック。
1

画面下半分の「From」と「To」を指定して「Receive」をクリック。無事c:\tmp\iwlwifi-6000-4.ucodeをゲット。
2

iwlwifi-6000-4.ucodeをコピーするためUSBメモリ(FAT32で初期化したもの)をBD-SABRE-LITEに挿したら、こんなん出た。/dev/sdaとして認識されたらしい。
usb 1-1.1: new high-speed USB device number 3 using ci_hdrc
usb-storage 1-1.1:1.0: USB Mass Storage device detected
scsi1 : usb-storage 1-1.1:1.0
scsi 1:0:0:0: Direct-Access     BUFFALO  USB Flash Disk   4000 PQ: 0 ANSI: 4
sd 1:0:0:0: [sda] 15950592 512-byte logical blocks: (8.16 GB/7.60 GiB)
sd 1:0:0:0: [sda] Write Protect is off
sd 1:0:0:0: [sda] No Caching mode page found
sd 1:0:0:0: [sda] Assuming drive cache: write through
sd 1:0:0:0: [sda] No Caching mode page found
sd 1:0:0:0: [sda] Assuming drive cache: write through
 sda:
sd 1:0:0:0: [sda] No Caching mode page found
sd 1:0:0:0: [sda] Assuming drive cache: write through
sd 1:0:0:0: [sda] Attached SCSI removable disk
FAT-fs (sda): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
でも/mediaに自動マウントされなかったので。
# ls /media

手動マウントして、/lib/firmwareにコピーしてrebootした。
# mount /dev/sda /mnt
root@nitrogen6x:~# ls /mnt
System Volume Information  iwlwifi-6000-4.ucode

# cp /mnt/iwlwifi-6000-4.ucode /lib/firmware/

# reboot

♯ reboot

リブート後、無事認識された。
# dmesg | grep iwlwifi
iwlwifi 0000:01:00.0: loaded firmware version 9.221.4.1 build 25532 op_mode iwldvm
iwlwifi 0000:01:00.0: CONFIG_IWLWIFI_DEBUG disabled
iwlwifi 0000:01:00.0: CONFIG_IWLWIFI_DEBUGFS disabled
iwlwifi 0000:01:00.0: CONFIG_IWLWIFI_DEVICE_TRACING disabled
iwlwifi 0000:01:00.0: Detected Intel(R) Centrino(R) Ultimate-N 6300 AGN, REV=0x74
iwlwifi 0000:01:00.0: L1 Disabled - LTR Disabled
再び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
5: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
    link/ether 3c:a9:f4:8b:fe:d0 brd ff:ff:ff:ff:ff:ff

インタフェース有効化まで行けたので、いよいよiwか…。

続く

スポンサードリンク