answered
2017-03-15 21:02:44 +0200
Hi.
I've been playing for a few days with this feature and my Jolla C.
Based in what's explained here I've been able to force "Fast Transition" switch between 2 AP's without the 4-way handshake usually necessary for association & authentication:
[root@Sailfish nemo]# wpa_cli roam EC:08:6B:F9:23:FC
Selected interface 'wlan0'
OK
[root@Sailfish nemo]# wpa_cli roam 00:1A:2B:A5:42:7D
Selected interface 'wlan0'
OK
[root@Sailfish nemo]#
Where EC:08:6B:F9:23:FC and 00:1A:2B:A5:42:7D are the mac addresses of two APs I use at home.
After a few more repetitions the handover fails and I still don't know why. This would be quite useful if we had a proper native VOIP support and integration for SailfishOS :)
Hope this helps.....
Regards.
UPDATE: 17/03/2017 14:55
After some tinkering around this issue I found out that the FT option is not included in the binaries. I changed the configuration in my device to support FT-PSK as key_mgmt and it diddn't work:
[root@Sailfish ~]# wpa_supplicant -C /var/run/wpa_supplicant/wlan0 -P /var/run/wpa_supplicant.pid -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D nl80211
Successfully initialized wpa_supplicant
Line 5: invalid key_mgmt 'FT-PSK'
Line 5: failed to parse key_mgmt 'WPA-PSK FT-PSK'.
Line 8: failed to parse network block.
Failed to read or parse configuration '/etc/wpa_supplicant/wpa_supplicant.conf'.
This means that this option is not admitted in the binary package.
Sorry for the inconvinience, although I think it should be easy to enable it at compilation time in the future.....
Regards.
*UPDATE: 20/03/2017 21:11*
Ok.
After some more tinkering I finally made it to get 802.11r support in my JollaC.
Basically I downloaded the source code for the package, added the corresponding build option and generated the same rpm package with the option CONFIG_IEEE80211R enabled.
I think it works because now, when I use wpa_cli to scan for available APs, my two FT-compatible APs appear like this:
> bssid / frequency / signal level / flags / ssid
00:1a:2b:a5:42:7d 2437 -30 [WPA2-PSK+FT/PSK-CCMP-preauth][ESS]
ec:08:6b:f9:23:fc 2472 -79 [WPA2-PSK+FT/PSK-CCMP-preauth][ESS]
Here's the log of the process I followed. Keep in mind that this is the first time I compile something locally in my JollaC, and also that you will have to uninstall the original wpa_supplicant package and this might be potencially dangerous.
[root@Sailfish SOURCES]pkcon install -y rpm-build
[root@Sailfish SOURCES]pkcon install -y make
[root@Sailfish SOURCES]pkcon install -y gcc
[root@Sailfish SOURCES]vi build-config
** add line with CONFIG_IEEE80211R=y **
[root@Sailfish SOURCES]zypper in meego-rpm-config
[root@Sailfish rpmbuild]# rpmbuild -bb SPECS/wpa_supplicant.spec
[root@Sailfish nemo]# zypper rm wpa_supplicant
Loading repository data...
Reading installed packages...
Resolving package dependencies...
Problem: This request will break your system!
This request will break your system!
This request will break your system!
This request will break your system!
This request will break your system!
connman-1.30+git31-1.34.1.armv7hl requires wpa_supplicant >= 0.7.1, but this requirement cannot be provided
Solution 1: Following actions will be done:
ignore the warning of a broken system (requires:feature-jolla)
ignore the warning of a broken system (requires:ssu-vendor-data-jolla)
ignore the warning of a broken system (requires:PackageKit)
ignore the warning of a broken system (requires:connectionagent-qt5)
ignore the warning of a broken system (requires:connman)
Solution 2: keep wpa_supplicant-2.5+git1-1.14.7.armv7hl
Solution 3: break connman-1.30+git31-1.34.1.armv7hl by ignoring some of its dependencies
Choose from above solutions by number or cancel [1/2/3/c] (c): 3
Resolving dependencies...
Resolving package dependencies...
The following package is going to be REMOVED:
wpa_supplicant
1 package to remove.
After the operation, 1.3 MiB will be freed.
Continue? [y/n/?] (y): y
Removing wpa_supplicant-2.5+git1-1.14.7 ..................................[done]
[root@Sailfish nemo]zypper in /root/rpmbuild/RPMS/armv7hl/wpa_supplicant-2.5+git1-1.14.7.armv7hl.rpm
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following NEW package is going to be installed:
wpa_supplicant
1 new package to install.
Overall download size: 529.3 KiB. After the operation, additional 1.3 MiB will
be used.
Continue? [y/n/?] (y): y
Retrieving package wpa_supplicant-2.5+git1-1.14.7.armv7hl
(1/1), 529.3 KiB ( 1.3 MiB unpacked)
Retrieving package wpa_supplicant-2.5+git1-1.14.7.armv7hl
(1/1), 529.3 KiB ( 1.3 MiB unpacked)
Installing: wpa_supplicant-2.5+git1-1.14.7 ...............................[done]
Additional rpm output:
rm: cannot remove `/var/log/wpa_supplicant.log': No such file or directory
[root@Sailfish nemo]systemctl restart wpa_supplicant
I hope this helps anyone interested as it helped me :D
** UPDATE 23/10/2017
Hi.
Good news at least!!
Finally I had a positive answer from mer-core/wpa_supplicant development branch and I've been confirmed that 802.11r will probably be available in the next release of SailFishOS.
For more details, see here:
Regards.
Please implement the solution of @Pasko in 2.1.1
JSEHV ( 2017-03-21 07:04:51 +0200 )edit