Howto

Armadillo-840でArmadillo-WLAN モジュール(AWL13)を使用する

Armadillo-840 液晶モデルで無線通信を行うために、「Armadillo-WLANモジュール(AWL13)」をインフラストラクチャモード(STA)で使用する方法を説明します。以降の説明では、Armadillo-WLANモジュール(AWL13)をAWL13と表記します。

本Howtoでは、コンフィギュレーションを変更したユーザーランドイメージおよびデフォルトのLinuxカーネルイメージを作成して、フラッシュメモリに書き込み、無線設定をした後、動作確認を行います。おおまかな手順は次の通りです。

1. 接続方法 2. ユーザーランドイメージのカスタマイズ   2.1. ソースコードの準備   2.2. コンフィギュレーションの開始   2.3. ベンダー/プロダクト名の選択   2.4. ユーザーランドコンフィギュレーションの変更 3. イメージのビルド 4. ユーザーランドイメージの生成確認 5. フラッシュメモリの書き換え 6. 起動ログの確認 7. 無線設定   7.1. 無線設定の保存 8. 動作確認

本Howtoで使用したソースコードアーカイブおよびイメージファイルは次の通りです。

Linux カーネルソースアーカイブlinux-3.4-at4.tar.gz
Atmark Dist ソースアーカイブatmark-dist-20130704.tar.gz
AWL13ドライバーソースアーカイブawl13-3.0.2-3.tar.gz

本Howtoで作成するイメージファイルは次の通りです。このイメージで動作を確認する場合は、1. 接続方法のように接続し、5. フラッシュメモリの書き換えから読み進めてください。

ユーザーランドイメージromfs.img.gz
Linuxカーネルイメージlinux.bin.gz

本Howtoでは次のATDEを使用して、開発および動作確認を行います。

ATDE5 (amd64向け VMware仮想イメージファイル)atde5-amd64-20130710.tar.xz

1. 接続方法

AWL13を使用する場合の接続例を次に示します。AWL13を接続するために、LCDを取り外します。AWL13接続後にLCDを接続しても問題ありません。

2. ユーザーランドイメージのカスタマイズ

ユーザーランドコンフィギュレーションを変更して、AWL13に対応したユーザーランドイメージファイルを作成します。

2.1. ソースコードの準備

次のソースコードアーカイブを準備し展開します。

  • Atmark Dist
  • Linuxカーネル
  • AWL13ドライバー

AWL13ドライバーは、AWL13に対応したユーザーランドイメージファイルを作成するために必要です。


[ATDE ~]$ wget http://download.atmark-techno.com/armadillo-840/source/linux-3.4-at4.tar.gz
[ATDE ~]$ wget http://download.atmark-techno.com/armadillo-840/source/atmark-dist-20130704.tar.gz
[ATDE ~]$ wget http://download.atmark-techno.com/armadillo-wlan/source/driver/AWL13/awl13-3.0.2-3.tar.gz
[ATDE ~]$ ls
atmark-dist-20130704.tar.gz  awl13-3.0.2-3.tar.gz  linux-3.4-at4.tar.gz
[ATDE ~]$ tar zxf atmark-dist-20130704.tar.gz
[ATDE ~]$ tar zxf linux-3.4-at4.tar.gz
[ATDE ~]$ tar zxf awl13-3.0.2-3.tar.gz
[ATDE ~]$ ls
atmark-dist-20130704         awl13-3.0.2-3         linux-3.4-at4
atmark-dist-20130704.tar.gz  awl13-3.0.2-3.tar.gz  linux-3.4-at4.tar.gz

展開後、Atmark Distに、LinuxカーネルとAWL13ドライバーのソースコードを登録するために、シンボリックリンクを作成します。


[ATDE ~]$ ln -s ../linux-3.4-at4 atmark-dist-20130704/linux-3.x ※1
[ATDE ~]$ ln -s ../awl13-3.0.2-3 atmark-dist-20130704/awl13 ※2

※1 シンボリックリンク名は常にlinux-3.xである必要があります

