linuxマシンのルータ化 その1 NICドライバのインストール

 普通に使う分には市販のブロードバンドルータでも十分ですが、ネットワークの実験をする際にはDMZ等の設定の機能が不十分と感じました。そこで、Linuxが入ったノートPCのThinkPad T30をルータ化させようと思います。

Step0 検証環境

利用マシン ThinkPad T30
利用OS CentOS 6.3
カーネル 2.6.32-279.el6.i686

Step1 ドライバに関する情報の入手

 ルータとして使うには、NICが2枚ほしいところです。しかし、ノートPCには1枚しかNICがありません。そこでUSB経由の外付けNICを認識させます。

 今回買ったのは、LAN-GTJU3です。完全に勢いで買いました。本来WindowsもしくはMAC用なので、Linuxで認識してくれるかは完全に不明です。

 まずドライバをマシンに入れなくてはなりません。lsusbコマンドや/var/log/messagesファイルを見たのですが、必要なドライバに関する情報が手に入りません。そこで方針を変えてWindowsに差してみました。

 どうやらAX88179らしいです。ASIX Electronics Corpのホームページからドライバを落としてきます。それをコンパイルします。Linux kernel 2.6.14 以降から利用可能らしいので、利用できるはずです。

Step2 ドライバのダウンロード&コンパイル

[root@new-host ~]# mkdir AX88179
[root@new-host ~]# cd AX88179/
[root@new-host AX88179]# wget http://www.asix.com.tw/FrootAttach/driver/AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE.tar.bz2
--2013-03-10 23:18:19--  http://www.asix.com.tw/FrootAttach/driver/AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE.tar.bz2
www.asix.com.tw をDNSに問いあわせています... 113.196.140.82, 210.243.224.51
www.asix.com.tw|113.196.140.82|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 13920 (14K) [application/x-tar]
`AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE.tar.bz2' に保存中

100%[======================================>] 13,920      63.6K/s 時間 0.2s

2013-03-10 23:18:19 (63.6 KB/s) - `AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE.tar.bz2' へ保存完了 [13920/13920]
[root@new-host AX88179]# ls
AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE.tar.bz2
root@new-host AX88179]# tar jxvf AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE.tar.bz
2
AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE/
AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE/asix.h
AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE/Makefile
AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE/ax88179_178a.c
AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE/readme
[root@new-host AX88179]# ls
AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE
AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE.tar.bz2
[root@new-host AX88179]# cd AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE
[root@new-host AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE]# ls
Makefile  asix.h  ax88179_178a.c  readme
[root@new-host AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE]# make
make -C /lib/modules/2.6.32-279.el6.i686/build SUBDIRS=/root/AX88179/AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE modules
make[1]: ディレクトリ `/usr/src/kernels/2.6.32-279.el6.i686' に入ります
  CC [M]  /root/AX88179/AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE/ax88179_178a.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /root/AX88179/AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE/ax88179_178a.mod.o
  LD [M]  /root/AX88179/AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE/ax88179_178a.ko.unsigned
  NO SIGN [M] /root/AX88179/AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE/ax88179_178a.ko
make[1]: ディレクトリ `/usr/src/kernels/2.6.32-279.el6.i686' から出ます

特に問題なくダウンロードからコンパイルまで完了しました。

Step3 ドライバのインストール

この後は、先ほど作成したax88179_178a.koをインストールします。ライブラリにコピーして依存関係の解消です。

[root@new-host AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE]# cp ax88179_178a.ko /lib/modules/2.6.32-279.el6.i686/kernel/drivers/net/usb/
[root@new-host AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE]# depmod -a
[root@new-host AX88179_178A_LINUX_DRIVER_v1.3.0_SOURCE]# chmod +x /lib/modules/2.6.32-279.el6.i686/kernel/drivers/net/usb/ax88179_178a.ko

Step4 動作確認

 この後外付けUSBを差し込んだ状態で再起動すると、無事に外付けNICが認識されて、DHCPIPアドレスが割り振られ通信ができました。Linuxでも10分足らずの作業で利用できるようになりました!思ったよりもずっと簡単です。