urtw0: could not allocate USB transfers
Etienne Robillard
erob at gthcfoundation.org
Wed Mar 2 16:01:00 UTC 2011
On 02/25/2011 07:31, Bernhard Schmidt wrote:
> On Friday, February 25, 2011 12:47:12 Etienne Robillard wrote:
>
>> On 25/02/11 06:18 AM, Bernhard Schmidt wrote:
>>
>>> On Friday, February 25, 2011 11:03:04 Etienne Robillard wrote:
>>>
>>>
>>>> On 25/02/11 04:11 AM, Bernhard Schmidt wrote:
>>>>
>>>>
>>>>> On Thursday, February 24, 2011 21:51:23 joseph wrote:
>>>>>
>>>>>
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> i decided to get my laptop wlan via usb because my internal device isn't
>>>>>> supported yet.
>>>>>> The usb device is a logilink WL0006 unit its vendorid is 0x0bda and the
>>>>>> productid says 0x8187.
>>>>>> My search results say that this device depends on a RTL8187 chipset.
>>>>>> I tried both, load the kernel module at boot time and compile kernel
>>>>>> withe urtw, but i get the same output at dmesg
>>>>>>
>>>>>> device_attach: urtw0 attach returned 6
>>>>>> urtw0:<vendor 0x0bda product 0x8187, class 0/0, rev 2.00/2.00, addr 2>
>>>>>> on usbus3
>>>>>> urtw0: could not allocate USB transfers, err=USB_ERR_NO_PIPE
>>>>>> device_attach: urtw0 attach returned 6
>>>>>>
>>>>>> im running FreeBSD 8.1-RELEASE-p2 amd64.
>>>>>>
>>>>>> What might be the reason for this error?
>>>>>> Thanks for all hints.
>>>>>>
>>>>>>
>>>>>>
>>>>> Well, I have no clue about USB.. but this smells like one of the
>>>>> endpoints is 'not there'. At least I can't find any reference to
>>>>> it in the Linux driver. Wanna give attached patch a shot?
>>>>>
>>>>>
>>>>>
>>>> Hi Bernard,
>>>>
>>>> For rt287x based cards, you can try using rt28700 chipset instead of
>>>> urtw0 on
>>>> FreeBSD 8.
>>>>
>>>> The former is not in the stable src tree, but could be retrieved from here:
>>>>
>>>> https://gthc.org/distfiles/freebsd/rt2870_fbsd8.tar.gz
>>>>
>>>> Any takers to make module rt28700 (if_rt2870) officially part of the
>>>> FreeBSD src tree?
>>>>
>>>>
>>> I'm a bit confused now, shouldn't the rt2870 be supported by run(4)? On
>>> a site-note, this is Ralink chipset not a Realtek one.
>>>
>>>
>>>
>> I believe this is a different implementation for RT8187 usb network
>> adapters than
>> run(4). However in my view I found urtw0 buggy, but would certainly take
>> a look at run(4) to
>> compare the results with wireless networking agaisnt the other driver
>> (rt28700).
>>
> Yeah, urtw(4) has a few flaws..
>
> - urtw(4): Realtek RTL8187B/RTL8187L
> - rum(4): Ralink RT2501/RT2601
> - run(4): Ralink RT2700/RT2800/RT3000
>
> So it seems the driver you've posted conflicts with run(4). From a
> quick glance at it, it seems to support 11n? If so, can I talk you
> into working on getting those bits merged?
> Thanks!
>
> --
> Bernhard
> X-UID: 10549
> Status:
> X-Keywords:
> Content-Length: 0
>
>
I forwarded this thread on -current.
Please also find below a stack trace produced with option KDB_UNATTENDED
for the rt28700 driver (if_rt28700).
On another side note, I have not being able to load
the runfw firmware module anymore after having updated
the src tree for 8.2-STABLE ?
$ sudo kldload /boot/kernel/runfw.ko
kldload: can't load /boot/kernel/runfw.ko: Exec format error
$ objdump -x /boot/kernel/runfw.ko
/boot/kernel/runfw.ko: file format elf64-x86-64
/boot/kernel/runfw.ko
architecture: i386:x86-64, flags 0x00000011:
HAS_RELOC, HAS_SYMS
start address 0x0000000000000000
Sections:
Idx Name Size VMA LMA File
off Algn
0 .text 00000056 0000000000000000 0000000000000000
00000040 2**4
CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
1 .rodata.str1.1 0000001f 0000000000000000 0000000000000000
00000096 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
2 set_modmetadata_set 00000020 0000000000000000 0000000000000000
000000b8 2**3
CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
3 set_sysinit_set 00000008 0000000000000000 0000000000000000
000000d8 2**3
CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
4 .data 000020d4 0000000000000000 0000000000000000
000000e0 2**4
CONTENTS, ALLOC, LOAD, RELOC, DATA
5 .bss 00000000 0000000000000000 0000000000000000
000021b4 2**2
ALLOC
6 .comment 00000026 0000000000000000 0000000000000000
000021b4 2**0
CONTENTS, READONLY
SYMBOL TABLE:
0000000000000000 l d .text 0000000000000000
0000000000000000 l d .rodata.str1.1 0000000000000000
0000000000000000 l d .data 0000000000000000
0000000000000000 l F .text 0000000000000056 runfw_fw_modevent
0000000000000000 l O set_modmetadata_set 0000000000000008
__set_modmetadata_set_sym__mod_metadata_md_runfw_fw_on_firmware
0000000000002000 l O .data 0000000000000018
_mod_metadata_md_runfw_fw_on_firmware
0000000000000008 l O set_modmetadata_set 0000000000000008
__set_modmetadata_set_sym__mod_metadata_runfw_fw_version
0000000000002020 l O .data 0000000000000018
_mod_metadata_runfw_fw_version
0000000000000000 l O set_sysinit_set 0000000000000008
__set_sysinit_set_sym_runfw_fwmodule_sys_init
0000000000002040 l O .data 0000000000000018 runfw_fwmodule_sys_init
0000000000000010 l O set_modmetadata_set 0000000000000008
__set_modmetadata_set_sym__mod_metadata_md_runfw_fw
0000000000002060 l O .data 0000000000000018 _mod_metadata_md_runfw_fw
0000000000000018 l O set_modmetadata_set 0000000000000008
__set_modmetadata_set_sym__mod_metadata_md_runfw_fw_on_kernel
0000000000002080 l O .data 0000000000000018
_mod_metadata_md_runfw_fw_on_kernel
0000000000002098 l O .data 000000000000000c
_runfw_fw_depend_on_firmware
00000000000020a4 l O .data 0000000000000004 _runfw_fw_version
00000000000020b0 l O .data 0000000000000018 runfw_fw_mod
00000000000020c8 l O .data 000000000000000c _runfw_fw_depend_on_kernel
0000000000002000 l .data 0000000000000000 _binary_runfw_end
0000000000000000 l .data 0000000000000000 _binary_runfw_start
0000000000000000 l d set_modmetadata_set 0000000000000000
0000000000000000 l d set_sysinit_set 0000000000000000
0000000000000000 l d .bss 0000000000000000
0000000000000000 l d .comment 0000000000000000
0000000000000000 *UND* 0000000000000000 firmware_register
0000000000000000 *UND* 0000000000000000 module_register_init
0000000000002000 g *ABS* 0000000000000000 _binary_runfw_size
0000000000000000 *UND* 0000000000000000 firmware_unregister
RELOCATION RECORDS FOR [.text]:
OFFSET TYPE VALUE
000000000000000b R_X86_64_32S _binary_runfw_end
000000000000001a R_X86_64_32S _binary_runfw_start
0000000000000021 R_X86_64_32S _binary_runfw_start
0000000000000028 R_X86_64_32S .rodata.str1.1
000000000000002d R_X86_64_PC32 firmware_register+0xfffffffffffffffc
000000000000004d R_X86_64_32S .rodata.str1.1
0000000000000052 R_X86_64_PC32 firmware_unregister+0xfffffffffffffffc
RELOCATION RECORDS FOR [set_modmetadata_set]:
OFFSET TYPE VALUE
0000000000000000 R_X86_64_64 .data+0x0000000000002000
0000000000000008 R_X86_64_64 .data+0x0000000000002020
0000000000000010 R_X86_64_64 .data+0x0000000000002060
0000000000000018 R_X86_64_64 .data+0x0000000000002080
RELOCATION RECORDS FOR [set_sysinit_set]:
OFFSET TYPE VALUE
0000000000000000 R_X86_64_64 .data+0x0000000000002040
RELOCATION RECORDS FOR [.data]:
OFFSET TYPE VALUE
0000000000002008 R_X86_64_64 .data+0x0000000000002098
0000000000002010 R_X86_64_64 .rodata.str1.1+0x0000000000000006
0000000000002028 R_X86_64_64 .data+0x00000000000020a4
0000000000002030 R_X86_64_64 .rodata.str1.1+0x000000000000000f
0000000000002048 R_X86_64_64 module_register_init
0000000000002050 R_X86_64_64 .data+0x00000000000020b0
0000000000002068 R_X86_64_64 .data+0x00000000000020b0
0000000000002070 R_X86_64_64 .rodata.str1.1+0x000000000000000f
0000000000002088 R_X86_64_64 .data+0x00000000000020c8
0000000000002090 R_X86_64_64 .rodata.str1.1+0x0000000000000018
00000000000020b0 R_X86_64_64 .rodata.str1.1+0x000000000000000f
00000000000020b8 R_X86_64_64 .text
$ dmesg
Waiting on "WCTRL" with the following non-sleepable locks held:
exclusive sleep mutex rt28700_com_loc (rt28700_com_loc) r = 0
(0xffffff8001458018) locked @ net80211/ieee80211_node.c:653
KDB: stack backtrace:
#0 0xffffffff804e0da0 at kdb_backtrace+0x60
#1 0xffffffff804effec at _witness_debugger+0x2c
#2 0xffffffff804f1672 at witness_warn+0x322
#3 0xffffffff8047a85d at _cv_wait+0x6d
#4 0xffffffff80400e73 at usbd_do_request_flags+0x4f3
#5 0xffffffff810220cb at rt2870_io_vendor_req+0x9b
#6 0xffffffff81022232 at rt2870_io_mac_write_multi+0x52
#7 0xffffffff810222ac at rt2870_io_mac_write+0x1c
#8 0xffffffff81026fd7 at rt2870_newassoc+0x1d7
#9 0xffffffff805893d2 at sta_newstate+0x5a2
#10 0xffffffff8102da7d at rt2870_vap_newstate+0x4d
#11 0xffffffff805817a1 at ieee80211_newstate_cb+0x161
#12 0xffffffff804eb6b7 at taskqueue_run_locked+0xb7
#13 0xffffffff804eb7a0 at taskqueue_thread_loop+0x50
#14 0xffffffff804906d5 at fork_exit+0x115
#15 0xffffffff8064bc4e at fork_trampoline+0xe
t_delta 15.fd86ccdfed384c60 too short
KLD runfw.ko: depends on firmware - not available or version mismatch
linker_load_file: Unsupported file type
$ uname -a
FreeBSD marina.localdomain 8.2-STABLE FreeBSD 8.2-STABLE #7: Wed Mar 2
08:43:21 EST 2011
root at marina.localdomain:/usr/local/freebsd8/src/sys/amd64/compile/GENERIC.d
amd64
$ ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:00:00:00:00:00
inet 192.168.0.101 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet<unknown subtype>
status: associated
ssid dlink2 channel 2 (2417 MHz 11g ht/40+) bssid 00:00:00:00:00:00
country US authmode OPEN privacy OFF txpower 0 bmiss 7 scanvalid 60
bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 64
protmode CTS ampdulimit 64k ampdudensity 8 shortgi smps wme burst
$ cat /sys/amd64/conf/GENERIC.d | grep option
# An exhaustive list of options and more detailed explanations of the
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
options SCHED_ULE # ULE scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
#options INET6 # IPv6 communications protocols
#options SCTP # Stream Control Transmission Protocol
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options UFS_GJOURNAL # Enable gjournal-based UFS journaling
options MD_ROOT # MD is a potential root device
options NFSCLIENT # Network Filesystem Client
#options NFSSERVER # Network Filesystem Server
#options NFSLOCKD # Network Lock Manager
options NFS_ROOT # NFS usable as /, requires NFSCLIENT
options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_PART_GPT # GUID Partition Tables.
options GEOM_LABEL # Provides labelization
options COMPAT_43TTY # BSD 4.3 TTY compat (sgtty)
options COMPAT_FREEBSD32 # Compatible with i386 binaries
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
options COMPAT_FREEBSD6 # Compatible with FreeBSD6
options COMPAT_FREEBSD7 # Compatible with FreeBSD7
options SCSI_DELAY=8000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options STACK # stack(9) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options P1003_1B_SEMAPHORES # POSIX-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time
extensions
options PRINTF_BUFR_SIZE=128 # Prevent printf output being
interspersed.
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4)
options AUDIT # Security event auditing
options MAC # TrustedBSD MAC Framework
options FLOWTABLE # per-cpu routing cache
options KDTRACE_FRAME # Ensure frames are compiled in
options KDTRACE_HOOKS # Kernel DTrace hooks
options INCLUDE_CONFIG_FILE # Include this file in kernel
options KDB # Kernel debugger related code
#options KDB_TRACE # Print a stack trace for a panic
options KDB_UNATTENDED
options DEADLKRES # deadlock resolver (NEW)
options WITNESS # enables debugging of mutexes
options SMP # Symmetric MultiProcessor Kernel
options ATA_STATIC_ID # Static device numbering
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
#device dpt # DPT Smartcache III, IV - See NOTES for options
options IEEE80211_DEBUG # enable debug msgs
#options IEEE80211_AMPDU_AGE # age frames in AMPDU reorder q's
#options IEEE80211_SUPPORT_MESH # enable 802.11s draft support
#options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors
options USB_DEBUG # enable debug msgs
so for me using the run(4) driver would be acceptable solution however as
the rt28700 driver doesn't depends on a firmware module, I have no choice
currently to stick with the former rt28700 driver. I notice however that
there's
still some random page faults occuring with the run(4) module, but are
non-fatal
with option KDB_UNATTENDED... :)
Cheers!
Etienne
More information about the freebsd-current
mailing list