[CentOS] PLANEX の USB LAN アダプターを使えるようにする。(前編)

アマゾンで PLANEX の USB 接続の有線の NIC(UT-1000T-U3) を買ったのでそれを CentOS で使えるようにしていきます。CentOS は ThinkPad T60 にインストールしています。T60 には有線 LAN のポートがもともと1つありますが、もう1つポートを追加することになります。

追加するポートは、SoftEther VPN サーバーのローカルブリッジ用のインターフェイスとして使用します。

まずは UT-1000T-U3 の情報を調べます。lsusb を実行すると、

[root@localhost ~]# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
[root@localhost ~]#

ASIX Electronics の AX88179 というドライバーを入れてやる必要があることがわかります。

AX88179 でググるとすぐに ASIX Electronics のサイトの該当ページに辿り着きました。Drivers と書かれた箇所に Linux 用のドライバーが置いてありましたのでこのファイルの場所を示す URL を調べて wget でドライバーをゲットします。

[root@localhost tmp]# wget http://www.asix.com.tw/FrootAttach/driver/AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE.tar.bz2
–2015-01-25 07:57:37– http://www.asix.com.tw/FrootAttach/driver/AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE.tar.bz2
www.asix.com.tw をDNSに問いあわせています… 210.243.224.51, 113.196.140.82
www.asix.com.tw|210.243.224.51|:80 に接続しています… 接続しました。
HTTP による接続要求を送信しました、応答を待っています… 200 OK
長さ: 15508 (15K) [application/x-tar]
`AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE.tar.bz2′ に保存中100%[====================================================>] 15,508 –.-K/s 時間 0.1s2015-01-25 07:57:37 (155 KB/s) – `AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE.tar.bz2′ へ保存完了 [15508/15508][root@localhost tmp]# ls -l AX88179*
-rw-r–r–. 1 root root 15508 12月 29 14:15 2014 AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE.tar.bz2
[root@localhost tmp]#

tar で固められているので解凍します。

[root@localhost tmp]# tar jxf AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE.tar.bz2
[root@localhost tmp]# cd AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE
[root@localhost AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE]# ls
Makefile ax88179_178a.c ax88179_178a.h readme
[root@localhost AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE]#

解凍してできたディレクトリの中に readme ファイルが見つかりました。目を通してみると英語ですがインストール方法が書いてありますので、これに沿ってインストールしていけば良いでしょう。readme に書いてある通り make を実行しました。

[root@localhost AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE]# make
make -C /lib/modules/2.6.32-504.el6.i686/build SUBDIRS=/tmp/AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE modules
make: *** /lib/modules/2.6.32-504.el6.i686/build: そのようなファイルやディレクトリはありません. 中止.
make: *** [default] エラー 2
[root@localhost AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE]#

エラーが出てしまいました。検索して調べてみると、kernel-devel というパッケージがインストールされていない可能性があるということがわかったので、yum でインストールされているかどうかを調べてみました。

[root@localhost ~]# yum info kernel-devel
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
利用可能なパッケージ
名前 : kernel-devel
アーキテクチャ : i686
バージョン : 2.6.32
リリース : 504.3.3.el6
容量 : 9.3 M
リポジトリー : updates
要約 : Development package for building kernel modules to match the kernel
URL : http://www.kernel.org/
ライセンス : GPLv2
説明 : This package provides kernel headers and makefiles sufficient to build
: modules against the kernel package.[root@localhost ~]#

「利用可能なパッケージ」と表示されたのでまだインストールされていないということです。yum でインストールしてしまいます。

[root@localhost ~]# yum install kernel-devel
読み込んだプラグイン:fastestmirror
インストール処理の設定をしています
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
依存性の解決をしています
–> トランザクションの確認を実行しています。
—> Package kernel-devel.i686 0:2.6.32-504.3.3.el6 will be インストール
–> 依存性解決を終了しました。依存性を解決しました==============================================================================================
パッケージ アーキテクチャ バージョン リポジトリー 容量
==============================================================================================
インストールしています:
kernel-devel i686 2.6.32-504.3.3.el6 updates 9.3 Mトランザクションの要約
==============================================================================================
インストール 1 パッケージ総ダウンロード容量: 9.3 M
インストール済み容量: 24 M
これでいいですか? [y/N]y
パッケージをダウンロードしています:
kernel-devel-2.6.32-504.3.3.el6.i686.rpm | 9.3 MB 00:01
rpm_check_debug を実行しています
トランザクションのテストを実行しています
トランザクションのテストを成功しました
トランザクションを実行しています
インストールしています : kernel-devel-2.6.32-504.3.3.el6.i686 1/1
Verifying : kernel-devel-2.6.32-504.3.3.el6.i686 1/1インストール:
kernel-devel.i686 0:2.6.32-504.3.3.el6完了しました!
[root@localhost ~]#

kernel-devel がインストールできました。それでは仕切り直しで AX88179 のインストール作業に戻ります。

[root@localhost AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE]# make
make -C /lib/modules/2.6.32-504.el6.i686/build SUBDIRS=/tmp/AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE modules
make: *** /lib/modules/2.6.32-504.el6.i686/build: そのようなファイルやディレクトリはありません. 中止.
make: *** [default] エラー 2
[root@localhost AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE]#

あれ、それでもまだ同じようなエラーが出ちゃいました。「そのようなファイルやディレクトリはありません」と言っているので、これが本当かどうか確かめてあげることにしましょう。手間の掛かるヤツだぜ。/lib/modules/2.6.32-504.el6.i686/build がないって言っているので ls で調べます。

