Search Linux Wireless

Re: Android 2.2/2.2.1 wifi not working after restart with driver-awext

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Holger,

On Nov 16, 2010, at 4:04 PM, Holger Schurig wrote:

> Android doesn't work well with upstream groups. They made their own ecosystem,
> both in kernel-space and much more in user-space. They also usualy use
> outdated software, e.g. ancient kernel version.

Tell me about it! :-) The current version that I'm working on is 2.6.32.

> You're therefore encouraged to use android-specific mailing-lists or forums to
> solve your problems.

I had a feeling I might get this response, since this was not kernel wireless driver
specific issue. There are no android wireless equivalent mailing-list or forums, like
there is for linux. The android-porting groups list, I didn't get any response for
a whole month. Its pretty fragmented. 

> That said, the interface isn't up, contrary to your belief:

This is not true. You probably read the last few sections of the log file. On
first start and connect, wifi works and I'm able to use the wlan0 interface 
and browse the internet. 

After turning off wifi and turning it back on from the control panel, it doesnt
connect, and you see the following message. 

> 
> V/WifiStateTracker(  969): Changing supplicant state: DISCONNECTED ==> 
> SCANNING
> I//system/bin/wpa_supplicant( 1396): ioctl[SIOCGIWSTATS]: Operation not 
> supported on transport endpoint
> I//system/bin/wpa_supplicant( 1396): ioctl[SIOCGIWRATE]: Network is down
> 
> So something in restarting the wifi link forgot Android's equivalent
> of "ifconfig $interface up". If the interface isn't up, it won't scan. Without
> current scan results and an "up"-interface, it cannot associate.

In my init.rc file, I have the following entry, which is intended to bring wlan0 up

service ifcfg_ralink /system/bin/ifconfig wlan0 up
    group system wifi
    disabled
    oneshot

which probably gets called in the following code fragment from libhardware_legacy/wifi/wifi.c for wifi_load_driver()

diff --git a/wifi/wifi.c b/wifi/wifi.c
index 3f8708d..7533a64 100644
--- a/wifi/wifi.c
+++ b/wifi/wifi.c
@@ -188,8 +188,10 @@ int wifi_load_driver()
     sched_yield();
     while (count-- > 0) {
         if (property_get(DRIVER_PROP_NAME, driver_status, NULL)) {
-            if (strcmp(driver_status, "ok") == 0)
+            if (strcmp(driver_status, "ok") == 0) {
+		property_set("ctl.start", "ifcfg_ralink");
                 return 0;
+	    }
             else if (strcmp(DRIVER_PROP_NAME, "failed") == 0) {
                 wifi_unload_driver();
                 return -1;

Best regards,

Elvis Dowson

Elvis Dowson
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux