Vero 4K+'s wifi performance inferior to Raspberry Pi

The point is that the wlan driver when connected to a 2.4 GHz network cannot even nearly max out my external internet connection whereas when connected to a 5 GHz network it can (nominal 50MBit/s). There is no need for iperf to see this.

With 2.4G you’ll probably only ever hit 40Mbps max.
From your speeds it looks like the 2.4Ghz channels you are using are significantly congested.

As an aside: are you using Bluetooth?

Sam

I had bluetooth on in connman (though without connected devices). So I switched off bluetooth and repeated my tests. The wireless performance is still bad at 2.4GHz (no improvement visible).

To exclude that the bad performance has something to do with 2.4GHz band congestion I connected my laptop to the access point at 2.4GHz and measured around 3.6 MB/s. So considerably more than on the vero 4k+.

I would strongly suggest you test with iperf and not Speedtest.

In case you keep running into the blocked WLAN issue I described above: connman is blocking it when starting up since it is disabled in its settings. This can then make the wpa_supplicant@wlan0 service fail to start. Thus I modified the underlying /lib/systemd/system/wpa_supplicant@.service to include connman.service in the After= line and added another ExecStartPre=/bin/bash -c 'sleep 5; /usr/sbin/rfkill unblock wifi' right in front of the ExecStart= line.

You shouldn’t need to change any of this if WiFi is enabled.

Ok I rechecked the situation after having upgraded to 2020.11-1 (November 2020). The wpa_supplicant version is reported as v2.8-devel. The apt update && apt dist-upgrade mostly undo the changes I suggested above and thus it was a good opportunity to retry without modifications. The wlan connected via a 2.4GHz link (which is the bad performing one) as reported by iw wlan0 link. wget downloads only reach download speeds of well below 0.1 MB/s. The wireless ssh connection feels sluggish. Downloads via the UI are very slow and fail repeatedly. So in summary the situation is the same as before. Let me also update my instructions from above to include the wifi unblocking I wrote about in one of the subsequent posts and to work with OSMC November 2020:


In order to make things persist (up to a dist-upgrade) I had to perform the following steps (please do that at your own risk and with wired access):

  • Disable WiFi and P2P in /var/lib/connman/settings.
  • Write the wpa_supplicant config from my last post to /etc/wpa_supplicant/wpa_supplicant-wlan0.conf.
  • Make sure it is owned by root and cannot be accessed by others: sudo chown root:root /etc/wpa_supplicant/wpa_supplicant-wlan0.conf && chmod o-rwx /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
  • systemctl enable "wpa_supplicant@wlan0.service".
  • systemctl disable wpa_supplicant.service
  • Remove wpa_supplicant.service from the After= line in /lib/systemd/system/connman.service.
  • Backup and remove fi.epitest.hostap.WPASupplicant.service and fi.w1.wpa_supplicant1.service from /usr/share/dbus-1/system-services/ (those are installed by the wpa_supplicant package in case you didn’t do the backup).
  • sudo apt install dhcpcd5 rfkill.
  • Edit /lib/systemd/system/wpa_supplicant@.service to
    • include connman.service in the After= line and
    • add another ExecStartPre=/bin/bash -c 'sleep 5; /usr/sbin/rfkill unblock wifi' right in front of the ExecStart= line.
  • Edit /lib/systemd/system/connman-wait-for-network.service and allow it to proceed even if wlan0 is not under it’s control to a network-online state by patching the ExecStart= line like so:
    • ExecStart=/bin/bash -c "if grep -q nfsroot /proc/cmdline; then exit 0; fi; count=60; while [ $count -gt 0 ]; do if connmanctl state | grep -iq 'ready\\|online'; then break; fi; if wpa_cli -iwlan0 status &> /dev/null ; then break; fi; sleep 1; let count-=1; done; exit 0"

After rebooting iw wlan0 link should report a 5 GHz frequency and ifconfig wlan0 an IP.

In case things go wrong check journalctl -u wpa_supplicant@wlan0.

Please let me know if the steps above can be boiled down and whether they work for you.

Since the update of vero3-wifi-osmc from 1.4.0-2 to 1.5.0-1 I even have problems on the 5 GHz link. Anyone else?

What are the problems exactly?

Can you post some logs?

Sam

Video streaming applications like Netflix and others often report errors like “Name or service not known”. They most often fail to play content. Pinging arbitrary internet hosts (e.g. www.google.de) results in communication dropouts every few seconds (gap in the sequence number, then intermittent high delays), dmesg looked unsuspicious. Iirc the wlan0 interface did not report packet loss. The connman logs reported something suspicous - repeatedly routes got added and deleted:

Oct 12 23:57:27 osmc connmand[2270]: wlan0 {add} route 82.165.8.211 gw 192.168.xyz.1 scope 0 <UNIVERSE>
Oct 12 23:57:27 osmc connmand[2270]: wlan0 {del} route 82.165.8.211 gw 192.168.xyz.1 scope 0 <UNIVERSE>

I have no clue what that is about. Ethernet connection was stable. Other devices had no problem with wireless access.

ConnMan will add a route to verify network connectivity status, so that doesn’t seem too suspicious.

A full log might give some clues.