Hi Peter, The simplest way is to create for your driver special driver_libertas.c layer that will forward all usual calls to driver_wext.c functions but for private will do special IOCTL that libertas driver "understands". Or you can change kernel driver itself.
bcm4329 driver can be used as an example: http://android.git.kernel.org/?p=kernel/msm.git;a=tree;f=drivers/net/wireless/bcm4329;h=a10842ca196951bc3399a8fa4cff09dce4ac305f;hb=refs/heads/android-msm-2.6.32 Thanks, Dmitry On Thu, Apr 1, 2010 at 12:36 AM, Peter Fortuin <[email protected]>wrote: > Hi Dmitry, > > This information is very usefull. I investigated some further into the code > and this is what I found out yet: The problem is in the calling of the ioctl > function with SIOCSIWPRIV. I start searching in my wifi driver (libertas) > and I found out that SIOCSIWPRIV is not supported in my driver. So that's > why the function fails. > > As I see it now, I have 2 options: > > - Add a function to the libertas driver so that is resonds to SIOCSIWPRIV. > - Change the wpa_driver_priv_driver_cmd function that he handles itself. > > Not sure what is more easy to do. > > Do you have any more detailed documentation (url?) about the different > commands? Or do you know any wifi driver in the kernel that has implemented > the SIOCSIWPRIV function? > > Kind regards, > > Peter > > > 2010/3/31 Dmitry Shmidt <[email protected]> > > Hi Peter, >> >> Most important driver control functions: >> - RSSI -- get current Rssi value (used only for >> signal icon strength) >> - Responce: SSID rssi value >> - LINKSPEED -- get current Linkspeed value (can be ignored) >> - Responce: LinkSpeed value >> - MACADDR -- get wlan BSSID >> - Responce: Macaddr = XX:XX:XX:XX:XX:XX >> - START -- start wlan driver/FW >> - STOP -- stop wlan driver/FW - in the meaning of >> turning it off >> - SCAN-CHANNELS -- set proper regulatory domain >> >> Thanks, >> Dmitry >> >> >> On Wed, Mar 31, 2010 at 1:01 AM, Peter Fortuin >> <[email protected]>wrote: >> >>> Hi Dmitry, >>> >>> Thanks for the response. I found the wpa_driver_priv_driver_cmd function >>> inside the driver_wext.c, but I have no idea what this function should do >>> exactly or why it fails in my case. I'm going to add some debug statements >>> in it to see where it exacly fails. >>> >>> Can you explain in a little bit more detail what this function does? >>> >>> Kind regards, >>> >>> Peter >>> >>> 2010/3/29 Dmitry Shmidt <[email protected]> >>> >>> Hi Peter, >>>> >>>> Android Network manager is sending special commands to the driver >>>> through wpa_supplicant interface to do stuff like >>>> start/stop the driver, get Rssi value and other things. >>>> Please take a look on wpa_supplicant driver_wext.c file and look for >>>> private function. >>>> >>>> Thanks, >>>> >>>> Dmitry >>>> >>>> On Mon, Mar 29, 2010 at 4:52 AM, Peter Fortuin <[email protected] >>>> > wrote: >>>> >>>>> Hello, >>>>> >>>>> I got my wpa_supplicant running and I can connect to different wireless >>>>> networks. But I keep seeing the following message in the logs: >>>>> >>>>> wpa_driver_priv_driver_cmd failed >>>>> >>>>> I have been google'ing, but only found people with the same problem, >>>>> but no solution. >>>>> >>>>> Can someone explain to me what the message means? And is this a problem >>>>> that I need to solve? >>>>> >>>>> Kind regards, >>>>> >>>>> Peter >>>>> >>>>> -- >>>>> unsubscribe: >>>>> [email protected]<android-porting%[email protected]> >>>>> website: http://groups.google.com/group/android-porting >>>>> >>>>> To unsubscribe from this group, send email to android-porting+ >>>>> unsubscribegooglegroups.com or reply to this email with the words >>>>> "REMOVE ME" as the subject. >>>>> >>>> >>>> >>> >> > -- unsubscribe: [email protected] website: http://groups.google.com/group/android-porting
