Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Mar 2009 10:12:21 -0700
From:      Jack Twilley <jmt@twilley.org>
To:        "Paul B. Mahol" <onemda@gmail.com>
Cc:        freebsd-mobile@freebsd.org
Subject:   Re: RT2860 NDIS needs rate.bin, where is it?
Message-ID:  <49C91475.9080303@twilley.org>
In-Reply-To: <3a142e750903240022n10d8b8cdy3787cc6b423df3c8@mail.gmail.com>
References:  <49C7E0F8.9000701@twilley.org>	 <3a142e750903231441g184fa5d1r57515c77d01e6dd4@mail.gmail.com>	 <49C82A4B.5090108@twilley.org> <3a142e750903240022n10d8b8cdy3787cc6b423df3c8@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Paul B. Mahol wrote:
> On 3/24/09, Jack Twilley <jmt@twilley.org> wrote:
>> Paul B. Mahol wrote:
>>> On 3/23/09, Jack Twilley <jmt@twilley.org> wrote:
>>>> NDIS finally works again in 8.0-CURRENT so I thought I'd try to get my
>>>> RT2860 wireless working.  I built the rt2860_sys.ko using ndisgen and
>>>> copied rt2860.bin into /compat/ndis and kldloaded the new module.  NDIS
>>>> complains that it can't open /compat/ndis/rate.bin with errno 2.  I
>>>> don't have a rate.bin to give it, there wasn't one in the Windows bundle
>>>> or the Linux one though it is referenced in the Linux driver source
>>>> code.  I tried copying rt2860.bin to rate.bin but that didn't work.
>>>>
>>>> I tried starting wpa_supplicant anyway, and got this:
>>>>
>>>> Starting wpa_supplicant.
>>>> ioctl[SIOCG80211, op 98, len 32]: Invalid argument
>>>> ELOOP: remaining socket: sock=5 eloop_data=0x28407140
>>>> user_data=0x2840e040 handler=0x8069f40
>>>> /etc/rc.d/wpa_supplicant: WARNING: failed to start wpa_supplicant
>>> Please, tell me that you start wpa_supplicant with -Dndis flag.
>>>
>> I ran 'sh -x /etc/rc.d/wpa_supplicant start ndis0' to see how the script
>> was starting the program.  Here is the original command line:
>>
>> /usr/sbin/wpa_supplicant -s -B -i ndis0 -c /etc/wpa_supplicant.conf -D
>> bsd -P /var/run/wpa_supplicant/ndis0.pid
>>
>> I replaced '-D bsd' with '-D ndis' and still got a return code of 255.
>> I double-checked to ensure the module was loaded, and adding '-dd' did
>> not increase the debug output.
>>
>> I also read the /etc/rc.d/wpa_supplicant script to see how it detected
>> whether or not to use '-D ndis'.  Turns out it calls a function named
>> 'is_ndis_interface()' which checks a sysctl named
>> 'net.wlan.${1#wlan}.%parent' but there is no 'net.wlan.ndis0.%parent',
>> nor is there any 'net.wlan.ndis0' keys.  There *is* 'net.ndis.0.%parent'
>> which is set to pci1 and 'net.ndis.0.%driver' which is set to ndis --
>> the latter sounds like a possibly sensible test for '-D ndis' if you ask
>> me.
>>
>> Anyway, the fact that the sysctl wasn't present makes me think the
>> failure to load /compat/ndis/rate.bin might have caused 'ndis_attach()'
>> to not call 'ndis_create_sysctls()', or 'ndis_attach_pci()' to not call
>> 'ndis_attach()', or so on -- but I can't tell where 'NdisOpenFile()'
>> gets called so I'm not sure.
>>
>> Does this sound reasonable?  What do you think?
> 
> Probably, in my case net.wlan.0.%parent is ndis0
> 
> What is displayed on kldload and device attach on console?
> Try it with sysctl debug.ndis=1.
> 
> 

Here is dmesg output from 'kldload rt2860_sys.ko' after running 'sysctl 
debug.ndis=1':

no match for ZwWriteFile
no match for ZwCreateFile
no match for ZwReadFile
ndis0: <802.11n Wireless LAN Card> mem 0xfbef0000-0xfbefffff irq 19 at 
device0.0 on pci1
ndis0: [ITHREAD]
ndis0: NDIS API version: 5.0
NDIS: open file /compat/ndis/rate.bin failed: 2
attach done.
halting done.

/var/log/messages doesn't have anything new to add -- an unknown USB 
device is detected but that's the camera so I'm not worried.

Jack.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49C91475.9080303>