« ZYNQ LinuxのUbuntuを入れた後の作業 | トップページ | 2017年を振り返って »

2017.12.30

ZYNQのLinuxでWiFiを使う方法

ZYNQのUbuntu Linux 12あるいは14でWiFiを使う方法を説明します。

ZynqBerryで試していますが、おそらくほかのボードでも同じでしょう。

この手順を試す前に、必要なパッケージを入れておきます。おそらく最初の2つはデフォルトで入っていると思いますが、wicd-cursesは便利なツールなので、ぜひ入れておくとよいでしょう。

apt-get install wireless-tools
apt-get install wpasupplicant
apt-get install wicd-curses

対応している無線LANアダプタ

ZYNQのLinuxにUSB WiFiドングルを挿したとき、ほとんどのものは認識されないでしょう。

私が試した限りでは、

がZYNQ Ubuntu Linuxで無事に認識できました。しかし、WLI-UC-GNM2Sのほうは動かしていると数分で落ちてしまうので、発熱などの問題があるのではないかと思われます。(実際にコールドスプレーで冷やし続けると何分でも動く)

Wsnano2Wli

(画像はAmazonより)

なお、下記のものも試したのですが、私の知識不足のため、動作させることはできませんでした。iwconfigでwlan0が見つかりません。

  • Wavlink WIFI 無線LAN子機 AC600 https://www.amazon.co.jp/dp/B019DDP2B6/
  • エレコムWDC-150SU2MBK https://www.amazon.co.jp/dp/B00JTSF7DY/
  • TP-Link TL-WN725N https://www.amazon.co.jp/dp/B008IFXQFU/
  • DIZA100 https://www.amazon.co.jp/dp/B074CWPVRY/

結局のところGW-USNano2がベストという結果になりました。

Zbwifi

ファームウェアを入れる

Linuxで無線LANを使うには、デバイスドライバのほかにファームウェアというものが必要になります。無線LANのファームウェアというのが実際に何なのかはよくわかりませんが、バイナリファイルで、中身を見てもARMのプログラムっぽくはないようです。

まず、gitでファームウェアを取ってきます。

git clone http://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

そして、

cp linux-firmware/rt*.bin /lib/firmware/
cp -R linux-firmware/rtlwifi /lib/firmware/

で、ファームウェアをいろいろコピーします。無線LANのファームウェアは、ファイルシステムの/lib/firmwareというところに入れておくようですね。

WiFiの設定

手順としては、

  1. iwconfigで認識されるかの確認
  2. iwlist scanでアクセスポイントが見えるかの確認
  3. wpa_passphraseでwpa_supplicant.confを作成する
  4. /etc/network/interfacesを編集する
  5. wpa_supplicantで接続してみる

となります。

iwconfigで見てみる

iwconfigとやったとき、wlan0が(もしくはwlan1、wlan2・・)が見えていれば、認識はされています。ドライバ(*.ko)が組み込まれていないと、このwlan0が出ません。

Zynqwifi1

iwlist scanをやってみる

iwlist scanというコマンドで、どんな無線LANのアクセスポイントが使えるかが見えるはずです。

Zynqwifi3

wpa_supplicant.confを作成

$ wpa_passphrase myid mypass 

で、ESSIDとパスフレーズの組を作ります。例えば、ZYNQAPというSSIDと、zynqberryというパスフレーズなら、

$ wpa_passphrase ZYNQAP zynqberry

とします。

Zynqwifi2

この結果の文字列を利用して/etc/wpa_supplicant/wpa_supplicant.confを作ります。一般によく使われているWPA2-PSKでAESの場合、proto=RSN、key_mgmt=WPA-PSK、pairwise=CCMP、group=CCMPと書いておきます。

network={
      ssid="ZYNQAP"
      #psk="zynqberry"
      psk=c4c9b76402b20db5681188dc7049f9f39760fbb1c473c53987f8369272b46e28
      proto=RSN
      key_mgmt=WPA-PSK
      pairwise=CCMP
      group=CCMP
}

また、#pskの行は暗号化前のパスフレーズが書かれているので、消したほうがよいでしょう。

/etc/network/interfacesを編集する

次に、/etc/network/interfacesを編集して、以下の記述を追記します。

auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet dhcp
wpa-conf /root/wpa_supplicant.conf

wpa_supplicantで接続してみる

設定ファイルとは別に、wpa_supplicantという実行ファイルがあり、以下のようにすると接続の試験ができます。

$ wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf &

最後に&を付けておかないと、このコマンドの中で処理がブロックされてしまい、他のことができなくなります。

このファイルを実行したときに、ioctl[SIOCSIWFREQ]: Device or resource busyと出るかもしれませんが、特に問題はないようです。

Zynqwifi4

root@zynqberry:~#  wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf &
[1] 23384
root@zynqberry:~# ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument

root@zynqberry:~# Trying to associate with **:**:**:**:**:** (SSID='ZYNQAP' freq=2462 MHz)
ioctl[SIOCSIWFREQ]: Device or resource busy
Association request to the driver failed
Associated with **:**:**:**:**:**
WPA: Key negotiation completed with **:**:**:**:**:** [PTK=CCMP GTK=CCMP]
CTRL-EVENT-CONNECTED - Connection to **:**:**:**:**:** completed (auth) [id=0 id_str=]

root@zynqberry:~# iwconfig
wlan0     IEEE 802.11  ESSID:"ZYNQAP"
          Mode:Managed  Frequency:2.462 GHz  Access Point: **:**:**:**:**:**
          Bit Rate=150 Mb/s   Tx-Power=20 dBm
          Retry short limit:7   RTS thr=2347 B   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=60/70  Signal level=-50 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:4   Missed beacon:0

sit0      no wireless extensions.

eth0      no wireless extensions.

lo        no wireless extensions.

これで無線LANが接続できることがわかったら、再起動してください。あとはDHCP接続で自動的にIPアドレスが取得され、ZYNQでWiFiが使用できるようになるはずです。

|

« ZYNQ LinuxのUbuntuを入れた後の作業 | トップページ | 2017年を振り返って »

コメント

コメントを書く



(ウェブ上には掲載しません)




« ZYNQ LinuxのUbuntuを入れた後の作業 | トップページ | 2017年を振り返って »