タグ別アーカイブ: WiFi

Raspberry Pi 2でPlanex GW-450D その2

先の記事の手順で一応はWiFiを5GHzで利用できるようになりましたが、釈然としません。ということで、クロス環境を用意してみました。

詳細な手順はこちらのサイトに整理されているので再掲しません。私はVMWare上のDebian Wheezy 64bit環境に構築したのですが、カーネルのビルドは15分程度で済みました。注意点として、

  • toolsのgcc等を実行できない (コマンドを実行してもcommand not foundになる) 場合は libc6-i386 をインストール
  • libz.so.1がnot foundというエラーが出る場合はlib32z1をインストール
  • linaroのコンパイラはlibc6-2.14依存っぽいので素のWheezyでは使えないかも

の三点が挙げられます。また、特にカーネルオプションを変更しないのであれば、make menuconfigでなくoldconfigでもよいかも知れません(この場合はncurses-devが不要)。

もう一点、先の記事にも書きましたが、5GHzでも利用できるようにするにはRT2870STA.datのWirelessModeの値を5に変更する必要があります。これが9のままだと2.4GHzしか利用できません。

Raspberry Pi 2でPlanex GW-450D

Raspberry Pi 2 (以下RasPi2)を5GHzのWiFiに接続させる必要があったため、AmazonでPlanexのGW-450Dの簡易パッケージ版であるFFP-450Dを購入し、RasPi2で動作させてみました。

Planex自身がRasPi対応を謳っており、実際、ドライバの導入方法まで公開していたので安心して購入したのですが、いやはや、世の中そんなに甘くありません。rpi-updateでRasPi2のファームを最新に更新したのが原因か分かりませんが、この手順通りに作業すると最後のinsmodで Invalid module format のエラーが発生します。

軽く調べてみた感じでは、内部的なカーネルのバージョンが 3.18.7+-v7 だったり 3.18-7-v7+ だったりで、どうもカーネルのバージョンとinsmodしようとしたドライバ(モジュール)のバージョンが違うと判断されてしまうようです。

で、結局、カーネルのビルドからし直しました。この時はクロス環境を用意できなかったため、RasPi2の上でコンパイルしたのですが、4時間以上掛かりました。一応以下にざっくりとした手順を整理してみましたが、microSDの寿命も縮めるし、正直お勧めできません。

  1. GCCのバージョンを4.8に上げる (jessieから)
  2. GCCのデフォルトのバージョンを4.8に設定
  3. Linuxのソースコードを取得
  4. .config作成
  5. カーネルとモジュールのコンパイル、インストール、reboot
  6. ドライバのソースを編集
  7. ドライバをコンパイル
  8. /etc/wpa_supplicant/wpa_supplicant.confの編集
  9. /etc/Wireless/RT2870STA.datのWirelessModeを9から5に変更
  10. insmod
  11. ifup ra0

Raspberry Pi用に用意されているクロス環境を整えて、マシンパワーのある環境でクロスビルドした方がよいです。実際、私の開発PCで試したところ、4時間以上掛かったビルドが15分程度で完了しました。