Help getting asix ax88772b to work



  • Hi I am waiting for my new D2500CE that will be my pfsense machine. But it will take awhile and meentime I have to get rid of this stupid consumer router from my ISP.

    I have a ITX machine but it only have one nic and no pci ports. So I thought I could use my asus usb to ethernet adapter (asix ax88772b) but after installing and then upgrading to 2.1 beta1 I still cant get it to detect the usb nic.

    Anyone have any experience with this one? Any special drivers needed? I have tried to google it and found one other post from here saying that it was detected but didnt work correctly. So I have hope =)

    /KG


  • Netgate Administrator

    That should be supported by the axe(4) driver under both 2.0.x or 2.1.  ???
    Anything pertinent in the logs?

    It could be it is using a new usb ID that isn't linked to the axe driver yet.

    Steve



  • @stephenw10:

    That should be supported by the axe(4) driver under both 2.0.x or 2.1.  ???
    Anything pertinent in the logs?

    It could be it is using a new usb ID that isn't linked to the axe driver yet.

    Steve

    This is what I am getting from logs

    kernel: ugen3.2: <vendor 0x0b95="">at usbus3

    It says that one can load the axe4 as a module, but if it has been suported since 2.0.1 it shuld alredy be loaded right? I tested the adapter in 2.0.2 first but didnt work so thats why I upgraded to 2.1</vendor>


  • Netgate Administrator

    Ok so Vendor 0b95 is Asix. We need the device ID as well.
    From the commnd line run:

    usbconfig usbconfig dump_device_desc
    

    Paste the section relevant to the usb nic here. Then we can check if it's an ID the driver should know about.

    Steve



  • ugen4.2: <product 0x772b="" vendor="" 0x0b95="">at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON

    bLength = 0x0012
      bDescriptorType = 0x0001
      bcdUSB = 0x0200
      bDeviceClass = 0x00ff
      bDeviceSubClass = 0x00ff
      bDeviceProtocol = 0x0000
      bMaxPacketSize0 = 0x0040
      idVendor = 0x0b95
      idProduct = 0x772b
      bcdDevice = 0x0001
      iManufacturer = 0x0001  <asix elec.="" corp.="">iProduct = 0x0002  <ax88772b>iSerialNumber = 0x0003  <000163>
      bNumConfigurations = 0x0001

    I have the same problem and followed your steps, I know this post is dead, but this would greatly help me.</ax88772b></asix></product>



  • I want to buy one of those asix ax88772b. But i found this post that some guys got problems.

    o.O


  • Netgate Administrator

    The Asix devices supported by FreeBSD 8.3, and hence pfSense 2.1, are shown in the usbdevs file:

    @http://svnweb.freebsd.org/base/release/8.3.0/sys/dev/usb/usbdevs?revision=234063&view=markup:

    /* ASIX Electronics products */
    product ASIX AX88172 0x1720 10/100 Ethernet
    product ASIX AX88178 0x1780 AX88178
    product ASIX AX88772 0x7720 AX88772
    product ASIX AX88772A 0x772a AX88772A USB 2.0 10/100 Ethernet
    product ASIX AX88772B 0x772b AX88772B USB 2.0 10/100 Ethernet

    So product 0x772b should be supported or at least recognized. Odd that it isn't.

    It's also shown in the source for the axe driver:

    /*
    142 * Various supported device vendors/products.
    143 */
    144 static const STRUCT_USB_HOST_ID axe_devs[] = {
    145 #define AXE_DEV(v,p,i) { USB_VPI(USB_VENDOR_##v, USB_PRODUCT_##v##_##p, i) }
    146         AXE_DEV(ABOCOM, UF200, 0),
    147         AXE_DEV(ACERCM, EP1427X2, 0),
    148         AXE_DEV(APPLE, ETHERNET, AXE_FLAG_772),
    149         AXE_DEV(ASIX, AX88172, 0),
    150         AXE_DEV(ASIX, AX88178, AXE_FLAG_178),
    151         AXE_DEV(ASIX, AX88772, AXE_FLAG_772),
    152         AXE_DEV(ASIX, AX88772A, AXE_FLAG_772A),
    153         AXE_DEV(ASIX, AX88772B, AXE_FLAG_772B),
    154         AXE_DEV(ATEN, UC210T, 0),
    155         AXE_DEV(BELKIN, F5D5055, AXE_FLAG_178),
    156         AXE_DEV(BILLIONTON, USB2AR, 0),
    157         AXE_DEV(CISCOLINKSYS, USB200MV2, AXE_FLAG_772A),
    158         AXE_DEV(COREGA, FETHER_USB2_TX, 0),
    159         AXE_DEV(DLINK, DUBE100, 0),
    160         AXE_DEV(DLINK, DUBE100B1, AXE_FLAG_772),
    161         AXE_DEV(GOODWAY, GWUSB2E, 0),
    162         AXE_DEV(IODATA, ETGUS2, AXE_FLAG_178),
    163         AXE_DEV(JVC, MP_PRX1, 0),
    164         AXE_DEV(LINKSYS2, USB200M, 0),
    165         AXE_DEV(LINKSYS4, USB1000, AXE_FLAG_178),
    166         AXE_DEV(LOGITEC, LAN_GTJU2A, AXE_FLAG_178),
    167         AXE_DEV(MELCO, LUAU2KTX, 0),
    168         AXE_DEV(MELCO, LUA3U2AGT, AXE_FLAG_178),
    169         AXE_DEV(NETGEAR, FA120, 0),
    170         AXE_DEV(OQO, ETHER01PLUS, AXE_FLAG_772),
    171         AXE_DEV(PLANEX3, GU1000T, AXE_FLAG_178),
    172         AXE_DEV(SITECOM, LN029, 0),
    173         AXE_DEV(SITECOMEU, LN028, AXE_FLAG_178),
    174         AXE_DEV(SYSTEMTALKS, SGCX2UL, 0),

    Perhapds you have some new revision of the chip.  :-\

    Steve



  • @TheBank:

    ugen4.2: <product 0x772b="" vendor="" 0x0b95="">at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON

    bLength = 0x0012
      bDescriptorType = 0x0001
      bcdUSB = 0x0200
      bDeviceClass = 0x00ff
      bDeviceSubClass = 0x00ff
      bDeviceProtocol = 0x0000
      bMaxPacketSize0 = 0x0040
      idVendor = 0x0b95
      idProduct = 0x772b
      bcdDevice = 0x0001
      iManufacturer = 0x0001  <asix elec.="" corp.="">iProduct = 0x0002  <ax88772b>iSerialNumber = 0x0003  <000163>
      bNumConfigurations = 0x0001

    I have the same problem and followed your steps, I know this post is dead, but this would greatly help me.</ax88772b></asix></product>

    This is how mine looked, buy my USB adapter appears to be working fine with 2.1.  I picked up the AX88772B from this vendor for $15.50USD shipped from HK.  It looked exactly like the picture, and other than a serial number on the bottom there are no other markings.  No brand, model, or regulatory information, so I have no idea how to point someone to the same device.



  • Please follow the instructions in here by checking dmesg

    How_to_identify_Authentic_ASIX_USB-to-LAN_Products

    Please post your dmesg.

    I have updated the driver to include a new revision that I found in current git… Though I think you will have to rebuild kernel :( I don't think it will load if it is already in the kernel.

    
    #i386
    md5 if_axe.ko
    MD5 (if_axe.ko) = 604CE90437ADAA83132D9FECEC9B43D6
    
    
    
    #amd64
    md5 if_axe.ko
    MD5 (if_axe.ko) = 2C62DD09A13871E9BAF25F912BF3F8B5
    
    

    If it still doesn't work please follow the above instructions to make sure that it is authentic. And post any new errors, dmesg, what you did to reproduce.

    if_axe.ko.i386.txt
    if_axe.ko.amd64.txt


  • Netgate Administrator

    It should load at boot and replace the in-kernel module. That's done often with pci NICs (em, sk, msk etc).

    Steve



  • @stephenw10:

    It should load at boot and replace the in-kernel module. That's done often with pci NICs (em, sk, msk etc).

    Steve

    Hmm really? Ok let me try that


  • Netgate Administrator

    Yep, done it many times for msk. Never tried for a USB device but I can't see why that would be any different. USB device list not updated perhaps?

    Interesting, I hadn't realised that the module you are working on in the other thread is differently named: if_axe vs if_axge. Is it a completely new module then? With no support for earlier devices?

    Steve



  • @stephenw10:

    Yep, done it many times for msk. Never tried for a USB device but I can't see why that would be any different. USB device list not updated perhaps?

    What process did you use. I get "module axe already present!"

    @stephenw10:

    Interesting, I hadn't realised that the module you are working on in the other thread is differently named: if_axe vs if_axge. Is it a completely new module then? With no support for earlier devices?

    Steve

    if_axge is just for the 178A and 179 which I backported from november source.

    if_axe is for the other axis devices. I added a revision into the code 772b_1 that was in new source and recompiled


  • Netgate Administrator

    You have to load it at boot using the /boot/loader.conf.local file. Create that file if it doesn't exist. Add the line:

    if_axe_load="yes"
    

    Steve



  • @stephenw10:

    You have to load it at boot using the /boot/loader.conf.local file. Create that file if it doesn't exist. Add the line:

    if_axe_load="yes"
    

    Steve

    I get "module axe already present" in my dmesg.boot. I don't think it overrides.


  • Netgate Administrator

    Hmm, maybe usb device drivers are different then.

    Steve



  • @stephenw10:

    Hmm, maybe usb device drivers are different then.

    Steve

    The axe driver is compiled into the kernel there is no way around unless we recompile a kernel.


  • Netgate Administrator

    Apparently not.  :(  I wonder what's actually different about the USB drivers that prevents it. The PCI drivers can certainly be loaded at boot to displace the in kernel driver.

    Steve



  • I want to share my experience with two different usb to lan cards both claiming to have chipset (AX88772 a/b).

    I managed to install (simple plug&play) only one of the two usb to ethernet adapters (0B95 & 772B), taking name ue0 under pfsense.(the other adapter never worked)
    but huge but.
    I set the ue0 as lan card and give it the ip 192.168.1.1
    and i set my wan card as 192.168.2.2 with gateway my router (192.168.2.1)

    i can ping from my client pc (192.168.1.2) the lan interface & also i can ping pfsense.org
    i can ping from my pfsense box the address pfsense.org

    but again huge but.

    i never get the packages of pfsense to load (stating that it cant contact pfsense.org, and i should change DNS)
    i never get to load webpages in my browser.

    i would appreciate any help given

    edit0: usb to ethernet adapter is having a weird mac 00:00:00:00:00:01
    edit1: i updated to 2.2, now usb to ethernet doesnt even get recognized as ue0
    edit2: i get this errorskernel: ugen1.2: <vendor 0x0b95=""> at usbus1 (disconnected)</vendor>and ```
    [ There were error(s) loading the rules: pfctl: DIOCADDRULE: Operation not supported by device - The line in question reads [0]: ]


  • Netgate Administrator

    That is a different problem. The usb ethernet card is clearly working correctly since you're able to ping it from the client machine. One possible cause might be: https://doc.pfsense.org/index.php/Controlling_IPv6_or_IPv4_Preference
    You should start another thread to discuss that.

    2.2 is still 'highly experimental'. Many things don't work correctly at this point. You should start a thread in the 2.2 subforum to report this failure if it hasn't already been reported.

    Steve



  • @stephenw10:

    That is a different problem. The usb ethernet card is clearly working correctly since you're able to ping it from the client machine.
    Steve

    i am able to ping the interface but not access the web configuration (if usb to ethernet is used as lan interface)


  • Netgate Administrator

    If it is responding to pings (or any IP traffic) then the driver is loading correctly and talking to the card.
    If you aren't able to access the webgui check your firewall rules on the interface. Check the firewall logs to see what traffic is being blocked. If it's not that it's probably a routing problem, check the client is receiving the correct IP info.

    Steve



  • If you have a look I got AX88179 working on 2.1 with some kernel modules I backported.

    The other ones you will need to recompile kernel at least with the modules deselected as far as I understand.


Log in to reply