2010/01/15(Fri)Debian4にPLANEX GU-1000Tを認識させる方法

2010/01/15 23:05 Software::Linux
この記事もまた、別にDebian 4.0/etchに限ったことではないが、別途ドライバが必要なUSB接続Gigabit有線LANポートを認識させる方法のメモ。
だいぶKernel Moduleの扱い方が分かってきた気がする。

初期状態

とりあえずデバイスとしては見えている。
lspci
06:08.0 Ethernet controller: Intel Corporation Unknown device 1093 (rev 02)
lsusb
Bus 005 Device 003: ID 0b95:1780 ASIX Electronics Corp.

ドライバ

メーカーから提供されているWindowsのドライバを確認すると、中身はASIXのAX88178というチップを使っていることが分かるので、ASIX AX88178ドライバを取り寄せる。
"Linux 2.6.31"と書いてあるAX88772A_760_772_178_LINUX2.6.31_Driver_v2.5.0_Source.zipをダウンロードする。

コンパイル

$ wget http://www.asix.com.tw/FrootAttach/driver/AX88772A_760_772_178_LINUX2.6.31_Driver_v2.5.0_Source.zip
$ unzip AX88772A_760_772_178_LINUX2.6.31_Driver_v2.5.0_Source.zip
$ cd AX88772A_760_772_178_LINUX2.6.31_Driver_v2.5.0_Source/
$ make
とやると、山ほどエラーが出てきた。
あぁ、カーネルソースをきちんと参照できていないらしい。

Debian4にIntel PCI-E GbEを認識させる方法でやった時のようにlinuxのカーネルソースを準備する。
具体的には、kernel.orgからダウンロードしたソースファイルを展開し、
$ make oldconfig
$ make prepare
$ make modules_prepare
までやればよい。

その後、一点Makefileを修正。
- KDIR   = /lib/modules/$(CURRENT)/build
+ KDIR   = /lib/modules/$(CURRENT)/source
カーネルソースへのシンボリックは、この環境の場合buildじゃなくてsourceだったから。

再度make。
$ make
make -C /lib/modules/linux-image-2.6.16.5/source SUBDIRS=/home/kero/Desktop/AX88772A_760_772_178_LINUX2.6.31_Driver_v2.5.0_Source modules
make[1]: ディレクトリ `/lib/modules/linux-image-2.6.16.5/source' に入ります

  WARNING: Symbol version dump /lib/modules/linux-image-2.6.16.5/source/Module.symvers
           is missing; modules will have no dependencies and modversions.

  CC [M]  /home/kero/Desktop/AX88772A_760_772_178_LINUX2.6.31_Driver_v2.5.0_Source/asix.o
  Building modules, stage 2.
  MODPOST
  CC      /home/kero/Desktop/AX88772A_760_772_178_LINUX2.6.31_Driver_v2.5.0_Source/asix.mod.o
  LD [M]  /home/kero/Desktop/AX88772A_760_772_178_LINUX2.6.31_Driver_v2.5.0_Source/asix.ko
make[1]: ディレクトリ `/lib/modules/linux-image-2.6.16.5/source' から出ます
というわけで、出来たので、
$ sudo make install
su -c "cp -v asix.ko /lib/modules/linux-image-2.6.16.5/kernel/drivers/usb/net && /sbin/depmod -a"
`asix.ko' -> `/lib/modules/linux-image-2.6.16.5/kernel/drivers/usb/net/asix.ko'

ロード

readmeにも書いてあるのでそれを参考にしつつ。
$ sudo modprobe usbnet
$ sudo insmod asix.ko
$ sudo modprobe asix
$ sudo ifconfig eth2 up
で使えるようになった。
めでたしめでたし。