大事なこと
ドングル型無線LANアダプタだと給電性能が足らずに安定稼働しないため、現在は使っていません。
ではどうぞ
hubotをRaspberry Piに乗っけてプロジェクトのアレやコレをつぶやかせてやろうとワクワクしてRaspberry Piを買った。Raspberry Piを初めて触っているので、こじ研さんのページを参考にセットアップしていた。こじ研さんのページには無線LANのドングルを適当に買って来ればつながるんじゃないか?と書かれていたので、Elecom WDC-150SU2Mを買ってみて楽しみに挿してみたらウンともスンとも言わない。1000円の買い物なのでそれほど高い買い物ではないけど、なんか悔しい。いろいろ調べたら動作させられたのでまとめておく。
やったこと
- Raspbianの更新
- kernel headerのビルド
- 無線LANアダプタドライバのソースコード入手&ビルド
実際にやったのはこの逆順なのだけど(^_^;) では見ていこう。
Raspbianの更新
僕はRaspberry PiにOSを準備するのにNOOBSを利用し、Raspbianをインストールした。NOOBSを使うとRaspbian以外のOSも選択できる。けど、カメラモジュールが使いたいので、たぶん他のOSは使わないと思う。
さて、Raspbianを更新するには下記のコマンドを実行する。
sudo rpi-update
Raspbianは結構な頻度で更新されているらしく、公開されている2014/6/20以降にも更新があったようで、上記のコマンドを実行すると更新された。Raspberry Piのファームウェアもアップデートできた。
kernel headerのビルド
ドライバをソースコードからビルドするにはヘッダーファイルが必要になる。だが、Raspberry Piのフォーラムによると、Raspbianは容量を抑えるため、パッケージリポジトリにもkernel headerのパッケージを用意しておらず、ソースコードからヘッダーを作成しなければならないとのこと。手順をまとめる。まずRaspberry Piのソースコードを取得し、展開する。
sudo bash
cd /usr/src
wget https://github.com/raspberrypi/linux/tarball/rpi-3.12.y
tar xzf rpi-3.12.y
rpi-3.12.y
というのは、GitHubに公開されているブランチ名。ダウンロード時に必要があれば変更する。続いてモジュールのビルドを行う準備を行う。
cd raspberrypi-linux-*
zcat /proc/config.gz > .config
make oldconfig
make modules_prepare
wget https://github.com/raspberrypi/firmware/raw/master/extra/Module.symvers
最後にダウンロードしてきたのは、新しいカーネルをビルドするときに必要なものらしく、誰かがビルドしたものがfirmwareのリポジトリにあるので、持ってきておくといいらしい。ここまでできれば後はシンボリックリンクを貼る。
KSRC=`pwd`
pushd /lib/modules/`uname -r`
ln -s ${KSRC} source
ln -s ${KSRC} build
popd
pushd /usr/src
ln -s ${KSRC} linux-`uname -r`
ln -s ${KSRC} linux
popd
uname -r
は動作中のlinux kernelのバージョン。pushdをする時にうまくいかないことがあるので、その時は予めこのコマンドでバージョンを調べておき、実行時に置換する。これでkernel headerを利用できる準備が整った。
無線LANアダプタドライバのソースコード入手&ビルド
Elecom WDC-150SU2Mは、Realteckの8188euというチップを使っているらしい。Raspberry Pi用にドライバを作成されている方がいるので、その方のリポジトリをcloneし、ビルドする。gitは標準でRaspbianに含まれている。
git clone https://github.com/lwfinger/rtl8188eu
cd rtl8188eu
make all
sudo make install
さっきElecom WDC-150SU2Mに対応するpull requestを投げてみたけど、マージされていないようならkompiroのリポジトリからcloneしたほうが確実かもしれない。(ただし、カーネルのバージョンが上がるとヘッダーの内容が変わることがあるようで、動作しないことがあるかも。早くマージされると助かる。)