[[Raspberry Pi]]~
[[Raspbian]]~

#contents


*Raspberry Pi 2 で Planex GW-450D を使う(セルフコンパイル) [#n2c8e69a]

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 のドライバーをビルドします。

**source 入手 [#wb717ff6]
planex のサイトからドライバーのソースコードを入手します。~
http://www.planex.co.jp/support/download/gw-450d/driver_linux.shtml~
使用許諾の同意確認があり直接ダウンロードするリンクがないので、wget などで Raspbian 上に直接ダウンロードできません。~
PC のブラウザでダウンロードしておいて scp などで Raspberry Pi 2 上にコピーします。

**展開 [#h7c2ff61]
ソースコードアーカイブを展開します。~
zip の中に tar で固められたドライバーのソースコード本体があります。
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/

**patch [#i95e0b35]
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

**ビルド [#xc3d90de]
ビルドします。~
正常に完了すると 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# make
 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

**インストール [#pe712014]
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

**設定ファイルの配置 [#y452055c]
ドライバーの設定ファイルを置くディレクトリを作成し設定ファイルを配置します。

 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/

**load 確認 [#c40c8b7a]
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.


**ネットワーク設定 [#x43319fe]
/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"

**設定ファイルの編集 [#ifa05280]
認証方式や暗号化方式は 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~
に書かれています。


**再起動 [#m7367bb4]
設定を完了して再起動すると、以下のように 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.

**トラブルシュート [#ce0dcb84]
接続がうまくいかない場合は、/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 アドレスの取得に成功すれば上記のようなログが出ます。



**参考先行例 [#dff929f6]
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~


* 更新履歴 [#ke5d7093]
2015/10/29 初稿掲載 ~

RIGHT:Satoshi OTSUKA



BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   新規 一覧 単語検索 最終更新   最終更新のRSS