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

*

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

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

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

  関連記事

RaspberryPi2を使ったリモートのエサやりボタン復活しました

春がきた 春になり水温が上がってきたのでプラ舟ページのエサやりボタンを復活させま …

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

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

Raspberry Pi2を使ってリモートで餌やりをする

ブログからガレージの金魚にエサをやる 以前からやろうやろうと先延ばしにしてたエサ …

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

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

ベランダ水槽の配信ページを追加しました

配信ページ追加 先日ベランダに引っ越した穂竜たちの配信ページを追加しました。 ベ …

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

前回で自宅のラズパイ側の準備が整ったので今回はWeb上から電灯のON/OFFをす …

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

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

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

Raspberry Pi2に水温計と温度計を取り付け、10分ごとに室温と水温を計 …

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

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

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

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