Ubuntu 14.04(Kernel 3.13)にPLANEXの無線LAN子機GW-900Dのドライバをインストール
昨年から、Ubuntu 12.04の入ったデスクトップ端末は、無線LAN子機でネットに繋いでおりました。
ただ、最近になって大分環境も汚くなってきたので、OSを再インストールしよう。 そしてついでに、Ubuntuを14.04にアップグレードしよう。
そう思ったのが事の始まりでした。
子機のドライバが入らねぇ…、ネットに繋がらねぇ… orz
PLANEXの最新ドライバでチャレンジ
公式サイトからLinux用ドライバ(v4.2.5)をダウンロードし、install.shを実行。
しかし、以下のエラー。
$ cd /work/RTL8812AU_linux_v4.2.5_10640.20140303 $ sudo sh install.sh #〜〜〜 省略 〜〜〜 make ARCH=arm CROSS_COMPILE=/usr/src/bin/arm-none-linux-gnueabi- -C /usr/src/Mstar_kernel/3.1.10/ M=/work/RTL8812AU_linux_v4.2.5_10640.20140303/driver/rtl8812AU_linux_v4.2.5_r10640.20140303 modules make: *** /usr/src/Mstar_kernel/3.1.10/: そのようなファイルやディレクトリはありません. 中止. make: *** [modules] エラー 2
Mstar_kernel
という、まったく身に覚えのないディレクトリ^^;
Googleで検索するも、7件しかヒットせず完全にお手上げ状態…。
しかし有線接続は、部屋の配置的にまず不可能。諦めるわけにはいきません。
PLANEXのやや古いドライバでチャレンジ
そこで、たまたまドライブに残っていたv4.2.3のドライバを、ダメ元で試してみました。
するとさっきとはまた異なるエラーが発生。
$ cd /work/RTL8812AU_linux_v4.2.3 $ sudo sh install.sh #〜〜〜 省略 〜〜〜 /work/RTL8812AU_linux_v4.2.3/driver/rtl8812AU_8821AU_linux_v4.2.3_8123.20130705/os_dep/linux/os_intfs.c:355:3: error: implicit declaration of function ‘create_proc_entry’ [-Werror=implicit-function-declaration] rtw_proc=create_proc_entry(rtw_proc_name, S_IFDIR, init_net.proc_net); 〜〜〜 省略 〜〜〜 make: *** [modules] エラー 2
こちらのサイトによると、Linuxカーネル3.10から使えなくなってる関数があるとのこと。
だからUbuntu 12.04では何事もなく上手く行っていたのですね、ふむふむ。
GitHubの最新のソースでチャレンジ
PLANEXのinstall.shの中身を見ると、何の事はない、driverディレクトリに入っているオープンソースのドライバを、ソースからビルドしているだけでした。
もしかして最新ならきちんと対応されているかも。ということで、GitHubから最新ソースをダウンロードして再チャレンジ。
対象のGitHubのページはこちら。
PLANEXのinstall.shは、driverディレクトリ内に存在するtar.gzファイルを解凍し、makeを開始する仕組みですが、*.tar.gz
とワイルドカードでアクセスしているため、拡張子さえ一致していれば、ファイル名は何でも良いようでした。
その特性を利用し、driverディレクトリのソースを差し替えて、install.shを実行します。
$ cd /work/RTL8812AU_linux_v4.2.5_10640.20140303/driver $ rm rtl8812AU_linux_v4.2.5_r10640.20140303.tar.gz #元のドライバを削除 $ wget https://github.com/gnab/rtl8812au/archive/master.zip $ unzip master.zip $ rm master.zip $ tar cfvz rtl8812au-master.tar.gz rtl8812au-master --remove-files $ cd .. $ sudo sh install.sh
これで無事にインストール完了!