How to configure a USB ethernet adapter under CentOS 5.3

centos5driversethernetlinux-networking

I've got a server running CentOS 5.3 (Final; kernel version 2.6.18) which I need to add a 2nd NIC to, initially temporarily, but eventually permanently. I'm not familiar with installing drivers under Linux and have only used system-config-network-tui and editing config files (we have no version of X installed) to configure the built-in ethernet adapter.

I found a few notes stating that the Apple USB Ethernet adapter works well under Linux. We're an Apple shop, so we have plenty and that'll do for the short term while we track down a better PCI-X ethernet adapter for this server. So, I downloaded & installed (make and make install) the appropriate version of the recommended AX88178 driver (Linux 2.6.38; for "Android 1.x/2.x/3.0, Linux kernel 2.6.14 and later"). After plugging in the Apple USB Ethernet adapter, it does show in the results of lsusb, but does not show in the options when I run system-config-network-tui.

The .ko file that was compiled & installed was "asix.ko" and if I run lsmod | grep asix, I get the following:

asix                   82176  0 
mii                    38849  1 asix

So, does that the kernel module is correctly installed & loaded? Do I need to alias "eth2" ("eth0" is the built-in ethernet and "eth1" is listed in system-config-network-tui as "skge", but is definitely not what I just plugged in) to "asix" in /etc/modules.conf as noted here? What other steps might I be missing?

Of note: I do now see a "dev23116" network interface when I run ifconfig -a that wasn't there before I installed the drivers. Is that the USB ethernet adapter? If so, do I alias that or use that as the interface's device in system-config-network-tui?

Best Answer

So, the 'devXXXXX' interface was generated whenever I plugged in the Apple USB Ethernet adapter (and went away when unplugged), but it changed, so I don't expect it to have the same device name after a reboot. (Not to mention I couldn't get an IP to stick to it when configuring using system-config-network-tui.)

When plugging the Apple USB Ethernet adapter in, I got the following in /var/log/messages:

Sep 21 13:40:15 hostname kernel: usb 1-6: new high speed USB device using ehci_hcd and address 6
Sep 21 13:40:15 hostname kernel: usb 1-6: configuration #1 chosen from 1 choice
Sep 21 13:40:15 hostname kernel: ASIX USB Ethernet Adapter:v4.1.0 17:04:38 Sep 20 2011
Sep 21 13:40:15 hostname kernel:     http://www.asix.com.tw
Sep 21 13:40:15 hostname kernel: eth%d: status ep1in, 8 bytes period 11
Sep 21 13:40:15 hostname kernel: eth1: register 'asix' at usb-0000:00:1d.7-6, ASIX AX88772A USB 2.0 Ethernet, ffff8100769819a8M

I did find a line reading alias eth1 skge in /etc/modprobe.conf (for that odd eth1 interface that is not anything and never shows up as connected) and commented it out (esp. since /var/logs/messages show the log registering asix as eth1). After doing so, giving eth1 a static IP using system-config-network-tui, and disconnected & reconnecting the Apple USB Ethernet adapter, it now always shows up as eth1 and with the correct ethernet address. I can also ping hosts on that subnet, so this is working.

The main issue appears to have been the conflict between the hard-coded alias and the asix module trying to register as the same name.

One additional note: It seems to change the default route to the Apple USB Ethernet adapter whenever it's plugged in, so you have to be sure to check that & adjust, if necessary.

Related Topic