Date: Sat, 29 Jan 2005 19:07:52 +0100 From: Hans Petter Selasky <hselasky@c2i.net> To: Kiselev <1801@083.pfr.ru>, freebsd-usb@freebsd.org Subject: Re: Re: problem with udbp and netgraph in the usb LAN Message-ID: <20050129190752.A347@curly.tele2.no> In-Reply-To: <opsldedvw6dlwdk2@10.83.0.11>; from 1801@083.pfr.ru on Sat, Jan 29, 2005 at 06:23:45PM %2B0300 References: <opsldedvw6dlwdk2@10.83.0.11>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Jan 29, 2005 at 06:23:45PM +0300, Kiselev wrote: > On Thu, Jan 27, 2005 at 09:54:14AM +0300, 1801 wrote: > > Hi, all > > I have usb2usb link cable (no name)and try make usb network on two > > hosts (FreeBSD 5.3). > > I do everything as written in man 4 udbp: > > kldload netgraph > > kldload udbp > > Result : > > udbp0: Prolific Technology Inc. PL2302 Host-Host interface, rev > > 1.00/0.01, addr2, iclass 255/0. > > Then make: > > ngctl mkpeer udbp0: iface data inet, ifconfig ng0 10.0.0.1 10.0.0.2 on > > both hosts. I assume that you use ifconfig ng0 10.0.0.2 10.0.0.1 on the remote host. > > How to make steady connection? > > Thanks in advance, Yuri. > > >> What kind of USB controller do you have? > >> Looking through the code I found this problem: > >> If a transmitted packet has a length that is divisible by > >> "MaxPacketLength" then udbp_in_transfer_cb() will not be called. In > >> other words the transmission will stop. So when udbp is sending > >> packets, the flag USBD_FORCE_SHORT_XFER must be set? > >> > >> -- > >> HPS > > My USB controller is: > ohci0: <SiS 5571 USB controller> mem 0xee000000-0xee000fff irq 20 at > device 2.2 > on pci0 > ohci0: [GIANT-LOCKED] > usb0: <SiS 5571 USB controller> on ohci0 > ohci1: <SiS 5571 USB controller> mem 0xee001000-0xee001fff irq 23 at > device 2.3 > on pci0 > ohci1: [GIANT-LOCKED] > usb1: <SiS 5571 USB controller> on ohci1. > How to execute the idea set the flag USBD_FORCE_SHORT_XFER? > I do not found anything in the(sysctl, rc.conf, GENERIC), and what to > correct in > the /usr/src/sys/dev/usb/ohci.c: if ((flags & USBD_FORCE_SHORT_XFER) && > i don't know. > Thanks in advance, Yuri > In the file /usr/src/sys/dev/usb/udbp.c: Add "#define USB_DEBUG" at the beginning. In the function udbp_setup_out_transfer() change: (void) usbd_setup_xfer( sc->sc_bulkout_xfer, sc->sc_bulkout_pipe, priv, sc->sc_bulkout_buffer, pktlen, USBD_SHORT_XFER_OK, UDBP_TIMEOUT, udbp_out_transfer_cb); into: (void) usbd_setup_xfer( sc->sc_bulkout_xfer, sc->sc_bulkout_pipe, priv, sc->sc_bulkout_buffer, pktlen, USBD_SHORT_XFER_OK|USBD_FORCE_SHORT_XFER, UDBP_TIMEOUT, udbp_out_transfer_cb); Then "cd /usr/src/sys/modules/udbp" and "make clean" and "make all install clean" Unplug your device. Reload the udbp module or reboot the computer. Run "sysctl hw.usb.udbp.debug=15", plug your device and try again. -- HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050129190752.A347>