Re: RT2860 NDIS needs rate.bin, where is it?

Jack Twilley <[email protected]>
Newsgroups gmane.os.freebsd.devel.mobile
Message-ID <[email protected]>
Paul B. Mahol wrote:
> On 3/23/09, Jack Twilley <[email protected]> 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?

Jack.
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.