2008年 11月 29日 土曜日
Messages in cipher reflected in the looking glass
(JA) USB-Gigabit on CentOS 5.2
個人で所有しているノートPCの1台(49,800の安物^-^;)に搭載のEthernetは
Gigabit Ethernetだと思っていたのですが、
実は Fast Ethernet (100Mbps) だったというオチがありました。orz
それで、どうしてもGigabit環境が欲しかったので、USB Gigabit を導入してみました。
USBの最高速が 480Mbps なので、 Gigabit のフルスピードは出ませんが、
Fast Ethernet よりは出るだろうということで。
今回買ってみたのは Buffalo LUA2-U2-KGT です。
このPCには CentOS 5.2 をインストールしているのですが、標準では認識しないので
ドライバをインストールしてみました。
Fedora 10 とか Ubuntu 8.10 とか最新の Linux では不要です。
(既に上記のデバイスがそのまま使えるようになっています。)
このUSB-Gigabitは AX88178 を使っているらしいです。
LinuxのカーネルにはAX8817*系のドライバが組み込んであるのですが、
AX88178に対応しているのは 2.6.19 以降でした。
CentOS 5.2 は 2.6.18 なので、対応していないようです。
ということで、kernel 2.6.19 からこのドライバをいれるという方法を取りました。
(一応、バージョンが近いものを利用するということで。)
まず、kernel.org から linux-2.6.19.tar.gz をダウンロードし、解凍。
linux-2.6.19/drivers/usb/net/asix.c を編集し、LUA2-U2-KGT の情報を追加します。
(下記は現時点での最新カーネル 2.6.27.7 から引用。
LUA2-U2-KGT も LUA-U2-GT も中身が同じです。
// Buffalo LUA-U2-GT 10/100/1000
USB_DEVICE (0x0411, 0x006e),
.driver_info = (unsigned long) &ax88178_info,
}, {
ここではデバイス情報を登録しているのですが、
デバイス情報は lsusb で確認できたりします。
Logitech(Logicool) の VX Revolution を使っているのですが、CentOS は
MX610 だと認識してますが…。^-^;
# lsusb Bus 003 Device 001: ID 0000:0000 Bus 004 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 Bus 001 Device 003: ID 0411:006e MelCo., Inc. Bus 006 Device 001: ID 0000:0000 Bus 005 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 002 Device 002: ID 046d:c518 Logitech, Inc. MX610 Laser Cordless Mouse
あとは、ビルドです。下記のような感じで行えば、最小限のビルドで済みますので、
すぐにビルドできます。ビルド後、asix.ko, usbnet.ko を /lib/modules にコピーし、ロード。
ドライバのビルド # cd linux-2.6.19/drivers/usb/net/ # make -C /lib/modules/`uname -r`/build SUBDIRS=`pwd` modules ドライバのコピー # cp asix.ko usbnet.ko /lib/modules/`uname -r`/drivers/usb/net/. ドライバのロード # modprobe asix # modprobe usbnet
その後、デバイスを登録すれば起動時に認識するようになります。
下記は dmesg の該当部分を抜き出してみたところです。
eth0: Generic Marvell Yukon chipset Ethernet device
PrefPort:A RlmtMode:Check Link State
usbnet: no version for "struct_module" found: kernel tainted.
eth0: register 'asix' at usb-0000:00:13.5-3, ASIX AX88178 USB 2.0 Ethernet,
usbcore: registered new driver asix
eth0: link down
eth0: link up, 1000Mbps, full-duplex, lpa 0xC5E1
Posted at 02:38午前 11 29, 2008 by Yasuhiro Fujitsuki in Linux & Solaris |