大阪近郊で活動するフリーランスエンジニアのブログです 技術情報とか趣味など

*

Raspberry Pi ZEROでGW-450D2(無線LANドングル)を使う

   

ZERO買っちゃった

Pimoroniで入荷しているのを見たのでRaspberry Pi ZEROを買ってしまいました。
5ドルで買えるコンピューターという触れ込みでしたが、単品は品切れで小物とのセットで24ユーロでした。

P_20160107_222630
名刺ケースと比較してこの大きさ。

P_20160107_222705
めちゃくちゃ小さいです。フリスクの箱にギリギリ入るとか入らないとか

ネットに繋ぐ

LANが内蔵されていないのでUSBのWifiドングルでネットに接続します。
どうせやるなら11acで接続したいということでPLANEXのGW-450D2を購入。

しかしUSBポートが1個しかない&有線LANが内蔵されていないのでハブとコネクタも購入。

まずは有線LANのみで設定を行います。

Raspbian Jessieをインストールする

セットでついてきたSDカードに入っているOSが古くて動かなかったので再インストール。
WindowsマシンでOSイメージをSDカードへ書き込みました。詳しくは参考サイトへ

ドライバのインストール

無線LANドングルのドライバをソースからコンパイルします。

準備

/etc/apt/sources.list を下記に書き換え

deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi

/etc/apt/preferences を新規作成

Package: *
Pin: release n=wheezy
Pin-Priority: 900

Package: *
Pin: release n=jessie
Pin-Priority: 300

Package: *
Pin: release o=Raspbian
Pin-Priority: -10

apt更新

sudo apt-get update
sudo apt-get upgrade

必要そうなビルドツールをインストール

sudo apt-get install autoconf libtool automake build-essential git bc -y

ドライバのコンパイル

基本的には参考サイトのコピペでOK。
カーネルのダウンロード辺りが上手くいかなかったので後述。

ncurses-devとgcc-4.8のインストール。

sudo apt-get install ncurses-dev -yq -t jessie
sudo apt-get install gcc-4.8 -yq -t jessie

gcc-4.8の優先度を変更。

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60

gccのバージョンを確認。

gcc --version | head -n 1
gcc (Raspbian 4.8.4-1) 4.8.4

MT7610U USB – MediaTekのソースをダウンロードし展開。

wget http://cdn-cw.mediatek.com/Downloads/linux/mt7610u_wifi_sta_v3002_dpo_20130916.tar.bz2
tar jxf mt7610u_wifi_sta_v3002_dpo_20130916.tar.bz2

修正パッチが用意されているので借用。

git clone https://gist.github.com/moutend/cb35a37297910c99d3e2 gist
./gist/patch.sh
patching file /home/pi/mt7610u_wifi_sta_v3002_dpo_20130916/os/linux/rt_linux.c
patching file /home/pi/mt7610u_wifi_sta_v3002_dpo_20130916/os/linux/config.mk
patching file /home/pi/mt7610u_wifi_sta_v3002_dpo_20130916/include/os/rt_linux.h
patching file /home/pi/mt7610u_wifi_sta_v3002_dpo_20130916/conf/RT2870STA.dat
patching file /home/pi/mt7610u_wifi_sta_v3002_dpo_20130916/common/rtusb_dev_id.c
Successfully done.

カーネルのダウンロード

参考サイトのやり方では上手く行かなかったので、rpi-sourceを使用。

sudo wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source -O /usr/bin/rpi-source && sudo chmod +x /usr/bin/rpi-source && /usr/bin/rpi-source -q --tag-update
rpi-source

ドライバのビルド

ようやくビルド。
かなり時間がかかるので待ちます。

cd ./mt7610u_wifi_sta_v3002_dpo_20130916/
sudo make
sudo make install

ビルドが完了したらドライバの読み込み。
4.1.13+の部分はカーネルのバージョンによります。

sudo insmod /lib/modules/4.1.13+/kernel/drivers/net/wireless/mt7650u_sta.ko

読み込みが終わったらチャンネルをスキャンして動作確認

sudo iwlist ra0 scan | grep GHz | sed 's/^ *//'

Frequency:2.412 GHz (Channel 1)
Frequency:2.442 GHz (Channel 7)
Frequency:2.462 GHz (Channel 11)
Frequency:5.18 GHz (Channel 36)
Frequency:5.58 GHz (Channel 116)

Wi-fi設定

無線の接続とIPアドレスを固定する
Jessieからお作法が変わっているらしく、少し戸惑った。

/etc/network/interfaces を修正

auto lo
iface lo inet loopback
iface eth0 inet dhcp

auto ra0
allow-hotplug ra0

