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

*

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, プログラミング, 備忘録 ,

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

Message

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

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

  関連記事

Raspberry Pi ZEROをソーラーパネルで動かす

ソーラーパネルでラズパイ! 以前からソーラーパネルを使って電源の要らないRasp …

エサやりボタンを撤去しました

寒い! 寒くなってきましね。 水温を10度を切り始めたので、プラ舟ページに配置し …

プラ舟はじめました

プラ船買っちゃった 金魚にだだハマりなGW ついにプラ船買ってガレージに設置して …

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

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

Raspberry Pi2で外部から水槽のLEDを点灯する その2

前回でひとまずさくらVPS上のPHPから自宅水槽のLED照明をONにできるように …

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

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

プラ舟のカメラ復活しました

カメラの首振りができなくなっていた プラ船のカメラが横方向に動かなくなっていたの …

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

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

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

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

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

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