※2 シンボリックリンク名は常にawl13である必要があります

2.2. コンフィギュレーションの開始

make menuconfigでコンフィギュレーションを開始します。


[ATDE ~]$ cd atmark-dist-20130704
[ATDE ~/atmark-dist-20130704]$ make menuconfig

2.3. ベンダー/プロダクト名の選択

「Vendor/Product Selection --->」を選択します。


Vendor/Product Selection  --->
Kernel/Library/Defaults Selection  --->
---
Load an Alternate Configuration File
Save Configuration to an Alternate File

Vendorには "AtmarkTechno" を選択し、AtmarkTechno Productsには "Armadillo-840" を選択します。その後、前のメニューに戻り「Kernel/Library/Defaults Selection --->」を選択します。


--- Select the Vendor you wish to target
(AtmarkTechno) Vendor※3
--- Select the Product you wish to target
(Armadillo-840) AtmarkTechno Products※4

※3 "AtmarkTechno"を選択します

※4 "Armadillo-840"を選択します

2.4. ユーザーランドコンフィギュレーションの変更

ユーザーランドコンフィギュレーションを変更するには「Customize Vendor/User Settings」を選択します。その後、前のメニューに戻り「Do you wish to save your new kernel configuration?」で"Yes"とします。


--- Kernel is linux-3.x
(default) Cross-dev
(None) Libc Version
[ ] Default all settings (lose changes)
[ ] Customize Kernel Settings
[*] Customize Vendor/User Settings
[ ] Update Default Vendor Settings

Userland Configurationメニューが表示されます。


Vendor specific  --->
Fonts  --->
Core Applications  --->
Library Configuration  --->
Flash Tools  --->
Filesystem Applications  --->
Network Applications  --->
Miscellaneous Applications  --->
BusyBox  --->
Tinylogin  --->

ユーザーランドコンフィギュレーションを変更して、AWL13サポートを有効化します。変更後、前のメニューに戻り「Do you wish to save your new kernel configuration?」で"Yes"とし、ユーザーランドコンフィギュレーションを確定します。


Vendor specific  --->
  [*] Armadillo-WLAN
  (AWL13) Armadillo-WLAN Products
  (SDIO) AWL13 Support interface
  (STA) AWL13 Support mode

3. イメージのビルド

イメージをビルドします。


[ATDE ~/atmark-dist-20130704]$ make

4. イメージの生成確認

ビルドが終了すると、images/ディレクトリ以下にAWL13に対応したユーザーランドイメージファイル romfs.img.gz とデフォルトのLinuxカーネルイメージファイル linux.bin.gz が作成されています。


[ATDE ~/atmark-dist-20130704]$ ls images
linux.bin  linux.bin.gz  romfs.img  romfs.img.gz

5. フラッシュメモリの書き換え

フラッシュメモリを4. イメージの生成確認で確認したイメージで書き換えます。フラッシュメモリのuserlandパーティションをユーザーランドイメージで、kernelパーティションをLinuxカーネルイメージで書き換えてください。

フラッシュメモリの書き換え方法については Armadillo-840 製品マニュアルの12. フラッシュメモリの書き換え方法を参照してください。

6. 起動ログの確認

Armadillo-840の起動ログにawl13: Version 3.0.2 Load.があることを確認します。確認できた場合は正しくビルドされたイメージが書き込まれています。


  :(省略)
mmc1: registerd "awl13" device as awl
awl13: Version 3.0.2 Load.
Setting hostname: done
  :(省略)
armadillo840-0 login:

7. 無線設定

アクセスポイントに接続するための無線設定を行います。AWL13は"awlan0"という名前のネットワークインターフェースとして認識されます。

本Howtoで使用したアクセスポイントの無線パラメータを次の表に示します。以降の説明ではこのパラメータを使用しますが、お使いのアクセスポイントの無線パラメータを確認して適宜読み替えてください。

項目 設定値
ESSID mywpa2aes
PSKパスフレーズ mypresharedkey
暗号化方式 WPA2-PSK(AES)

