Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 07 Sep 2014 15:06:05 -0700
From:      Ross Penner <rossp@f-m.fm>
To:        Roland Smith <rsmith@xs4all.nl>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: USB ethernet adapter support
Message-ID:  <1410127565.3072081.164697973.71682282@webmail.messagingengine.com>
In-Reply-To: <20140830092309.GA13466@slackbox.erewhon.home>
References:  <1409380442.2672021.158440789.5C42A334@webmail.messagingengine.com> <20140830092309.GA13466@slackbox.erewhon.home>

next in thread | previous in thread | raw e-mail | index | archive | help
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.
> >=20
> > When I plug the device into the FreeBSD machine the only line on dmesg
> > is:
> > ugen4.2: <Linksys> at usbus4
> >=20
> > 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=3D13b1,
> > idProduct=3D0041
> > [137513.508493] usb 1-1.5: New USB device strings: Mfr=3D1, Product=3D2,
> > SerialNumber=3D6
> > [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
>=20
> You might get it to work with cdce(4). From the manual page:
>=20
>     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.
>=20
> 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 =E2=80=9C+++++=E2=80=9D is the patch;
>=20
> +++++ 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 +++++
>=20
> Save this patch to a file (e.g. usbdevs.diff) and use the patch(1)
> utility to apply it;
>=20
>     # cd /usr/src/sys/dev/usb/
>     # patch </path/to/patch/usbdevs.diff
>=20
> Then you'll have to patch /usr/src/sys/dev/usb/net/if_cdce.c to do the
> same;
>=20
> +++++ 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)},
>  };
>=20=20
>  static const STRUCT_USB_DUAL_ID cdce_dual_devs[] =3D {
> +++++ patch for /usr/src/sys/dev/usb/net/if_cdce.c +++++
>=20
> 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.
>=20
> Now you have to rebuild and install the cdce module;
>=20
>     # cd /usr/src/sys/modules/usb/cdce
>     # make
>     # cp if_cdce.ko /boot/kernel/
>     # make cleandir
>=20
> If the old if_cdce module is loaded, unload it;
>=20
>     # kldunload if_cdce.ko
>=20
>=20
> IIRC, required modules are loaded automatically, but to be sure you can
> load
> the module before plugging the device in;
>=20
>     # kldload if_cdce.ko
>=20
> 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.
>=20
> While I don't think this will crash your system, you never know. So make
> sure you
> have up-to-date backups.
>=20
>=20
> Roland
> --=20
> 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=3D8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 MTU 1500
        ether 2a:d5:07:9d:01:00
        nd6 options=3D29<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?




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1410127565.3072081.164697973.71682282>