USB ethernet adapter support

Ross Penner rossp at f-m.fm
Sun Sep 7 22:06:08 UTC 2014


On Sat, 30 Aug 2014, at 02:23 AM, Roland Smith wrote:
> On Fri, Aug 29, 2014 at 11:34:02PM -0700, Ross Penner wrote:
> > I have a USB ethernet adapter that doesn't seem to work out of the box
> > on my 10.0 system. I'm hoping somebody can help me figure out what
> > driver to load, or if there even is a driver available.
> > 
> > When I plug the device into the FreeBSD machine the only line on dmesg
> > is:
> > ugen4.2: <Linksys> at usbus4
> > 
> > It does work with my Ubuntu 14.04 system. I've added the dmesg output in
> > the hopes that it will be helpful:
> > [137513.415146] usb 1-1.5: new high-speed USB device number 6 using
> > ehci-pci
> > [137513.508489] usb 1-1.5: New USB device found, idVendor=13b1,
> > idProduct=0041
> > [137513.508493] usb 1-1.5: New USB device strings: Mfr=1, Product=2,
> > SerialNumber=6
> > [137513.508494] usb 1-1.5: Product: Linksys USB3GIGV1
> > [137513.508495] usb 1-1.5: Manufacturer: Linksys
> > [137513.508497] usb 1-1.5: SerialNumber: 000001000000
> > [137513.528939] cdc_ether 1-1.5:2.0 eth1: register 'cdc_ether' at
> > usb-0000:00:1a.0-1.5, CDC Ethernet Device, b4:75:0e:8f:5e:90
> > [137513.528960] usbcore: registered new interface driver cdc_ether
> > [137518.015729] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
> 
> You might get it to work with cdce(4). From the manual page:
> 
>     Many USB devices notoriously fail to report their class and
>     interfaces
>     correctly.  Undetected products might work flawlessly when their
>     vendor
>     and product IDs are added to the driver manually.
> 
> You will have to patch the files /usr/src/sys/dev/usb/usbdevs and
> /usr/src/sys/dev/usb/net/if_cdce.c to add this device. Everything
> *between*
> the lines starting with “+++++” is the patch;
> 
> +++++ patch for /usr/src/sys/dev/usb/usbdevs +++++
> --- usbdevs.orig        2014-08-30 10:40:43.000000000 +0200
> +++ usbdevs     2014-08-30 10:42:58.000000000 +0200
> @@ -1402,6 +1402,7 @@
>  product CISCOLINKSYS WUSB54GR   0x0023  WUSB54GR
>  product CISCOLINKSYS WUSBF54G   0x0024  WUSBF54G
>  product CISCOLINKSYS AE1000     0x002f  AE1000
> +product CISCOLINKSYS USB3GIGV  0x0041  USB3GIGV
>  product CISCOLINKSYS2 RT3070    0x4001  RT3070
>  product CISCOLINKSYS3 RT3070    0x0101  RT3070
> +++++ patch for /usr/src/sys/dev/usb/usbdevs +++++
> 
> Save this patch to a file (e.g. usbdevs.diff) and use the patch(1)
> utility to apply it;
> 
>     # cd /usr/src/sys/dev/usb/
>     # patch </path/to/patch/usbdevs.diff
> 
> Then you'll have to patch /usr/src/sys/dev/usb/net/if_cdce.c to do the
> same;
> 
> +++++ patch for /usr/src/sys/dev/usb/net/if_cdce.c +++++
> --- if_cdce.c.orig      2014-08-30 11:07:02.000000000 +0200
> +++ if_cdce.c   2014-08-30 11:09:56.000000000 +0200
> @@ -277,6 +277,7 @@
>  	{USB_VPI(USB_VENDOR_SHARP, USB_PRODUCT_SHARP_SLA300, CDCE_FLAG_ZAURUS | CDCE_FLAG_NO_UNION)},
>  	{USB_VPI(USB_VENDOR_SHARP, USB_PRODUCT_SHARP_SLC700, CDCE_FLAG_ZAURUS | CDCE_FLAG_NO_UNION)},
>  	{USB_VPI(USB_VENDOR_SHARP, USB_PRODUCT_SHARP_SLC750, CDCE_FLAG_ZAURUS | CDCE_FLAG_NO_UNION)},
> +       {USB_VPI(USB_VENDOR_CISCOLINKSYS,
> USB_PRODUCT_CISCOLINKSYS_USB3GIGV, CDCE_FLAG_NO_UNION)},
>  };
>  
>  static const STRUCT_USB_DUAL_ID cdce_dual_devs[] = {
> +++++ patch for /usr/src/sys/dev/usb/net/if_cdce.c +++++
> 
> Note that these patches were prepared on a 10-STABLE system; the files
> might
> differ slightly from those on 10.0-RELEASE. If applying the patches
> fails,
> edit the files by hand.
> 
> Now you have to rebuild and install the cdce module;
> 
>     # cd /usr/src/sys/modules/usb/cdce
>     # make
>     # cp if_cdce.ko /boot/kernel/
>     # make cleandir
> 
> If the old if_cdce module is loaded, unload it;
> 
>     # kldunload if_cdce.ko
> 
> 
> IIRC, required modules are loaded automatically, but to be sure you can
> load
> the module before plugging the device in;
> 
>     # kldload if_cdce.ko
> 
> Now plug in the device and see if it works. Note that I don't have access
> to
> this hardware so I don't know if it works.
> 
> While I don't think this will crash your system, you never know. So make
> sure you
> have up-to-date backups.
> 
> 
> Roland
> -- 
> R.F.Smith                                   http://rsmith.home.xs4all.nl/
> [plain text _non-HTML_ PGP/GnuPG encrypted/signed email much appreciated]
> pgp: 5753 3324 1661 B0FE 8D93  FCED 40F6 D5DC A38A 33E0 (keyID: A38A33E0)
> Email had 1 attachment:
> + Attachment2
>   1k (application/pgp-signature)

I applied the patches manually and had some mixed success.

I can see the device and it registers as ue0. unfortunetly, it doesn't
completely work.

When I plug it in, the console displays:

ugen4.2: <Linksys> at usbus4
cdce0: <Linksys Linksys USB3GIGV1, class 0/0, rev 2.10/30.00, adds 2> on
usbus4
cdce0: faking MAC address
ue0: <USB Ethernet> on cdce0
ue0: Ethernet address: 2a:d5:07:9d:01:00

The output from 'ifconfig ue0':
ue0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 MTU 1500
        ether 2a:d5:07:9d:01:00
        nd6 options=29<PREFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

Notably lacking a media or status entry.

Is there any where I can go from here or should I wrote off this adapter
and find a replacement?



More information about the freebsd-questions mailing list