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@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



_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to