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>