« ZYNQ Linuxの/lib/modulesフォルダやmodules.dep等の作り方 | トップページ | ZYNQのXC7Z007Sにすれば消費電力は減るか? »

2019.09.30

ELECOMのWDC-150SU2MをZYNQのLinuxから使う

Zynqberryスタータキットで使っていたPlanexのGW-USNANO2Aが販売終了になってしまいました。

GW-USNANO2AのチップはRealtekのRTL8192CUというもので、ファームウェアもドライバもあり、ARM系Linuxで唯一使えていたWiFiアダプタだったのですが、これはちょっとダメージ大きいですね。

RTL8192CUを使ったUSB-WiFiが他にないかと探したのですが、無そうでした。

 

現時点で入手性が良くて価格も安くコンパクトなものは、WDC-150SU2MBKまたはWDC-150SU2MWです。最後のBKとWはおそらく色なので、正式名称はWDC-150SU2Mでしょう。

Wdc

このUSB-WiFiが搭載しているチップは、RealTekのRTL8188EUSというものです。

残念なことにLinux用のドライバは正式にはリリースされていませんが、有志の人が作ってくれているようなので、それをダウンロードしてコンパイルすることにします。

以下、クロスビルド用のデスクトップPCで作業します。このPCはLinuxカーネルをコンパイルしたPCで、カーネルのソースが/home/naitou/linux-xlnxにあると仮定します。

まず、lwfingerさんのgitからrtl8188eu用のドライバをcloneしてきます。

$ git clone https://github.com/lwfinger/rtl8188eu.git

これをコンパイルする前にあらかじめCROSS_COMPILEのエクスポートや、Xilinx SDKの環境設定スクリプトを呼んでおきます。

$ export CROSS_COMPILE=arm-linux-gnueabihf-
$ source /opt/Xilinx/SDK/2017.4/settings64.sh ← 環境に応じて変えよ

ビルドは以下のコマンドで行います。

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KSRC=/home/naitou/linux-xlnx

KSRCでLinuxカーネルのソースが入ったディレクトリを指示するのがポイントです。

ビルドが終わると以下のようなファイルが出来上がっていまs。

naitou@ubuntu:~/rtl8188eu$ ls -al
合計 2072
drwxrwxr-x 9 naitou naitou 4096 9月 30 23:25 .
drwxrwxrwx 56 naitou naitou 4096 9月 30 23:18 ..
-rw-rw-r-- 1 naitou naitou 226 9月 30 23:25 .8188eu.ko.cmd
-rw-rw-r-- 1 naitou naitou 20765 9月 30 23:25 .8188eu.mod.o.cmd
-rw-rw-r-- 1 naitou naitou 2711 9月 30 23:25 .8188eu.o.cmd
drwxrwxr-x 8 naitou naitou 4096 9月 30 23:18 .git
-rw-rw-r-- 1 naitou naitou 1106 9月 30 23:18 .gitignore
drwxrwxr-x 2 naitou naitou 4096 9月 30 23:25 .tmp_versions
-rw-rw-r-- 1 naitou naitou 983892 9月 30 23:25 8188eu.ko
-rw-rw-r-- 1 naitou naitou 8061 9月 30 23:25 8188eu.mod.c
-rw-rw-r-- 1 naitou naitou 10864 9月 30 23:25 8188eu.mod.o
-rw-rw-r-- 1 naitou naitou 973736 9月 30 23:25 8188eu.o
-rw-rw-r-- 1 naitou naitou 18693 9月 30 23:18 COPYING
-rw-rw-r-- 1 naitou naitou 4088 9月 30 23:18 Makefile
-rw-rw-r-- 1 naitou naitou 0 9月 30 23:25 Module.symvers
-rw-rw-r-- 1 naitou naitou 1491 9月 30 23:18 README.md
-rwxrwxr-x 1 naitou naitou 4199 9月 30 23:18 control_ap
drwxrwxr-x 2 naitou naitou 4096 9月 30 23:24 core
-rw-rw-r-- 1 naitou naitou 208 9月 30 23:18 dkms.conf
drwxrwxr-x 2 naitou naitou 4096 9月 30 23:25 hal
drwxrwxr-x 4 naitou naitou 4096 9月 30 23:18 hostapd-0.8
drwxrwxr-x 2 naitou naitou 4096 9月 30 23:18 include
-rw-rw-r-- 1 naitou naitou 40 9月 30 23:25 modules.order
drwxrwxr-x 2 naitou naitou 4096 9月 30 23:25 os_dep
-rw-rw-r-- 1 naitou naitou 13904 9月 30 23:18 rtl8188eufw.bin
-rw-rw-r-- 1 naitou naitou 1820 9月 30 23:18 rtl_hostapd.conf

この中の8188eu.koがドライバで、rtl8188eufw.binがファームウェアです。

この2つのファイルをターゲットボードにコピーします。8188eu.koをターゲットボードの/lib/modules/4.9.0-xilinx-00027-g9c2e29b/kernel/drivers/にコピーし、rtl8188eufw.binを/lib/firmware/と/lib/firmware/rtlwifi/にコピーします。

そうしたら

insmod /lib/modules/4.9.0-xilinx-00027-g9c2e29b/kernel/drivers/8188eu.ko

でインストールできます。

ifconfigまたはip addrで無線LANが存在していることを確認します。

iwlist scanでも確認します。

 

ただ、WDC-150SU2Mとwpa_supplicantの相性は悪いようで、Ubuntu 18でNetworkManagerを使わないとその後の通信には成功しませんでした。

wpa_supplicantを使って接続する場合は、

wpa_supplicant -iwlan1 -D wext -c/etc/wpa_supplicant/wpa_supplicant.conf

と指定しなければなりませんでしたが、これでも接続には成功していません。nl80211ではなくwextという別のドライバを使うという意味であるようです。

 

 

|

« ZYNQ Linuxの/lib/modulesフォルダやmodules.dep等の作り方 | トップページ | ZYNQのXC7Z007Sにすれば消費電力は減るか? »

コメント

コメントを書く



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




« ZYNQ Linuxの/lib/modulesフォルダやmodules.dep等の作り方 | トップページ | ZYNQのXC7Z007Sにすれば消費電力は減るか? »