CentOS 6.5 に AX88179 (USB 3.0 to GbE NIC) のドライバを突っ込む

(2016-08-25 追記) 朗報:CentOS7 だとデフォルトで AX88179 を認識してくれます。
$ lsmod
(略)
usbnet                 43956  1 ax88179_178a
mii                    13934  2 usbnet,ax88179_178a
(略)

これで kernel 更新されたら認識しなくなってパニック、というのが無くなる。。。
※別バージョン kernel 用のカーネルモジュールをビルドする方法、だれか教えて…

以下元の文


CentOS 6.5 に AX88179 (USB 3.0 to GbE NIC) のドライバを突っ込むには(2014-04-12 時点)

USB NIC には 玄人指向の GBE-USB3.0S (aff) を使ってます。
商品ページで使用チップがAX88179と書いてあるので助かりますねー)

kernel は 2.6.32-431.11.2.el6.x86_64 (現時点最新)

$ uname -a
Linux (snip) 2.6.32-431.11.2.el6.x86_64 #1 SMP Tue Mar 25 19:59:55 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

以下 root で作業するけど勘弁ね。
まず下準備。

# yum install gcc kernel-devel
(snip)
Installed:
  kernel-devel.x86_64 0:2.6.32-431.11.2.el6

Complete!
#

ASIX のサイトからドライバのソースをダウンロードする。
AX88179 - USB 3.0 to Gigabit Ethernet (GbE,GigE) | ASIX
の下の方にある、

Linux kernel 3.x/2.6.x Driver V1.9.0 2014-01-02 For Android 1.x/2.x/3.x/4.x, Linux kernel 2.6.14 and later

がドライバ。

ドライバをダウンロードして展開。

# wget http://www.asix.com.tw/FrootAttach/driver/AX88179_178A_LINUX_DRIVER_v1.9.0_SOURCE.tar.bz2
# tar jxf AX88179_178A_LINUX_DRIVER_v1.9.0_SOURCE.tar.bz2
# cd AX88179_178A_LINUX_DRIVER_v1.9.0_SOURCE

make & make install

# make
make -C /lib/modules/2.6.32-431.11.2.el6.x86_64/build SUBDIRS=/root /AX88179_178A_LINUX_DRIVER_v1.9.0_SOURCE modules
make[1]: ディレクトリ `/usr/src/kernels/2.6.32-431.11.2.el6.x86_64' に入ります
  CC [M]  /root/AX88179_178A_LINUX_DRIVER_v1.9.0_SOURCE/ax88179_178a.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /root/AX88179_178A_LINUX_DRIVER_v1.9.0_SOURCE/ax88179_178a.mod.o
  LD [M]  /root/AX88179_178A_LINUX_DRIVER_v1.9.0_SOURCE/ax88179_178a.ko.unsigned
  NO SIGN [M] /root/AX88179_178A_LINUX_DRIVER_v1.9.0_SOURCE/ax88179_178a.ko
make[1]: ディレクトリ `/usr/src/kernels/2.6.32-431.11.2.el6.x86_64' から出ます

# make install
su -c "cp -v ax88179_178a.ko /lib/modules/2.6.32-431.11.2.el6.x86_64/kernel/drivers/net/usb && /sbin/depmod -a"
`ax88179_178a.ko' -> `/lib/modules/2.6.32-431.11.2.el6.x86_64/kernel/drivers/net/usb/ax88179_178a.ko'

#

実行権限をつけてやる

# chmod +x /lib/modules/2.6.32-431.11.2.el6.x86_64/kernel/drivers/net/usb/ax88179_178a.ko

#

これで AX88179 を繋げてやって認識されれば成功。(2本繋いでるので eth1 と eth2 として認識してます)

# dmesg
(snip)
usb 3-2: new SuperSpeed USB device number 4 using xhci_hcd
usb 3-2: New USB device found, idVendor=0b95, idProduct=1790
usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 3-2: Product: AX88179
usb 3-2: Manufacturer: ASIX Elec. Corp.
usb 3-2: SerialNumber: 000050B66447A2
usb 3-2: configuration #1 chosen from 1 choice
ASIX USB Ethernet Adapter:v1.9.0 20:19:05 Apr 12 2014
                http://www.asix.com.tw
usb%d: mtu 1500

ax88179_178a 3-4:1.0: eth1: register 'ax88179_178a' at usb-0000:00:14.0-4, ASIX AX88179 USB 3.0 Gigabit Ethernet, 00:50:b6:(snip)
ASIX USB Ethernet Adapter:v1.9.0 20:19:05 Apr 12 2014
                http://www.asix.com.tw
usb%d: mtu 1500

ax88179_178a 3-2:1.0: eth2: register 'ax88179_178a' at usb-0000:00:14.0-2, ASIX AX88179 USB 3.0 Gigabit Ethernet, 00:50:b6:(snip)
usbcore: registered new interface driver ax88179_178a

ifconfig で新しい ethX が拾えているのを確認しておしまい。

# ifconfig -a
eth0      Link encap:Ethernet  HWaddr EC:A8:6B:(snip)
          inet addr:192.168.0.29  Bcast:192.168.0.255  Mask:255.255.255.0
(snip)

eth1      Link encap:Ethernet  HWaddr 00:50:B6:(snip)
          BROADCAST MULTICAST  MTU:1500  Metric:1
(snip)

eth2      Link encap:Ethernet  HWaddr 00:50:B6:(snip)
          BROADCAST MULTICAST  MTU:1500  Metric:1
(snip)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
(snip)

virbr0    Link encap:Ethernet  HWaddr 52:54:00:(snip)
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
(snip)


virbr0-nic Link encap:Ethernet  HWaddr 52:54:00:(snip)
          BROADCAST MULTICAST  MTU:1500  Metric:1
(snip)

#

あとはネットワーク周りの設定をご自由に。

失敗談

最初 yum install kernel-devel で最新のが入ってくれずに難儀したけど、 /etc/yum.repos.d/CentOS-Base.repo の [updates] の priority を 2 にしていたせいだった。 priority=1 にしたら kernel-devel.x86_64 0:2.6.32-431.11.2.el6 が入りましたよっと。

参考:

以下使用機材(あふぃりんく)