ETG3-US2(AX88178)をcentosで使う

USBを刺すと正しいハードとして認識されカーネルモジュール(asix.ko)も組み込まれたように見える。ifconfig, ethtool, routeなど正しいように見える。でも通信できない。これに対処するためasixからドライバをダウンロードしてmakeする必要がある。これの手順備忘録。

手順

要点をまとめると、asix からダウンロードしたax88178ドライバ(bzip2)を展開(tar -jxvf)してmakeしてmake install。詳細手順は以下。

  1. http://www.asix.com.tw/ → Support → 検索ワード「AX88178」で検索 → centos6の場合「For Android 1.x/2.x/3.0, Linux kernel 2.6.14 and later」のドライバ(bz2)のURLをコピー
  2. wget [ドライバ(bz2)のURL]
  3. tar -jxvf [wgetでダウンロードしたドライバ(bz2)]
  4. cd [tarで展開したドライバディレクトリ]
  5. make → asix.koが作られたことを確認
    • makeでエラーとなる場合、以下のpkgのインストールが(yum install xxx)必要かも。
    • make, kernel-devel, gcc
  6. modinfo asixで、インストール前の /lib/modules 配下のasix.ko の日付を確認
  7. make install
  8. 先のasix.koの日付を再確認し、先ほどmakeしたasix.koに代わっている事を確認
  9. リブート(rmmod,,,modprobeで問題ない場合がほとんどだが、一度、それではうまくいかず、さんざん試行錯誤したあげく、リブートしたら万事解決した経験があるので、ここでは、安全サイドに倒してこのように記述しておく)

以下、古くなりつつある情報

elrepoにドライバがあったけどこれも同じ現象。ここに同現象と対処があった。

  • 2011/11/05追記 手順が簡単になって、asixからダウンロードしたax88178ドライバ(bzip2)を展開(tar -jxvf)してmakeしてmake installするだけでよくなってる。ドライバのreadmeによると、usbnet.cを自前で組み込んだそうだ。asixドライバ v4.1.0 の日付が2009-09-27になってる。readmeの最終履歴は2011-03-15になってる。どういうことだ?
  • 2011/11/05追記 Centos6にしたが、標準のドライバで動かない状況は変わらず
  • モジュール確認
    • modprobe -l -a asix
    • modinfo asix
  • 2011/06/18追記 起動時のタイミングの問題か?起動直後asixドライバがうごいていない場合があるようだ。暫定対処メモ。
    • ifconfig で確認するとeth0がない
    • lsmod | grep asix でロードされてる、、、
    • rmmod asix でドライバをアンロード
    • modprobe asix でドライバをロード
    • (ifconfigでeth0が出てなかったら)ifup eth0
    • route 確認 eth0 のdefaultルートがなければ route add default gw 10.2.23.1 eth0

Linux 64bit でのETG3-US2 MTU(JumboFrame)設定

linux 64bit ax88178ドライバ(バージョン3.6)でJuboFrame設定したいのだができない。以下のエラー。

# ifconfig eth1 mtu 9000
SIOCSIFMTU: Invalid argument

※2011/05/01追記:バージョン4.1でも同様を確認
※2011/11/06追記:4.1では、メッセージも何も出ず、ifconfigで確認すると16kぐらいまで設定できるが、実は何も効いてないという動きになっている様子。winから LinkStation(9kに設定)に対してping -l 2000 は通るが、mtu 4kに設定したax88178は無応答。

以下 ax88178 ドライバ3.6の場合。
usbnet.cのchange_mtu関数内の以下の場所に反応してるみたい。

        if (new_mtu <= 0 || ll_mtu > dev->hard_mtu)
                return -EINVAL;

dev->hard_mtuに関してはasix.c(v3.5.0 2010-09-15)内に以下のような記述が、

        /* Asix framing packs multiple eth frames into a 2K usb bulk transfer */
        if (dev->driver_info->flags & FLAG_FRAMING_AX) {
                /* hard_mtu  is still the default - the device does not support
                   jumbo eth frames */
                dev->rx_urb_size = 2048;
        }

インターネット上にも情報が見つけられない。今のところ、ひとまずasixの出してるlinuxドライバはジャンボフレーム未対応と解釈することにする。

Centos5.5上ETG3-US2(AX88178)でLAN IFの冗長化(bonding)挫折

AX88178がbonding slave としてactive にならない。皮肉なことにRTL8111の方は認識されている。dmesgにはslaveとして認識されているようなメッセージ(Adding slave eth1.)が出てるが、/proc/net/bonding/bond0に認識されたslaveとして出てこない。当然ケーブル抜き差ししても切り替わらない。
こんな情報(2010年6月)があった。今回はひとまずあきらめる。