mirror of
https://github.com/optim-enterprises-bv/openwrt-ipq.git
synced 2025-10-29 09:23:01 +00:00
246 lines
9.9 KiB
Makefile
246 lines
9.9 KiB
Makefile
# vi: set syntax=make:
|
||
|
||
# This builds for all ipq807x targets.
|
||
# To use this config, you must build from https://github.com/qosmio/openwrt-ipq
|
||
|
||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~IMPORTANT~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
# Use `scripts/env` to create version controlled build environments.
|
||
# This ensures you can easily reproduce builds and view changes
|
||
# made during `make menuconfig`.
|
||
#
|
||
# It will also version control custom files you add to `files/`
|
||
|
||
# To create a new environment, run:
|
||
# (e.g `./scripts/env new nss`)
|
||
# For more information, see `./scripts/env help`
|
||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
#
|
||
# 1. Copy this config to root of build folder name it ".config"
|
||
# `cp nss-setup/config-nss.seed .config`
|
||
# 2. Uncomment the device you want to build for listed below, replace 'is not set' with '=y'
|
||
# (e.g. CONFIG_TARGET_qualcommax_ipq807x_DEVICE_linksys_mx4300=y)
|
||
# 3. Update feeds
|
||
# `./scripts/feeds update -a && ./scripts/feeds install -a`
|
||
# 4. Expand your seed file to a full config
|
||
# `make defconfig V=s`
|
||
# 5. If you want to make further customizations, use `make menuconfig`
|
||
# 6. Build the firmware
|
||
# `make -j$(nproc) V=s`
|
||
|
||
# use `make menuconfig` to further customize building just for your target or adding custom packages.
|
||
|
||
#####################################################################
|
||
# Target platform
|
||
#####################################################################
|
||
CONFIG_TARGET_qualcommax=y
|
||
CONFIG_TARGET_qualcommax_ipq807x=y
|
||
|
||
#####################################################################
|
||
# Target device
|
||
#####################################################################
|
||
# Uncomment target device you want to build for, set '=y'
|
||
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_arcadyan_aw1000 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_asus_rt-ax89x is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_buffalo_wxr-5950ax12 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_cmcc_rm2-6 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_compex_wpq873 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_dynalink_dl-wrx36 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_edgecore_eap102 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_edimax_cax1800 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_linksys_mx4200v1 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_linksys_mx4200v2 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_linksys_mx4300 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_linksys_mx5300 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_linksys_mx8500 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_netgear_rax120v2 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_netgear_sxr80 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_netgear_sxs80 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_netgear_wax218 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_netgear_wax620 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_netgear_wax630 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_prpl_haze is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_qnap_301w is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_redmi_ax6 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_spectrum_sax1v1k is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_xiaomi_ax3600 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_xiaomi_ax9000 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_yuncore_ax880 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_zbtlink_zbt-z800ax is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_zte_mf269 is not set
|
||
# CONFIG_TARGET_qualcommax_ipq807x_DEVICE_zyxel_nbg7815 is not set
|
||
|
||
#####################################################################
|
||
# NSS Offloading
|
||
#####################################################################
|
||
CONFIG_ATH11K_NSS_SUPPORT=y
|
||
CONFIG_ATH11K_NSS_MESH_SUPPORT=y
|
||
CONFIG_PACKAGE_MAC80211_NSS_SUPPORT=y
|
||
CONFIG_PACKAGE_kmod-qca-nss-drv=y
|
||
CONFIG_PACKAGE_kmod-qca-nss-drv-bridge-mgr=y
|
||
CONFIG_PACKAGE_kmod-qca-nss-ecm=y
|
||
|
||
# Additional NSS packages (VLAN, Multicast Snooping, etc)
|
||
CONFIG_PACKAGE_kmod-qca-nss-drv-vlan-mgr=y
|
||
CONFIG_PACKAGE_kmod-qca-mcs=y
|
||
|
||
# NSS SQM Traffic Shaping
|
||
CONFIG_PACKAGE_sqm-scripts-nss=y
|
||
|
||
#####################################################################
|
||
# Compiler Optimization
|
||
#####################################################################
|
||
CONFIG_BUILD_PATENTED=y
|
||
# Use ccache to speed up subsequent builds
|
||
CONFIG_CCACHE=y
|
||
CONFIG_DEVEL=y
|
||
CONFIG_EXPERIMENTAL=y
|
||
CONFIG_TOOLCHAINOPTS=y
|
||
CONFIG_TARGET_OPTIONS=y
|
||
CONFIG_TARGET_OPTIMIZATION="-O2 -pipe -mcpu=cortex-a53+crc+crypto"
|
||
CONFIG_USE_GC_SECTIONS=y
|
||
|
||
|
||
# Kernel Config
|
||
CONFIG_COLLECT_KERNEL_DEBUG=y
|
||
CONFIG_KERNEL_PERF_EVENTS=y
|
||
CONFIG_KERNEL_DYNAMIC_DEBUG=y
|
||
CONFIG_KERNEL_ARM_PMU=y
|
||
CONFIG_KERNEL_ARM_PMUV3=y
|
||
CONFIG_KERNEL_PREEMPT_NONE=y
|
||
CONFIG_KERNEL_PREEMPT_NONE_BUILD=y
|
||
|
||
# Reduce kernel module size
|
||
# Disable unnecessary debugging for Wi-Fi driver.
|
||
CONFIG_ATH11K_DEBUGFS_HTT_STATS=n
|
||
CONFIG_ATH11K_DEBUGFS_STA=n
|
||
# Disables thermal throttling support for ath11k.
|
||
CONFIG_ATH11K_THERMAL=n
|
||
|
||
#####################################################################
|
||
# SSL Configuration
|
||
#####################################################################
|
||
# Use OpenSSL as the preferred SSL library
|
||
CONFIG_PACKAGE_libustream-openssl=y
|
||
CONFIG_PACKAGE_libustream-mbedtls=n
|
||
CONFIG_PACKAGE_libopenssl=y
|
||
CONFIG_LUA_ECO_OPENSSL=y
|
||
CONFIG_LUA_ECO_MBEDTLS=n
|
||
# Optimize OpenSSL for speed over size
|
||
CONFIG_OPENSSL_OPTIMIZE_SPEED=y
|
||
|
||
#####################################################################
|
||
# Wireless Configuration
|
||
#####################################################################
|
||
# Enable WPA3 and Mesh support
|
||
CONFIG_PACKAGE_wpad-mesh-openssl=y
|
||
# Avoid using mbedTLS for consistency across packages and to avoid mixed SSL libraries.
|
||
CONFIG_PACKAGE_wpad-basic-mbedtls=n
|
||
|
||
#####################################################################
|
||
# Library Optimization
|
||
#####################################################################
|
||
# Optimize common libraries (zlib, zstd) for speed, improving performance on compression tasks.
|
||
CONFIG_ZLIB_OPTIMIZE_SPEED=y
|
||
CONFIG_ZSTD_OPTIMIZE_O3=y
|
||
|
||
#####################################################################
|
||
# Feeds Configuration
|
||
#####################################################################
|
||
# Prevent package manager from adding custom feeds as repositories in final image.
|
||
# They don't exist upstream and will cause errors when trying to update
|
||
CONFIG_FEED_nss_packages=n
|
||
CONFIG_FEED_sqm_scripts_nss=n
|
||
|
||
# --- Essential Packages ---
|
||
|
||
#####################################################################
|
||
# LUCI (the web interface)
|
||
#####################################################################
|
||
CONFIG_PACKAGE_luci=y
|
||
# Enable HTTPS support
|
||
CONFIG_PACKAGE_luci-ssl-openssl=y
|
||
|
||
#####################################################################
|
||
# LUCI Applications
|
||
#####################################################################
|
||
# - Firewall: Manage firewall rules via LUCI.
|
||
CONFIG_PACKAGE_luci-app-firewall=y
|
||
# - Package manager for OpenWRT, manage installed packages via LUCI.
|
||
CONFIG_PACKAGE_luci-app-package-manager=y
|
||
|
||
# - iperf3: CLI tool to measure network performance.
|
||
# This is essential to test WiFi speeds,
|
||
# as posting speedtest.net results is useless
|
||
# without knowing the network conditions.
|
||
CONFIG_PACKAGE_iperf3=y
|
||
|
||
# --- Optional Packages --- #
|
||
|
||
#### EVERYTHING BELOW THIS SECTION IS OPTIONAL!!
|
||
|
||
#### You can delete or comment out with '#' any package you don't want to install.
|
||
|
||
#####################################################################
|
||
# LUCI Applications
|
||
#####################################################################
|
||
|
||
# - SQM: Smart Queue Management for bufferbloat control.
|
||
CONFIG_PACKAGE_luci-app-sqm=y
|
||
# - Statistics: Monitor your router’s performance (CPU, memory, bandwidth).
|
||
CONFIG_PACKAGE_luci-app-statistics=y
|
||
# - ACME: Automated SSL cert management. If you want to access your router via HTTPS and have a domain.
|
||
CONFIG_PACKAGE_luci-app-acme=y
|
||
# - Watchcat: Automate reboots on connection loss.
|
||
CONFIG_PACKAGE_luci-app-watchcat=y
|
||
# - WireGuard: VPN support. Will also select the kernel module.
|
||
CONFIG_PACKAGE_luci-proto-wireguard=y
|
||
# - NLBWMon: Network usage monitoring to track bandwidth by host.
|
||
CONFIG_PACKAGE_luci-app-nlbwmon=y
|
||
|
||
#####################################################################
|
||
# Kernel Modules
|
||
#####################################################################
|
||
# Filesystem support for USB storage:
|
||
# FAT32: Useful to load recovery or new images that can be booted by u-boot
|
||
CONFIG_PACKAGE_kmod-fs-vfat=y
|
||
# NTFS: Mostly useful for Windows users.
|
||
CONFIG_PACKAGE_kmod-fs-ntfs3=y
|
||
|
||
# Network
|
||
# Bridge module support for working with nftables for more complex firewall setups.
|
||
CONFIG_PACKAGE_kmod-nft-bridge=y
|
||
|
||
# USB Storage
|
||
# NOTE: Not all IPQ807x devices have USB ports, so this is optional.
|
||
CONFIG_PACKAGE_kmod-usb-storage=y
|
||
|
||
# Logging/Debugging
|
||
|
||
# ramoops: kernel module that logs crashes to RAM which can be read after a reboot.
|
||
# Check '/sys/fs/pstore' for logs after a crash.
|
||
CONFIG_PACKAGE_kmod-ramoops=y
|
||
|
||
#####################################################################
|
||
# Packages
|
||
#####################################################################
|
||
|
||
# - curl: CLI tool to transfer data with URLs. Useful for scripting, and supperior to wget.
|
||
CONFIG_PACKAGE_curl=y
|
||
CONFIG_LIBCURL_OPENSSL=y
|
||
CONFIG_LIBCURL_MBEDTLS=n
|
||
# - rsync: Efficient file transfers and backups.
|
||
CONFIG_PACKAGE_rsync=y
|
||
# - jq: Parse JSON data from the command line. Useful for scripting, and WAY better than `jsonfilter`.
|
||
CONFIG_PACKAGE_jq=y
|
||
# - pigz: Parallel gzip for faster compression.
|
||
CONFIG_PACKAGE_pigz=y
|
||
# - tar: Archiving utility. The default busybox tar is very limited.
|
||
CONFIG_PACKAGE_tar=y
|
||
# - tcpdump: Capture and analyze network traffic.
|
||
CONFIG_PACKAGE_tcpdump=y
|
||
# - htop: CLI tool to monitor system resource usage.
|
||
CONFIG_PACKAGE_htop=y
|
||
# lm-sensors isn't needed for IPQ807x devices.
|
||
CONFIG_HTOP_LMSENSORS=n
|