Enabling CONFIG_MESH for wpa_supplicant breaks the build

So I'm trying to set up a secure network with several mesh points using Archer C7 v2 routers. I can get the routers to recognize each other as mesh points in a network by just modifying the /etc/config/wireless files, but I want to use wpa_supplicant for a more secure connection. It does not appear to be set up for creating mesh points by default, so I uncommented the CONFIG_MESH=y option in the wpa_supplicant-full.config file. When I clean and rebuild, the package 'package/network/services/hostapd' will not compile. I get all kinds of errors relating to the crypto functions, with the first error being "undefined reference to 'crypto_bignum_bits'" following by numerous other similar undefined symbol errors ('crypto_bignum_whatever').

I tried changing the CONFIG_TLS setting in hostapd-full.config from the setting "internal" to both "OpenSSL" and "GnuTLS" with similar results. For example, with OpenSSL the first error I get is "undefined reference to 'tls_init'" followed by a whole bunch of other similar undefined reference errors.

I have made sure all the supporting libraries are selected when I do "make menuconfig", so I am at a loss at this point. It's almost like the build system is not passing on the CONFIG_MESH to the wpa_supplicant Makefile, which is where the crypto gets included, but that's just a guess.

I was able to speed up testing difference configurations by just building the affected package rather than run the top level make with the following command:
make package/network/services/hostapd/{clean,compile} V=s

Any ideas on what I'm missing here would be greatly appreciated. I have Googled it, but haven't really found anything useful.

Install wpad-mesh

Thanks Jeff. I had read that somewhere, but forgot since "wpad-mesh" is not an option when you run "make menuconfig". I did have "wpad" and "wpad-mesh-openssl" both checked on the menuconfig. Apparently they stepped on top of one another. So I just installed it directly using "opkg install wpad-mesh". I haven't completely tested it yet, but it seems to have done the trick. I really appreciate your help!


1 Like

Yes, I agree it's a little confusing that the "full" version of wpad doesn't support mesh, but only the "mesh" version. It's bitten me before :wink:

Yes, it is confusing. But I am also surprised it didn't break the build. I was a little to click happy when selecting some of the Utilities so it broke the build because, for example, "find-utils" wouldn't install since "find" is already there via busybox. There were two or three other utilities that broke my build for the same reason, but it doesn't seem to mind overwriting the mesh version of wpad with the full (non-mesh) version. But that's for another thread. Thanks again!

Luckily, since OpenWRT 19.07 this is not the case anymore:

wpa-supplicant-mesh therefore is a subset of wpa-supplicant-full :slight_smile:

Just wanted to state that, as I found the thread on google and thought that the situation was still the same.