lenovo carbon X1 - USB Ethernet Dongle Not Working (AX88772B)

On Linux 3.6.0-rc7-1 (SUSE Linux) I can’t get this dongle to work.

I use the driver (as recommended by Lenovo) from here AX88772B - ASIX Electronics Corporation

The drivers compile with no errors

make install
su -c “cp -v asix.ko /lib/modules/3.6.0-rc7-1-desktop/kernel/drivers/net/usb && /sbin/depmod -a”
‘asix.ko’ -> ‘/lib/modules/3.6.0-rc7-1-desktop/kernel/drivers/net/usb/asix.ko’

**modprobe asix -v **displays
/lib/modules/3.6.0-rc7-1-desktop/kernel/drivers/net/usb/asix.ko

**dmesg **displays no errors, but includes message:

usbcore: registered new interface driver asix

The output of **lsusb

**Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 08ff:2683 AuthenTec, Inc.
**Bus 001 Device 014: ID 17ef:7203 Lenovo **
Bus 002 Device 003: ID 04f2:b240 Chicony Electronics Co., Ltd
Bus 002 Device 004: ID 0489:e031 Foxconn / Hon Hai
The output of **lsusb -d 17ef:7203 -v **

Bus 001 Device 014: ID 17ef:7203 Lenovo
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 255 Vendor Specific Class
bDeviceSubClass 255 Vendor Specific Subclass
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x17ef Lenovo
idProduct 0x7203
bcdDevice 0.01
iManufacturer 1 Lenovo
iProduct 2 AX88772B
iSerial 3 58265D
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 39
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 4 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 200mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 0
iInterface 7 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 11
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 255 Vendor Specific Class
bDeviceSubClass 255 Vendor Specific Subclass
bDeviceProtocol 0
bMaxPacketSize0 8
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)

The output of **modinfo asix

**filename: /lib/modules/3.6.0-rc7-1-desktop/kernel/drivers/net/usb/asix.ko
license: GPL
description: ASIX AX8817X based USB 2.0 Ethernet Devices
author: David Hollis
srcversion: 3EB00488E36F8F5659BEFBB
alias: usb:v0B95p7E2Bddcdscdpiciscipin
alias: usb:v0B95p772Bddcdscdpiciscipin
alias: usb:v05ACp1402ddcdscdpiciscipin
alias: usb:v13B1p0018ddcdscdpiciscipin
alias: usb:v0421p772Addcdscdpiciscipin
alias: usb:v0DB0pA877ddcdscdpiciscipin
alias: usb:v0B95p772Addcdscdpiciscipin
alias: usb:v125Ep180Dddcdscdpiciscipin
alias: usb:v0B95p7720ddcdscdpiciscipin
alias: usb:v1631p6200ddcdscdpiciscipin
alias: usb:v1189p0893ddcdscdpiciscipin
alias: usb:v07AAp0017ddcdscdpiciscipin
alias: usb:v6189p182Dddcdscdpiciscipin
alias: usb:v0411p003Dddcdscdpiciscipin
alias: usb:v0557p2009ddcdscdpiciscipin
alias: usb:v08DDp90FFddcdscdpiciscipin
alias: usb:v07B8p420Addcdscdpiciscipin
alias: usb:v0B95p1720ddcdscdpiciscipin
alias: usb:v07D1p3C05ddcdscdpiciscipin
alias: usb:v2001p3C05ddcdscdpiciscipin
alias: usb:v2001p1A00ddcdscdpiciscipin
alias: usb:v0846p1040ddcdscdpiciscipin
alias: usb:v077Bp2226ddcdscdpiciscipin
alias: usb:v050Dp5055ddcdscdpiciscipin
alias: usb:v14EApAB11ddcdscdpiciscipin
alias: usb:v1737p0039ddcdscdpiciscipin
alias: usb:v077Bp2226ddcdscdpiciscipin
alias: usb:v0B95p1780ddcdscdpiciscipin
depends:
vermagic: 3.6.0-rc7-1-desktop SMP preempt mod_unload modversions 686
parm: msg_level:Override default message level (int)
parm: bsize:Maximum transfer size per bulk (int)

Rebooting/reinserting device does have any affect. After inserting device get this in **dmesg:

** 6133.758891] usbcore: registered new interface driver asix
6514.502110] usb 1-1.3: USB disconnect, device number 14
6515.701128] usb 1-1.3: new high-speed USB device number 15 using ehci_hcd
6515.801403] usb 1-1.3: New USB device found, idVendor=17ef, idProduct=7203
6515.801413] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
6515.801418] usb 1-1.3: Product: AX88772B
6515.801423] usb 1-1.3: Manufacturer: Lenovo
6515.801428] usb 1-1.3: SerialNumber: 58265D

Then **ip link

(note this output was from a non carbon X1 with dongle connected, thus we have a hardware ethernet port)

I’m expecting to see an additional network interface here for my USB dongle

**1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN mode DEFAULT
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 5c:9a:d8:d7:77:9e brd ff:ff:ff:ff:ff:ff
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DORMANT qlen 1000
link/ether a0:88:b4:08:61:a4 brd ff:ff:ff:ff:ff:ff
**
Any tips how to further diagnose the problem? (not a linux expert here…so welcome to any suggestions)
**

At a guess, you may need to add your vendor and product IDs in asix.c and recompile

static const struct usb_device_id    products ] = {
{
    // 88178
    USB_DEVICE (0x0b95, 0x1780),
    .driver_info =    (unsigned long) &ax88178_info,
}, {
    // 88178 for billianton linksys
    USB_DEVICE (0x077b, 0x2226),
    .driver_info =    (unsigned long) &ax88178_info,
}, {
    // ABOCOM for linksys
    USB_DEVICE (0x1737, 0x0039),
    .driver_info =    (unsigned long) &ax88178_info,
}, {
    // ABOCOM  for pci
    USB_DEVICE (0x14ea, 0xab11),
    .driver_info =    (unsigned long) &ax88178_info,
}, {
    // Belkin
    USB_DEVICE (0x050d, 0x5055),
    .driver_info =    (unsigned long) &belkin178_info,

Hopefully, it will be as simple as that.

Thanks, worked immediately!

Good result. I’m only surprised that it wasn’t already included, especially as Lenovo pointed you at the driver in the first place. :slight_smile: