Hi, savoy
I did in wpa_supplicant.conf and init.rc
here goes my wpa_supplicant.conf & init.rc

== external/wpa_supplicant/wpa_supplicant.conf ==
# global configuration (shared by all network blocks)
#
# Parameters for the control interface. If this is specified,
wpa_supplicant
# will open a control interface that is available for external
programs to
# manage wpa_supplicant. The meaning of this string depends on which
control
# interface mechanism is used. For all cases, the existance of this
parameter
# in configuration is used to determine whether the control interface
is
# enabled.
#
# For UNIX domain sockets (default on Linux and BSD): This is a
directory that
# will be created for UNIX domain sockets for listening to requests
from
# external programs (CLI/GUI, etc.) for status information and
configuration.
# The socket file will be named based on the interface name, so
multiple
# wpa_supplicant processes can be run at the same time if more than
one
# interface is used.
# /var/run/wpa_supplicant is the recommended directory for sockets and
by
# default, wpa_cli will use it when trying to connect with
wpa_supplicant.
#
# Access control for the control interface can be configured by
setting the
# directory to allow only members of a group to use sockets. This way,
it is
# possible to run wpa_supplicant as root (since it needs to change
network
# configuration and open raw sockets) and still allow GUI/CLI
components to be
# run as non-root users. However, since the control interface can be
used to
# change the network configuration, this access needs to be protected
in many
# cases. By default, wpa_supplicant is configured to use gid 0 (root).
If you
# want to allow non-root users to use the control interface, add a new
group
# and change this value to match with that group. Add users that
should have
# control interface access to this group. If this variable is
commented out or
# not included in the configuration file, group will not be changed
from the
# value it got by default when the directory or socket was created.
#
# When configuring both the directory and group, use following format:
# DIR=/var/run/wpa_supplicant GROUP=wheel
# DIR=/var/run/wpa_supplicant GROUP=0
# (group can be either group name or gid)
#
# For UDP connections (default on Windows): The value will be ignored.
This
# variable is just used to select that the control interface is to be
created.
# The value can be set to, e.g., udp (ctrl_interface=udp)
#
# For Windows Named Pipe: This value can be used to set the security
descriptor
# for controlling access to the control interface. Security descriptor
can be
# set using Security Descriptor String Format (see http://msdn.microsoft.com/
# library/default.asp?url=/library/en-us/secauthz/security/
# security_descriptor_string_format.asp). The descriptor string needs
to be
# prefixed with SDDL=. For example, ctrl_interface=SDDL=D: would set
an empty
# DACL (which will reject all connections). See README-Windows.txt for
more
# information about SDDL string format.
#
#ctrl_interface=wlan0
ctrl_interface=DIR=/data/system/wpa_supplicant/ GROUP=system


== system/core/rootdir/init.rc ==

    # give system access to wpa_supplicant.conf for backup and restore
    mkdir /data/misc/wifi 0770 system system
    mkdir /data/misc/wifi/sockets 0770 system system
    mkdir /data/system 0775 system system
    mkdir /data/system/wpa_supplicant 0770 system system
    mkdir /data/misc/dhcp 0770 dhcp dhcp
    chown dhcp dhcp /data/misc/dhcp
    chmod 0555 /system/bin/busybox

and after booting up, I checked the directory, /data/system/
wpa_supplicant & /data/misc/wifi/sockets both exist
but it still can't connect. just don't know why???


