Closed PolynomialDivision closed 3 years ago
How can we solve this for general purpose? Which commonly used routers in Freifunk Berlin network are affected by this?
So falter-Images will ship with the 802.11s-capable driver by default, right?
How can we solve this for general purpose? Which commonly used routers in Freifunk Berlin network are affected by this?
There is either IBSS or 802.11s for these chips atm. What is general purpose? I'd say 802.11s by now. All "wave 1" devices are affected by this, such as Archer C7 V2 or AC-Mesh (<- !). I cannot seem to find a complete list of wave 1 devices on openwrt.org atm.
So falter-Images will ship with the 802.11s-capable driver by default, right?
I'd say yes, that would be the best way to push 802.11s distribution. People can always use ct for IBSS as described here: https://wiki.freifunk.net/Ubiquiti_Unifi_AC_Mesh#IBSS.2FAd-Hoc-Mesh-Support_aktivieren_.28kein_802.11s_m.C3.B6glich.29
I think it would be cool if we could develope a package which would go upstream and provides the firmwares from both ct and non-ct with a mechanism to switch between the two. Then hopefully the user could just select how they would like to mesh (wizard) and the correct firmware is loaded as a result.
I'm just not sure how to implement such a thing.
I'm just not sure how to implement such a thing.
As you mentioned in https://github.com/freifunk-berlin/firmware/issues/696#issuecomment-502457490 this requires patching OpenWrt Makefiles directly. An other way was mentioned by NeoRaider a bit later, which is extending the OpenWrt-config by a generic "Firmware-type" selection. But this is all about modding OpenWrt or hacking something ugly
There might be a third way: https://wiki.freifunk.net/Ubiquiti_Unifi_AC_Mesh#IBSS.2FAd-Hoc-Mesh-Support_aktivieren_.28kein_802.11s_m.C3.B6glich.29
AFAICT, we can write those commands mentioned there into a shell script and provide a nice CLI and GUI.
This should do the job perfectly for falter purposes. Then we can await a superb solution by far more professional upstream developers easily.
Sketch for an implementation:
Falter-images will be compiled with non-ct-driver erverytime.
If the wizard runs on a wave1-device and ad-hoc gets selected at the last page, it will configure 11s first. Then it will generate a uci-defaults script, which will run the command-sequence from the wiki at router-startup. In addition this script will switch the meshmode of the interfaces to ad-hoc.
Is that solution agreeable? In that way, we can get a solution fairly fast.
Recently, we discussed that subject in our Matrix-room also. Some thoughts on that:
About the ath10k stuff. I think we should stay with the default -ct firmware in our builds. The reason is that -ct supports adhoc, which the closed-source firmware doesn't. If the user wants to switch to 802.11s, then we should provide a way for the change to happen. We should not do it by default. KISS principle (Keep It Simple and Stupid) for the build process.
why should we use ath10k-ct? ath10k-ct reports rx rate Otherwise it remains at 6mbit/s, keeping users nervous
Imho it would be easier to implement a pre-build-hook in the builter script, which checks for presence of packages indicating a wave1 chipset is used and then replaces ath10k-ct and Firmware with-non-ct. If either one of the follwing packages is about to be included:
ath10k-firmware-qca9887 ath10k-firmware-qca988x .. Then replace
kmod-ath10k-ct with kmod-ath10k ath10k-firmware-qca.*-ct with ath10k-firmware-qca.*
Solved via https://github.com/Freifunk-Spalter/builter/pull/44.
Wave1-Devices use non-ct driver and firmware by default now.
Candela is a company that has signed an NDA to get the source code for ath10k. A person named Ben then added patches to the firmware. This person always rebase his changes to the latest official firmware.
But now there is the problem that Mesh-Point aka 802.11s is not available for wave1 products. Mesh-Point still works fine with the official firmware. But now the ct firmware has become openwrt default.
Now the weakness is that we only have a "packagefeed", because the user may have to intervene himself. This means that the user has to unselect the ct driver and install the non-ct firmware.
I still think that we can do that in the buildbot and it's good. That automatically compiled images of us have the non-ct firmware.