PCリンクスでは、パソコンの設定・修理から組込み機器の受託開発まで承ります。

 

MicroServerにGigabit対応のUSB-LANアダプタを増設

今回は、PacketiX VPN Server用に2つ目のLANをMicroServerへ追加します。この追加したLANアダプタは、PacketiX VPN Server のローカルブリッジ用の物理インタフェースとなります。

MicroServerは、1000BASE-Tに対応したLANポートを1つオンボードで搭載しています。本当は、内部のスロットへLANボードを追加したいところですが、すでに2スロットとも増設済みなので、USB-LANアダプタを増設します。

アダプタは、BUFFALO社のギガビットUSB2.0対応アダプタ “LUA3-U2-AGT” を使用します。

LUA3 U2 AGT 01 300x225 MicroServerでUSB LANを使う

 ・USB2.0 / 1.1対応

・1000Base-T / 100Base-TX / 10Base-T対応

・採用チップは、ASIX AX88178

・AX88178チップはジャンボフレーム(最大9KB)に対応
 ※Linuxではドライバが非対応ですので使用できません。

 

LUA3-U2-AGT アダプタの回路構成

ハード屋としては、基板を見ないわけには行きません。

ケースは、ネジ止めではなく、俗に言う’羽目殺し’というもので、簡単に’開腹’できます。
基板を眺めると、まじめな回路設計がなされていることが、一目で判ります。
ローコスト品(購入価格2,650円)ですが、手抜き箇所も見当たらず、良い商品だと思います。

LUA3 U2 AGT Chip 269x300 MicroServerでUSB LANを使う

 

 ・ガラエポ2層基板を採用しています。

 ・コントローラ(MACを含むASIC)は、ASIX社のAX88178

 ・PHYは、MARVELL社のGbEトランシーバの88E1111

 ・この商品が2,650円とは… 安すぎですよ。バッファローさん
 製造原価は、1,000円以下(工賃込)というところでしょうか。

 

AX88178 Linuxドライバのアップデート

USBポートにLANアダプタを挿入すれば、すぐ使えるようになるのが理想ですが、残念ながらそうは行きません!
※10/100M USB2.0対応LANアダプタ “LUA3-U2-ATX” は、CentOSで、コネクタに挿すだけで使えます。

CentOSの標準ドライバでは、バッファローの “LUA3-U2-AGT” を動作させることができませんので、下記の手順に従い、ドライバを最新版にアップデートします。

  • ASIX社のWebサイトから最新版のドライバ(ソースファイル)をダウンロードする。
  • ダウンロードしたソースファイルを修正する。
  • ソースファイルをコンパイルする。
  • 最新版のドライバをインストールする。
  • カーネルのアップデートを禁止する。

 

AX88178の最新版Linuxドライバのダウンロード

CentOS5.8のカーネルに組み込まれているドライバは古いので、チップベンダ(ASIX社)のWebサイトから最新版のドライバをダウンロードします。

最初に、ソースコード格納先へ移動して、AX88178(コントローラIC)の最新版のドライバをダウンロードします。

[root@ms01 ~]# cd /usr/local/src/
[root@ms01 src]# wget http://www.asix.com.tw/FrootAttach/driver/AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source.zip
--2012-05-22 17:30:31--  http://www.asix.com.tw/FrootAttach/driver/AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source.zip
Resolving www.asix.com.tw... 210.243.224.51, 113.196.140.82
Connecting to www.asix.com.tw|210.243.224.51|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 37540 (37K) [application/zip]
Saving to: AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source.zip

100%[=========================================================================================>] 37,540      97.6K/s   in 0.4s

2012-05-22 17:30:31 (97.6 KB/s) - AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source.zip saved [37540/37540]

ダウンロードしたファイルを展開します

[root@ms01 src]# unzip AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source.zip
Archive:  AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source.zip
   creating: AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source/
  inflating: AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source/asix.c
  inflating: AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source/asix.h
  inflating: AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source/axusbnet.c
  inflating: AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source/axusbnet.h
  inflating: AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source/Makefile
  inflating: AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source/readme

ファイルの展開が完了したので、ダウンロードした圧縮ファイルを削除しておきます。

[root@ms01 src]# rm -f AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source.zip

ディレクトリ名が長いので、短い名前に変更します。

[root@ms01 src]# mv AX88772B_772A_760_772_178_LINUX_Driver_v4.2.0_Source ax88178

 

ソースコード(asix.c)の修正

ソースコードをコンパイルする前に、asix.cファイルを1箇所修正し、”LUA3-U2-AGT”が使用できるようにします。

