ブログ

Armadillo-640:USBドングルの5GHz対応無線LAN(WI-U2-433DHP、WI-U2-433DMS)を使う

at_kazutaka.bito
2020年8月4日 12時32分

Armadillo-640で、USBドングルの5GHz対応無線LAN(WI-U2-433DHP、WI-U2-433DMS)を使う方法です。

下記の手順2までは、ATDE上で実施します。

手順2までの説明にて、カーネルのソースコードのディレクトリは、
ホームディレクトリ(~/)に展開されていることを前提として、下記のように表記しています。

~/linux-v4.14-at[version]

上記のように記載されている箇所は、カーネルのソースコードを置いているディレクトリと、
使用しているバージョン番号に応じて読み替えてください。

1. loadable moduleを有効にしたカーネルへ書き換え

カーネルコンフィギュレーションを設定するため、コンフィグ画面を開きます。

atmark@atde7:~/linux-v4.14-at[version]$  make ARCH=arm menuconfig

下記のようにloadable moduleを有効([*]が付いた状態)にします。

Kernel Configuration
 [*] Enable loadable module support

上記設定後、カーネルをビルドします。

2. 無線LANのドライバの準備

無線LAN(WI-U2-433DHP、WI-U2-433DMS)を動かすためのドライバのソースコードをダウンロードします。

atmark@atde7:~$ git clone https://github.com/gnab/rtl8812au.git

ドライバをビルドします。

atmark@atde7:~$ cd rtl8812au
atmark@atde7:~/rtl8812au$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KSRC=~/linux-v4.14-at[version]

補足)"KSRC"は、カーネルのソースコードのディレクトリを指定します。
ここでは、例として、上述のカーネルのソースコードの場所(~/linux-v4.14-at[version])を指定しています。

ビルドにより、無線LANのドライバ(8812au.ko)が生成されます。

以下の手順3以降は、Armadillo-640上で実施します。

3. カーネルの書き換え

手順1で生成されたカーネルイメージ(uImage)で、Armadillo-640のカーネルを書き換えます。

手順4のために、インターネットに接続可能なネットワークにArmadillo-640を接続して、再起動します。

4. 必要なパッケージのインストール

必要なパッケージをインストールします。

root@armadillo:~# apt-get update
root@armadillo:~# apt-get install wpasupplicant
root@armadillo:~# apt-get install wireless-tools usbutils


5. udevの設定

無線LAN(WI-U2-433DHP、WI-U2-433DMS)を認識した際に、wlan0という名前にするようにします。

udevルールのファイル
/etc/udev/rules.d/70-persistent-net.rules
を下記の内容で作成します。
補足)ファイルの内容は、WI-U2-433DHP、WI-U2-433DMSで異なります。

WI-U2-433DHPの場合
/etc/udev/rules.d/70-persistent-net.rules

SUBSYSTEM=="net",ACTION=="add",ATTRS{idVendor}=="0411", ATTRS{idProduct}=="029b",NAME="wlan0"


WI-U2-433DMSの場合
/etc/udev/rules.d/70-persistent-net.rules

SUBSYSTEM=="net",ACTION=="add",ATTRS{idVendor}=="0411", ATTRS{idProduct}=="0242",NAME="wlan0"


上記設定を有効にするために、udevルールをリロードします。

root@armadillo:~# udevadm control --reload-rules


以下、対向のアクセスポイントのSSIDとパスフレーズ、暗号化方式に応じた設定になります。

ここでは、例として、下記のように設定します。

SSID:testid
パスフレーズ:testpass
暗号化方式:WPA-PSK(AES)


6. wpa_supplicantの設定

wpa_supplicantのコンフィギュレーションを作成します。

root@armadillo:~# wpa_passphrase testid testpass > /etc/wpa_supplicant/wpa_supplicant.conf

上記コマンドを実行すると、下記の内容でコンフィギュレーションが生成されます。
(下記表記では、pskは伏字にしてます)

/etc/wpa_supplicant/wpa_supplicant.conf

network={
        ssid="testid"
        #psk="testpass"
        psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}


ここでの例として、WPA-PSK(AES)の場合は、上記のwpa_supplicant.confを下記のように編集します。

/etc/wpa_supplicant/wpa_supplicant.conf

network={
        ssid="testid"
        proto=WPA
        key_mgmt=WPA-PSK
        pairwise=CCMP
        group=CCMP
        #psk="testpass"
        psk=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}


7. ネットワークの設定

/etc/network/interfacesに下記のように無線LANの設定を追加します。
補足)下記では、IPアドレスは、アクセスポイントのDHCPサーバーから取得するようにdhcpに設定しています。

iface wlan0 inet dhcp
        wpa-ssid testid
        wpa-psk testpass


以上で準備は終了です。

手順5で、udevに設定した無線LAN(WI-U2-433DHP、WI-U2-433DMS)をArmadillo-640のUSBに接続して、再起動します。

8. 無線LANのドライバ(8812au.ko)のインストール

手順2で生成された無線LANのドライバ(8812au.ko)をArmadillo-640に置きます。
下記コマンドでインストールします。

root@armadillo:~# insmod 8812au.ko


9. アクセスポイントに接続

下記コマンドで、手順6,7で設定したアクセスポイントに接続します。

root@armadillo:~# ifup wlan0