Mac mini上で稼働させているubuntu10.10 serverのpgpool-IIを pacemakerで冗長化させる為に、NICがあと2つ必要になった。
けど、Mac miniはUSBタイプのNICじゃないと物理的に無理。

色々探してみるとBuffaloのLUA3-U2-AGTってやつだとドライバの追加なしで使えそうだったため、2つ購入。

結論から言うと、カーネルに標準で入っているドライバだと認識はちゃんと出来てIPアドレスも設定出来たけど、
pingさえ通らない状態。。。
メーカーサイトから最新のドライバをインストールしたらちゃんと動いた。

まずはベンダIDなどを確認してみる。

% lsusb
Bus 001 Device 003: ID 0411:006e MelCo., Inc.

ベンダIDは04111。プロダクトIDは006e。MelCo製と認識されている。

lsusbコマンドでNICのチップがわからなかったので、/var/log/messagesを確認すると、

eth1: register 'asix' at usb-0000:00:04.1-1, ASIX AX88178 USB 2.0 Ethernet, 00:24:a5:68:5f:52

asixのax88178というやつみたい。

ググると以下のサイトがヒット。Linux用のドライバ発見!
http://www.asix.com.tw/products.php?op=pItemdetail&PItemID=84;71;100&PLine=71

2011/03/15にリリースされたv4.1.0が「For Android 1.x/2.x/3.0, Linux kernel 2.6.14 and later」となっている。

早速インストールしてみる。

% cd /usr/local/src
% sudo wget http://www.asix.com.tw/FrootAttach/driver/AX88772B_772A_760_772_178_LINUX_Driver_v4.1.0_Source.tar.bz2
% sudo tar xvfj AX88772B_772A_760_772_178_LINUX_Driver_v4.1.0_Source.tar.bz2
% cd AX88772B_772A_760_772_178_LINUX_Driver_v4.1.0_Source/
% sudo modprobe -r asix
% sudo make
% sudo make install
% sudo modprobe asix
% sudo reboot

とやってみたけど、ダメ。。。なんで!?

どうやらソースのベンダID、プロダクトID、チップIDあたりの定義を追加しないとダメみたい。

% sudo cp -ip asix.c asix.c.org
% sudo vim asix.c
% sudo modprobe -r asix
% sudo make clean
% sudo make
% sudo make install
% sudo modprobe asix
% sudo reboot

これでOK。
asix.cの修正箇所は、

% diff asix.c asix.c.org
3375,3378d3374
<       // Buffalo LUA3-U2-AGT
<       USB_DEVICE (0x0411, 0x006e),
<       .driver_info =  (unsigned long) &ax88178_info,
< }, {

です。
0x04111がベンダID。0x006eがプロダクトID。チップがax88178。

補足として、モジュール関連のコマンド。

・ロードされているモジュールの一覧を表示する

% lsmod

・モジュールの情報を参照する

% modinfo モジュール名

・モジュールをロードする

% modprobe モジュール名

・モジュールをアンロードする

% modprobe -r モジュール名