From owner-freebsd-stable@FreeBSD.ORG Fri Jun 10 07:40:43 2011 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 91DDA106566B; Fri, 10 Jun 2011 07:40:43 +0000 (UTC) (envelope-from bschmidt@techwires.net) Received: from mail-bw0-f54.google.com (mail-bw0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id A71DA8FC1A; Fri, 10 Jun 2011 07:40:42 +0000 (UTC) Received: by bwz12 with SMTP id 12so2808511bwz.13 for ; Fri, 10 Jun 2011 00:40:41 -0700 (PDT) Received: by 10.204.154.74 with SMTP id n10mr1552411bkw.33.1307690111949; Fri, 10 Jun 2011 00:15:11 -0700 (PDT) Received: from jessie.localnet (p5B2EC7C2.dip0.t-ipconnect.de [91.46.199.194]) by mx.google.com with ESMTPS id g2sm2271770bkz.23.2011.06.10.00.15.10 (version=SSLv3 cipher=OTHER); Fri, 10 Jun 2011 00:15:10 -0700 (PDT) Sender: Bernhard Schmidt From: Bernhard Schmidt To: Jim Bryant Date: Fri, 10 Jun 2011 09:12:47 +0200 User-Agent: KMail/1.13.5 (Linux/2.6.32-32-generic; KDE/4.4.5; i686; ; ) References: <4DF12E4A.5020906@gmail.com> In-Reply-To: <4DF12E4A.5020906@gmail.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <201106100913.42480.bschmidt@freebsd.org> Cc: weongyo@freebsd.org, freebsd-wireless@freebsd.org, freebsd-stable@freebsd.org, freebsd-usb@freebsd.org Subject: Re: problem with urtw X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: bschmidt@freebsd.org List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jun 2011 07:40:43 -0000 On Thursday, June 09, 2011 22:34:18 Jim Bryant wrote: > I just bought one of those chinese (apparently the same unit relabeled > and being sold by multiple companies) realtek RTL8187B wifi units. The > price is right. > > The label name on this one is WiFySky 1500mW. > > other than the fact that the case it is enclosed in is really cheesy, > there is a more immediate problem with this. > > the current urtw driver returns a 6. > > here we go: > > on insert: > > ugen3.2: at usbus3 > > after kldload if_urtw.ko: > > urtw0: > on usbus3 > urtw0: could not allocate USB transfers, err=USB_ERR_NO_PIPE > device_attach: urtw0 attach returned 6 > urtw0: > on usbus3 > urtw0: could not allocate USB transfers, err=USB_ERR_NO_PIPE > device_attach: urtw0 attach returned 6 > urtw0: > on usbus3 > urtw0: could not allocate USB transfers, err=USB_ERR_NO_PIPE > device_attach: urtw0 attach returned 6 > urtw0: > on usbus3 > urtw0: could not allocate USB transfers, err=USB_ERR_NO_PIPE > device_attach: urtw0 attach returned 6 > > 3:28:35pm argus(48): usbconfig -u 3 -a 2 dump_device_desc > ugen3.2: at usbus3, cfg=0 md=HOST > spd=HIGH (480Mbps) pwr=ON > > bLength = 0x0012 > bDescriptorType = 0x0001 > bcdUSB = 0x0200 > bDeviceClass = 0x0000 > bDeviceSubClass = 0x0000 > bDeviceProtocol = 0x0000 > bMaxPacketSize0 = 0x0040 > idVendor = 0x0bda > idProduct = 0x8187 > bcdDevice = 0x0200 > iManufacturer = 0x0001 > iProduct = 0x0002 > iSerialNumber = 0x0000 > bNumConfigurations = 0x0001 > > 3:28:48pm argus(49): usbconfig -u 3 -a 2 dump_curr_config_desc > ugen3.2: at usbus3, cfg=0 md=HOST > spd=HIGH (480Mbps) pwr=ON > > > Configuration index 0 > > bLength = 0x0009 > bDescriptorType = 0x0002 > wTotalLength = 0x0051 > bNumInterfaces = 0x0001 > bConfigurationValue = 0x0001 > iConfiguration = 0x0004 > bmAttributes = 0x0080 > bMaxPower = 0x00fa > > Interface 0 > bLength = 0x0009 > bDescriptorType = 0x0004 > bInterfaceNumber = 0x0000 > bAlternateSetting = 0x0000 > bNumEndpoints = 0x0009 > bInterfaceClass = 0x00ff > bInterfaceSubClass = 0x00ff > bInterfaceProtocol = 0x00ff > iInterface = 0x0002 > > Endpoint 0 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x0083 I have no clue what I'm talking about, so, this might be wrong.. Anyways.. the urtw(4) driver supports two different chips the 8187B and 8187L. One difference between those is the number of endpoints and its addresses. The 8187L uses 3 endpoints with 0x81 as the RX endpoint, the 8187B uses 7 endpoints with 0x83 as RX. % vendor REALTEK 0x0bda Realtek % product REALTEK RTL8187 0x8187 RTL8187 Wireless Adapter Quoting from the driver: % #define URTW_DEV_B(v,p) \ % { USB_VPI(USB_VENDOR_##v, USB_PRODUCT_##v##_##p, URTW_REV_RTL8187B) } % #define URTW_DEV_L(v,p) \ % { USB_VPI(USB_VENDOR_##v, USB_PRODUCT_##v##_##p, URTW_REV_RTL8187L) } % .. % static const struct usb_device_id urtw_devs[] = { % URTW_DEV_L(REALTEK, RTL8187), % .. % static const struct usb_config urtw_8187b_usbconfig[URTW_8187B_N_XFERS] = { % [URTW_8187B_BULK_RX] = { % .type = UE_BULK, % .endpoint = 0x83, % .. % static const struct usb_config urtw_8187l_usbconfig[URTW_8187L_N_XFERS] = { % [URTW_8187L_BULK_RX] = { % .type = UE_BULK, % .endpoint = 0x81, It occurs to me that yours might actually be a B chip not a L, because there is a 0x83 endpoint but none for 0x81. Wanna give that a shot? Index: if_urtw.c =================================================================== --- if_urtw.c (revision 222807) +++ if_urtw.c (working copy) @@ -112,7 +112,7 @@ static const struct usb_device_id urtw_devs[] = { URTW_DEV_L(BELKIN, F5D7050E), URTW_DEV_L(LINKSYS4, WUSB54GCV2), URTW_DEV_L(NETGEAR, WG111V2), - URTW_DEV_L(REALTEK, RTL8187), + URTW_DEV_B(REALTEK, RTL8187), URTW_DEV_L(SITECOMEU, WL168V1), URTW_DEV_L(SURECOM, EP9001G2A), { USB_VPI(0x1b75, 0x8187, URTW_REV_RTL8187L) }, > bmAttributes = 0x0002 > wMaxPacketSize = 0x0200 > bInterval = 0x0000 > bRefresh = 0x0000 > bSynchAddress = 0x0000 > > Endpoint 1 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x0004 > bmAttributes = 0x0002 > wMaxPacketSize = 0x0200 > bInterval = 0x0000 > bRefresh = 0x0000 > bSynchAddress = 0x0000 > > Endpoint 2 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x0005 > bmAttributes = 0x0002 > wMaxPacketSize = 0x0200 > bInterval = 0x0000 > bRefresh = 0x0000 > bSynchAddress = 0x0000 > > Endpoint 3 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x0006 > bmAttributes = 0x0002 > wMaxPacketSize = 0x0200 > bInterval = 0x0000 > bRefresh = 0x0000 > bSynchAddress = 0x0000 > > Endpoint 4 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x0007 > bmAttributes = 0x0002 > wMaxPacketSize = 0x0200 > bInterval = 0x0000 > bRefresh = 0x0000 > bSynchAddress = 0x0000 > > Endpoint 5 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x0089 > bmAttributes = 0x0002 > wMaxPacketSize = 0x0200 > bInterval = 0x0000 > bRefresh = 0x0000 > bSynchAddress = 0x0000 > > Endpoint 6 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x000a > bmAttributes = 0x0002 > wMaxPacketSize = 0x0200 > bInterval = 0x0000 > bRefresh = 0x0000 > bSynchAddress = 0x0000 > > Endpoint 7 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x000b > bmAttributes = 0x0002 > wMaxPacketSize = 0x0200 > bInterval = 0x0000 > bRefresh = 0x0000 > bSynchAddress = 0x0000 > > Endpoint 8 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x000c > bmAttributes = 0x0002 > wMaxPacketSize = 0x0200 > bInterval = 0x0000 > bRefresh = 0x0000 > bSynchAddress = 0x0000 > > If a verbose boot or any other info is needed to get this working, > please tell me, and I'll get you the info. > > I do have to admit, at the price these are going for, they are rather > nice, and do reach out and touch a router. Review complaints: heat > dissipation. If you buy one, don't operate it in a hot environment. > I'd like to see it working in FreeBSD, but I don't have a handle on the > wifi driver structure. Linux source code was included on the driver > disk. I can email that directly to whomever needs it for comparison. > > > Thanks, > > Jim, KC5VDJ > > _______________________________________________ > freebsd-stable@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-stable > To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org" -- Bernhard