From owner-freebsd-mobile@FreeBSD.ORG Tue Mar 24 00:33:17 2009 Return-Path: Delivered-To: freebsd-mobile@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C1552106566B for ; Tue, 24 Mar 2009 00:33:17 +0000 (UTC) (envelope-from jmt@twilley.org) Received: from alpha.twilley.org (alpha.twilley.org [204.152.189.135]) by mx1.freebsd.org (Postfix) with ESMTP id A8AB08FC13 for ; Tue, 24 Mar 2009 00:33:17 +0000 (UTC) (envelope-from jmt@twilley.org) Received: from [10.202.10.160] (205.158.109.36.ptr.us.xo.net [205.158.109.36]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by alpha.twilley.org (Postfix) with ESMTPSA id 8BF9223383C; Mon, 23 Mar 2009 17:33:16 -0700 (PDT) Message-ID: <49C82A4B.5090108@twilley.org> Date: Mon, 23 Mar 2009 17:33:15 -0700 From: Jack Twilley User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) MIME-Version: 1.0 To: "Paul B. Mahol" References: <49C7E0F8.9000701@twilley.org> <3a142e750903231441g184fa5d1r57515c77d01e6dd4@mail.gmail.com> In-Reply-To: <3a142e750903231441g184fa5d1r57515c77d01e6dd4@mail.gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-mobile@freebsd.org Subject: Re: RT2860 NDIS needs rate.bin, where is it? X-BeenThere: freebsd-mobile@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Mobile computing with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Mar 2009 00:33:18 -0000 Paul B. Mahol wrote: > On 3/23/09, Jack Twilley 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.