ASIX AX88179 USB to GigE
-
So I have a question about my home system. But first, here's a little background info on it. I have had installed at home a little bookshelf unit that has an Atom D2550, 2GB of RAM, dual GigE ports, and a CF-to-SATA flash adapter running the OS. This unit has been working great, even flawlessly, for the past 6 months. Handles everything I can throw at it on my 30Mbps connection with nary more than 10% CPU usage. I've got Open VPN working on it as well, I love it. Now I'm starting a business that will for the foreseeable future be living in my house. I am going to have some developers start working for me remotely, and I have a dev environment setup at home for them to work with. So I decided now's the time to segregate my home equipment from my new work dev environment, and set up a second OpenVPN server in pfense strictly for that environment. Unfortunately, there's no expansion available on my bookshelf box, so I can't throw in another nic card, and none of my switches support vlan tagging. So I decided to purchase a USB-to-Ethernet adapter. I searched around on the internet for suitable ones that would work, and found on newegg a few reviews on a chipset that they reported working for them in pfsense, the AX88178, and someone who had one said they'd gotten an AX88179 to work via the AXE(4) driver. So I searched Newegg for an adapter, and so I chose the Rosewill USB 3.0 Gigabit adapter, which uses the AX88179 chipset.
It wasn't until after I got it in and played around with it that I realized that USB 3.0 isn't apparently supported yet in pfsense (as the entire USB 3.0 hub doesn't show up in usbconfig), so I figured, I don't need gigabit for this, this development work is mostly commandline stuff, I could easily do that on a 10Mb connection if needed. And when USB 3.0 support is released further down the road, then I can just move my NIC back over to the USB 3.0 at that time (if I haven't moved to something else by then). So I've got it plugged into the USB 2.0 port, am able to do usbconfig -d ugen4.2 dump_device_desc, and it shows the stats of the device, but it doesn't show up in the available NICs list.
Anybody have any suggestions?
-
Anyone? Anyone? Bueller? Bueller?
If someone could at least give me a little push in the right direction; I'm quite comfortable on a linux command line, but some locations/configurations in freebsd/pfsense are of course different, and it would be helpful to me if I knew how to manually load drivers on the command line (like the freebsd equivalent of modprobe, for example), or maybe a way to check to see if there's actually any drivers associated with this hardware?
Also, if I were to find that the driver I need is available on a more recent version of FreeBSD, how difficult would it be to port it to this version?
-
Anyone? Anyone? Bueller? Bueller?
;D
FreeBSD equivalent of modprobe is kldload however in pfSense all the drivers you're likely to use are compiled into the kernel not loaded as modules. See also kldstat and kldunload.
I would run the usbconfig dump description you already have done to get the USB device and vendor IDs then hit the FreeBSD forum search box. Someone else has probably already tried this.
Steve
-
Thanks for the reply Stephen (I thought my Bueller line was better than just posting "bump", glad someone else thought so too). Per your suggestion, I ran the usbconfig command again, and tried searching for the USB & Vendor IDs, as well as a few other lines in there, and on most search attempts, I got no relevant hits, except for these two:
http://forum.pfsense.org/index.php/topic,7157.msg40590.html#msg40590
http://forum.pfsense.org/index.php/topic,58446.msg349981.html#msg349981The latter, you were a participant in (and from which I'd borrowed the usbconfig line, so thanks for that! ;) ).
For the sake of completeness, I've posted below what I got in usbconfig, in case someone else sees something I'm missing.
[2.1-RELEASE][root@pfsense.home]/root(1): usbconfig -d ugen4.2 dump_device_desc ugen4.2: <ax88179 asix="" elec.="" corp.="">at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0210 bDeviceClass = 0x00ff bDeviceSubClass = 0x00ff bDeviceProtocol = 0x0000 bMaxPacketSize0 = 0x0040 idVendor = 0x0b95 idProduct = 0x1790 bcdDevice = 0x0100 iManufacturer = 0x0001 <asix elec.="" corp.="">iProduct = 0x0002 <ax88179>iSerialNumber = 0x0003 <00000000000001> bNumConfigurations = 0x0001</ax88179></asix></ax88179>
Any other suggestions?
-
I don't have too much experience with USB devices on FreeBSD, but doesn't the fact that the ugen driver attached to your device imply that the axe driver either did not load or did not match it? Or do USB devices get a ugen entry even if a more specific driver matched?
What do dmesg and the system log show in response to plugging in the device?
-
I don't have too much experience with USB devices on FreeBSD, but doesn't the fact that the ugen driver attached to your device imply that the axe driver either did not load or did not match it? Or do USB devices get a ugen entry even if a more specific driver matched?
It's my understanding that ugen4.2 is assigned to the device regardless as a USB hardware address, like da0s1 would be to a partition address. ugen4 indicates what physical port it's plugged in (I've plugged into different ports and I get different ugenX numbers), and the .2 represents the device on that port (I'm presuming it's done that way to be able to identify daisy-chained devices).
What do dmesg and the system log show in response to plugging in the device?
dmesg brings up the incredibly helpful one liner:```
ugen4.2: <asix elec.="" corp.=""> at usbus4</asix> -
Still looks like axe never matched your device. There doesn't seem to be a module on my box; do we know for sure that this driver is compiled into the standard pfSense kernel?
-
It is but it doesn't support that specific chip. I suggested looking in the FreeBSD forum for the product id. If an updated driver, in FreeBSD 9.* for example, does support it then it may be possible to backport it.
Steve
-
The best thing is just go straight to the source:
http://svnweb.freebsd.org/base/head/sys/dev/usb/usbdevs?revision=255238&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 product ASIX AX88772B_1 0x7e2b AX88772B USB 2.0 10/100 Ethernet
No support for the AX88179 as of 2 weeks ago. :(
Perhaps that's not suprising. Net BSD only just got support for it.
http://mail-index.netbsd.org/source-changes/2013/09/14/msg047584.html
OpenBSD not long before that.
http://www.mail-archive.com/source-changes@openbsd.org/msg41366.htmlSignificant work required to make that adapter work with pfSense. Sorry.
Steve
-
It is but it doesn't support that specific chip. I suggested looking in the FreeBSD forum for the product id.
Ah, my bad, I somehow missed the word "FreeBSD", and thought you meant somewhere on this forum.
No support for the AX88179 as of 2 weeks ago. :(
Perhaps that's not suprising. Net BSD only just got support for it.
http://mail-index.netbsd.org/source-changes/2013/09/14/msg047584.html
OpenBSD not long before that.
http://www.mail-archive.com/source-changes@openbsd.org/msg41366.htmlSignificant work required to make that adapter work with pfSense. Sorry.
Steve
Well, poo. I guess I'll have to get another adapter, and make certain it has one of the chips in that list.
Is FreeBSD usually the last of the *BSDs to support something?
-
Not necessarily but the similarities between the BSDs means that once one has it the other usually get it shortly afterwards. It really depends who is maintaining the driver for each distro and what hardware they have available to them or whether someone is sponsoring the work.
Steve
-
Just as an update (if anyone's interested), I went and got one of these at Fry's (after researching it to confirm it had one of the above listed chipsets), and it seems to be working well. I still haven't finished the full configuration of all my devices on this new network, but it shows up in usbconfig (as an x772a chipset), it shows up in the Interfaces section, complete with a mac address, and the DHCP server is now set to serve up IPs on it. I think that counts as a success. ;)
Unfortunately, at least according to usbconfig, it shows up as a lowly FULL speed (12Mbit) USB device. But I think I'll manage with that for now, as my traffic to/from that network will largely be SSH. As I get all my devices situated on it, I'll try some throughput tests to see what kind of bandwidth & reliability I get from it; not that I'm expecting a lot of either one, but just as a frame of reference for anyone interested.
I decided to keep my Rosewill USB 3 to Gigabit adapter. I figure some time down the road, this chipset (& USB 3.0, for that matter) will be supported by FreeBSD, and eventually trickle down to pfSense.
-
At some point you will realize that this usb2ethernet thing is sh!t and will buy small manageable switch :)
-
At some point you will realize that this usb2ethernet thing is sh!t and will buy small manageable switch :)
I have no delusions about this being a particularly good setup, but hopefully by the time the inherent problems are too visible, I will have gotten my business development far enough along that it will have outgrown my home ;) In the meantime, it is a "good enough" solution–the connection thus far has been solid, no drop offs, and it provides me a way to segregate my network just fine. Not too shabby for $12.
-
https://github.com/freebsd/freebsd/blob/master/sys/dev/usb/net/if_axge.c?source=cc
Might be a good chance that it is in the v10 release now.
Wed Nov 20 02:16:47 2013 1121 /* ASIX Electronics products */ 1122 product ASIX AX88172 0x1720 10/100 Ethernet 1123 product ASIX AX88178 0x1780 AX88178 1124 product ASIX AX88178A 0x178a AX88178A USB 2.0 10/100/1000 Ethernet 1125 product ASIX AX88179 0x1790 AX88179 USB 3.0 10/100/1000 Ethernet 1126 product ASIX AX88772 0x7720 AX88772 1127 product ASIX AX88772A 0x772a AX88772A USB 2.0 10/100 Ethernet 1128 product ASIX AX88772B 0x772b AX88772B USB 2.0 10/100 Ethernet 1129 product ASIX AX88772B_1 0x7e2b AX88772B USB 2.0 10/100 Ethernet
-
I loaded up a FreeBSD 8.3 VM and attempted building this from the FreeBSD git. I haven't tested it no adapter on hand. Will try to buy one later today if I can find one else will have to wait till next week. Just a note it looks like this driver will be showing up in FreeBSD 10.1
i386 Untested - Use at your own risk
To install
cd /boot/modules fetch http://fs08n3.sendspace.com/dl/671abb5cf606ffcd0e4268438f52a664/52e3a3b15d8244b8/a7az2c/if_axge.ko kldload if_axge.ko
Then to check that its loaded
kldstat
-
Sweet, so what version does that translate to for pfSense?
-
FreeBSD 8.3 is the base for 2.1 and now 2.1.1.
Steve
-
FreeBSD 8.3 is the base for 2.1 and now 2.1.1.
Steve
Actually, I was referring to FreeBSD 10. I realize we haven't even made the leap to FreeBSD 9 yet, so we may still be talking years away(?), I was just curious if there was an expectation as to what future pfsense version that might line up with?
-
In the meantime, I will definitely try out the driver you posted, Bryan. And I'll report back the results of my testing.