■Raspberry Pi‎ > ‎

GW-450Dで無線化

GTX-580が3画面出力出来ればこんなことする必要もなかったのだが
3つ目のモニターへの出力機としてまったく使っていないRaspberry Pi2を活用。
まぁ、特定のURLをブラウザー表示させておくだけだしね。
ただ、LAN環境が無い部屋(無線のみ)なのでラズパイがインターネットに繋げない。
そこで、デスクトップの空きLANポートとラズパイをLANで繋ぎ、そこからWindows側でブリッジ設定より
インターネットに出してみたが、配線の関係でケーブルが邪魔って事でラズパイを無線化。

調べたら、バッファローかプラネックスの製品が一般的に使われてる模様。
GW-450Dでの情報が入手しやすかったのでこちらを購入しました。
正直、プラネックスは嫌いなんですけどね・・・

大体のサイトがKernel 3系のものだったのですが4系について記載してる方が居られたので
そちらの手順で対応しました。
(ちなみにOSはRaspbianではなくUbuntu MATE 16で行いました)

■必要なパッケージをインストール
$ sudo apt-get update
$ sudo apt-get install gcc make bc screen libncurses5-dev

※注意、'ncurses-dev' の代わりに 'libncurses5-dev'になってました。
$ sudo rpi-update 
Kernel 4.1 → 4.4に変更
$ sudo reboot

■カーネルのソースを入手
$ uname -r
KernelのVersionを確認。-v7+がRaspberry Pi 2用って事らしいです。
$ cd /usr/src
$ sudo su
# git clone --depth 1 https://github.com/raspberrypi/linux.git -b rpi-4.4.y

ここでは、4.4.yにしてますが、https://github.com/raspberrypi/linux.gitのBranch:を見て
Kernelと合わせるようにしてください。
# git clone --depth 1 https://github.com/raspberrypi/firmware.git
# cd linux
# modprobe configs
# zcat /proc/config.gz > .config
# cp ../firmware/extra/Module7.symvers Module.symvers


■カーネルの再構築
make oldconfigでの、新しい設定項目確認はmで答えました。
ビルドは結構時間かかるので、実行して放置。

# make oldconfig
# make -j 4 zImage modules dtbs
# make modules_install
# cp arch/arm/boot/dts/*.dtb /boot/
# cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
# cp arch/arm/boot/dts/overlays/README /boot/overlays/
# cp /boot/kernel7.img /boot/kernel7.img.old
# scripts/mkknlimg arch/arm/boot/zImage /boot/kernel7.img
# reboot

■ドライバの入手
http://www.planex.co.jp/support/download/gw-450d/driver_linux.shtml
より、gw-450d_driver_linux_v3002.zipをダウンロードし、/usr/srcにコピーしておく。

■ドライバーのコンパイル
$ cd /usr/src
$ sudo su
# unzip gw-450d_driver_linux_v3002.zip
# cd gw-450d_driver_linux_v3002
# tar xf mt7610u_wifi_sta_v3002_dpo_20130916.tar.bz2
# cd mt7610u_wifi_sta_v3002_dpo_20130916
# wget https://raw.githubusercontent.com/neuralassembly/raspi/master/gw-450d/gw-450d-rpi-kernel41.patch
# patch -p0 < gw-450d-rpi-kernel41.patch
# make
# cp -p os/linux/mt7650u_sta.ko /lib/modules/4.4.xxx-v7+/kernel/drivers/net/wireless

※4.4.xxx-v7+は自分の環境に読み替えます。
# depmod -a
# mkdir -p /etc/Wireless/RT2870STA
# cp RT2870STA.dat /etc/Wireless/RT2870STA/RT2870STA.dat


■interfacesへ追加
# leafpad /etc/network/interfaces
(末尾に以下を記述)
allow-hotplug ra0
auto ra0
iface ra0 inet dhcp
wpa-ssid "your-ssid"
wpa-psk "your-passwd"

固定IPが不要なのでDHCPを使用。
この辺はDebianと同じなので固定方法は割愛。

■GW-450Dを接続
ラズパイの電源を切ってからGW-450Dを接続し
電源を投入するとデバイスのLEDが点滅しますのでこれでOK。

注意
LinuxでGW-450Dを使用する場合、ルータでステルスモードにしてると接続できない模様。
ここではまって悩んだ・・・
我が家は、AtermStation WR9500なのでセカンダリーSSIDが利用できるため
5GHzプライマリー:ステルス+MACフィルタ
5GHzセカンダリー:ステルス解除+MACフィルタ+ネットワーク分離(同一ネットワーク内の端末へ接続禁止)
って感じになんとなく設定しておいた。

参考:Neuralassemblyのメモ