Raspberry Pi 2 に
カッ飛び! 11ac Planex GW-450D
http://www.planex.co.jp/products/gw-450d/
を接続し、Raspbian で使用できるようにする手順です。
Raspberry Pi 2 kernel セルフコンパイル に従って kernel compile と新しい kernel での起動が完了したら、
GW-450D のドライバーをビルドします。
planex のサイトからドライバーのソースコードを入手します。
http://www.planex.co.jp/support/download/gw-450d/driver_linux.shtml
使用許諾の同意確認があり直接ダウンロードするリンクがないので、wget などで Raspbian 上に直接ダウンロードできません。
PC のブラウザでダウンロードしておいて scp などで Raspberry Pi 2 上にコピーします。
ソースコードアーカイブを展開します。
zip の中に tar で固められ bzip2 で圧縮されたドライバーのソースコード本体があります。
pi@raspberrypi ~ $ cd src/ pi@raspberrypi ~/src $ unzip gw-450d_driver_linux_v3002.zip pi@raspberrypi ~/src $ mv gw-450d_driver_linux_v3002/mt7610u_wifi_sta_v3002_dpo_20130916.tar.bz2 . pi@raspberrypi ~/src $ tar xvf mt7610u_wifi_sta_v3002_dpo_20130916.tar.bz2 pi@raspberrypi ~/src $ cd mt7610u_wifi_sta_v3002_dpo_20130916/
Raspberry Pi 2 + kernel 4.1.6 で5GHz対応WifiドングルGW-450Dを動かした
http://neuralassembly.blogspot.jp/2015/09/raspberry-pi-2-kernel-416-5ghzwifigw.html
で公開して下っている patch を当てます。
pi@raspberrypi ~/src/mt7610u_wifi_sta_v3002_dpo_20130916 $ wget https://raw.githubusercontent.com/neuralassembly/raspi/master/gw-450d/gw-450d-rpi-kernel41.patch pi@raspberrypi ~/src/mt7610u_wifi_sta_v3002_dpo_20130916 $ patch -p0 < gw-450d-rpi-kernel41.patch patching file common/rtusb_dev_id.c patching file include/os/rt_linux.h patching file os/linux/config.mk patching file os/linux/rt_linux.c patching file sta/sta_cfg.c patching file common/cmm_info.c
ビルドします。
正常に完了すると mt7650u_sta.ko ができます。
pi@raspberrypi ~/src/mt7610u_wifi_sta_v3002_dpo_20130916 $ sudo -s root@raspberrypi:/home/beat/src/mt7610u_wifi_sta_v3002_dpo_20130916# time make 2>&1 | tee make.log 〜〜 中略 〜〜 Building modules, stage 2. MODPOST 1 modules CC /home/pi/src/mt7610u_wifi_sta_v3002_dpo_20130916/os/linux/mt7650u_sta.mod.o LD [M] /home/pi/src/mt7610u_wifi_sta_v3002_dpo_20130916/os/linux/mt7650u_sta.ko make[1]: Leaving directory '/usr/src/linux' cp -f /home/beat/src/mt7610u_wifi_sta_v3002_dpo_20130916/os/linux/mt7650u_sta.ko /tftpboot 2>/dev/null || : real 7m18.044s user 6m45.910s sys 0m20.800s
モジュールのサイズは18Mあります。
root@raspberrypi:/home/beat/src/mt7610u_wifi_sta_v3002_dpo_20130916# ls -alh os/linux/mt7650u_sta.ko -rw-r--r-- 1 root root 18M Nov 5 20:12 os/linux/mt7650u_sta.ko
make install はせずコピーして depmod します。
root@raspberrypi:/home/pi/src/mt7610u_wifi_sta_v3002_dpo_20130916# cp -p os/linux/mt7650u_sta.ko /lib/modules/4.1.10-v7+/kernel/drivers/net/wireless/ root@raspberrypi:/home/pi/src/mt7610u_wifi_sta_v3002_dpo_20130916# depmod -a
ドライバーの設定ファイルを置くディレクトリを作成し設定ファイルを配置します。
root@raspberrypi:/home/pi/src/mt7610u_wifi_sta_v3002_dpo_20130916# mkdir -p /etc/Wireless/RT2870STA root@raspberrypi:/home/pi/src/mt7610u_wifi_sta_v3002_dpo_20130916# cp RT2870STA.dat /etc/Wireless/RT2870STA/
kernel module のインストールが済んだ状態で GW-450D を Raspberry Pi 2 に挿すと
mt7650u_sta.ko が load され、ra* というネットワークインタフェースができます。
root@raspberrypi:~# lsmod Module Size Used by cfg80211 410393 0 rfkill 15913 1 cfg80211 mt7650u_sta 906627 1 bcm2835_gpiomem 2860 0 uio_pdrv_genirq 2924 0 uio 7784 1 uio_pdrv_genirq i2c_dev 5610 0 snd_bcm2835 19808 3 snd_pcm 73405 1 snd_bcm2835 snd_timer 17657 1 snd_pcm snd 50337 9 snd_bcm2835,snd_timer,snd_pcm fuse 79934 3 ipv6 336324 34
root@raspberrypi:~# iwconfig ra0 Ralink STA ESSID:"" Nickname:"MT7610U_STA" Mode:Auto Frequency=2.412 GHz Access Point: Not-Associated Bit Rate:1 Mb/s RTS thr:off Fragment thr:off Encryption key:off Link Quality=10/100 Signal level:0 dBm Noise level:0 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 lo no wireless extensions. eth0 no wireless extensions.
/etc/network/interfaces の wlan0 の下に ra0 の設定項目を作成します。
接続したいアクセスポイントの SSID とパスフレーズを設定します。
# vi /etc/network/interfaces (以下を記述) allow-hotplug ra0 auto ra0 iface ra0 inet manual wpa-ssid "your-ssid" wpa-psk "your-passwd"
認証方式や暗号化方式は wpa_supplicant が自動で設定し上記の設定で接続できるはずですが、
アクセスポイントの設定によっては接続できないことがあるかもしれません
その場合は認証方式や暗号化方式を明示的に設定ファイルに設定します。
SSID= AuthMode=WPA2PSK EncrypType=TKIP
SSID はネットワーク設定で設定しているので空にします。
AuthMode に設定可能な値は WEPAUTO、OPEN、SHARED、WPAPSK、WPA2PSK、WPANONE
EncrypType に設定可能な値は NONE、WEP、TKIP、AES
です。
そのほかの /etc/Wireless/RT2870STA/RT2870STA.dat の各設定項目に設定できる値の詳細は、
ドライバーソースのアーカイブの中の
mt7610u_wifi_sta_v3002_dpo_20130916/doc/README_STA_usb
に書かれています。
設定を完了して再起動すると、以下のように IP アドレスが取得できています。
root@raspberrypi:~# ifconfig eth0 Link encap:Ethernet HWaddr b8:27:eb:c2:87:00 inet addr:192.168.0.145 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::ba27:ebff:fec2:8700/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:70510 errors:0 dropped:10715 overruns:0 frame:0 TX packets:5921 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:12997010 (12.3 MiB) TX bytes:927393 (905.6 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1104 (1.0 KiB) TX bytes:1104 (1.0 KiB) ra0 Link encap:Ethernet HWaddr 00:22:cf:ed:11:cd inet addr:192.168.0.152 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::1fef:b53:2e47:12de/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:237874 errors:0 dropped:8164 overruns:0 frame:0 TX packets:1756 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:46173923 (44.0 MiB) TX bytes:117107 (114.3 KiB)
root@raspberrypi:~# iwconfig ra0 Ralink STA ESSID:"Beatcraft2" Nickname:"MT7610U_STA" Mode:Managed Frequency=2.442 GHz Access Point: 00:3A:9D:91:93:BE Bit Rate=54 Mb/s RTS thr:off Fragment thr:off Encryption key:00D4-3E01-8CE2-6AE9-69D8-32D7-92E1-7C02 [3] Security mode:open Link Quality=98/100 Signal level:-46 dBm Noise level:-49 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 lo no wireless extensions. eth0 no wireless extensions.
接続がうまくいかない場合は、/var/log/syslog の中の
wpa_supplicant や dhcpcd のログで状況を確認します。
接続成功時には以下のようなログが出力されています。
Oct 16 19:15:08 raspberrypi kernel: [ 14.122857] cfg80211: Calling CRDA to update world regulatory domain Oct 16 19:15:08 raspberrypi wpa_supplicant[480]: ra0: WPA: Key negotiation completed with 00:3a:9d:91:93:be [PTK=TKIP GTK=TKIP] Oct 16 19:15:08 raspberrypi wpa_supplicant[480]: ra0: CTRL-EVENT-CONNECTED - Connection to 00:3a:9d:91:93:be completed [id=0 id_str=] Oct 16 19:15:08 raspberrypi dhcpcd[591]: ra0: carrier acquired Oct 16 19:15:08 raspberrypi dhcpcd[551]: dhcpcd[591]: ra0: carrier acquired Oct 16 19:15:08 raspberrypi dhcpcd[591]: ra0: IAID cf:ed:11:cd Oct 16 19:15:08 raspberrypi dhcpcd[551]: dhcpcd[591]: ra0: IAID cf:ed:11:cd Oct 16 19:15:08 raspberrypi dhcpcd[591]: ra0: rebinding lease of 192.168.0.152 Oct 16 19:15:08 raspberrypi dhcpcd[551]: dhcpcd[591]: ra0: rebinding lease of 192.168.0.152 Oct 29 19:15:08 raspberrypi dhcpcd[591]: ra0: soliciting an IPv6 router Oct 29 19:15:08 raspberrypi dhcpcd[551]: dhcpcd[591]: ra0: soliciting an IPv6 router
切り分けのためまず /etc/network/interfaces の中の ra0 の項目を一旦消して再起動し、手動で ra0 に設定をしていきます。
wpa_supplicant での認証に失敗している場合は、まず以下のようにしてテスト用の wpa_supplicant.conf を作成します。
root@raspberrypi:~# wpa_passphrase your-ssid your-passwd > wpa_supplicant.conf
出力された wpa_supplicant.conf に認証方式や暗号化方式の設定を追加します。
network={ proto=RSN key_mgmt=WPA-PSK pairwise=TKIP ssid="your-ssid" #psk="your-passwd" psk=bfc743cad6d376b47075c9f336e03c7e852e11ba22230edfc3deb6de9f414bf0 }
作成できたらこの設定ファイルを指定して wpa_supplicant をフォアグラウンドで実行し、認証状況を確認します。
root@raspberrypi:~# wpa_supplicant -D nl80211,wext -i ra0 -c wpa_supplicant.conf -dd 〜〜中略〜〜 ra0: State: COMPLETED -> GROUP_HANDSHAKE WPA: Group Key - hexdump(len=32): [REMOVED] ra0: WPA: Installing GTK to the driver (keyidx=1 tx=0 len=32) WPA: RSC - hexdump(len=6): 0f 11 00 00 00 00 wpa_driver_wext_set_key: alg=2 key_idx=1 set_tx=0 seq_len=6 key_len=32 ra0: WPA: Sending EAPOL-Key 2/2 WPA: KCK - hexdump(len=16): [REMOVED] WPA: Derived Key MIC - hexdump(len=16): a0 9a 5f e1 4b cb 62 f9 11 fc d1 95 bd 9c ed c0 ra0: WPA: Group rekeying completed with 00:3a:9d:91:93:be [GTK=TKIP] ra0: Cancelling authentication timeout ra0: State: GROUP_HANDSHAKE -> COMPLETED EAPOL: startWhen --> 0 EAPOL: disable timer tick
上記のように認証成功になるまで設定を調整します。
成功したら wpa_supplicant を以下のようにバックグラウンドで動作させてます。
root@raspberrypi:~# wpa_supplicant -D nl80211,wext -i ra0 -c wpa_supplicant.conf -B
dhcpcd が動いている場合はここですでに IP アドレスが取得できているかもしれません。
以下のようにして状況を確認します。
root@raspberrypi:~# /etc/init.d/dhcpcd status ● dhcpcd.service - LSB: IPv4 DHCP client with IPv4LL support Loaded: loaded (/etc/init.d/dhcpcd) Active: active (running) since Thu 2015-10-16 20:48:57 JST; 36s ago Process: 2896 ExecStop=/etc/init.d/dhcpcd stop (code=exited, status=0/SUCCESS) Process: 3000 ExecStart=/etc/init.d/dhcpcd start (code=exited, status=0/SUCCESS) CGroup: /system.slice/dhcpcd.service mq3024 /sbin/dhcpcd Oct 16 20:48:57 raspberrypi dhcpcd[3000]: dhcpcd[3005]: forked to background...4 Oct 16 20:48:57 raspberrypi dhcpcd[3005]: forked to background, child pid 3024 Oct 16 20:48:57 raspberrypi systemd[1]: Started LSB: IPv4 DHCP client with I.... Oct 16 20:48:57 raspberrypi dhcpcd[3024]: ra0: rebinding lease of 192.168.0.152 Oct 16 20:48:57 raspberrypi dhcpcd[3024]: ra0: soliciting an IPv6 router Oct 16 20:49:02 raspberrypi dhcpcd[3024]: ra0: leased 192.168.0.152 for 4320...s Oct 16 20:49:02 raspberrypi dhcpcd[3024]: ra0: adding route to 192.168.0.0/24 Oct 16 20:49:02 raspberrypi dhcpcd[3024]: ra0: adding default route via 192....4 Oct 16 20:49:09 raspberrypi dhcpcd[3024]: eth0: no IPv6 Routers available Oct 16 20:49:09 raspberrypi dhcpcd[3024]: ra0: no IPv6 Routers available Hint: Some lines were ellipsized, use -l to show in full.
取得できていない場合は、以下のように dhclient をフォアグラウンド実行して状況を確認します。
root@raspberrypi:~# dhclient -d ra0 Internet Systems Consortium DHCP Client 4.3.1 Copyright 2004-2014 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/ra0/00:22:cf:ed:11:cd Sending on LPF/ra0/00:22:cf:ed:11:cd Sending on Socket/fallback DHCPREQUEST on ra0 to 255.255.255.255 port 67 DHCPACK from 192.168.0.254 bound to 192.168.0.158 -- renewal in 18949 seconds.
IP アドレスの取得に成功すれば上記のようなログが出ます。
Raspberry Pi 2 + kernel 4.1.6 で5GHz対応WifiドングルGW-450Dを動かした
http://neuralassembly.blogspot.jp/2015/09/raspberry-pi-2-kernel-416-5ghzwifigw.html
を参考に Raspbian で動かしている Raspberry Pi 2 で GW-450D を使えるようにします。
Raspberry Pi2のカーネルの再構築とGW-450Dを使えるようにする。
http://blog.mamemomonga.com/2015/02/raspberry-pi2gw-450d.html
Raspberry Pi 2+NOOBSでPlanexのGW-450D(802.11ac対応無線LANドングル)を使う
http://qiita.com/tsukaman/items/44abe042d2184c021b4b
Raspberry Pi 2でブートと同時にPLANEXのGW-450Dを自動的に起動させる
http://qiita.com/moutend/items/1fe67d1917ff25df198c
2015/10/29 初稿掲載