kkAyatakaのメモ帳。

誰かの役に立つかもしれない備忘録。

RTL8192CUの使用

PandaBoard ES上のUbuntuでUSBの無線LAN子機を使う場合、個別にドライバを入れる必要があります。PLANEXのGW-USValue-EZは安い、小さいってことで使っている人が多く、情報も多いです。

PLANEXとしてLinux用ドライバを配布している訳ではないので、無線LANチップのドライバを入れます。使われているチップはネット検索すればだいたい見つかるんですが、PLANEXの製品はWindowsに入れてみれば確認することができます。

f:id:kkAyataka:20120316101313p:plain

チップが分かったらRealtekから必要なドライバをダウンロードします。このときLinuxカーネルのバージョンを確認します。アップデートをフルに行っているとカーネルのバージョンが上がるため、ミスマッチする場合があります。

ダウンロードが完了したら、解凍し、インストールスクリプトを実行します。

$ cd ~/Downloads/
$ unzip RTL819xCU_USB_linux_¥ v3¥[1¥].3.2_3192.zip 
$ cd RTL8188C_8192C_8192D_USB_linux_v3.3.2_3192.20120103/
$ sudo sh install.sh 

途中で選択肢が出ますが、8192CUの方を選んで続行。で、エラーが出ます。

...

make ARCH=armv7l CROSS_COMPILE= -C /lib/modules/3.0.0-1207-omap4/build M=/home/kkayataka/Downloads/RTL8188C_8192C_8192D_USB_linux_v3.3.2_3192.20120103/driver/rtl8188C_8192C_8192D_usb_linux_v3.3.2_3192.20120103  modules
make: *** /lib/modules/3.0.0-1207-omap4/build: No such file or directory.  Stop.
make: *** [modules] Error 2

...

これはカーネルのヘッダーをaptでとってくれば解決します。まずは現在のカーネルバージョンを確認。

$ uname -a
Linux panda-es-u 3.0.0-1207-omap4 #17-Ubuntu SMP PREEMPT Wed Feb 22 17:07:55 UTC 2012 armv7l armv7l armv7l GNU/Linux

「3.0.0-1207-omap4」らしいので、apt-get installでリストされるものからマッチするものを選んで、インストールします。

$ sudo apt-get install linux-headers-3.0.0-1207-omap4 

再度install.shを実行すると、次のエラーがでます。

Makefile:576: /usr/src/linux-headers-3.0.0-1207-omap4/arch/armv7l/Makefile: No such file or directory
make[1]: *** No rule to make target `/usr/src/linux-headers-3.0.0-1207-omap4/arch/armv7l/Makefile'.  Stop.
make[1]: Leaving directory `/usr/src/linux-headers-3.0.0-1207-omap4'
make: *** [modules] Error 2

いくつか対処方法があるようでしたがこの記事の方法が簡単でした。該当のMakefileを開いて、SRCARCHを直接書きます。

$ sudo vi /lib/modules/3.0.0-1207-omap4/build/Makefile 
...

SRCARCH         := $(ARCH)
SRCARCH         := arm #追加

...

この後再度スクリプトを実行すればビルドが成功してモジュールが読み込まれます。後はUSBポートに無線LANを差し込んでやれば認識して動作します。オンボードのものはろくに使っていないので正確な比較はできませんが、追加した無線LANはデスクトップ表示時点でちゃんと認識してつながります。