iface ra0 inet manual
pre-up sh -c "sleep 5"
wpa-roam /etc/wpa_supplicant/ra0.conf

iface default inet dhcp

/etc/dhcpcd.conf に追記
静的アドレスの設定もここに書くらしい。

interface ra0
static ip_address=192.168.1.90/24 #自分のIPアドレス
static routers=192.168.1.1 #デフォルトゲートウェイ
static domain_name_servers=192.168.1.1 #DNS

Wi-fiの接続設定
/etc/wpa_supplicant/ra0.conf を新規作成する

wpa_passphrase SSID PATHPHRASE | grep -v '#.*$' | sudo tee -a /etc/wpa_supplicant/ra0.conf

作成できたか確認

sudo cat /etc/wpa_supplicant/ra0.conf
network={
        ssid="SSID"
        psk=5d88239ed5d1203ddf3a6b30243ee1c95244392d50f62e0b26265628c4bd42ff
}

再起動

sudo reboot

再起動が終わったら有線を外してip確認

ifconfig
lo        Link encap:ローカルループバック  
          inetアドレス:127.0.0.1 マスク:255.0.0.0
          inet6アドレス: ::1/128 範囲:ホスト
          UP LOOPBACK RUNNING  MTU:65536  メトリック:1
          RXパケット:0 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:0 エラー:0 損失:0 オーバラン:0 キャリア:0
      衝突(Collisions):0 TXキュー長:0 
          RXバイト:0 (0.0 B)  TXバイト:0 (0.0 B)

ra0       Link encap:イーサネット  ハードウェアアドレス 00:22:cf:f6:2c:f2 
          inetアドレス:192.168.1.90 ブロードキャスト:192.168.1.255  マスク:255.255.255.0
          inet6アドレス: fe80::222:cfff:fef6:2cf2/64 範囲:リンク
          inet6アドレス: 2001:a43d:2133:0:67d0:5c02:4b0:3788/64 範囲:グローバル
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:54661 エラー:0 損失:7 オーバラン:0 フレーム:0
          TXパケット:5074 エラー:0 損失:0 オーバラン:0 キャリア:0
      衝突(Collisions):0 TXキュー長:1000 
          RXバイト:26052075 (24.8 MiB)  TXバイト:488880 (477.4 KiB)

無線の接続状況を確認

iwconfig ra0
ra0       Ralink STA  ESSID:"SSID"  Nickname:"MT7610U_STA"
          Mode:Managed  Frequency=5.18 GHz  Access Point: A4:12:42:68:67:33   
          Bit Rate=135 Mb/s   
          RTS thr:off   Fragment thr:off
          Link Quality=100/100  Signal level:-56 dBm  Noise level:-84 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

何とか無線でインターネットに接続できるようになりました。
疲れた・・・

 - Raspberry Pi, プログラミング, 備忘録 ,

  • このエントリーをはてなブックマークに追加
  • にほんブログ村 観賞魚ブログ 金魚へ

Comment

  1. […] ・Raspberry Pi ZEROでGW-450D2(無線LANドングル)を使う ・Automatically connect a Raspberry Pi to a Wifi […]

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

Sangoのメッセージ数について聞いてみた

メッセージ数が足りない! 金魚水槽のページやトップページからライトを点灯するのに …

Raspberry Pi2で室温、水温を計測してグラフ表示する その2

前回でRaspberry PiからさくらVPSへ計測したデータを飛ばして登録でき …

Raspberry Pi ZERO + L-03D + IIJmioを使ってネットに接続する

野外のソーラーパネル&ラズパイからネットに繋ぎたい ソーラーパネルで給 …

Raspberry Pi2に2台のカメラを繋いで同時配信する

水槽増えたんだけどまたパイ買うの? 先日新しく45cm水槽を買いまして買ったなら …

Raspberry Pi2でリモコンを使って水槽の照明をつける

リモコン操作で照明をつける Web上からRaspberry Pi2で水槽の照明を …

Raspberry Pi2でPlanexのGW-450Dが動かなくなった

Raspberry Pi2上で何も考えずソフト類をアップグレードしたらカーネルの …

Raspberry Pi2でプラ船のカメラを動かす

カメラの首振り プラ舟内に設置しているカメラにサーボを取り付けて遠隔からカメラの …

エサやりボタン復活しました

遠隔エサやりボタン 春になってきたので冬の間ストップしていたエサやりボタンを復活 …

RaspberryPi2で動画配信しながら写真も撮りたい

金魚デカくなった? 金魚にエサやってると4月の初頭から飼い始めた琉金が1周り大き …

Raspberry Pi2で水槽のLEDを自動点灯/消灯する

先日Raspberry Pi2を購入し、自宅からのストリーミング配信する為あれこ …