Add build script for ARM toolchain and enable nl80211 driver in wpa_supplicant configuration

This commit is contained in:
2026-04-06 15:27:24 +03:00
parent b23c7677c2
commit f0f001dc43
2 changed files with 82 additions and 1 deletions

81
build.sh Executable file
View File

@@ -0,0 +1,81 @@
#!/usr/bin/env bash
set -euo pipefail
# Build wpa_supplicant for ARM toolchain with nl80211/libnl from sysroot.
#
# Usage:
# ./build.sh [SYSROOT]
#
# Example:
# ./build.sh /home/stargazer/arm-uclinuxfdpiceabi/sysroot
TOOLCHAIN_PREFIX="${TOOLCHAIN_PREFIX:-arm-uclinuxfdpiceabi}"
CC_BIN="${CC_BIN:-${TOOLCHAIN_PREFIX}-gcc}"
JOBS="${JOBS:-$(nproc)}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
WPA_DIR="${SCRIPT_DIR}/wpa_supplicant"
SYSROOT_DEFAULT="/home/stargazer/arm-uclinuxfdpiceabi/sysroot"
SYSROOT="${1:-${SYSROOT:-$SYSROOT_DEFAULT}}"
PKGCFG_LIBDIR_CANDIDATES=(
"${SYSROOT}/usr/lib/pkgconfig"
"${SYSROOT}/usr/lib64/pkgconfig"
"${SYSROOT}/usr/share/pkgconfig"
)
die() {
echo "ERROR: $*" >&2
exit 1
}
if ! command -v "${CC_BIN}" >/dev/null 2>&1; then
die "Compiler not found in PATH: ${CC_BIN}"
fi
if [ ! -d "${WPA_DIR}" ]; then
die "wpa_supplicant directory not found: ${WPA_DIR}"
fi
if [ ! -d "${SYSROOT}" ]; then
die "SYSROOT not found: ${SYSROOT}"
fi
PKG_CONFIG_LIBDIR=""
for d in "${PKGCFG_LIBDIR_CANDIDATES[@]}"; do
if [ -d "${d}" ]; then
if [ -z "${PKG_CONFIG_LIBDIR}" ]; then
PKG_CONFIG_LIBDIR="${d}"
else
PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR}:${d}"
fi
fi
done
if [ -z "${PKG_CONFIG_LIBDIR}" ]; then
die "No pkg-config directories found in SYSROOT"
fi
export PKG_CONFIG_SYSROOT_DIR="${SYSROOT}"
export PKG_CONFIG_LIBDIR
unset PKG_CONFIG_PATH
if ! pkg-config --exists libnl-3.0; then
die "libnl-3.0.pc not found via pkg-config. Checked: ${PKG_CONFIG_LIBDIR}"
fi
if ! pkg-config --exists libnl-genl-3.0; then
die "libnl-genl-3.0.pc not found via pkg-config. Checked: ${PKG_CONFIG_LIBDIR}"
fi
echo "Compiler: ${CC_BIN}"
echo "SYSROOT: ${SYSROOT}"
echo "PKG_CONFIG_LIBDIR: ${PKG_CONFIG_LIBDIR}"
echo "libnl-3.0 version: $(pkg-config --modversion libnl-3.0)"
echo "libnl-genl-3.0 version: $(pkg-config --modversion libnl-genl-3.0)"
cd "${WPA_DIR}"
make clean
make -j"${JOBS}" CC="${CC_BIN}"
echo "Build completed successfully."

View File

@@ -29,7 +29,7 @@
CONFIG_DRIVER_WEXT=y CONFIG_DRIVER_WEXT=y
# Driver interface for Linux drivers using the nl80211 kernel interface # Driver interface for Linux drivers using the nl80211 kernel interface
#CONFIG_DRIVER_NL80211=y CONFIG_DRIVER_NL80211=y
# QCA vendor extensions to nl80211 # QCA vendor extensions to nl80211
#CONFIG_DRIVER_NL80211_QCA=y #CONFIG_DRIVER_NL80211_QCA=y