“LUA3-U2-AGT” のベンダIDとプロダクトIDを、lsusbコマンドを使用して調べます。
0411がベンダIDで、006eがデバイスIDとなります。

[root@ms01 ~]# lsusb 
Bus 001 Device 003: ID 0411:006e BUFFALO INC. (formerly MelCo., Inc.)

上記のベンダIDとデバイスIDは、asix.cに記載されていませんので、ソースコードに追加します。
-> asix.cの最後尾あたりに、”BUFFALO LUA3-U2-AGT” のベンダIDとデバイスIDを追加します。

LUA3 U2 AGT 02 MicroServerでUSB LANを使う

 

ソースコードのコンパイルとインストール

最初に、カーネルのコンパイル環境を確認します。

[root@ms01 ~]# yum -y install kernel-devel
Loaded plugins: fastestmirror, priorities, versionlock

 (中略)

Installed:
  kernel-devel.i686 0:2.6.18-308.4.1.el5

Complete!

 

ソースコードをコンパイルします。

[root@ms01 ax88178]# make
make -C /lib/modules/2.6.18-308.4.1.el5/build SUBDIRS=/usr/local/src/ax88178 modules
make[1]: Entering directory /usr/src/kernels/2.6.18-308.4.1.el5-i686
  CC [M]  /usr/local/src/ax88178/asix.o
/usr/local/src/ax88178/axusbnet.c:242: 警告: ‘axusbnet_change_mtu’ defined but not used
  Building modules, stage 2.
  MODPOST
  CC      /usr/local/src/ax88178/asix.mod.o
  LD [M]  /usr/local/src/ax88178/asix.ko
make[1]: Leaving directory /usr/src/kernels/2.6.18-308.4.1.el5-i686

新しいドライバが作成されていることを確認します。

[root@ms01 ax88178]# ll
-rw-r--r-- 1 	root root  	93604 	May 23 	09:21 	asix.c
-rw-r--r-- 1 	root root  	17065 	Jun  7 	2011 	asix.h
-rw-r--r-- 1 	root root 	325760 	May 23 	09:21 	asix.ko
(略)

インストール前に、古いドライバのタイムスタンプを確認しておきます。

[root@ms01 ax88178]# ll /lib/modules/2.6.18-308.4.1.el5/kernel/drivers/usb/net
-rwxr--r-- 1 root root 23800 Apr 18 08:48 asix.ko

新しいドライバをインストールし、タイムスタンプが更新されていることを確認します。

[root@ms01 ax88178]# make install
su -c cp -v asix.ko /lib/modules/2.6.18-308.4.1.el5/kernel/drivers/usb/net /sbin/depmod -a
`asix.ko -> /lib/modules/2.6.18-308.4.1.el5/kernel/drivers/usb/net/asix.ko

[root@ms01 ax88178]#
-rwxr--r-- 1 root root 325760 May 23 09:21 asix.ko

動作中のカーネルに、最新版のasixモジュールを組み込み(インストール)します。

[root@ms01 ~]# modprobe asix

ここで、一旦、リブートさせて、dmesgログを確認します。
※新しいドライバでLANアダプタが動作していることを確認します。

[root@ms01 ~]# cat /var/log/dmesg
PCI: Setting latency timer of device 0000:06:00.0 to 64
tg3 0000:06:00.0: eth0: eth0: Tigon3
[partno(BCM95723) rev 5784100 PHY(5784)] (PCI Express) 10/100/1000Base-T Ethernet 98:4b:e1:xx:xx:xx
tg3 0000:06:00.0: eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1]
tg3 0000:06:00.0: eth0: dma_rwctrl[76180000] dma_mask[64-bit]
piix4_smbus 0000:00:14.0: SMBus Host Controller at 0xb00, revision 0
ASIX USB Ethernet Adapter:v4.2.0 09:21:49 May 23 2012

http://www.asix.com.tw

eth%d: status ep1in, 8 bytes period 11
eth1: register 'asix' at usb-0000:00:12.2-3, ASIX AX88178 USB 2.0 Ethernet, 00:24:a5:xx:xx:xx
usbcore: registered new driver asix

 

カーネルのアップデートを禁止

カーネルをアップデートすると、今回修正したasix.koもアップデートされてしまいますので、以後はカーネルのアップデートを禁止します。kernelファイルをエディタで開き、UPDATEDEFAULT=no に変更します。

[root@ms01 ~]# pico /etc/sysconfig/kernel
# 2012.05.22 usb-lan(ax88178) driver update. so kernel is fixed.
# UPDATEDEFAULT=yes
UPDATEDEFAULT=no

 

以上で、「MicroServerにGigabit対応のUSB-LANアダプタを増設する」を終了します。

コメント

コメントを受け付けておりません。