Kenichi Maehashi's Blog

脳内コアダンプ

RSS
Category: Linux
CentOS 5.5 でも、5.4 に引き続き asix.ko モジュールが壊れているようで、インタフェースとしては認識するもののパケットを受信することができません。
対策として、ASIX からリリースされている公式のドライバをインストールします。
また、CentOS の kernel-headers に付属の usbnet.h が(何故か)空ファイルなので、こちらも手動で持ってくる必要があるようです。

以下、全部コピー & ペーストすれば動きます。
# ASIX AX88178 Driver - http://www.asix.com.tw/download.php?sub=driverdetail&PItemID=84
DRIVER_NAME=AX88772A_760_772_178_LINUX2.6.31_Driver_v2.5.0_Source
KERNEL_VERSION=linux-2.6.18

mkdir -p /usr/local/src/ax88178
cd /usr/local/src/ax88178
wget "http://www.asix.com.tw/FrootAttach/driver/${DRIVER_NAME}.zip"
unzip ${DRIVER_NAME}.zip
cd ${DRIVER_NAME}

wget "http://www.jp.kernel.org/pub/linux/kernel/v2.6/${KERNEL_VERSION}.tar.bz2"
tar xjfo ${KERNEL_VERSION}.tar.bz2 ${KERNEL_VERSION}/drivers/usb/net/usbnet.h
mv ${KERNEL_VERSION}/drivers/usb/net/usbnet.h .
rm ${KERNEL_VERSION} -rf

cp -a asix.c asix.c.orig
patch << '_EOF_'
--- asix.c.orig 2008-11-06 18:17:36.000000000 +0900
+++ asix.c 2009-12-16 16:18:44.000000000 +0900
@@ -40,16 +40,16 @@
#include <linux/crc32.h>

#include "asix.h"
-//#include "usbnet.h"
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
-#include <../drivers/usb/net/usbnet.h>
-#else
-# if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
-#include <../drivers/net/usb/usbnet.h>
-#else
-#include <linux/usb/usbnet.h>
-#endif
-#endif
+#include "usbnet.h"
+//#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
+//#include <../drivers/usb/net/usbnet.h>
+//#else
+//# if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
+//#include <../drivers/net/usb/usbnet.h>
+//#else
+//#include <linux/usb/usbnet.h>
+//#endif
+//#endif

/* ASIX AX8817X based USB 2.0 Ethernet Devices */
_EOF_

make
rmmod asix
make install
modprobe asix
カーネルをアップデートすると今回コンパイルした asix.ko は使えなくなりますので、yum で kernel パッケージを更新しても grub.conf の default を現在使用している kernel のままにする設定をしておきます。これは /etc/sysconfig/kernel ファイルの UPDATEDEFAULT パラメータを yes から no に変更するだけです。
本来であれば weak-module にしたいのですが、CentOS 自体に(壊れた) asix.ko が含まれているため、weak-update することができません。なにかうまい方法あれば教えてください。

Comments

2010/08/06
情報ありがとう。助かりました。
ただ、カーネルソースのURL変わってますね。
wget "http://www.jp.kernel.org/pub/linux/kernel/v2.6/${KERNEL_VERSION}.tar.bz2"
2010/08/08
お役に立ったようで良かったです。
URL 変更のご指摘ありがとうございます、記事を訂正しました。
Leave Yours...
Name:
E-mail / URL (optional):
Comment:
Are You Robot?: