Date: Tue, 24 Mar 2009 08:22:29 +0100 From: "Paul B. Mahol" <onemda@gmail.com> To: Jack Twilley <jmt@twilley.org> Cc: freebsd-mobile@freebsd.org Subject: Re: RT2860 NDIS needs rate.bin, where is it? Message-ID: <3a142e750903240022n10d8b8cdy3787cc6b423df3c8@mail.gmail.com> In-Reply-To: <49C82A4B.5090108@twilley.org> References: <49C7E0F8.9000701@twilley.org> <3a142e750903231441g184fa5d1r57515c77d01e6dd4@mail.gmail.com> <49C82A4B.5090108@twilley.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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. -- Paul
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3a142e750903240022n10d8b8cdy3787cc6b423df3c8>