Portal (luci-app-secubox-portal): - Fix service status showing 0/9 by checking if init scripts exist - Only count installed services in status display - Use pgrep fallback when init script status fails nDPId Dashboard (luci-app-ndpid): - Add default /etc/config/ndpid configuration - Add /etc/init.d/ndpid-compat init script - Enable compat service in postinst for app detection - Fix Makefile to install init script and config CrowdSec Dashboard: - Add CLAUDE.md with OpenWrt-specific guidelines (pgrep without -x) - CSS fixes for hiding LuCI left menu in all views - LAPI repair improvements with retry logic New Packages: - secubox-app-crowdsec: OpenWrt-native CrowdSec package - secubox-app-netifyd: Netifyd DPI integration - luci-app-secubox: Core SecuBox hub - luci-theme-secubox: Custom theme Removed: - luci-app-secubox-crowdsec (replaced by crowdsec-dashboard) - secubox-crowdsec-setup (functionality moved to dashboard) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2.5 KiB
SDK Build Limitation for Netifyd
Issue
Netifyd cannot be built using the OpenWrt SDK because it requires base system libraries that are not available in the SDK environment:
libmnl(Minimal Netlink library)libnetfilter-conntracklibpcaplibjson-c- Various kernel modules
Why This Happens
The OpenWrt SDK is designed for building application packages that depend on already-compiled system libraries. Net
ifyd is a system-level daemon with deep integration into the kernel networking stack, requiring libraries that must be compiled as part of the base system.
Solution
Build netifyd as part of firmware
# Build full SecuBox firmware with netifyd included
./secubox-tools/local-build.sh build-firmware mochabin
Netifyd will be automatically included in firmware builds as it's configured in the firmware package list.
Alternative: Use Pre-Built Packages
If you need standalone .ipk files, build them from a full firmware build:
# After firmware build completes
find openwrt/bin/packages -name "netifyd*.ipk"
find openwrt/bin/packages -name "luci-app-secubox-netifyd*.ipk"
Why SDK Builds Fail
When you try ./secubox-tools/local-build.sh build netifyd, it fails with:
configure: error: Package requirements (libmnl >= 1.0.3) were not met
This is because:
- SDK doesn't include kernel-level libraries
- SDK can't compile these libraries (they require full buildroot)
- Netifyd's configure script can't find the required dependencies
Recommended Workflow
For Development:
- Build firmware with netifyd:
./secubox-tools/local-build.sh build-firmware x86-64 - Extract netifyd IPK from
openwrt/bin/packages - Install on device for testing
For Production:
- Always include netifyd in firmware images
- Distributed as part of complete SecuBox firmware
Technical Details
Netifyd requires these system components:
- Kernel modules: nf_conntrack, nfnetlink, etc.
- System libraries: Built against specific libc (musl/glibc)
- Headers: Kernel headers for netlink/conntrack
- Build tools: Full autotools, pkg-config with system library paths
The SDK provides none of these - it only provides a cross-compilation toolchain and application-level library stubs.
See Also
- BUILD-INSTRUCTIONS.md - Full build instructions
- INTEGRATION.md - Integration with SecuBox
- OpenWrt docs on SDK limitations: https://openwrt.org/docs/guide-developer/toolchain/using_the_sdk