Hi Jukka,
> Subject: Re: Connman refusing to find wifi
> From: [email protected]
> To: [email protected]
> CC: [email protected]
> Date: Mon, 13 Oct 2014 10:57:10 +0300
>
> Hi Matti,
>
> On la, 2014-10-11 at 22:15 +0300, Matti Laakso wrote:
>> Hi,
>>
>> I'm running Yocto Linux 1.4 with connman 1.12 and wpa_supplicant 2.0. I
>> know it's not the latest and greatest, but I hope you are still able to
>> help. I'm basically unable to get connman to recognize wpa_supplicant.
>> Starting 'connmand -d -n' I get
>>
>> connmand[1478]: src/technology.c:technology_get() No matching drivers
>> found for wifi.
>>
>> Furthermore, 'connmanctl technologies' lists only wired, and 'connmanctl
>> enable wifi' doesn't produce any output.
>>
>> Connman is built with --enable-wifi (there is only tist.so under
>> /usr/lib/connman/plugins, but as far as I've understood, wifi is
>> built-in). At least 'strings /usr/sbin/connmand' produces a lot of
>> wifi-related output.
>>
>> Wpa_supplicant is built with D-Bus support:
>>
>> # ls /usr/share/dbus-1/system-services/
>> fi.epitest.hostap.WPASupplicant.service
>> fi.w1.wpa_supplicant1.service
>> org.bluez.service
>>
>> # ls /etc/dbus-1/system.d/
>> bluetooth.conf connman.conf dbus-wpa_supplicant.conf
>>
>> # dbus-send --system --dest=org.freedesktop.DBus --type=method_call
>> --print-reply /org/freedesktop/DBus
>> org.freedesktop.DBus.ListActivatableNames
>> method return sender=org.freedesktop.DBus -> dest=:1.24 reply_serial=2
>> array [
>> string "org.freedesktop.DBus"
>> string "fi.epitest.hostap.WPASupplicant"
>> string "fi.w1.wpa_supplicant1"
>> string "org.bluez"
>> ]
>>
>> test-supplicant seems to work:
>>
>> # ./test-supplicant
>> state = INACTIVE
>> scanning = 0
>> [ /fi/epitest/hostap/WPASupplicant/Interfaces/0 ]
>> group = CCMP TKIP WEP104 WEP40
>> proto = RSN WPA
>> auth_alg = OPEN SHARED LEAP
>> pairwise = CCMP TKIP
>> eap = MD5 TLS MSCHAPV2 PEAP TTLS GTC OTP LEAP
>> key_mgmt = NONE IEEE8021X WPA-EAP WPA-PSK
>> scanning = 0
>> state = INACTIVE
>> dbus.Array([dbus.ObjectPath('/fi/epitest/hostap/WPASupplicant/Interfaces/0/BSSIDs/f81a67a2de43'),
>> dbus.ObjectPath('/fi/epitest/hostap/WPASupplicant/Interfaces/0/BSSIDs/000cc37e945c'),
>> dbus.ObjectPath('/fi/epitest/hostap/WPASupplicant/Interfaces/0/BSSIDs/bcee7b555134'),
>> dbus.ObjectPath('/fi/epitest/hostap/WPASupplicant/Interfaces/0/BSSIDs/001a9f94f5aa'),
>> dbus.ObjectPath('/fi/epitest/hostap/WPASupplicant/Interfaces/0/BSSIDs/ee43f62dd5a4'),
>> dbus.ObjectPath('/fi/epitest/hostap/WPASupplicant/Interfaces/0/BSSIDs/002207ecfc5d')],
>> signature=dbus.Signature('o'))
>> [ /fi/epitest/hostap/WPASupplicant/Interfaces/0/BSSIDs/f81a67a2de43 ]
>> ssid = dbus.Array([dbus.Byte(65), dbus.Byte(110), dbus.Byte(100),
>> dbus.Byte(114), dbus.Byte(111), dbus.Byte(109), dbus.Byte(101),
>> dbus.Byte(100), dbus.Byte(97)], signature=dbus.Signature('y'),
>> variant_level=1) bssid =
>> dbus.Array([dbus.Byte(248), dbus.Byte(26), dbus.Byte(103),
>> dbus.Byte(162), dbus.Byte(222), dbus.Byte(67)],
>> signature=dbus.Signature('y'),
>> variant_level=1)
>> level = -67
>> capabilities = 17
>> frequency = 2412
>> maxrate = 54000000
>> quality = 43
>> rsnie = dbus.Array([dbus.Byte(48), dbus.Byte(20), dbus.Byte(1),
>> dbus.Byte(0), dbus.Byte(0), dbus.Byte(15), dbus.Byte(172), dbus.Byte(4),
>> dbus.Byte(1), dbus.Byte(0), dbus.Byte(0), dbus.Byte(15), dbus.Byte(172),
>> dbus.Byte(4), dbus.Byte(1), dbus.Byte(0), dbus.Byte(0), dbus.Byte(15),
>> dbus.Byte(172), dbus.Byte(2), dbus.Byte(12), dbus.Byte(0)],
>> signature=dbus.Signature('y'), variant_level=1)
>>
>> but test-new-supplicant gives an error:
>>
>> # ./test-new-supplicant
>> ERROR:dbus.proxies:Introspect error on :1.2:/fi/w1/wpa_supplicant1:
>> dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod:
>> wpa_supplicant was compiled without introspection support.
>>
>> I'm able to connect wifi with wpa_supplicant alone.
>
> It looks like your wpa_supplicant is not compiled with new dbus API.
> So check from wpa_supplicant config file that you have
>
> # Add support for new DBus control interface
> # (fi.w1.hostap.wpa_supplicant1)
> CONFIG_CTRL_IFACE_DBUS_NEW=y
>
>
> Check also ConnMan README file, it contains information about the
> settings you need to activate in wpa_s.
>
I do have CONFIG_CTRL_IFACE_DBUS_NEW enabled. I also tried
'supplicant-test' (which seems to only use the new interface) with mixed
results:
# supplicant-test
supplicant: Startup
^Csupplicant: Terminating
supplicant: Exit
i.e., it fails to start wpa_supplicant with the new DBus interface. However, if
I first
start wpa_supplicant by hand (wpa_supplicant -u -B), it works:
# supplicant-test
supplicant: Startup
supplicant: service_property() Debug level 2
supplicant: service_property() Debug timestamp 0
supplicant: service_property() Debug show keys 0
supplicant: debug_strvalmap() EAP method: MD5
supplicant: debug_strvalmap() EAP method: TLS
supplicant: debug_strvalmap() EAP method: MSCHAPV2
supplicant: debug_strvalmap() EAP method: PEAP
supplicant: debug_strvalmap() EAP method: TTLS
supplicant: debug_strvalmap() EAP method: GTC
supplicant: debug_strvalmap() EAP method: OTP
supplicant: debug_strvalmap() EAP method: LEAP
supplicant: service_property() key Capabilities type a
supplicant: system_ready() *
...
and so on, detecting wlan0 and a bunch of networks. ConnMan still won't find
wifi, however.
So it seems that the new interface is there, and works, but it can't be used to
start
wpa_supplicant (even though the dbus service file is there and has correct
content).
Could this be a permissions issue? I also think that out of the settings from
ConnMan
README I'm missing CONFIG_WPS and CONFIG_AP, are they absolutely needed?
I'll try recompiling with them later.
Regards,
Matti
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman