NoDogSplash cross compilation for captive portal page on connecting to WiFi


New Around Here
I want to install NoDogSplash in an android(version 7.1.2) embedded device which has realteks WiFi module.
Target board details:
OS: Android
Linux Kernel: 3.14.29
Architecture: arm64

Compilation Procedure followed:
- Compilation of libmicrohttpd:

- ./configure --build=x86_64-linux-gnu --host=aarch64-linux-gnu
- make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
- With the above commands:, libmicrohttpd.a files are generated with "unknown" architecture instead of "arm64".
- Compilation of NoDogSplash
- make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
- It generated "nodogsplash", "ndsctl" binaries with "x86_64" architecture instead of "arm64"

PS: libmicrohttpd, NoDogSplash sources are downloaded from github.
libmicrohttpd, NoDogSplash source codes are placed in android source code.
Toolchain is inherent in android source code.

Any help is greatly appreciated


New Around Here
  1. A RealTek WiFi module on board supports AP mode. I could enable AP mode and mobile clients also could be connected to the AP.
  2. The requirement is "on connecting to the SSID of AP, a captive portal web page has to be opened on the connected mobile device".
  3. For this purpose I'm trying to use NoDogSplash in the android device.
  4. Anyway I could generate the cross-compiled NoDogSplash, ndsctl binaries. But, libraries are generated with UNKNOWN architecture.
  5. But this is done on a host machine(x86 architecture). The binaries(nodogsplash), and libraries(, are copied to android board file system.
  6. But when I have started "nodogsplash -d3" Web server isn't started. Following is the log
  7. Error: (nodogsplash-5.0.0/src/main.c:265) Could not create web server: No such file or directory
Last edited:


Part of the Furniture
I think you missed my point. I wasn't questioning if the realtek module supports AP mode - I agree it does.

Android handles wifi differently than Linux - you have to use the API calls in Android to get there, there no nl80211 access from userland. That, and you'll have to sort out iptables, which is what NoDogSplash uses - and Android can't access iptables, even if it is built in - yes, you can play with it using adb, but sounds like that is out of scope for your project.

You don't have all the dependencies in place to even try to start, nor a fundamental understanding of networking on Android at the moment - go back to the reference I provided, as this is a good place to start with the management of the WLAN interface, once you have done that, then you can go thru next steps, but I don't think NDS is a clean port over, you'll likely have to start from a clean sheet of paper.

best of luck!

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!