[root@localhost ~]# ls -l /lib/modules/2.6.32-504.el6.i686/build
lrwxrwxrwx. 1 root root 44 12月 22 04:06 2014 /lib/modules/2.6.32-504.el6.i686/build -> ../../../usr/src/kernels/2.6.32-504.el6.i686
[root@localhost ~]#

シンボリックリンクが張られているようです。今度は /usr/src/kernels/2.6.32-504.el6.i686 があるかないかを調べます。

[root@localhost ~]# ls /usr/src/kernels/2.6.32-504.el6.i686
ls: cannot access /usr/src/kernels/2.6.32-504.el6.i686: そのようなファイルやディレクトリはありません
[root@localhost ~]#

マジでないようです。これが原因で make がエラーになった可能性が高いと考えるのが自然です。似たようなファイルがあるかもしれないので、このディレクトリに何かないか調べてみます。

[root@localhost ~]# ls -l /usr/src/kernels
合計 4
drwxr-xr-x. 22 root root 4096 1月 25 08:13 2015 2.6.32-504.3.3.el6.i686
[root@localhost ~]#

ビンゴ!見つかりました。微妙にファイル名が異なっています。Makefile を修正してこの実在するファイルを指定して make を走らせることにしましょう。

[root@localhost AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE]# cp -p Makefile Makefile.20150124
[root@localhost AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE]# vi Makefile

以下のように 7 行目の KDIR の値を実際のパスに変えてやります。

[root@localhost AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE]# diff Makefile.20150124 Makefile
7c7
< KDIR = /lib/modules/$(CURRENT)/build

> KDIR = /usr/src/kernels/2.6.32-504.3.3.el6.i686
[root@localhost AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE]#

そして make 実行です。

[root@localhost AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE]# make
make -C /usr/src/kernels/2.6.32-504.3.3.el6.i686 SUBDIRS=/tmp/AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE modules
make[1]: ディレクトリ `/usr/src/kernels/2.6.32-504.3.3.el6.i686′ に入ります
CC [M] /tmp/AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE/ax88179_178a.o
Building modules, stage 2.
MODPOST 1 modules
CC /tmp/AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE/ax88179_178a.mod.o
LD [M] /tmp/AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE/ax88179_178a.ko.unsigned
NO SIGN [M] /tmp/AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE/ax88179_178a.ko
make[1]: ディレクトリ `/usr/src/kernels/2.6.32-504.3.3.el6.i686′ から出ます
[root@localhost AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE]#

うまく行きました。readme を読むと次は make install を実行するようにと書いてあります。

[root@localhost AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE]# make install
su -c “cp -v ax88179_178a.ko /lib/modules/2.6.32-504.el6.i686/kernel/drivers/net/usb && /sbin/depmod -a”
`ax88179_178a.ko’ -> `/lib/modules/2.6.32-504.el6.i686/kernel/drivers/net/usb/ax88179_178a.ko’
[root@localhost AX88179_178A_LINUX_DRIVER_v1.13.0_SOURCE]#

こちらも上手くいきました。これで PLANEX の USB NIC をちゃんと認識してくれることを期待して一回サーバーを再起動させました。shutdown -r now を実行です。起動してきた後、ifconfig -a で NIC を見てみると、

eth0 Link encap:Ethernet HWaddr 00:15:58:C8:1F:BC
inet addr:172.16.1.2 Bcast:172.16.1.255 Mask:255.255.255.0
inet6 addr: fe80::215:58ff:fec8:1fbc/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:287 errors:0 dropped:0 overruns:0 frame:0
TX packets:273 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:33845 (33.0 KiB) TX bytes:93684 (91.4 KiB)
Interrupt:16 Memory:ee000000-ee020000

eth1 Link encap:Ethernet HWaddr 00:22:CF:F6:E7:A3
BROADCAST PROMISC MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

wlan0 Link encap:Ethernet HWaddr 00:1B:77:3F:5B:88
BROADCAST PROMISC MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

eth1 が新たに表示されるようになりました。AX88179 のドライバーを入れる前には表示されていなかったものです。これが PLANEX の NIC なら OK です。MAC アドレスが見えているのでまずはこれで調べていきます。

こういうのは dmesg の中にあるんじゃないかと思いますので dmesg で調べていくとありました。

[root@localhost ~]# dmesg | grep ‘usb 1-1’
usb 1-1: new high speed USB device number 2 using ehci_hcd
usb 1-1: New USB device found, idVendor=0b95, idProduct=1790
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: AX88179
usb 1-1: Manufacturer: ASIX Elec. Corp.
usb 1-1: SerialNumber: 000022CFF6E7A3
usb 1-1: configuration #1 chosen from 1 choice
[root@localhost ~]#

シリアル番号のところに ifconfig -a で表示された 00:22:CF:F6:E7:A3 の MAC アドレスが表示されています。000022CFF6E7A3 が表示され、頭のゼロ2個が余分なのですが、これは無視して良いでしょう。

ということで、PLANEX の USB NIC を認識させることに成功しました。あとは、この NIC に SoftEther VPN のローカルブリッジ用の設定を加えていけば良いでしょう。

今日のエントリーのタイトルは「PLANEX の USB LAN アダプターを使えるようにする。」でしたが、「使えるようにする」が少し曖昧なので説明しておきます。

使えるようにする = 認識させる + 設定する

このようにデバイスを認識させ、その後設定するという2段階で考えればスッキリするでしょうか?今日は「認識させる」までをやったことになります。残るの「設定する」を次回以降に書いていきます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください