I have a couple of these babies:
Working fine under OpenWRT. Would like to pair them up in a mesh, at each end of the house. Needless to say there is a LOT to learn here, but I found a lovely doc here:
which is good but not great and I wonder if we can work together to make it great? OK as a technical writer by background, by great I will admit I mean the currently biased level of content and quality that leaves a modestly competent reader informed and confident and able to install a mesh.
But reading it have some questions. If I can get answers form the community here, I am happy to update that page (if and when I were to get a wiki account - self registration being disabled currently).
Questions arising as I walk through it:
- The first step recommends replacing
wpad-basic
withwpad-mesh-openssl
instead. All good and well, but I think it's worth some quick notes (here, and there) as what these packages are, and what the consequences and reasons are.Here's what my modest reading around the OpenWRT Wiki suggests (but I find it incomnmplete and a little guess-worky on my part):- wpad I will guess is from WPA (Wifi Protected Access) and D for Daemon? So a daemon that supplies wifi authentication features
- it seems to come in -mini, -basic, and -mesh-openssl variants at least, with mini providing basic PSK (Pre-Shared-Key) features, -basic adding fast transitioning and extra security features, and -maesh-openssl adds mesh support.
- It's not clear to me what the difference between fast transitions ( 802.11s) and mesh (802.11r) is, but I'm going to guess under s twp APs have distinct SSIDs and under r they offer the same SSID (the transition now being invisible to an end user). But as I said I'm guessing and learning a bit and fishing for feedback, correction and more learning.
- It seems the replacement of a -basic package with a -mesh then presents essentially no compromise in features, simply adds features supporting meshs.
- What remains unclear is after removing one package and installing the other, what happens. Byy which I mean does this just replace the package on disk, and it remains to be done to restart the services or reboot the router to gain advantage of the new package? Or does installing the package stop and start the required services to gain immediate utility from the installed package?
- We are now asked to add anew interface to
/etc/config/wireless
- Immediately I'm confronted with existing configs. I see a par for radio0 and a pair for radio1, each with a device and an interface (with default_ prepended) eclared. Where and how are these mapped to the more familiar wlan0 and wlan1 that I see in Luci under Wireless configuration, and what is the difference between radio0 and wlan0?
- We are asked then to add a new interface and give it a
mesh-id
. it's not clear what that is and how it's used but I note it for now. - There is a clue about bridging an ap interface and the mesh interface, but there is no further mention of bridging or who and when that happens which leaves me befuddled.
- We see an option to get capabilities with
iw dev <devname> get mesh_param
with no mention what a is, so I try radio0 and no luck but wlan0 works (and in fact the next lines confirm that). But above we saw that radio0 was declared as a wireless device. So again we're left wondering what wlan0 is and how is is bound to radio0. - It then asks us to run three commands
wifi
thenlogread -l 20 -f
and finallyiw dev wlan0 station dump
without explaining what this does or linking to anything. That's where any sensible reader bails to do more reading alas.- The
wifi
command turns out to be a script in /sbin, no ready documentation easily found, some discussion here: https://unix.stackexchange.com/questions/62045/how-to-apply-new-wireless-settings-on-an-openwrt-router-without-rebooting-it but examining the script with no argument it performsup
. No clarification here whyup
ing it useful, whendown
andreload
commands are there. As ever learning rather than blindly following. - Turns out
wifi status
is useful and is the first time I've see a tie between radio0 and wlan0! Though deeply ironic, because in this output wlan0 is listed under ... iface, not a device, but an interface - and we used it above as a device. Oh well, inconsistent terms are possible (if not useful). - Turns out that is just a running
ubus call network.wireless status
- Oddly
uci show wireless
knows nothing about wlan0 andgrep -r wlan0 /etc
reveals little (some LED configs but nothing that also mentions radio0) - The
logread
command is simple enough. Though on standard OpenWRT seems there's no disk file just a ringbuffer in memory. But either way, a command looking for the results of thewifi
command. - The
iw
command has better documentation andstation dump
shows stats for each station connected (which is nice). But again it useswlan0
and I have not yet found howwlan0
is tied toradio0
- The
- We're then asked to create a mesh interface with
iw phy phy0 interface add mesh0 type mp mesh_id mymesh
- But no comment as to what
mymesh
is. I can guess (but the job of better documentation and I would love to improve it if I can is to remove guesswork) is that mymesh is the same name specified underoption mesh_id
in the mesh interface we added to/etc/config/wireless
. - But there is nothing said about what's happening here. what is a
phy
- My guess again is that this is configuing the AP (Access Point) as a mesh point (mp) in the mesh with mesh_id as specified (which was the mesh_id we put into both devices in the
/etc/config/wireless
. But where is this config stored? How is it persisted?
- But no comment as to what
- Interestingly it now asks us to check with
ifconfig -a
- Voila,
ifconfig
knows about wlan0 but not radio0. - For all my fishing I still can't find what ties wlan0 to radio0 though.
- Voila,
At this point I put it on hold until I learn a little more. I really want to understand how wlan0 and radio0 are connected in configs, how and where iw
configurations are persisted and what role /etc/config/wireless
has in relation of iw
and ifconfig
.
It would be nicer still if mesh networks could be easily configured in Luci, and hey if it is and I missed that, let me know too!