WPA2-PSK(AES)以外のアクセスポイントへの接続方法など、AWL13のより詳細な情報については、Armadillo-WLAN(AWL13)ソフトウェアマニュアルを参照してください。

無線設定を行います。


[armadillo ~]# iwconfig awlan0 essid mywpa2aes
[armadillo ~]# iwpriv awlan0 set_psk mypresharedkey
[armadillo ~]# iwpriv awlan0 set_cryptmode WPA2-AES
[armadillo ~]# iwconfig awlan0 mode managed

これで通常のネットワークインターフェースとして使用することができます。ネットワークの設定方法やネットワークを利用するアプリケーションについての詳細は、Armadillo-840 製品マニュアルの6.1. ネットワークを参照してください。

3. イメージのビルドで作成したユーザーランドイメージは、システム起動時にAWL13が適切に初期化されるように作られています。通常、AWL13を動作させる場合は、

  1. カーネルモジュール「awl13_sdio.ko」の組み込み
  2. AWL13へファームウェアをロード
  3. AWL13の無線設定

以上3つの手順が必要となりますが、1. 及び 2. を起動スクリプトで実行するため、無線設定のみを行うことで無線通信が可能になります。

7.1. 無線設定の保存

無線設定をフラッシュメモリのコンフィグ領域に保存することにより、Armadilloを再起動するたびに無線設定を行う必要が無くなります。コンフィグ領域を保存する方法についてはArmadillo-840 製品マニュアルの7.2. コンフィグ領域の保存を参照してください。

アクセスポイントに接続するための/etc/config/interfacesの編集例を次に示します。


[armadillo ~]# vi /etc/config/interfaces
iface usb0 inet manual
      up ifconfig usb0 up
      post-up zcip usb0 /etc/zcip.script > /dev/null
      down ifconfig usb0 down
iface awlan0 inet dhcp※5
      pre-up iwpriv awlan0 set_psk mypresharedkey※6
      pre-up iwpriv awlan0 set_cryptmode WPA2-AES※7
      pre-up iwconfig awlan0 essid mywpa2aes※8
      wireless-mode managed※9

※5 awlan0をDHCPに設定します

※6 パスフレーズをmypresharedkeyに設定します

※7 暗号化方式をWPA2-PSK(AES)に設定します

※8 ESSIDをmywpa2aesに設定します

※9 接続モードをインフラストラクチャモード(STA)に設定します

/etc/config/interfacesの編集後、次のようにコマンドを実行すると、無線設定、IP設定およびネットワークの有効化が行われます。


[armadillo ~]# ifup awlan0

Armadilloの起動時に自動的にawlan0が有効化されるようにするには、/etc/config/awl13-firmware-load.shの最後の行に「ifup awlan0」を追加します。


[armadillo ~]# vi /etc/config/awl13-firmware-load.sh
[ -f /sys/module/awl13_usb/$WLAN/firmware ] && \
cat $FIRMWARE_USB > /sys/module/awl13_usb/$WLAN/firmware
iwpriv $WLAN fwload
iwpriv $WLAN fwsetup

ifup awlan0※10

※10 /etc/config/interfacesの設定でawlan0を有効化します

追加後、次回起動時に設定が反映されるようにコンフィグ領域を保存します。


[armadillo ~]# flatfsd -s

8. 動作確認

同じネットワーク内にある通信機器とPING通信を行います。次の例では、通信機器が「192.168.10.20」というIPアドレスを持っていると想定しています。


[armadillo ~]# ping 192.168.10.20

事前に「無線設定」、「IP設定」、「ネットワークの有効化」が行われている必要があります。7. 無線設定およびArmadillo-840 製品マニュアルの6.1. ネットワークを参照し、行ってください。

eth0などを使用してネットワークに接続している場合、ネットワーク通信時にawlan0が使用されない場合があります。確実にawlan0を使用させる場合は、Armadillo-840 製品マニュアルの6.1.2. ネットワークの有効化、無効化を参照してawlan0以外のネットワークインターフェースを無効化してください。