On 3月3日, 下午6時45分, pavan savoy <pavan.sa...@gmail.com> wrote:
> aren't these problems similar 
> to,http://osdir.com/ml/android-porting/2009-02/msg00139.html
> ?
>
> modifications are required in init.rc and .conf file - If I remember
> correctly (does seem a long time ago ...).
>
> regards,
> Pavan
>
> 2010/3/3 Gaan <gaan...@gmail.com>
>
>
>
> > I found the problem is that the directory /data/system/wpa_supplicant
> > is not creat after bootup
> > and I change to use Group system in create all relative directories.
> > &
> > out/target/product/generic/system/etc/wifi/wpa_supplicant.conf
> > still with  ctrl_interface=DIR=/data/system/wpa_supplicant/
> > GROUP=system
>
> > then there is the new log
>
> > And I also checked the wpa_supplicant source code.
>
> > ======================
> > I/power   (  961): *** set_screen_state 1
> > E/WifiHW  (  961): ******* wifi_load_driver ********
> > E/WifiHW  (  961): check_driver_loaded 1
> > I/WifiHW  (  961): Loading WiFi Modules
> > D/SettingsWifiEnabler( 1154): Received wifi state changed from
> > Disabled to Enabling
> > I/WifiHW  (  961): insmod
> > E/WifiHW  (  961): ******* ok ********
> > E/WifiHW  (  961): ******* driver_status OK, ifconfig up ********
> > I/WifiHW  (  961): **1** inside wifi_start_supplicant
> > I/WifiHW  (  961): **1** inside ensure_config_file_exists
> > E/WifiHW  (  961): ***wpa_supplicant -Dwext -ira0 -c /system/etc/wifi/
> > wpa_supplicant.conf ***
> > E/WifiHW  (  961): *** wpa_supplicant prop can't find ***
> > E/WifiHW  (  961): *** wpa_supplicant is running state***
> > E/WifiHW  (  961): ******* wifi_connect_to_supplicant ********
> > I/WifiHW  (  961): *** access OK ***
> > I/WifiHW  (  961): *** Interface directory = /data/system/
> > wpa_supplicant
> > I/WifiHW  (  961):  Interface name = /data/system/wpa_supplicant/ra0
> > ***
> > E/Wap_Supplicant(  961): wpa_ctrl_open (5)dest.sun_path=/data/system/
> > wpa_supplicant/ra0 sizeof(ctrl->dest.sun_path)=108 ctrl_path=/data/
> > system/wpa_supplicant/ra0
> > E/Wap_Supplicant(  961): wpa_ctrl_open (6)ctrl->s=75 &ctrl-
> > >dest=3d6aea sizeof(ctrl->dest)=110
> > E/WifiHW  (  961): Unable to open connection to supplicant on "/data/
> > system/wpa_supplicant/ra0": No such file or directory
> > D/WifiService(  961): ACTION_BATTERY_CHANGED pluggedType: 1
> > I/WifiHW  (  961): wifi_command called, cmd:BLACKLIST clear
> > E/WifiHW  (  961): ******* wifi_send_command ********
> > D/SettingsWifiEnabler( 1154): Received wifi state changed from
> > Enabling to Enabled
> > D/PowerManagerService(  961): setPowerState: mPowerState=6 newState=3
> > noChangeLights=false
> > D/PowerManagerService(  961):   oldKeyboardBright=false
> > newKeyboardBright=false
> > D/PowerManagerService(  961):   oldScreenBright=true
> > newScreenBright=true
> > D/PowerManagerService(  961):   oldButtonBright=true
> > newButtonBright=false
> > D/PowerManagerService(  961):   oldScreenOn=false newScreenOn=true
> > D/PowerManagerService(  961):   oldBatteryLow=false
> > newBatteryLow=false
> > I/power   (  961): *** set_screen_state 1
> > D/dalvikvm( 1023): GC freed 772 objects / 35496 bytes in 619ms
> > E/wpa_supplicant( 1169): Failed to initialize control interface 'DIR=/
> > data/system/wpa_supplicant/ GROUP=system'.
> > E/wpa_supplicant( 1169): You may have another wpa_supplicant process
> > already running or the file was
> > E/wpa_supplicant( 1169): left by an unclean termination of
> > wpa_supplicant in which case you will need
> > E/wpa_supplicant( 1169): to manually remove this file before starting
> > wpa_supplicant again.
> > I/wpa_supplicant( 1169): CTRL-EVENT-STATE-CHANGE id=-1 state=0
> > I//system/bin/wpa_supplicant( 1168): chown[ctrl_interface]: Operation
> > not permitted
> > D/dalvikvm(  961): GC freed 10660 objects / 603936 bytes in 266ms
> > I/logwrapper( 1168): /system/bin/wpa_supplicant terminated by
> > exit(255)
> > E/WifiHW  (  961): ******* wifi_connect_to_supplicant ********
> > E/WifiHW  (  961): Supplicant not running, cannot connect
> > I//system/bin/wpa_supplicant( 1172): chown[ctrl_interface]: Operation
> > not permitted
> > E/wpa_supplicant( 1173): Failed to initialize control interface 'DIR=/
> > data/system/wpa_supplicant/ GROUP=system'.
> > E/wpa_supplicant( 1173): You may have another wpa_supplicant process
> > already running or the file was
> > E/wpa_supplicant( 1173): left by an unclean termination of
> > wpa_supplicant in which case you will need
> > E/wpa_supplicant( 1173): to manually remove this file before starting
> > wpa_supplicant again.
> > I/wpa_supplicant( 1173): CTRL-EVENT-STATE-CHANGE id=-1 state=0
> > I/logwrapper( 1172): /system/bin/wpa_supplicant terminated by
> > exit(255)
> > E/WifiHW  (  961): ******* wifi_connect_to_supplicant ********
> > I/WifiHW  (  961): *** access OK ***
> > I/WifiHW  (  961): *** Interface directory = /data/system/
> > wpa_supplicant
> > I/WifiHW  (  961):  Interface name = /data/system/wpa_supplicant/ra0
> > ***
> > E/Wap_Supplicant(  961): wpa_ctrl_open (5)dest.sun_path=/data/system/
> > wpa_supplicant/ra0 sizeof(ctrl->dest.sun_path)=108 ctrl_path=/data/
> > system/wpa_supplicant/ra0
> > E/Wap_Supplicant(  961): wpa_ctrl_open (6)ctrl->s=44 &ctrl-
> > >dest=3545e2 =110 sizeof(ctrl->dest)=1
> > E/Wap_Supplicant(  961): wpa_ctrl_open (5)
> > E/WifiHW  (  961): Unable to open connection to supplicant on "/data/
> > system/wpa_supplicant/ra0": No such file or directory
> > I//system/bin/wpa_supplicant( 1177): chown[ctrl_interface]: Operation
> > not permitted
> > E/wpa_supplicant( 1178): Failed to initialize control interface 'DIR=/
> > data/system/wpa_supplicant/ GROUP=system'.
> > E/wpa_supplicant( 1178): You may have another wpa_supplicant process
> > already running or the file was
> > E/wpa_supplicant( 1178): left by an unclean termination of
> > wpa_supplicant in which case you will need
> > E/wpa_supplicant( 1178): to manually remove this file before starting
> > wpa_supplicant again.
> > I/wpa_supplicant( 1178): CTRL-EVENT-STATE-CHANGE id=-1 state=0
> > I/logwrapper( 1177): /system/bin/wpa_supplicant terminated by
> > exit(255)
> > E/WifiHW  (  961): ******* wifi_connect_to_supplicant ********
> > I/WifiHW  (  961): *** access OK ***
> > I/WifiHW  (  961): *** Interface directory = /data/system/
> > wpa_supplicant
> > I/WifiHW  (  961):  Interface name = /data/system/wpa_supplicant/ra0
> > ***
> > E/Wap_Supplicant(  961): wpa_ctrl_open (5)dest.sun_path=/data/system/
> > wpa_supplicant/ra0 sizeof(ctrl->dest.sun_path)=108 ctrl_path=/data/
> > system/wpa_supplicant/ra0
> > E/Wap_Supplicant(  961): wpa_ctrl_open (6)ctrl->s=44 &ctrl-
> > >dest=3545e2 =110 sizeof(ctrl->dest)=2
> > E/Wap_Supplicant(  961): wpa_ctrl_open (5)
> > E/WifiHW  (  961): Unable to open connection to supplicant on "/data/
> > system/wpa_supplicant/ra0": No such file or directory
> > V/WifiStateTracker(  961): Supplicant died unexpectedly
> > E/WifiHW  (  961): ******* wifi_close_supplicant_connection ********
> > I//system/bin/wpa_supplicant( 1182): chown[ctrl_interface]: Operation
> > not permitted
> > E/wpa_supplicant( 1183): Failed to initialize control interface 'DIR=/
> > data/system/wpa_supplicant/ GROUP=system'.
> > E/wpa_supplicant( 1183): You may have another wpa_supplicant process
> > already running or the file was
> > E/wpa_supplicant( 1183): left by an unclean termination of
> > wpa_supplicant in which case you will need
> > E/wpa_supplicant( 1183): to manually remove this file before starting
> > wpa_supplicant again.
> > I/wpa_supplicant( 1183): CTRL-EVENT-STATE-CHANGE id=-1 state=0
> > I/logwrapper( 1182): /system/bin/wpa_supplicant terminated by
> > exit(255)
> > D/NetworkStateTracker(  961): setDetailed state, old =IDLE and new
> > state=DISCONNECTED
> > D/ConnectivityService(  961): ConnectivityChange for WIFI:
> > DISCONNECTED/DISCONNECTED
> > I/WifiHW  (  961): wifi_stop_supplicant called
> > D/DataConnectionTracker( 1019): enableApnType(default),
> > isApnTypeActive = false and state = IDLE
> > D/SettingsWifiEnabler( 1154): Received wifi state changed from Enabled
> > to Disabling
> > I/WifiHW  (  961): **1** inside wifi_unload_driver
> > E/WifiHW  (  961): ******* before rmmod, ifconfig down ********
> > I/WifiHW  (  961): rmmod
> > E/WifiHW  (  961): check_driver_loaded 1
> > W/WifiHW  (  961): check_driver_loaded 2
> > D/SettingsWifiEnabler( 1154): Received wifi state changed from
> > Disabling to Disabled
>
> > =======================================
>
> > And I also checked the wpa_supplicant source code. (wpa_ctrl_open() in
> > wpa_ctrl.c)
>
> > ==============part of wpa_ctrl.c=========================
> > #ifdef ANDROID
> >        chmod(ctrl->local.sun_path, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP);
> >        chown(ctrl->local.sun_path, AID_SYSTEM, AID_WIFI);
> >        /*
> >         * If the ctrl_path isn't an absolute pathname, assume that
> >         * it's the name of a socket in the Android reserved namespace.
> >         * Otherwise, it's a normal UNIX domain socket appearing in the
> >         * filesystem.
> >         */
> >        if (ctrl_path != NULL && *ctrl_path != '/') {
> >                os_snprintf(ctrl->dest.sun_path,
> > sizeof(ctrl->dest.sun_path), "wpa_
> > %s",
> >                            ctrl_path);
> >                LOGE("wpa_ctrl_open (4)dest.sun_path=%s
> > sizeof(ctrl->dest.sun_path)=
> > %d wpa_%s",ctrl->dest.sun_path,sizeof(ctrl->dest.sun_path),ctrl_path);
> >                if (socket_local_client_connect(ctrl->s,
> >                                                ctrl->dest.sun_path,
>
> >  ANDROID_SOCKET_NAMESPACE_RESERVED,
> >                                                SOCK_DGRAM) < 0) {
> >                        close(ctrl->s);
> >                        unlink(ctrl->local.sun_path);
> >                        os_free(ctrl);
> >                        LOGE("wpa_ctrl_open (4)");
> >                        return NULL;
> >                }
> >                return ctrl;
> >        }
> > #endif
> >        ctrl->dest.sun_family = AF_UNIX;
> >        os_snprintf(ctrl->dest.sun_path, sizeof(ctrl->dest.sun_path), "%s",
> >                    ctrl_path);
> >        LOGE("wpa_ctrl_open (5)dest.sun_path=%s sizeof(ctrl->dest.sun_path)=
> > %d ctrl_path=%s",ctrl->dest.sun_path,sizeof(ctrl-
> > >dest.sun_path),ctrl_path);
> >        LOGE("wpa_ctrl_open (6)ctrl->s=%d &ctrl->dest=%x sizeof(ctrl->dest)=
> > %d",ctrl->s, &ctrl->dest,sizeof(ctrl->dest));
> >        if (connect(ctrl->s, (struct
>
> ...
>
> 閱讀更多 >>

-- 
unsubscribe: android-porting+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-porting

Reply via email to