diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 288cb36..21113f5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,4 +37,5 @@ jobs: - name: Check Package consistency run: | + pip install flake8 make check diff --git a/.gitignore b/.gitignore index d418e58..28c2765 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .DS_Store +._.DS_Store /build-*/ /buildroot-????.??* /download diff --git a/Makefile b/Makefile index f093fb8..04536e3 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,14 @@ -BUILDROOT_VERSION=2023.02 +BUILDROOT_VERSION=2024.02.1 +BUILDROOT_SHA256=4c9f3a3bc19462a9bf838d7f37996c49c68a63af9f9e6c254ee76e0e02cd8194 BUILDROOT_EXTERNAL=buildroot-external DEFCONFIG_DIR=$(BUILDROOT_EXTERNAL)/configs DATE=$(shell date +%Y%m%d) PRODUCT= PRODUCT_VERSION=${DATE} -PRODUCTS:=$(sort $(notdir $(patsubst %_defconfig,%,$(wildcard $(DEFCONFIG_DIR)/*_defconfig)))) -BR2_DL_DIR="../download" -BR2_CCACHE_DIR="${HOME}/.buildroot-ccache" -BR2_JLEVEL=0 +PRODUCTS:=$(sort $(notdir $(patsubst %.config,%,$(wildcard $(DEFCONFIG_DIR)/*.config)))) +BR2_DL_DIR=$(shell pwd)/download +BR2_CCACHE_DIR=${HOME}/.buildroot-ccache +BR2_JLEVEL=$(shell nproc) ifneq ($(PRODUCT),) PRODUCTS:=$(PRODUCT) @@ -16,29 +17,35 @@ else endif .NOTPARALLEL: $(PRODUCTS) $(addsuffix -release, $(PRODUCTS)) $(addsuffix -clean, $(PRODUCTS)) build-all clean-all release-all -.PHONY: all build release clean cleanall distclean help updatePkg +.PHONY: all build release clean clean-all distclean help updatePkg all: help -buildroot-$(BUILDROOT_VERSION).tar.xz: - @echo "[downloading buildroot-$(BUILDROOT_VERSION).tar.xz]" - wget https://buildroot.org/downloads/buildroot-$(BUILDROOT_VERSION).tar.xz - wget https://buildroot.org/downloads/buildroot-$(BUILDROOT_VERSION).tar.xz.sign - cat buildroot-$(BUILDROOT_VERSION).tar.xz.sign | grep SHA1: | sed 's/^SHA1: //' | shasum -c +buildroot-$(BUILDROOT_VERSION).tar.gz: $(BR2_DL_DIR) + @echo "[downloading buildroot-$(BUILDROOT_VERSION).tar.gz]" + wget https://github.com/buildroot/buildroot/archive/refs/tags/$(BUILDROOT_VERSION).tar.gz -O buildroot-$(BUILDROOT_VERSION).tar.gz + echo "$(BUILDROOT_SHA256) buildroot-$(BUILDROOT_VERSION).tar.gz" >buildroot-$(BUILDROOT_VERSION).tar.gz.sign + shasum -a 256 -c buildroot-$(BUILDROOT_VERSION).tar.gz.sign -buildroot-$(BUILDROOT_VERSION): | buildroot-$(BUILDROOT_VERSION).tar.xz +buildroot-$(BUILDROOT_VERSION): | buildroot-$(BUILDROOT_VERSION).tar.gz @echo "[patching buildroot-$(BUILDROOT_VERSION)]" - if [ ! -d $@ ]; then tar xf buildroot-$(BUILDROOT_VERSION).tar.xz; for p in $(sort $(wildcard buildroot-patches/*.patch)); do echo "\nApplying $${p}"; patch -d buildroot-$(BUILDROOT_VERSION) --remove-empty-files -p1 < $${p} || exit 127; [ ! -x $${p%.*}.sh ] || $${p%.*}.sh buildroot-$(BUILDROOT_VERSION); done; fi + if [ ! -d $@ ]; then tar xf buildroot-$(BUILDROOT_VERSION).tar.gz; for p in $(sort $(wildcard buildroot-patches/*.patch)); do echo "\nApplying $${p}"; patch -d buildroot-$(BUILDROOT_VERSION) --remove-empty-files -p1 < $${p} || exit 127; [ ! -x $${p%.*}.sh ] || $${p%.*}.sh buildroot-$(BUILDROOT_VERSION); done; fi -build-$(PRODUCT): | buildroot-$(BUILDROOT_VERSION) download - mkdir -p build-$(PRODUCT) +build-$(PRODUCT): | buildroot-$(BUILDROOT_VERSION) + mkdir $(shell pwd)/build-$(PRODUCT) -download: buildroot-$(BUILDROOT_VERSION) - mkdir -p download +$(BR2_DL_DIR): + @echo "[mkdir $(BR2_DL_DIR)]" + test -e $(BR2_DL_DIR) || mkdir $(BR2_DL_DIR) -build-$(PRODUCT)/.config: | build-$(PRODUCT) +$(BR2_CCACHE_DIR): + @echo "[mkdir $(BR2_CCACHE_DIR)]" + test -e $(BR2_CCACHE_DIR) || mkdir $(BR2_CCACHE_DIR) + +build-$(PRODUCT)/.config: | build-$(PRODUCT) $(BR2_CCACHE_DIR) @echo "[config $@]" - cd build-$(PRODUCT) && $(MAKE) O=$(shell pwd)/build-$(PRODUCT) -C ../buildroot-$(BUILDROOT_VERSION) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) BR2_DL_DIR=$(BR2_DL_DIR) BR2_CCACHE_DIR=$(BR2_CCACHE_DIR) BR2_JLEVEL=$(BR2_JLEVEL) PRODUCT=$(PRODUCT) PRODUCT_VERSION=$(PRODUCT_VERSION) $(PRODUCT)_defconfig + cd $(shell pwd)/build-$(PRODUCT) && $(MAKE) O=$(shell pwd)/build-$(PRODUCT) -C ../buildroot-$(BUILDROOT_VERSION) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) BR2_DL_DIR=$(BR2_DL_DIR) BR2_CCACHE_DIR=$(BR2_CCACHE_DIR) BR2_JLEVEL=$(BR2_JLEVEL) PRODUCT=$(PRODUCT) PRODUCT_VERSION=$(PRODUCT_VERSION) alldefconfig + cd $(shell pwd)/build-$(PRODUCT) && BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) BR2_DL_DIR=$(BR2_DL_DIR) BR2_CCACHE_DIR=$(BR2_CCACHE_DIR) BR2_JLEVEL=$(BR2_JLEVEL) PRODUCT=$(PRODUCT) PRODUCT_VERSION=$(PRODUCT_VERSION) ../buildroot-$(BUILDROOT_VERSION)/support/kconfig/merge_config.sh ../$(BUILDROOT_EXTERNAL)/Buildroot.config ../$(BUILDROOT_EXTERNAL)/configs/$(PRODUCT).config build-all: $(PRODUCTS) $(PRODUCTS): %: @@ -48,14 +55,13 @@ $(PRODUCTS): %: build: | buildroot-$(BUILDROOT_VERSION) build-$(PRODUCT)/.config @echo "[build: $(PRODUCT)]" ifneq ($(FAKE_BUILD),true) - cd build-$(PRODUCT) && $(MAKE) O=$(shell pwd)/build-$(PRODUCT) -C ../buildroot-$(BUILDROOT_VERSION) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) BR2_DL_DIR=$(BR2_DL_DIR) BR2_CCACHE_DIR=$(BR2_CCACHE_DIR) BR2_JLEVEL=$(BR2_JLEVEL) PRODUCT=$(PRODUCT) PRODUCT_VERSION=$(PRODUCT_VERSION) + cd $(shell pwd)/build-$(PRODUCT) && $(MAKE) O=$(shell pwd)/build-$(PRODUCT) -C ../buildroot-$(BUILDROOT_VERSION) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) BR2_DL_DIR=$(BR2_DL_DIR) BR2_CCACHE_DIR=$(BR2_CCACHE_DIR) BR2_JLEVEL=$(BR2_JLEVEL) PRODUCT=$(PRODUCT) PRODUCT_VERSION=$(PRODUCT_VERSION) else $(eval BOARD := $(shell echo $(PRODUCT) | cut -d'_' -f2-)) # Dummy build - mainly for testing CI echo -n "FAKE_BUILD - generating fake release archives..." mkdir -p build-$(PRODUCT)/images echo DUMMY >build-$(PRODUCT)/images/sdcard.img - echo DUMMY >build-$(PRODUCT)/images/bzImage endif release-all: $(addsuffix -release, $(PRODUCTS)) @@ -64,7 +70,7 @@ $(addsuffix -release, $(PRODUCTS)): %: release: build @echo "[creating release: $(PRODUCT)]" - $(eval BOARD_DIR := $(BUILDROOT_EXTERNAL)/board/$(PRODUCT)) + $(eval BOARD_DIR := $(BUILDROOT_EXTERNAL)/board/$(shell echo $(PRODUCT) | cut -d'_' -f2)) if [ -x $(BOARD_DIR)/post-release.sh ]; then $(BOARD_DIR)/post-release.sh $(BOARD_DIR) ${PRODUCT} ${PRODUCT_VERSION}; fi check-all: $(addsuffix -check, $(PRODUCTS)) @@ -88,24 +94,28 @@ clean: distclean: clean-all @echo "[distclean]" @rm -rf buildroot-$(BUILDROOT_VERSION) - @rm -f buildroot-$(BUILDROOT_VERSION).tar.xz buildroot-$(BUILDROOT_VERSION).tar.xz.sign - @rm -rf download + @rm -f buildroot-$(BUILDROOT_VERSION).tar.* + @rm -rf $(BR2_DL_DIR) .PHONY: menuconfig menuconfig: buildroot-$(BUILDROOT_VERSION) build-$(PRODUCT)/.config - cd build-$(PRODUCT) && $(MAKE) O=$(shell pwd)/build-$(PRODUCT) -C ../buildroot-$(BUILDROOT_VERSION) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) BR2_DL_DIR=$(BR2_DL_DIR) BR2_CCACHE_DIR=$(BR2_CCACHE_DIR) BR2_JLEVEL=$(BR2_JLEVEL) PRODUCT=$(PRODUCT) PRODUCT_VERSION=$(PRODUCT_VERSION) menuconfig + cd $(shell pwd)/build-$(PRODUCT) && $(MAKE) O=$(shell pwd)/build-$(PRODUCT) -C ../buildroot-$(BUILDROOT_VERSION) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) BR2_DL_DIR=$(BR2_DL_DIR) BR2_CCACHE_DIR=$(BR2_CCACHE_DIR) BR2_JLEVEL=$(BR2_JLEVEL) PRODUCT=$(PRODUCT) PRODUCT_VERSION=$(PRODUCT_VERSION) menuconfig .PHONY: xconfig xconfig: buildroot-$(BUILDROOT_VERSION) build-$(PRODUCT)/.config - cd build-$(PRODUCT) && $(MAKE) O=$(shell pwd)/build-$(PRODUCT) -C ../buildroot-$(BUILDROOT_VERSION) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) BR2_DL_DIR=$(BR2_DL_DIR) BR2_CCACHE_DIR=$(BR2_CCACHE_DIR) BR2_JLEVEL=$(BR2_JLEVEL) PRODUCT=$(PRODUCT) PRODUCT_VERSION=$(PRODUCT_VERSION) xconfig + cd $(shell pwd)/build-$(PRODUCT) && $(MAKE) O=$(shell pwd)/build-$(PRODUCT) -C ../buildroot-$(BUILDROOT_VERSION) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) BR2_DL_DIR=$(BR2_DL_DIR) BR2_CCACHE_DIR=$(BR2_CCACHE_DIR) BR2_JLEVEL=$(BR2_JLEVEL) PRODUCT=$(PRODUCT) PRODUCT_VERSION=$(PRODUCT_VERSION) xconfig .PHONY: savedefconfig savedefconfig: buildroot-$(BUILDROOT_VERSION) build-$(PRODUCT) - cd build-$(PRODUCT) && $(MAKE) O=$(shell pwd)/build-$(PRODUCT) -C ../buildroot-$(BUILDROOT_VERSION) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) BR2_DL_DIR=$(BR2_DL_DIR) BR2_CCACHE_DIR=$(BR2_CCACHE_DIR) BR2_JLEVEL=$(BR2_JLEVEL) PRODUCT=$(PRODUCT) PRODUCT_VERSION=$(PRODUCT_VERSION) savedefconfig BR2_DEFCONFIG=../$(DEFCONFIG_DIR)/$(PRODUCT)_defconfig + cd $(shell pwd)/build-$(PRODUCT) && $(MAKE) O=$(shell pwd)/build-$(PRODUCT) -C ../buildroot-$(BUILDROOT_VERSION) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) BR2_DL_DIR=$(BR2_DL_DIR) BR2_CCACHE_DIR=$(BR2_CCACHE_DIR) BR2_JLEVEL=$(BR2_JLEVEL) PRODUCT=$(PRODUCT) PRODUCT_VERSION=$(PRODUCT_VERSION) savedefconfig BR2_DEFCONFIG=../$(DEFCONFIG_DIR)/$(PRODUCT).config .PHONY: toolchain toolchain: buildroot-$(BUILDROOT_VERSION) build-$(PRODUCT)/.config - cd build-$(PRODUCT) && $(MAKE) O=$(shell pwd)/build-$(PRODUCT) -C ../buildroot-$(BUILDROOT_VERSION) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) BR2_DL_DIR=$(BR2_DL_DIR) BR2_CCACHE_DIR=$(BR2_CCACHE_DIR) BR2_JLEVEL=$(BR2_JLEVEL) PRODUCT=$(PRODUCT) PRODUCT_VERSION=$(PRODUCT_VERSION) toolchain + cd $(shell pwd)/build-$(PRODUCT) && $(MAKE) O=$(shell pwd)/build-$(PRODUCT) -C ../buildroot-$(BUILDROOT_VERSION) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) BR2_DL_DIR=$(BR2_DL_DIR) BR2_CCACHE_DIR=$(BR2_CCACHE_DIR) BR2_JLEVEL=$(BR2_JLEVEL) PRODUCT=$(PRODUCT) PRODUCT_VERSION=$(PRODUCT_VERSION) toolchain + +.PHONY: linux-check-dotconfig +linux-check-dotconfig: buildroot-$(BUILDROOT_VERSION) build-$(PRODUCT) + cd $(shell pwd)/build-$(PRODUCT) && $(MAKE) O=$(shell pwd)/build-$(PRODUCT) -C ../buildroot-$(BUILDROOT_VERSION) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) BR2_DL_DIR=$(BR2_DL_DIR) BR2_CCACHE_DIR=$(BR2_CCACHE_DIR) BR2_JLEVEL=$(BR2_JLEVEL) PRODUCT=$(PRODUCT) PRODUCT_VERSION=$(PRODUCT_VERSION) linux-check-dotconfig BR2_DEFCONFIG=../$(DEFCONFIG_DIR)/$(PRODUCT).config BR2_CHECK_DOTCONFIG_OPTS="--github-format --strip-path-prefix=$(PWD)/" # Create a fallback target (%) to forward all unknown target calls to the build Makefile. # This includes: @@ -137,4 +147,16 @@ help: @echo @echo " $(MAKE) distclean: clean everything (all build dirs and buildroot sources)" @echo + @echo " $(MAKE) PRODUCT= menuconfig: change buildroot config options" + @echo " $(MAKE) PRODUCT= savedefconfig: update buildroot defconfig file" + @echo " $(MAKE) PRODUCT= linux-menuconfig: change linux kernel config option" + @echo " $(MAKE) PRODUCT= linux-update-defconfig: update linux kernel defconfig file" + @echo " $(MAKE) PRODUCT= linux-check-dotconfig: checks dotconfig files against Kconfig" + @echo " $(MAKE) PRODUCT= busybox-menuconfig: change busybox config options" + @echo " $(MAKE) PRODUCT= busybox-update-config: update busybox defconfig file" + @echo " $(MAKE) PRODUCT= uboot-menuconfig: change u-boot config options" + @echo " $(MAKE) PRODUCT= uboot-update-defconfig: update u-boot defconfig file" + @echo + @echo " $(MAKE) PRODUCT= legal-info: update legal information file" + @echo @echo "Supported products: $(PRODUCTS)" diff --git a/buildroot-external/configs/intelnuc_defconfig b/buildroot-external/Buildroot.config similarity index 65% rename from buildroot-external/configs/intelnuc_defconfig rename to buildroot-external/Buildroot.config index 13509dc..df37ab6 100644 --- a/buildroot-external/configs/intelnuc_defconfig +++ b/buildroot-external/Buildroot.config @@ -1,34 +1,28 @@ -BR2_x86_64=y -BR2_x86_corei7=y -BR2_TOOLCHAIN_BUILDROOT_CXX=y +# Buildroot config settings +BR2_CCACHE=y BR2_DL_DIR="$(TOPDIR)/../download" -BR2_KERNEL_MIRROR="https://www.kernel.org/pub" -BR2_GNU_MIRROR="http://ftp.gnu.org/pub/gnu" +# BR2_ENABLE_LOCALE_PURGE is not set +BR2_ENABLE_LTO=y BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_THINROOT_PATH)/patches" +BR2_GNU_MIRROR="http://ftp.gnu.org/pub/gnu" +BR2_KERNEL_MIRROR="https://www.kernel.org/pub" BR2_TARGET_GENERIC_HOSTNAME="thinroot" BR2_TARGET_GENERIC_ISSUE="Welcome to thinRoot" BR2_TARGET_GENERIC_PASSWD_SHA512=y BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y -# BR2_TARGET_ENABLE_ROOT_LOGIN is not set +BR2_TOOLCHAIN_BUILDROOT_CXX=y BR2_TARGET_GENERIC_GETTY_PORT="tty2" BR2_ENABLE_LOCALE_WHITELIST="C en_US de_DE" BR2_GENERATE_LOCALE="en_US de_DE" BR2_SYSTEM_ENABLE_NLS=y BR2_TARGET_LOCALTIME="Europe/Berlin" -BR2_ROOTFS_USERS_TABLES="${BR2_EXTERNAL_THINROOT_PATH}/board/intelnuc/users_table.txt" BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_THINROOT_PATH)/rootfs-overlay" -BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_THINROOT_PATH)/board/intelnuc/post-build.sh" -BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_THINROOT_PATH)/board/intelnuc/post-image.sh" -BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_THINROOT_PATH)/board/intelnuc" BR2_LINUX_KERNEL=y -BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.18" -BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_THINROOT_PATH)/board/intelnuc/kernel-patches" -BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_THINROOT_PATH)/board/intelnuc/kernel_defconfig" BR2_LINUX_KERNEL_LZ4=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y + +# Buildroot packages BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_THINROOT_PATH)/Busybox.config" BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y BR2_PACKAGE_ALSA_UTILS=y @@ -50,11 +44,7 @@ BR2_PACKAGE_MESA3D_DEMOS=y BR2_PACKAGE_FREERDP=y BR2_PACKAGE_MESA3D=y BR2_PACKAGE_MESA3D_LLVM=y -BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_CROCUS=y -BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_I915=y -BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_IRIS=y BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST=y -BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL=y BR2_PACKAGE_MESA3D_OPENGL_GLX=y BR2_PACKAGE_MESA3D_OPENGL_EGL=y BR2_PACKAGE_MESA3D_OPENGL_ES=y @@ -73,33 +63,18 @@ BR2_PACKAGE_XAPP_XRANDR=y BR2_PACKAGE_XAPP_XSETROOT=y BR2_PACKAGE_XDRIVER_XF86_INPUT_EVDEV=y BR2_PACKAGE_XDRIVER_XF86_INPUT_MOUSE=y -BR2_PACKAGE_XDRIVER_XF86_VIDEO_INTEL=y BR2_PACKAGE_XFONT_FONT_MISC_CYRILLIC=y BR2_PACKAGE_NODM=y BR2_PACKAGE_XDOTOOL=y BR2_PACKAGE_OPENBOX=y BR2_PACKAGE_LINUX_FIRMWARE=y -BR2_PACKAGE_LINUX_FIRMWARE_I915=y -BR2_PACKAGE_LINUX_FIRMWARE_RADEON=y -BR2_PACKAGE_LINUX_FIRMWARE_IBT=y -BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265D=y -BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000C=y -BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265=y -BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_9XXX=y -BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_QUZ=y -BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y BR2_PACKAGE_ACPID=y BR2_PACKAGE_EUDEV_RULES_GEN=y BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_USBMOUNT=y BR2_PACKAGE_CA_CERTIFICATES=y -BR2_PACKAGE_LIBDRM_RADEON=y BR2_PACKAGE_LIBUSB=y BR2_PACKAGE_LLVM_RTTI=y -BR2_PACKAGE_BLUEZ5_UTILS=y -BR2_PACKAGE_BLUEZ5_UTILS_OBEX=y -BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y -BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED=y BR2_PACKAGE_CHRONY=y BR2_PACKAGE_DHCPCD=y BR2_PACKAGE_DROPBEAR=y @@ -111,7 +86,6 @@ BR2_PACKAGE_WGET=y BR2_PACKAGE_IRQBALANCE=y BR2_PACKAGE_TAR=y BR2_TARGET_ROOTFS_CPIO_LZ4=y -BR2_TARGET_ROOTFS_INITRAMFS=y # BR2_TARGET_ROOTFS_TAR is not set BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_E2FSPROGS=y diff --git a/buildroot-external/board/intelnuc/kernel-patches/0001-iwlwifi-Make-missed-beacon-timeout-configurable.patch b/buildroot-external/board/intelnuc/kernel-patches/0001-iwlwifi-Make-missed-beacon-timeout-configurable.patch deleted file mode 100644 index 735e912..0000000 --- a/buildroot-external/board/intelnuc/kernel-patches/0001-iwlwifi-Make-missed-beacon-timeout-configurable.patch +++ /dev/null @@ -1,98 +0,0 @@ -From bf633d2f767c88bd54fbe1cf66122703bb1b98ae Mon Sep 17 00:00:00 2001 -Message-Id: -From: Zachary Michaels -Date: Thu, 7 Jan 2021 08:13:11 -0800 -Subject: [PATCH] iwlwifi: Make missed beacon timeout configurable - -Makes the beacon timeout a module parameter, allowing the original default (16 -missed beacons) to be kept while also enabling users that experience problems to -increase the timeout. - -See https://bugzilla.kernel.org/show_bug.cgi?id=203709 - -Signed-off-by: Stefan Agner ---- - drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 4 ++++ - drivers/net/wireless/intel/iwlwifi/iwl-modparams.h | 2 ++ - drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 3 ++- - drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 1 - - 4 files changed, 8 insertions(+), 2 deletions(-) - -diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c -index a2203f661321..a8a9d9559b53 100644 ---- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c -+++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c -@@ -1779,6 +1779,7 @@ struct iwl_mod_params iwlwifi_mod_params = { - .power_level = IWL_POWER_INDEX_1, - .uapsd_disable = IWL_DISABLE_UAPSD_BSS | IWL_DISABLE_UAPSD_P2P_CLIENT, - .enable_ini = ENABLE_INI, -+ .beacon_timeout = 16, - /* the rest are 0 by default */ - }; - IWL_EXPORT_SYMBOL(iwlwifi_mod_params); -@@ -1926,6 +1927,9 @@ module_param_cb(enable_ini, &enable_ini_ops, &iwlwifi_mod_params.enable_ini, 064 - MODULE_PARM_DESC(enable_ini, - "0:disable, 1-15:FW_DBG_PRESET Values, 16:enabled without preset value defined," - "Debug INI TLV FW debug infrastructure (default: 16)"); -+module_param_named(beacon_timeout, iwlwifi_mod_params.beacon_timeout, uint, 0644); -+MODULE_PARM_DESC(beacon_timeout, -+ "Number of missed beacons before disconnecting (default: 16)"); - - /* - * set bt_coex_active to true, uCode will do kill/defer -diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-modparams.h b/drivers/net/wireless/intel/iwlwifi/iwl-modparams.h -index d0b4d02bdab9..f74e85ae0076 100644 ---- a/drivers/net/wireless/intel/iwlwifi/iwl-modparams.h -+++ b/drivers/net/wireless/intel/iwlwifi/iwl-modparams.h -@@ -62,6 +62,7 @@ enum iwl_uapsd_disable { - * @disable_11ac: disable VHT capabilities, default = false. - * @remove_when_gone: remove an inaccessible device from the PCIe bus. - * @enable_ini: enable new FW debug infratructure (INI TLVs) -+ * @beacon_timeout: number of missed beacons before disconnect, default = 16 - */ - struct iwl_mod_params { - int swcrypto; -@@ -85,6 +86,7 @@ struct iwl_mod_params { - bool remove_when_gone; - u32 enable_ini; - bool disable_11be; -+ u32 beacon_timeout; - }; - - static inline bool iwl_enable_rx_ampdu(void) -diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c -index de0c545d50fd..24eb541209ef 100644 ---- a/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c -+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c -@@ -8,6 +8,7 @@ - #include - #include - #include "iwl-io.h" -+#include "iwl-modparams.h" - #include "iwl-prph.h" - #include "fw-api.h" - #include "mvm.h" -@@ -1398,7 +1399,7 @@ void iwl_mvm_rx_missed_beacons_notif(struct iwl_mvm *mvm, - * TODO: the threshold should be adjusted based on latency conditions, - * and/or in case of a CS flow on one of the other AP vifs. - */ -- if (rx_missed_bcon > IWL_MVM_MISSED_BEACONS_THRESHOLD_LONG) -+ if (rx_missed_bcon > iwlwifi_mod_params.beacon_timeout) - iwl_mvm_connection_loss(mvm, vif, "missed beacons"); - else if (rx_missed_bcon_since_rx > IWL_MVM_MISSED_BEACONS_THRESHOLD) - ieee80211_beacon_loss(vif); -diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h b/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h -index 1ccb3cad7cdc..56611a1b40ee 100644 ---- a/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h -+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h -@@ -39,7 +39,6 @@ - /* RSSI offset for WkP */ - #define IWL_RSSI_OFFSET 50 - #define IWL_MVM_MISSED_BEACONS_THRESHOLD 8 --#define IWL_MVM_MISSED_BEACONS_THRESHOLD_LONG 16 - - /* A TimeUnit is 1024 microsecond */ - #define MSEC_TO_TU(_msec) (_msec*1000/1024) --- -2.39.1 - diff --git a/buildroot-external/board/intelnuc/kernel.config b/buildroot-external/board/intelnuc/kernel.config new file mode 100644 index 0000000..08e0f70 --- /dev/null +++ b/buildroot-external/board/intelnuc/kernel.config @@ -0,0 +1,190 @@ +CONFIG_KERNEL_LZ4=y +# CONFIG_KERNEL_GZIP is not set + +CONFIG_EFI_STUB=y + +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_INTEL_IDLE=y + +CONFIG_SCSI_LOWLEVEL=y +CONFIG_SCSI_HPSA=y +CONFIG_USB_XHCI_HCD=y +CONFIG_BLK_DEV_NVME=y + +CONFIG_BCMA=m + +CONFIG_SYSFB=y + +CONFIG_FB=y +CONFIG_FB_EFI=y +CONFIG_FB_INTEL=y + +CONFIG_DRM=y +CONFIG_DRM_FBDEV_EMULATION=y +CONFIG_DRM_I915=y +CONFIG_DRM_I915_CAPTURE_ERROR=y +CONFIG_DRM_I915_COMPRESS_ERROR=y +CONFIG_DRM_I915_USERPTR=y +# CONFIG_DRM_SIMPLEDRM is not set + +CONFIG_MMC=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_ACPI=y +CONFIG_MMC_SDHCI_PCI=y +CONFIG_MMC_REALTEK_PCI=y +CONFIG_MMC_REALTEK_USB=m +CONFIG_X86_INTEL_LPSS=y + +CONFIG_MISC_RTSX_PCI=m +CONFIG_MISC_RTSX_USB=m + +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_I915=y +CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM=y +CONFIG_SND_INTEL_DSP_CONFIG=m +CONFIG_SND_INTEL_SOUNDWIRE_ACPI=m + +CONFIG_SND_SOC=m +CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y +CONFIG_SND_SOC_INTEL_SST=m +CONFIG_SND_SOC_INTEL_CATPT=m +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m +CONFIG_SND_SOC_INTEL_SKYLAKE=m +CONFIG_SND_SOC_INTEL_SKL=m +CONFIG_SND_SOC_INTEL_APL=m +CONFIG_SND_SOC_INTEL_KBL=m +CONFIG_SND_SOC_INTEL_GLK=m +CONFIG_SND_SOC_INTEL_CNL=m +CONFIG_SND_SOC_INTEL_CFL=m +CONFIG_SND_SOC_INTEL_CML_H=m +CONFIG_SND_SOC_INTEL_CML_LP=m +CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m +CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y +CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m +CONFIG_SND_SOC_ACPI_INTEL_MATCH=m +CONFIG_SND_SOC_INTEL_MACH=y +CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y +CONFIG_SND_SOC_INTEL_HDA_DSP_COMMON=m +CONFIG_SND_SOC_INTEL_SOF_MAXIM_COMMON=m +CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m +CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m +CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m +CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m +CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m +CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m +CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH=m +CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m +CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m +# CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH is not set +CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m +CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m +CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m +CONFIG_SND_SOC_MTK_BTCVSD=m +CONFIG_SND_SOC_SOF_TOPLEVEL=y +CONFIG_SND_SOC_SOF_PCI_DEV=m +CONFIG_SND_SOC_SOF_PCI=m +CONFIG_SND_SOC_SOF_ACPI=m +CONFIG_SND_SOC_SOF_ACPI_DEV=m +CONFIG_SND_SOC_SOF=m +CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y +CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y +CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC=m +CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP=m +CONFIG_SND_SOC_SOF_INTEL_COMMON=m +CONFIG_SND_SOC_SOF_BAYTRAIL=m +# CONFIG_SND_SOC_SOF_BROADWELL is not set +CONFIG_SND_SOC_SOF_MERRIFIELD=m +CONFIG_SND_SOC_SOF_INTEL_APL=m +CONFIG_SND_SOC_SOF_APOLLOLAKE=m +CONFIG_SND_SOC_SOF_GEMINILAKE=m +CONFIG_SND_SOC_SOF_INTEL_CNL=m +CONFIG_SND_SOC_SOF_CANNONLAKE=m +CONFIG_SND_SOC_SOF_COFFEELAKE=m +CONFIG_SND_SOC_SOF_COMETLAKE=m +CONFIG_SND_SOC_SOF_INTEL_ICL=m +CONFIG_SND_SOC_SOF_ICELAKE=m +CONFIG_SND_SOC_SOF_JASPERLAKE=m +CONFIG_SND_SOC_SOF_INTEL_TGL=m +CONFIG_SND_SOC_SOF_TIGERLAKE=m +CONFIG_SND_SOC_SOF_ELKHARTLAKE=m +CONFIG_SND_SOC_SOF_ALDERLAKE=m +CONFIG_SND_SOC_SOF_HDA_COMMON=m +CONFIG_SND_SOC_SOF_HDA_LINK=y +CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y +CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m +CONFIG_SND_SOC_SOF_HDA=m +CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=m +CONFIG_SND_SOC_SOF_XTENSA=m + +CONFIG_WLAN_VENDOR_INTEL=y +CONFIG_IWL4965=m +CONFIG_IWL3945=m +CONFIG_IWLWIFI=m +CONFIG_IWLDVM=m +CONFIG_IWLMVM=m + +CONFIG_WLAN_VENDOR_REALTEK=y +CONFIG_RTL_CARDS=m +CONFIG_RTL8723BE=m +CONFIG_RTL8723BS=m +CONFIG_RTW88=m +CONFIG_RTW88_8821CE=m + +CONFIG_SENSORS_K10TEMP=m +CONFIG_SENSORS_CORETEMP=m + +CONFIG_LPC_ICH=y +CONFIG_ITCO_WDT=y +CONFIG_IT87_WDT=y + +CONFIG_ACPI_APEI=y +CONFIG_ACPI_APEI_GHES=y + +CONFIG_RAS=y +CONFIG_EDAC=y +CONFIG_EDAC_DECODE_MCE=m +CONFIG_EDAC_GHES=y +CONFIG_EDAC_AMD64=m +CONFIG_EDAC_E752X=m +CONFIG_EDAC_I82975X=m +CONFIG_EDAC_I3000=m +CONFIG_EDAC_I3200=m +CONFIG_EDAC_IE31200=m +CONFIG_EDAC_X38=m +CONFIG_EDAC_I5400=m +CONFIG_EDAC_I7CORE=m +CONFIG_EDAC_I5100=m +CONFIG_EDAC_I7300=m +CONFIG_EDAC_SBRIDGE=m +CONFIG_EDAC_SKX=m +CONFIG_EDAC_I10NM=m +CONFIG_EDAC_PND2=m +CONFIG_EDAC_IGEN6=m + +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_MUX=m +CONFIG_I2C_TINY_USB=m + +CONFIG_SPI=y + +CONFIG_I2C_DLN2=m +CONFIG_SPI_DLN2=m +CONFIG_GPIO_DLN2=m +CONFIG_MFD_DLN2=m +CONFIG_DLN2_ADC=m + +CONFIG_HW_RANDOM_AMD=y +CONFIG_HW_RANDOM_INTEL=y +CONFIG_HW_RANDOM_TPM=y + +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_SYSTOHC=y +CONFIG_RTC_SYSTOHC_DEVICE="rtc0" diff --git a/buildroot-external/configs/intelnuc.config b/buildroot-external/configs/intelnuc.config new file mode 100644 index 0000000..75a304e --- /dev/null +++ b/buildroot-external/configs/intelnuc.config @@ -0,0 +1,34 @@ +BR2_x86_64=y +BR2_x86_corei7=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_6=y +# BR2_TARGET_ENABLE_ROOT_LOGIN is not set +BR2_ROOTFS_USERS_TABLES="${BR2_EXTERNAL_THINROOT_PATH}/board/intelnuc/users_table.txt" +BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_THINROOT_PATH)/board/intelnuc/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_THINROOT_PATH)/board/intelnuc/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_THINROOT_PATH)/board/intelnuc" +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.22" +BR2_LINUX_KERNEL_DEFCONFIG="x86_64" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_THINROOT_PATH)/kernel/6.6/global.config $(BR2_EXTERNAL_THINROOT_PATH)/kernel/6.6/device-support.config $(BR2_EXTERNAL_THINROOT_PATH)/kernel/6.6/device-support-pci.config $(BR2_EXTERNAL_THINROOT_PATH)/kernel/6.6/security-x86_64.config $(BR2_EXTERNAL_THINROOT_PATH)/kernel/6.6/security.config $(BR2_EXTERNAL_THINROOT_PATH)/board/intelnuc/kernel.config" +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_CROCUS=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_I915=y +BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_IRIS=y +BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL=y +BR2_PACKAGE_XDRIVER_XF86_VIDEO_AMDGPU=y +BR2_PACKAGE_XDRIVER_XF86_VIDEO_INTEL=y +BR2_PACKAGE_LINUX_FIRMWARE_I915=y +BR2_PACKAGE_LINUX_FIRMWARE_RADEON=y +BR2_PACKAGE_LINUX_FIRMWARE_IBT=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7265D=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8000C=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_8265=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_9XXX=y +BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_QUZ=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169=y +BR2_PACKAGE_LIBDRM_RADEON=y +BR2_PACKAGE_LIBDRM_AMDGPU=y +BR2_PACKAGE_BLUEZ5_UTILS=y +BR2_PACKAGE_BLUEZ5_UTILS_OBEX=y +BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y +BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED=y +BR2_TARGET_ROOTFS_INITRAMFS=y diff --git a/buildroot-external/configs/rpi3_defconfig b/buildroot-external/configs/rpi3.config similarity index 100% rename from buildroot-external/configs/rpi3_defconfig rename to buildroot-external/configs/rpi3.config diff --git a/buildroot-external/configs/rpi4_defconfig b/buildroot-external/configs/rpi4.config similarity index 100% rename from buildroot-external/configs/rpi4_defconfig rename to buildroot-external/configs/rpi4.config diff --git a/buildroot-external/configs/rpi4_32_defconfig b/buildroot-external/configs/rpi4_32.defconfig similarity index 100% rename from buildroot-external/configs/rpi4_32_defconfig rename to buildroot-external/configs/rpi4_32.defconfig diff --git a/buildroot-external/configs/tinkerboard_defconfig b/buildroot-external/configs/tinkerboard.config similarity index 100% rename from buildroot-external/configs/tinkerboard_defconfig rename to buildroot-external/configs/tinkerboard.config diff --git a/buildroot-external/kernel/6.1/device-support-pci.config b/buildroot-external/kernel/6.1/device-support-pci.config new file mode 100644 index 0000000..9dee8c4 --- /dev/null +++ b/buildroot-external/kernel/6.1/device-support-pci.config @@ -0,0 +1,22 @@ +CONFIG_IGB=y +CONFIG_IGC=m + +CONFIG_NET_VENDOR_ATHEROS=y +CONFIG_ATL2=m +CONFIG_ATL1=m +CONFIG_ATL1C=m +CONFIG_ATL1E=m +CONFIG_ALX=m + +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=m +CONFIG_BCMGENET=m +CONFIG_BNX2=m +CONFIG_TIGON3=m +CONFIG_BNX2X=m +CONFIG_BNXT=m + +CONFIG_BROADCOM_PHY=m + +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=m diff --git a/buildroot-external/kernel/6.1/device-support.config b/buildroot-external/kernel/6.1/device-support.config new file mode 100644 index 0000000..b043903 --- /dev/null +++ b/buildroot-external/kernel/6.1/device-support.config @@ -0,0 +1,82 @@ +CONFIG_USB=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + +CONFIG_USB_HID=y +CONFIG_USB_HIDDEV=y + +# disable USB<>IP support +# CONFIG_USBIP_CORE is not set + +# disable USB serial support +# CONFIG_USB_SERIAL is not set + +CONFIG_USB_ACM=m + +# disable USB gadget support +# CONFIG_USB_GADGET is not set + +# USB Network Adapters +CONFIG_USB_NET_DRIVERS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_LAN78XX=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_AX88179_178A=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m + +CONFIG_MEDIA_CEC_SUPPORT=y + +CONFIG_BT_INTEL=m +CONFIG_BT_BCM=m +CONFIG_BT_RTL=m +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTUSB_BCM=y +CONFIG_BT_HCIBTUSB_RTL=y + +# Wi-Fi Support +CONFIG_RTL_CARDS=m +CONFIG_RTL8192CU=m +CONFIG_RTL8XXXU=m +CONFIG_R8188EU=m + +CONFIG_WLAN_VENDOR_MEDIATEK=y +CONFIG_MT7601U=m + +CONFIG_WLAN_VENDOR_RALINK=y +CONFIG_RT2X00=m +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT3573=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800USB_UNKNOWN=y + +# disable Multimedia core support +# CONFIG_MEDIA_SUPPORT is not set +# CONFIG_MEDIA_TUNER is not set + +# disable GPIO support +# CONFIG_GPIOLIB is not set +# CONFIG_GPIO_SYSFS is not set + +# Staging quality drivers +CONFIG_STAGING=y + +# disable USB PRINTER +# CONFIG_USB_PRINTER is not set + +# disable 1-wire +# CONFIG_W1 is not set + +# DRM options +CONFIG_DRM_DISPLAY_HELPER=y +CONFIG_DRM_TTM=y +CONFIG_DRM_BUDDY=y diff --git a/buildroot-external/kernel/6.1/global.config b/buildroot-external/kernel/6.1/global.config new file mode 100644 index 0000000..ca00788 --- /dev/null +++ b/buildroot-external/kernel/6.1/global.config @@ -0,0 +1,311 @@ +# misc settings +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_CMDLINE="" +CONFIG_DEFAULT_HOSTNAME="localhost" + +# enable certain expert features +CONFIG_EXPERT=y + +# enable hardware random number generators +CONFIG_HW_RANDOM=y + +# disable kernel rtc handling +# CONFIG_RTC_HCTOSYS is not set +# CONFIG_RTC_SYSTOHC is not set + +# disable autofs support +# CONFIG_AUTOFS4_FS is not set +# CONFIG_AUTOFS_FS is not set + +# disable joystick/touchscreen/mouse/remote controller support +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_RC_CORE is not set + +# disable CAN support +# CONFIG_CAN is not set + +# disable virtualization support +# CONFIG_VIRTUALIZATION is not set + +# disable serial device bus support +# CONFIG_SERIAL_DEV_BUS is not set + +# disable lirc +# CONFIG_LIRC is not set + +# disable usb webcam support +# CONFIG_USB_GSPCA is not set + +# disable apple cinema display support +# CONFIG_USB_APPLEDISPLAY is not set + +# disable Video4Linux +# CONFIG_VIDEO_DEV is not set + +# enable sound support +CONFIG_SOUND=m +CONFIG_SND=m +CONFIG_SND_HDA=m +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=y +# CONFIG_SPEAKUP is not set + +# disable accessibility support +# CONFIG_ACCESSIBILITY is not set + +# disable unnecessary framebuffer settings +# CONFIG_FB_TFT is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_SSD1307 is not set + +# enable framebuffer console +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set + +# disable dedicated backlight support +# CONFIG_BACKLIGHT_GPIO is not set +# CONFIG_BACKLIGHT_LM3630A is not set +# CONFIG_BACKLIGHT_PWM is not set + +# disable direct rendering manager support +# CONFIG_DRM is not set + +# disable DVB hardware support +# CONFIG_DVB_CORE is not set + +# disable android support options +# CONFIG_ANDROID_BINDER_IPC is not set + +# disable samba server kernel support +# CONFIG_SMB_SERVER is not set + +# disable media controller (camera) support +# CONFIG_MEDIA_CONTROLLER is not set + +# disable all runtime testing menu items +# CONFIG_RUNTIME_TESTING_MENU is not set + +# force conntrack as kernel component +# to be able to set options +CONFIG_NF_CONNTRACK=y + +# disable deprecated staging drivers +# CONFIG_STAGING_MEDIA_DEPRECATED is not set + +# force kernel preempt mode +CONFIG_PREEMPT=y +# CONFIG_DEBUG_PREEMPT is not set +# CONFIG_PREEMPT_DYNAMIC is not set + +# support for /proc/config.gz +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y + +# disable zram and co because not required +# CONFIG_ZRAM is not set +# CONFIG_ZSWAP is not set +# CONFIG_Z3FOLD is not set +# CONFIG_ZSMALLOC is not set + +# enable Multi-Gen LRU for improved performance unter memory pressure +CONFIG_LRU_GEN=y +CONFIG_LRU_GEN_ENABLED=y + +# enable ondemand frequency scaling +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y + +# filesystem support settings +CONFIG_MISC_FILESYSTEMS=y +CONFIG_BLOCK=y +CONFIG_EXT4_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_F2FS_FS=y +CONFIG_F2FS_STAT_FS=y +CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_POSIX_ACL=y +CONFIG_F2FS_IOSTAT=y +# CONFIG_NTFS_FS is not set +# CONFIG_SQUASHFS is not set +CONFIG_BTRFS_FS=m +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_DEFAULT_CODEPAGE=850 +# CONFIG_CIFS is not set +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +# CONFIG_CEPH_FS is not set + +# partition support +CONFIG_PARTITION_ADVANCED=y +CONFIG_EFI_PARTITION=y +CONFIG_MSDOS_PARTITION=y +# CONFIG_MAC_PARTITION is not set +# CONFIG_BSD_DISKLABEL is not set + +# disable quota support +# CONFIG_QUOTA is not set + +# enable raid/lvm support +CONFIG_MD=y +CONFIG_BLK_DEV_DM=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_DM_VERITY=y +# CONFIG_BLK_DEV_BSGLIB is not set + +# audit support +CONFIG_AUDIT=y + +# anable cryptographic API +CONFIG_CRYPTO=y +CONFIG_CRYPTO_LZ4=y + +# disable kernel boot logo support +# CONFIG_LOGO is not set + +# disable minimum stack debug counters for improved process startup +# CONFIG_DEBUG_STACK_USAGE is not set + +# bluetooth support +CONFIG_BT=m +CONFIG_BT_BREDR=y +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_LE=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m +CONFIG_BT_LEDS=y + +# enabke ipv6 support +CONFIG_IPV6=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_SIT=m + +# enable IP multicast routing +CONFIG_IP_MROUTE=y +CONFIG_IPV6_MROUTE=y + +# disable network bridge support +# CONFIG_BRIDGE is not set + +# disable Netfilter nf_tables support +# CONFIG_NF_TABLES is not set + +# disable IP set support +# CONFIG_IP_SET is not set +# CONFIG_IP_VS is not set + +# disable virtual ip tunneling +# CONFIG_NET_IPVTI is not set + +# network scheduler settings +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_FQ_CODEL=y +CONFIG_NET_SCH_DEFAULT=y +CONFIG_DEFAULT_FQ_CODEL=y + +# wireless support +CONFIG_WIRELESS=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_CFG80211=m +CONFIG_CFG80211_WEXT=y +# CONFIG_CFG80211_CRDA_SUPPORT is not set + +# disable network tunnel settings +# CONFIG_TUN is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_VLAN_8021Q_GVRP is not set +# CONFIG_VLAN_8021Q_MVRP is not set + +# disable ip/udp tunnels +# CONFIG_NET_IP_TUNNEL is not set +# CONFIG_NET_UDP_TUNNEL is not set + +# disable wireguard support +# CONFIG_WIREGUARD is not set + +# human interface devices support +CONFIG_HID=y +CONFIG_HIDRAW=y +CONFIG_UHID=y + +# enable MTD support +CONFIG_MTD=m + +# led trigger settings +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_DISK=y +CONFIG_LEDS_TRIGGER_MTD=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_CPU=y +CONFIG_LEDS_TRIGGER_ACTIVITY=y +CONFIG_LEDS_TRIGGER_GPIO=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y + +# userspace LED support +CONFIG_LEDS_USER=m + +# enable leds class flash +CONFIG_LEDS_CLASS_FLASH=m + +# native language/codepage support +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_850=y +CONFIG_NLS_CODEPAGE_1250=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_UTF8=y + +# detect hanging tasks after 120s +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 + +# set some ACPI options +# CONFIG_ACPI_BATTERY is not set +# CONFIG_ACPI_SLEEP is not set +CONFIG_ACPI_APEI=y +CONFIG_ACPI_APEI_GHES=y + +# disable CGROUP (not needed by thinclient) +# CONFIG_CGROUP is not set +# CONFIG_BLK_CGROUP is not set +# CONFIG_CGROUP_PIDS is not set +# CONFIG_CGROUP_RDMA is not set +# CONFIG_CGROUP_HUGETLB is not set +# CONFIG_CGROUP_DEVICE is not set +# CONFIG_CGROUP_PERF is not set +# CONFIG_CGROUP_MISC is not set +# CONFIG_CGROUP_DEBUG is not set +# CONFIG_SOCK_CGROUP_DATA is not set + +# disable some debugging to safe space +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_PM_DEBUG is not set +# CONFIG_KPROBES is not set +# CONFIG_NET_9P is not set + +# disable unnecessary stuff +# CONFIG_EFI_MIXED is not set +# CONFIG_SUSPEND is not set +# CONFIG_MEDIA_CEC_SUPPORT is not set +# CONFIG_HYPERVISOR_GUEST is not set +# CONFIG_HIBERNATION is not set +# CONFIG_BACKLIGHT_CLASS_DEVICE is not set + +# disable virtio support +# CONFIG_VIRTIO_MENU is not set +# CONFIG_VIRTIO_CONSOLE is not set diff --git a/buildroot-external/kernel/6.1/security-arm32.config b/buildroot-external/kernel/6.1/security-arm32.config new file mode 100644 index 0000000..5e3443d --- /dev/null +++ b/buildroot-external/kernel/6.1/security-arm32.config @@ -0,0 +1,10 @@ +# cf. https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings + +# Disallow allocating the first 32k of memory (cannot be 64k due to ARM loader). +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 + +# For maximal userspace memory area (and maximum ASLR). +CONFIG_VMSPLIT_3G=y + +# Make sure PXN/PAN emulation is enabled. +CONFIG_CPU_SW_DOMAIN_PAN=y diff --git a/buildroot-external/kernel/6.1/security-arm64.config b/buildroot-external/kernel/6.1/security-arm64.config new file mode 100644 index 0000000..af544db --- /dev/null +++ b/buildroot-external/kernel/6.1/security-arm64.config @@ -0,0 +1,36 @@ +# cf. https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings + +# Disallow allocating the first 32k of memory (cannot be 64k due to ARM loader). +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 + +# Randomize position of kernel (requires UEFI RNG or bootloader support for /chosen/kaslr-seed DT property). +CONFIG_RANDOMIZE_BASE=y + +# Make sure PAN emulation is enabled. +CONFIG_ARM64_SW_TTBR0_PAN=y + +# Enable Kernel Page Table Isolation to remove an entire class of cache timing side-channels. +CONFIG_UNMAP_KERNEL_AT_EL0=y + +# Software Shadow Stack or PAC +CONFIG_SHADOW_CALL_STACK=y + +# Pointer authentication (ARMv8.3 and later). If hardware actually supports it, one can +# turn off CONFIG_STACKPROTECTOR_STRONG with this enabled. +CONFIG_ARM64_PTR_AUTH=y +CONFIG_ARM64_PTR_AUTH_KERNEL=y + +# Available in ARMv8.5 and later. +CONFIG_ARM64_BTI=y +#CONFIG_ARM64_BTI_KERNEL=y +CONFIG_ARM64_MTE=y +#CONFIG_KASAN=y +#CONFIG_KASAN_HW_TAGS=y +CONFIG_ARM64_E0PD=y + +# Available in ARMv8.7 and later. +CONFIG_ARM64_EPAN=y + +## Enable Control Flow Integrity +#CONFIG_CFI_CLANG=y +## CONFIG_CFI_PERMISSIVE is not set diff --git a/buildroot-external/kernel/6.1/security-x86_32.config b/buildroot-external/kernel/6.1/security-x86_32.config new file mode 100644 index 0000000..d632df9 --- /dev/null +++ b/buildroot-external/kernel/6.1/security-x86_32.config @@ -0,0 +1,26 @@ +# cf. https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings + +# On 32-bit kernels, require PAE for NX bit support. +# CONFIG_M486 is not set +# CONFIG_HIGHMEM4G is not set +CONFIG_HIGHMEM64G=y +CONFIG_X86_PAE=y + +# Disallow allocating the first 64k of memory. +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 + +# Disable Model-Specific Register writes. +# CONFIG_X86_MSR is not set + +# Randomize position of kernel. +CONFIG_RANDOMIZE_BASE=y + +# Enable Kernel Page Table Isolation to remove an entire class of cache timing side-channels. +CONFIG_PAGE_TABLE_ISOLATION=y + +# Enable chip-specific IOMMU support. +CONFIG_INTEL_IOMMU=y +CONFIG_INTEL_IOMMU_DEFAULT_ON=y + +# Don't allow for 16-bit program emulation and associated LDT tricks. +# CONFIG_MODIFY_LDT_SYSCALL is not set diff --git a/buildroot-external/kernel/6.1/security-x86_64.config b/buildroot-external/kernel/6.1/security-x86_64.config new file mode 100644 index 0000000..46c4f5e --- /dev/null +++ b/buildroot-external/kernel/6.1/security-x86_64.config @@ -0,0 +1,31 @@ +# cf. https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings + +# Full 64-bit means PAE and NX bit. +CONFIG_X86_64=y + +# Disallow allocating the first 64k of memory. +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 + +# Disable Model-Specific Register writes. +# CONFIG_X86_MSR is not set + +# Randomize position of kernel and memory. +CONFIG_RANDOMIZE_BASE=y +CONFIG_RANDOMIZE_MEMORY=y + +# Modern libc no longer needs a fixed-position mapping in userspace, remove it as a possible target. +# CONFIG_X86_VSYSCALL_EMULATION is not set +CONFIG_LEGACY_VSYSCALL_NONE=y + +# Enable Kernel Page Table Isolation to remove an entire class of cache timing side-channels. +CONFIG_PAGE_TABLE_ISOLATION=y + +# Enable chip-specific IOMMU support. +CONFIG_INTEL_IOMMU=y +CONFIG_INTEL_IOMMU_DEFAULT_ON=y +CONFIG_INTEL_IOMMU_SVM=y +CONFIG_AMD_IOMMU=y +CONFIG_AMD_IOMMU_V2=y + +# Straight-Line-Speculation +CONFIG_SLS=y diff --git a/buildroot-external/kernel/6.1/security.config b/buildroot-external/kernel/6.1/security.config new file mode 100644 index 0000000..b69b6c9 --- /dev/null +++ b/buildroot-external/kernel/6.1/security.config @@ -0,0 +1,174 @@ +# kernel panic (immediate reboot) settings +CONFIG_PANIC_ON_OOPS=y +CONFIG_PANIC_ON_OOPS_VALUE=1 +CONFIG_PANIC_TIMEOUT=-1 + +# kernel module settings +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODULE_SIG is not set +# CONFIG_MODULE_SIG_FORCE is not set +# CONFIG_MODULE_SIG_ALL is not set +# CONFIG_MODULE_SIG_SHA512 is not set +# CONFIG_MODULE_SIG_HASH is not set +CONFIG_MODULE_COMPRESS_NONE=y + +# Make sure kernel page tables have safe permissions. +CONFIG_STRICT_KERNEL_RWX=y + +# Report any dangerous memory permissions (not available on all archs). +CONFIG_DEBUG_WX=y + +# Use -fstack-protector-strong (gcc 4.9+) for best stack canary coverage. +CONFIG_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR_STRONG=y + +# Do not allow direct physical memory access +CONFIG_STRICT_DEVMEM=y +CONFIG_IO_STRICT_DEVMEM=y + +# Provides some protections against SYN flooding. +CONFIG_SYN_COOKIES=y + +# Perform additional validation of various commonly targeted structures. +CONFIG_DEBUG_CREDENTIALS=y +CONFIG_DEBUG_NOTIFIERS=y +CONFIG_DEBUG_LIST=y +CONFIG_DEBUG_SG=y +CONFIG_DEBUG_VIRTUAL=y +CONFIG_BUG_ON_DATA_CORRUPTION=y +CONFIG_SCHED_STACK_END_CHECK=y + +# Provide userspace with seccomp BPF API for syscall attack surface reduction. +CONFIG_SECCOMP=y +CONFIG_SECCOMP_FILTER=y + +# Make sure line disciplines can't be autoloaded (since v5.1). +# CONFIG_LDISC_AUTOLOAD is not set + +# Provide userspace with ptrace ancestry protections. +# Make sure that "yama" is also present in the "CONFIG_LSM=yama,..." list. +CONFIG_SECURITY=y +CONFIG_SECURITY_YAMA=y + +# Provide userspace with Landlock MAC interface. +# Make sure that "landlock" is also present in the "CONFIG_LSM=landlock,..." list. +CONFIG_SECURITY_LANDLOCK=y + +# Make sure SELinux cannot be disabled trivially. +# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set +# CONFIG_SECURITY_SELINUX_DEVELOP is not set +# CONFIG_SECURITY_WRITABLE_HOOKS is not set + +# Enable "lockdown" LSM for bright line between the root user and kernel memory. +# CONFIG_SECURITY_LOCKDOWN_LSM is not set +# CONFIG_SECURITY_LOCKDOWN_LSM_EARLY is not set +# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set + +# Perform usercopy bounds checking. (And disable fallback to gain full whitelist enforcement.) +CONFIG_HARDENED_USERCOPY=y + +# Randomize allocator freelists, harden metadata. +CONFIG_SLAB_FREELIST_RANDOM=y +CONFIG_SLAB_FREELIST_HARDENED=y + +# Allow for randomization of high-order page allocation freelist. Must be enabled with +# the "page_alloc.shuffle=1" command line below). +CONFIG_SHUFFLE_PAGE_ALLOCATOR=y + +# Allow allocator validation checking to be enabled (see "slub_debug=P" below). +CONFIG_SLUB_DEBUG=y + +# Wipe higher-level memory allocations when they are freed (needs "page_poison=1" command line below). +CONFIG_PAGE_POISONING=y + +# Wipe slab and page allocations (since v5.3) +# Instead of "slub_debug=P" and "page_poison=1", a single place can control memory allocation wiping now. +# The init_on_free is only needed if there is concern about minimizing stale data lifetime. +CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y +# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set + +# Initialize all stack variables on function entry. (Clang and GCC 12+ builds only. For earlier GCC, see CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=y below) +CONFIG_INIT_STACK_ALL_ZERO=y + +# Adds guard pages to kernel stacks (not all architectures support this yet). +CONFIG_VMAP_STACK=y + +# Check for memory copies that might overflow a structure in str*() and mem*() functions both at build-time and run-time. +CONFIG_FORTIFY_SOURCE=y + +# Avoid kernel memory address exposures via dmesg (sets sysctl kernel.dmesg_restrict initial value to 1) +CONFIG_SECURITY_DMESG_RESTRICT=y + +# Enable trapping bounds checking of array indexes (since v5.11). All the other UBSAN checks should be disabled. +CONFIG_UBSAN=y +CONFIG_UBSAN_TRAP=y +CONFIG_UBSAN_BOUNDS=y +CONFIG_UBSAN_SANITIZE_ALL=y +# CONFIG_UBSAN_SHIFT is not set +# CONFIG_UBSAN_DIV_ZERO is not set +# CONFIG_UBSAN_UNREACHABLE is not set +# CONFIG_UBSAN_BOOL is not set +# CONFIG_UBSAN_ENUM is not set +# CONFIG_UBSAN_ALIGNMENT is not set + +# Enable sampling-based overflow detection (since v5.12). This is similar to KASAN coverage, but with almost zero runtime overhead. +CONFIG_KFENCE=y + +# Randomize kernel stack offset on syscall entry (since v5.13). +CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y + +# Do not ignore compile-time warnings (since v5.15) +CONFIG_WERROR=y + +# Disable DMA between EFI hand-off and the kernel's IOMMU setup. +CONFIG_EFI_DISABLE_PCI_DMA=y + +# Force IOMMU TLB invalidation so devices will never be able to access stale data contents (or set "iommu.passthrough=0 iommu.strict=1" at boot) +CONFIG_IOMMU_SUPPORT=y +CONFIG_IOMMU_DEFAULT_DMA_STRICT=y + +# Enable feeding RNG entropy from TPM, if available. +CONFIG_TCG_TPM=y +CONFIG_HW_RANDOM_TPM=y + +# Get as much entropy as possible from external sources. The Chacha mixer isn't vulnerable to injected entropy, so even +# malicious sources should not cause problems. +CONFIG_RANDOM_TRUST_BOOTLOADER=y +CONFIG_RANDOM_TRUST_CPU=y + +# Make scheduler aware of SMT Cores. Program needs to opt-in to using this feature with prctl(PR_SCHED_CORE). +CONFIG_SCHED_SMT=y +CONFIG_SCHED_CORE=y + +# Wipe all caller-used registers on exit from the function (reduces available ROP gadgets and +# minimizes stale data in registers). (Since v5.15) +CONFIG_ZERO_CALL_USED_REGS=y + +# Wipe RAM at reboot via EFI. +# For more details, see: +# https://trustedcomputinggroup.org/resource/pc-client-work-group-platform-reset-attack-mitigation-specification/ +# https://bugzilla.redhat.com/show_bug.cgi?id=1532058 +CONFIG_RESET_ATTACK_MITIGATION=y + +# Easily confused by misconfigured userspace, keep off. +# CONFIG_BINFMT_MISC is not set + +# Use the modern PTY interface (devpts) only. +# CONFIG_LEGACY_PTYS is not set + +# Block TTY stuffing attacks (this will break screen readers, see "dev.tty.legacy_tiocsti" sysctl below). +## CONFIG_LEGACY_TIOCSTI is not set # kernel 6.2+ + +# If SELinux can be disabled at runtime, the LSM structures cannot be read-only; keep off. +# CONFIG_SECURITY_SELINUX_DISABLE is not set + +# Enable AppArmor security module +CONFIG_SECURITY_APPARMOR=y +CONFIG_DEFAULT_SECURITY_APPARMOR=y + +# Disable SELINUX +# CONFIG_SECURITY_SELINUX is not set + +# Enable LSM security modules +CONFIG_LSM="landlock,lockdown,yama,apparmor" diff --git a/buildroot-external/kernel/6.6/device-support-pci.config b/buildroot-external/kernel/6.6/device-support-pci.config new file mode 100644 index 0000000..9dee8c4 --- /dev/null +++ b/buildroot-external/kernel/6.6/device-support-pci.config @@ -0,0 +1,22 @@ +CONFIG_IGB=y +CONFIG_IGC=m + +CONFIG_NET_VENDOR_ATHEROS=y +CONFIG_ATL2=m +CONFIG_ATL1=m +CONFIG_ATL1C=m +CONFIG_ATL1E=m +CONFIG_ALX=m + +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=m +CONFIG_BCMGENET=m +CONFIG_BNX2=m +CONFIG_TIGON3=m +CONFIG_BNX2X=m +CONFIG_BNXT=m + +CONFIG_BROADCOM_PHY=m + +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=m diff --git a/buildroot-external/kernel/6.6/device-support.config b/buildroot-external/kernel/6.6/device-support.config new file mode 100644 index 0000000..e2764c4 --- /dev/null +++ b/buildroot-external/kernel/6.6/device-support.config @@ -0,0 +1,103 @@ +CONFIG_USB=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + +CONFIG_USB_HID=y +CONFIG_USB_HIDDEV=y + +# disable USB<>IP support +# CONFIG_USBIP_CORE is not set + +# disable USB serial support +# CONFIG_USB_SERIAL is not set + +CONFIG_USB_ACM=m + +# enable USB storage support +CONFIG_USB_STORAGE=y +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y +CONFIG_USB_STORAGE_DATAFAB=m +CONFIG_USB_STORAGE_FREECOM=m +CONFIG_USB_STORAGE_ISD200=m +CONFIG_USB_STORAGE_USBAT=m +CONFIG_USB_STORAGE_SDDR09=m +CONFIG_USB_STORAGE_SDDR55=m +CONFIG_USB_STORAGE_JUMPSHOT=m +CONFIG_USB_STORAGE_ALAUDA=m +CONFIG_USB_STORAGE_ONETOUCH=m +CONFIG_USB_STORAGE_KARMA=m +CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_UAS=m + +# disable USB gadget support +# CONFIG_USB_GADGET is not set + +# USB Network Adapters +CONFIG_USB_NET_DRIVERS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_LAN78XX=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_AX88179_178A=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m + +CONFIG_MEDIA_CEC_SUPPORT=y + +CONFIG_BT_INTEL=m +CONFIG_BT_BCM=m +CONFIG_BT_RTL=m +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTUSB_BCM=y +CONFIG_BT_HCIBTUSB_RTL=y + +# enable PCI support +CONFIG_PCI=y + +# Wi-Fi Support +CONFIG_RTL_CARDS=m +CONFIG_RTL8192CU=m +CONFIG_RTL8XXXU=m +CONFIG_RTL8188EE=m + +CONFIG_WLAN_VENDOR_MEDIATEK=y +CONFIG_MT7601U=m + +CONFIG_WLAN_VENDOR_RALINK=y +CONFIG_RT2X00=m +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT3573=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800USB_UNKNOWN=y + +# disable Multimedia core support +# CONFIG_MEDIA_SUPPORT is not set +# CONFIG_MEDIA_TUNER is not set + +# disable GPIO support +# CONFIG_GPIOLIB is not set +# CONFIG_GPIO_SYSFS is not set + +# Staging quality drivers +CONFIG_STAGING=y + +# disable USB PRINTER +# CONFIG_USB_PRINTER is not set + +# disable 1-wire +# CONFIG_W1 is not set + +# DRM options +CONFIG_DRM_DISPLAY_HELPER=y +CONFIG_DRM_TTM=y +CONFIG_DRM_BUDDY=y diff --git a/buildroot-external/kernel/6.6/global.config b/buildroot-external/kernel/6.6/global.config new file mode 100644 index 0000000..f2545cb --- /dev/null +++ b/buildroot-external/kernel/6.6/global.config @@ -0,0 +1,344 @@ +# misc settings +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_CMDLINE="" +CONFIG_DEFAULT_HOSTNAME="localhost" + +# enable certain expert features +CONFIG_EXPERT=y + +# enable hardware random number generators +CONFIG_HW_RANDOM=y + +# disable kernel rtc handling +# CONFIG_RTC_HCTOSYS is not set +# CONFIG_RTC_SYSTOHC is not set + +# disable autofs support +# CONFIG_AUTOFS_FS is not set + +# disable joystick/touchscreen/mouse/remote controller support +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_RC_CORE is not set + +# disable CAN support +# CONFIG_CAN is not set + +# disable virtualization support +# CONFIG_VIRTUALIZATION is not set + +# disable serial device bus support +# CONFIG_SERIAL_DEV_BUS is not set + +# disable lirc +# CONFIG_LIRC is not set + +# disable usb webcam support +# CONFIG_USB_GSPCA is not set + +# disable apple cinema display support +# CONFIG_USB_APPLEDISPLAY is not set + +# disable Video4Linux +# CONFIG_VIDEO_DEV is not set + +# enable sound support +CONFIG_SOUND=m +CONFIG_SND=m +CONFIG_SND_HDA=m +CONFIG_SND_HDA_GENERIC_LEDS=y +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_RECONFIG=y +CONFIG_SND_HDA_INPUT_BEEP=y +CONFIG_SND_HDA_INPUT_BEEP_MODE=0 +CONFIG_SND_HDA_PATCH_LOADER=y +CONFIG_SND_HDA_CODEC_REALTEK=m +CONFIG_SND_HDA_CODEC_ANALOG=m +CONFIG_SND_HDA_CODEC_SIGMATEL=m +CONFIG_SND_HDA_CODEC_VIA=m +CONFIG_SND_HDA_CODEC_HDMI=m +CONFIG_SND_HDA_CODEC_CIRRUS=m +CONFIG_SND_HDA_CODEC_CONEXANT=m +CONFIG_SND_HDA_CODEC_CA0110=m +CONFIG_SND_HDA_CODEC_CA0132=m +CONFIG_SND_HDA_CODEC_CA0132_DSP=y +CONFIG_SND_HDA_CODEC_CMEDIA=m +CONFIG_SND_HDA_CODEC_SI3054=m +CONFIG_SND_HDA_GENERIC=m +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 +CONFIG_SND_HDA_CORE=m +CONFIG_SND_HDA_DSP_LOADER=y +CONFIG_SND_HDA_COMPONENT=y +CONFIG_SND_HDA_EXT_CORE=m +CONFIG_SND_HDA_PREALLOC_SIZE=0 +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=y + +# disable speakup support +# CONFIG_SPEAKUP is not set + +# disable accessibility support +# CONFIG_ACCESSIBILITY is not set + +# disable unnecessary framebuffer settings +# CONFIG_FB_TFT is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_SSD1307 is not set + +# enable framebuffer console +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set + +# enable console sleep +CONFIG_VT_CONSOLE_SLEEP=y + +# disable dedicated backlight support +# CONFIG_BACKLIGHT_GPIO is not set +# CONFIG_BACKLIGHT_LM3630A is not set +# CONFIG_BACKLIGHT_PWM is not set + +# disable direct rendering manager support +# CONFIG_DRM is not set + +# disable DVB hardware support +# CONFIG_DVB_CORE is not set + +# disable android support options +# CONFIG_ANDROID_BINDER_IPC is not set + +# disable samba server kernel support +# CONFIG_SMB_SERVER is not set + +# disable media controller (camera) support +# CONFIG_MEDIA_CONTROLLER is not set + +# disable all runtime testing menu items +# CONFIG_RUNTIME_TESTING_MENU is not set + +# force conntrack as kernel component +# to be able to set options +CONFIG_NF_CONNTRACK=y + +# disable deprecated staging drivers +# CONFIG_STAGING_MEDIA_DEPRECATED is not set + +# force kernel preempt mode +CONFIG_PREEMPT=y +# CONFIG_DEBUG_PREEMPT is not set +# CONFIG_PREEMPT_DYNAMIC is not set + +# support for /proc/config.gz +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y + +# disable zram and co because not required +# CONFIG_ZRAM is not set +# CONFIG_ZSWAP is not set +# CONFIG_Z3FOLD is not set +# CONFIG_ZSMALLOC is not set + +# enable Multi-Gen LRU for improved performance unter memory pressure +CONFIG_LRU_GEN=y +CONFIG_LRU_GEN_ENABLED=y + +# enable ondemand frequency scaling +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y + +# filesystem support settings +CONFIG_MISC_FILESYSTEMS=y +CONFIG_BLOCK=y +CONFIG_EXT2_FS=y +CONFIG_EXT3_FS=y +CONFIG_EXT4_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_F2FS_FS=y +CONFIG_F2FS_STAT_FS=y +CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_POSIX_ACL=y +CONFIG_F2FS_IOSTAT=y +# CONFIG_NTFS_FS is not set +# CONFIG_SQUASHFS is not set +CONFIG_BTRFS_FS=m +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_DEFAULT_CODEPAGE=850 +# CONFIG_CIFS is not set +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +# CONFIG_CEPH_FS is not set + +# partition support +CONFIG_PARTITION_ADVANCED=y +CONFIG_EFI_PARTITION=y +CONFIG_MSDOS_PARTITION=y +# CONFIG_MAC_PARTITION is not set +# CONFIG_BSD_DISKLABEL is not set + +# disable quota support +# CONFIG_QUOTA is not set + +# enable ata support +CONFIG_ATA=y + +# enable raid/lvm support +CONFIG_MD=y +CONFIG_BLK_DEV_DM=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_DM_VERITY=y +# CONFIG_BLK_DEV_BSGLIB is not set + +# audit support +CONFIG_AUDIT=y + +# anable cryptographic API +CONFIG_CRYPTO=y +CONFIG_CRYPTO_LZ4=y + +# disable kernel boot logo support +# CONFIG_LOGO is not set + +# disable minimum stack debug counters for improved process startup +# CONFIG_DEBUG_STACK_USAGE is not set + +# bluetooth support +CONFIG_BT=m +CONFIG_BT_BREDR=y +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_LE=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m +CONFIG_BT_LEDS=y + +# enabke ipv6 support +CONFIG_IPV6=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_SIT=m + +# enable IP multicast routing +CONFIG_IP_MROUTE=y +CONFIG_IPV6_MROUTE=y + +# disable network bridge support +# CONFIG_BRIDGE is not set + +# disable Netfilter nf_tables support +# CONFIG_NF_TABLES is not set + +# disable IP set support +# CONFIG_IP_SET is not set +# CONFIG_IP_VS is not set + +# disable virtual ip tunneling +# CONFIG_NET_IPVTI is not set + +# network scheduler settings +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_FQ_CODEL=y +CONFIG_NET_SCH_DEFAULT=y +CONFIG_DEFAULT_FQ_CODEL=y + +# wireless support +CONFIG_WIRELESS=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_CFG80211=m +CONFIG_CFG80211_WEXT=y +# CONFIG_CFG80211_CRDA_SUPPORT is not set + +# disable network tunnel settings +# CONFIG_TUN is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_VLAN_8021Q_GVRP is not set +# CONFIG_VLAN_8021Q_MVRP is not set + +# disable ip/udp tunnels +# CONFIG_NET_IP_TUNNEL is not set +# CONFIG_NET_UDP_TUNNEL is not set + +# disable wireguard support +# CONFIG_WIREGUARD is not set + +# human interface devices support +CONFIG_HID=y +CONFIG_HIDRAW=y +CONFIG_UHID=y + +# enable MTD support +CONFIG_MTD=m + +# led trigger settings +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_ONESHOT=y +CONFIG_LEDS_TRIGGER_DISK=y +CONFIG_LEDS_TRIGGER_MTD=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_CPU=y +CONFIG_LEDS_TRIGGER_ACTIVITY=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y + +# userspace LED support +CONFIG_LEDS_USER=m + +# enable leds class flash +CONFIG_LEDS_CLASS_FLASH=m + +# native language/codepage support +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_850=y +CONFIG_NLS_CODEPAGE_1250=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_UTF8=y + +# detect hanging tasks after 120s +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 + +# set some ACPI options +# CONFIG_ACPI_BATTERY is not set +# CONFIG_ACPI_SLEEP is not set +CONFIG_ACPI_APEI=y +CONFIG_ACPI_APEI_GHES=y + +# disable CGROUP (not needed by thinclient) +# CONFIG_CGROUP is not set +# CONFIG_BLK_CGROUP is not set +# CONFIG_CGROUP_PIDS is not set +# CONFIG_CGROUP_RDMA is not set +# CONFIG_CGROUP_HUGETLB is not set +# CONFIG_CGROUP_DEVICE is not set +# CONFIG_CGROUP_PERF is not set +# CONFIG_CGROUP_MISC is not set +# CONFIG_CGROUP_DEBUG is not set +# CONFIG_SOCK_CGROUP_DATA is not set + +# disable some debugging to safe space +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_PM_DEBUG is not set +# CONFIG_KPROBES is not set +# CONFIG_NET_9P is not set + +# disable unnecessary stuff +# CONFIG_EFI_MIXED is not set +# CONFIG_SUSPEND is not set +# CONFIG_MEDIA_CEC_SUPPORT is not set +# CONFIG_HYPERVISOR_GUEST is not set +# CONFIG_HIBERNATION is not set +# CONFIG_BACKLIGHT_CLASS_DEVICE is not set + +# disable virtio support +# CONFIG_VIRTIO_MENU is not set +# CONFIG_VIRTIO_CONSOLE is not set diff --git a/buildroot-external/kernel/6.6/security-arm32.config b/buildroot-external/kernel/6.6/security-arm32.config new file mode 100644 index 0000000..5e3443d --- /dev/null +++ b/buildroot-external/kernel/6.6/security-arm32.config @@ -0,0 +1,10 @@ +# cf. https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings + +# Disallow allocating the first 32k of memory (cannot be 64k due to ARM loader). +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 + +# For maximal userspace memory area (and maximum ASLR). +CONFIG_VMSPLIT_3G=y + +# Make sure PXN/PAN emulation is enabled. +CONFIG_CPU_SW_DOMAIN_PAN=y diff --git a/buildroot-external/kernel/6.6/security-arm64.config b/buildroot-external/kernel/6.6/security-arm64.config new file mode 100644 index 0000000..af544db --- /dev/null +++ b/buildroot-external/kernel/6.6/security-arm64.config @@ -0,0 +1,36 @@ +# cf. https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings + +# Disallow allocating the first 32k of memory (cannot be 64k due to ARM loader). +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 + +# Randomize position of kernel (requires UEFI RNG or bootloader support for /chosen/kaslr-seed DT property). +CONFIG_RANDOMIZE_BASE=y + +# Make sure PAN emulation is enabled. +CONFIG_ARM64_SW_TTBR0_PAN=y + +# Enable Kernel Page Table Isolation to remove an entire class of cache timing side-channels. +CONFIG_UNMAP_KERNEL_AT_EL0=y + +# Software Shadow Stack or PAC +CONFIG_SHADOW_CALL_STACK=y + +# Pointer authentication (ARMv8.3 and later). If hardware actually supports it, one can +# turn off CONFIG_STACKPROTECTOR_STRONG with this enabled. +CONFIG_ARM64_PTR_AUTH=y +CONFIG_ARM64_PTR_AUTH_KERNEL=y + +# Available in ARMv8.5 and later. +CONFIG_ARM64_BTI=y +#CONFIG_ARM64_BTI_KERNEL=y +CONFIG_ARM64_MTE=y +#CONFIG_KASAN=y +#CONFIG_KASAN_HW_TAGS=y +CONFIG_ARM64_E0PD=y + +# Available in ARMv8.7 and later. +CONFIG_ARM64_EPAN=y + +## Enable Control Flow Integrity +#CONFIG_CFI_CLANG=y +## CONFIG_CFI_PERMISSIVE is not set diff --git a/buildroot-external/kernel/6.6/security-x86_32.config b/buildroot-external/kernel/6.6/security-x86_32.config new file mode 100644 index 0000000..d632df9 --- /dev/null +++ b/buildroot-external/kernel/6.6/security-x86_32.config @@ -0,0 +1,26 @@ +# cf. https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings + +# On 32-bit kernels, require PAE for NX bit support. +# CONFIG_M486 is not set +# CONFIG_HIGHMEM4G is not set +CONFIG_HIGHMEM64G=y +CONFIG_X86_PAE=y + +# Disallow allocating the first 64k of memory. +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 + +# Disable Model-Specific Register writes. +# CONFIG_X86_MSR is not set + +# Randomize position of kernel. +CONFIG_RANDOMIZE_BASE=y + +# Enable Kernel Page Table Isolation to remove an entire class of cache timing side-channels. +CONFIG_PAGE_TABLE_ISOLATION=y + +# Enable chip-specific IOMMU support. +CONFIG_INTEL_IOMMU=y +CONFIG_INTEL_IOMMU_DEFAULT_ON=y + +# Don't allow for 16-bit program emulation and associated LDT tricks. +# CONFIG_MODIFY_LDT_SYSCALL is not set diff --git a/buildroot-external/kernel/6.6/security-x86_64.config b/buildroot-external/kernel/6.6/security-x86_64.config new file mode 100644 index 0000000..46c4f5e --- /dev/null +++ b/buildroot-external/kernel/6.6/security-x86_64.config @@ -0,0 +1,31 @@ +# cf. https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings + +# Full 64-bit means PAE and NX bit. +CONFIG_X86_64=y + +# Disallow allocating the first 64k of memory. +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 + +# Disable Model-Specific Register writes. +# CONFIG_X86_MSR is not set + +# Randomize position of kernel and memory. +CONFIG_RANDOMIZE_BASE=y +CONFIG_RANDOMIZE_MEMORY=y + +# Modern libc no longer needs a fixed-position mapping in userspace, remove it as a possible target. +# CONFIG_X86_VSYSCALL_EMULATION is not set +CONFIG_LEGACY_VSYSCALL_NONE=y + +# Enable Kernel Page Table Isolation to remove an entire class of cache timing side-channels. +CONFIG_PAGE_TABLE_ISOLATION=y + +# Enable chip-specific IOMMU support. +CONFIG_INTEL_IOMMU=y +CONFIG_INTEL_IOMMU_DEFAULT_ON=y +CONFIG_INTEL_IOMMU_SVM=y +CONFIG_AMD_IOMMU=y +CONFIG_AMD_IOMMU_V2=y + +# Straight-Line-Speculation +CONFIG_SLS=y diff --git a/buildroot-external/kernel/6.6/security.config b/buildroot-external/kernel/6.6/security.config new file mode 100644 index 0000000..1e74de8 --- /dev/null +++ b/buildroot-external/kernel/6.6/security.config @@ -0,0 +1,164 @@ +# kernel panic (immediate reboot) settings +CONFIG_PANIC_ON_OOPS=y +CONFIG_PANIC_ON_OOPS_VALUE=1 +CONFIG_PANIC_TIMEOUT=-1 + +# kernel module settings +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODULE_SIG is not set +# CONFIG_MODULE_SIG_FORCE is not set +# CONFIG_MODULE_SIG_ALL is not set +# CONFIG_MODULE_SIG_SHA512 is not set +# CONFIG_MODULE_SIG_HASH is not set +CONFIG_MODULE_COMPRESS_NONE=y + +# Make sure kernel page tables have safe permissions. +CONFIG_STRICT_KERNEL_RWX=y + +# Report any dangerous memory permissions (not available on all archs). +CONFIG_DEBUG_WX=y + +# Use -fstack-protector-strong (gcc 4.9+) for best stack canary coverage. +CONFIG_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR_STRONG=y + +# Do not allow direct physical memory access +CONFIG_STRICT_DEVMEM=y +CONFIG_IO_STRICT_DEVMEM=y + +# Provides some protections against SYN flooding. +CONFIG_SYN_COOKIES=y + +# Perform additional validation of various commonly targeted structures. +CONFIG_DEBUG_NOTIFIERS=y +CONFIG_DEBUG_LIST=y +CONFIG_DEBUG_SG=y +CONFIG_DEBUG_VIRTUAL=y +CONFIG_BUG_ON_DATA_CORRUPTION=y +CONFIG_SCHED_STACK_END_CHECK=y + +# Provide userspace with seccomp BPF API for syscall attack surface reduction. +CONFIG_SECCOMP=y +CONFIG_SECCOMP_FILTER=y + +# Make sure line disciplines can't be autoloaded (since v5.1). +# CONFIG_LDISC_AUTOLOAD is not set + +# Provide userspace with ptrace ancestry protections. +# Make sure that "yama" is also present in the "CONFIG_LSM=yama,..." list. +CONFIG_SECURITY=y +CONFIG_SECURITY_YAMA=y + +# Provide userspace with Landlock MAC interface. +# Make sure that "landlock" is also present in the "CONFIG_LSM=landlock,..." list. +CONFIG_SECURITY_LANDLOCK=y + +# Make sure SELinux cannot be disabled trivially. +# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set +# CONFIG_SECURITY_SELINUX_DEVELOP is not set + +# Enable "lockdown" LSM for bright line between the root user and kernel memory. +# CONFIG_SECURITY_LOCKDOWN_LSM is not set +# CONFIG_SECURITY_LOCKDOWN_LSM_EARLY is not set +# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set + +# Perform usercopy bounds checking. (And disable fallback to gain full whitelist enforcement.) +CONFIG_HARDENED_USERCOPY=y + +# Randomize allocator freelists, harden metadata. +CONFIG_SLAB_FREELIST_RANDOM=y +CONFIG_SLAB_FREELIST_HARDENED=y + +# Allow for randomization of high-order page allocation freelist. Must be enabled with +# the "page_alloc.shuffle=1" command line below). +CONFIG_SHUFFLE_PAGE_ALLOCATOR=y + +# Allow allocator validation checking to be enabled (see "slub_debug=P" below). +CONFIG_SLUB_DEBUG=y + +# Wipe higher-level memory allocations when they are freed (needs "page_poison=1" command line below). +CONFIG_PAGE_POISONING=y + +# Wipe slab and page allocations (since v5.3) +# Instead of "slub_debug=P" and "page_poison=1", a single place can control memory allocation wiping now. +# The init_on_free is only needed if there is concern about minimizing stale data lifetime. +CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y +# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set + +# Initialize all stack variables on function entry. (Clang and GCC 12+ builds only. For earlier GCC, see CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=y below) +CONFIG_INIT_STACK_ALL_ZERO=y + +# Adds guard pages to kernel stacks (not all architectures support this yet). +CONFIG_VMAP_STACK=y + +# Check for memory copies that might overflow a structure in str*() and mem*() functions both at build-time and run-time. +CONFIG_FORTIFY_SOURCE=y + +# Avoid kernel memory address exposures via dmesg (sets sysctl kernel.dmesg_restrict initial value to 1) +CONFIG_SECURITY_DMESG_RESTRICT=y + +# Enable trapping bounds checking of array indexes (since v5.11). All the other UBSAN checks should be disabled. +CONFIG_UBSAN=y +CONFIG_UBSAN_TRAP=y +CONFIG_UBSAN_BOUNDS=y +CONFIG_UBSAN_SANITIZE_ALL=y +# CONFIG_UBSAN_SHIFT is not set +# CONFIG_UBSAN_DIV_ZERO is not set +# CONFIG_UBSAN_UNREACHABLE is not set +# CONFIG_UBSAN_BOOL is not set +# CONFIG_UBSAN_ENUM is not set +# CONFIG_UBSAN_ALIGNMENT is not set + +# Enable sampling-based overflow detection (since v5.12). This is similar to KASAN coverage, but with almost zero runtime overhead. +CONFIG_KFENCE=y + +# Randomize kernel stack offset on syscall entry (since v5.13). +CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y + +# Do not ignore compile-time warnings (since v5.15) +CONFIG_WERROR=y + +# Disable DMA between EFI hand-off and the kernel's IOMMU setup. +CONFIG_EFI_DISABLE_PCI_DMA=y + +# Force IOMMU TLB invalidation so devices will never be able to access stale data contents (or set "iommu.passthrough=0 iommu.strict=1" at boot) +CONFIG_IOMMU_SUPPORT=y +CONFIG_IOMMU_DEFAULT_DMA_STRICT=y + +# Enable feeding RNG entropy from TPM, if available. +CONFIG_TCG_TPM=y +CONFIG_HW_RANDOM_TPM=y + +# Make scheduler aware of SMT Cores. Program needs to opt-in to using this feature with prctl(PR_SCHED_CORE). +CONFIG_SCHED_SMT=y +CONFIG_SCHED_CORE=y + +# Wipe all caller-used registers on exit from the function (reduces available ROP gadgets and +# minimizes stale data in registers). (Since v5.15) +CONFIG_ZERO_CALL_USED_REGS=y + +# Wipe RAM at reboot via EFI. +# For more details, see: +# https://trustedcomputinggroup.org/resource/pc-client-work-group-platform-reset-attack-mitigation-specification/ +# https://bugzilla.redhat.com/show_bug.cgi?id=1532058 +CONFIG_RESET_ATTACK_MITIGATION=y + +# Easily confused by misconfigured userspace, keep off. +# CONFIG_BINFMT_MISC is not set + +# Use the modern PTY interface (devpts) only. +# CONFIG_LEGACY_PTYS is not set + +# Block TTY stuffing attacks (this will break screen readers, see "dev.tty.legacy_tiocsti" sysctl below). +## CONFIG_LEGACY_TIOCSTI is not set # kernel 6.2+ + +# Enable AppArmor security module +CONFIG_SECURITY_APPARMOR=y +CONFIG_DEFAULT_SECURITY_APPARMOR=y + +# Disable SELINUX +# CONFIG_SECURITY_SELINUX is not set + +# Enable LSM security modules +CONFIG_LSM="landlock,lockdown,yama,apparmor" diff --git a/buildroot-external/package/qt-webengine-kiosk/0001-webengine-fix.patch b/buildroot-external/package/qt-webengine-kiosk/0001-webengine-fix.patch index dca8812..52da1ae 100644 --- a/buildroot-external/package/qt-webengine-kiosk/0001-webengine-fix.patch +++ b/buildroot-external/package/qt-webengine-kiosk/0001-webengine-fix.patch @@ -1,5 +1,8 @@ diff --git a/src/qt-webengine-kiosk.pro b/src/qt-webengine-kiosk.pro Signed-off-by: Jens Maus + +Upstream: n/a + index b760a9c..0b38e9b 100644 --- a/src/qt-webengine-kiosk.pro +++ b/src/qt-webengine-kiosk.pro diff --git a/buildroot-external/rootfs-overlay/etc/inittab b/buildroot-external/rootfs-overlay/etc/inittab index 098ddcd..a079bee 100644 --- a/buildroot-external/rootfs-overlay/etc/inittab +++ b/buildroot-external/rootfs-overlay/etc/inittab @@ -18,6 +18,7 @@ null::sysinit:/bin/mount -t proc proc /proc null::sysinit:/bin/mkdir -p /dev/pts null::sysinit:/bin/mkdir -p /dev/shm tty2::sysinit:/bin/mount -a +null::sysinit:/bin/mkdir -p /run/lock null::sysinit:/bin/hostname -F /etc/hostname null::sysinit:/usr/bin/psplash -n & # now run any rc scripts diff --git a/buildroot-patches/0002-linux-firmware.patch b/buildroot-patches/0002-linux-firmware.patch index cfd4cf4..8d123e1 100644 --- a/buildroot-patches/0002-linux-firmware.patch +++ b/buildroot-patches/0002-linux-firmware.patch @@ -1,29 +1,236 @@ --- buildroot/package/linux-firmware/Config.in.orig +++ buildroot/package/linux-firmware/Config.in -@@ -197,6 +197,12 @@ - Firmware files for the Intel Wifi 9xxx devices supported by - the iwlwifi kernel driver. +@@ -8,6 +8,32 @@ -+config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_QUZ -+ bool "Intel iwlwifi QuZ" + if BR2_PACKAGE_LINUX_FIRMWARE + ++config BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS ++ bool "Compress firmware files" ++ help ++ Compress firmware files to save space in the root filesystem. This ++ is not as efficient as whole root filesystem compression, but it ++ is better performance-wise, because the firmwares are usually ++ accessed only when the driver is loaded. ++ ++if BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS ++ ++choice ++ prompt "Compression algorithm" ++ default BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS_XZ ++ help ++ Select the compression algorithm to use for the firmware files. ++ ++config BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS_XZ ++ bool "xz" ++ ++config BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS_ZSTD ++ bool "zstd" ++ ++endchoice ++ ++endif ++ + menu "Audio firmware" + + config BR2_PACKAGE_LINUX_FIRMWARE_INTEL_SST_DSP +@@ -64,6 +90,16 @@ + Firmware files for Intel 3160/7260/7265/8260/8265 Wireless + bluetooth support. + ++config BR2_PACKAGE_LINUX_FIRMWARE_MT7921_BT ++ bool "MediaTek MT7921" + help -+ Firmware files for the Intel Wifi QuZ devices supported by -+ the iwlwifi kernel driver. ++ Firmware files for MediaTek MT7921 bluetooth support + - config BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V8 - bool "Libertas SD 8686 v8" ++config BR2_PACKAGE_LINUX_FIRMWARE_MT7922_BT ++ bool "MediaTek MT7922" ++ help ++ Firmware files for MediaTek MT7922 bluetooth support ++ + config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7650 + bool "MediaTek MT7650" + help +@@ -400,6 +436,16 @@ + + config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7921 + bool "MediaTek MT7921" ++ help ++ MediaTek MT7921 ++ ++config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7922 ++ bool "MediaTek MT7922" ++ help ++ MediaTek MT7922 ++ ++config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7921 ++ bool "MediaTek MT7921" help + MediaTek MT7921 + --- buildroot/package/linux-firmware/linux-firmware.mk.orig +++ buildroot/package/linux-firmware/linux-firmware.mk -@@ -430,6 +430,11 @@ - LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware +@@ -9,6 +9,19 @@ + LINUX_FIRMWARE_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/firmware + LINUX_FIRMWARE_INSTALL_IMAGES = YES + ++LINUX_FIRMWARE_COMPRESSED_FILE_SUFFIX= ++ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS_XZ),y) ++LINUX_FIRMWARE_DEPENDENCIES += host-xz ++LINUX_FIRMWARE_COMPRESS_CMD=$(HOST_DIR)/bin/xz -fv -C crc32 --lzma2=dict=2MiB ++LINUX_FIRMWARE_COMPRESSED_FILE_SUFFIX=.xz ++else ++ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS_ZSTD),y) ++LINUX_FIRMWARE_DEPENDENCIES += host-zstd ++LINUX_FIRMWARE_COMPRESS_CMD=$(HOST_DIR)/bin/zstd -f -19 --rm ++LINUX_FIRMWARE_COMPRESSED_FILE_SUFFIX=.zst ++endif ++endif ++ + # Intel SST DSP + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_INTEL_SST_DSP),y) + LINUX_FIRMWARE_FILES += intel/fw_sst_0f28.bin-48kHz_i2s_master +@@ -63,6 +76,18 @@ + LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ibt_firmware + endif + ++# Mediatek MT7921 Bluetooth ++ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MT7921_BT),y) ++LINUX_FIRMWARE_FILES += mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin ++LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.mediatek ++endif ++ ++# Mediatek MT7922 Bluetooth ++ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MT7922_BT),y) ++LINUX_FIRMWARE_FILES += mediatek/BT_RAM_CODE_MT7922_1_1_hdr.bin ++LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.mediatek ++endif ++ + # Qualcomm Atheros Rome 6174A Bluetooth + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174A_BT),y) + LINUX_FIRMWARE_FILES += qca/rampatch_usb_00000302.bin qca/nvm_usb_00000302.bin +@@ -183,6 +208,13 @@ + LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt + endif + ++# rtw89 ++ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW89),y) ++LINUX_FIRMWARE_FILES += \ ++ rtw89/rtw*.bin ++LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt ++endif ++ + # ar3011 + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_AR3011),y) + LINUX_FIRMWARE_FILES += ath3k-1.fw +@@ -413,6 +445,20 @@ + LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.mediatek endif -+ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_QUZ),y) -+LINUX_FIRMWARE_FILES += iwlwifi-QuZ-*.ucode -+LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware ++# MT7921 ++ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7921),y) ++LINUX_FIRMWARE_FILES += mediatek/WIFI_MT7961_patch_mcu_1_2_hdr.bin \ ++ mediatek/WIFI_RAM_CODE_MT7961_1.bin ++LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.mediatek +endif + - ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BNX2X),y) - LINUX_FIRMWARE_FILES += bnx2x/* - # No license file; the license is in the file WHENCE ++# MT7922 ++ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7922),y) ++LINUX_FIRMWARE_FILES += mediatek/WIFI_MT7922_patch_mcu_1_1_hdr.bin \ ++ mediatek/WIFI_RAM_CODE_MT7922_1.bin ++LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.mediatek ++endif ++ + # qca6174 + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174),y) + LINUX_FIRMWARE_FILES += ath10k/QCA6174 +@@ -487,12 +533,22 @@ + endif + + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_22000),y) +-LINUX_FIRMWARE_FILES += iwlwifi-QuZ-*.ucode iwlwifi-Qu-*.ucode +-LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware +-endif +- +-ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_22260),y) +-LINUX_FIRMWARE_FILES += iwlwifi-cc-a0-*.ucode ++LINUX_FIRMWARE_FILES += \ ++ iwlwifi-Qu-b0-hr-b0-72.ucode \ ++ iwlwifi-Qu-c0-hr-b0-72.ucode \ ++ iwlwifi-Qu-b0-jf-b0-72.ucode \ ++ iwlwifi-Qu-c0-jf-b0-72.ucode \ ++ iwlwifi-QuZ-a0-hr-b0-72.ucode \ ++ iwlwifi-QuZ-a0-jf-b0-72.ucode \ ++ iwlwifi-cc-a0-72.ucode \ ++ iwlwifi-so-a0-jf-b0-72.ucode \ ++ iwlwifi-so-a0-hr-b0-72.ucode \ ++ iwlwifi-so-a0-gf-a0-72.ucode \ ++ iwlwifi-so-a0-gf-a0.pnvm \ ++ iwlwifi-so-a0-gf4-a0-72.ucode \ ++ iwlwifi-so-a0-gf4-a0.pnvm \ ++ iwlwifi-ty-a0-gf-a0-72.ucode \ ++ iwlwifi-ty-a0-gf-a0.pnvm + LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware + endif + +@@ -887,15 +943,34 @@ + # sure we canonicalize the pointed-to file, to cover the symlinks of the form + # a/foo -> ../b/foo where a/ (the directory where to put the symlink) does + # not yet exist. ++# ++# If BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS is enabled, modules are compressed ++# in this stage after being copied to the target directory. The compression ++# is not done on modules in the images directory, because they must not be ++# compressed when bundled via the EXTRA_FIRMWARE option. ++# ++# $1: target directory ++# $2: 'images' (uncompressed) or 'target' (compressed if enabled) + define LINUX_FIRMWARE_INSTALL_FW + mkdir -p $(1) + $(TAR) xf $(@D)/br-firmware.tar -C $(1) ++ if [ "$(BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS)" = "y" ] && [ "$(2)" = "target" ]; then \ ++ $(TAR) tf $(@D)/br-firmware.tar | while read f; do \ ++ if [ -f $(1)/$$f ]; then \ ++ $(LINUX_FIRMWARE_COMPRESS_CMD) $(1)/$$f; \ ++ fi ; \ ++ done ; \ ++ fi + cd $(1) ; \ ++ file_suffix="" ; \ ++ if [ "$(BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS)" = "y" ] && [ "$(2)" = "target" ]; then \ ++ file_suffix="$(LINUX_FIRMWARE_COMPRESSED_FILE_SUFFIX)" ; \ ++ fi ; \ + sed -r -e '/^Link: (.+) -> (.+)$$/!d; s//\1 \2/' $(@D)/WHENCE | \ + while read f d; do \ +- if test -f $$(readlink -m $$(dirname "$$f")/$$d); then \ ++ if test -f $$(readlink -m $$(dirname "$$f")/$${d}$${file_suffix}); then \ + mkdir -p $$(dirname "$$f") || exit 1; \ +- ln -sf $$d "$$f" || exit 1; \ ++ ln -sf $${d}$${file_suffix} "$${f}$${file_suffix}" || exit 1; \ + fi ; \ + done + endef +@@ -903,11 +978,22 @@ + endif # LINUX_FIRMWARE_FILES || LINUX_FIRMWARE_DIRS + + define LINUX_FIRMWARE_INSTALL_TARGET_CMDS +- $(call LINUX_FIRMWARE_INSTALL_FW, $(TARGET_DIR)/lib/firmware) ++ $(call LINUX_FIRMWARE_INSTALL_FW,$(TARGET_DIR)/lib/firmware,target) + endef + + define LINUX_FIRMWARE_INSTALL_IMAGES_CMDS +- $(call LINUX_FIRMWARE_INSTALL_FW, $(BINARIES_DIR)) ++ $(call LINUX_FIRMWARE_INSTALL_FW,$(BINARIES_DIR),images) ++endef ++ ++define LINUX_FIRMWARE_LINUX_CONFIG_FIXUPS ++ $(if $(BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS_XZ), ++ $(call KCONFIG_ENABLE_OPT,CONFIG_FW_LOADER_COMPRESS) ++ $(call KCONFIG_ENABLE_OPT,CONFIG_FW_LOADER_COMPRESS_XZ) ++ $(call KCONFIG_DISABLE_OPT,CONFIG_FW_LOADER_COMPRESS_ZSTD)) ++ $(if $(BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS_ZSTD), ++ $(call KCONFIG_ENABLE_OPT,CONFIG_FW_LOADER_COMPRESS) ++ $(call KCONFIG_DISABLE_OPT,CONFIG_FW_LOADER_COMPRESS_XZ) ++ $(call KCONFIG_ENABLE_OPT,CONFIG_FW_LOADER_COMPRESS_ZSTD)) + endef + + $(eval $(generic-package)) diff --git a/buildroot-patches/0002-linux-firmware/buildroot/package/linux-firmware/Config.in b/buildroot-patches/0002-linux-firmware/buildroot/package/linux-firmware/Config.in index cdb5dc8..3a88440 100644 --- a/buildroot-patches/0002-linux-firmware/buildroot/package/linux-firmware/Config.in +++ b/buildroot-patches/0002-linux-firmware/buildroot/package/linux-firmware/Config.in @@ -8,6 +8,32 @@ config BR2_PACKAGE_LINUX_FIRMWARE if BR2_PACKAGE_LINUX_FIRMWARE +config BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS + bool "Compress firmware files" + help + Compress firmware files to save space in the root filesystem. This + is not as efficient as whole root filesystem compression, but it + is better performance-wise, because the firmwares are usually + accessed only when the driver is loaded. + +if BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS + +choice + prompt "Compression algorithm" + default BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS_XZ + help + Select the compression algorithm to use for the firmware files. + +config BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS_XZ + bool "xz" + +config BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS_ZSTD + bool "zstd" + +endchoice + +endif + menu "Audio firmware" config BR2_PACKAGE_LINUX_FIRMWARE_INTEL_SST_DSP @@ -44,26 +70,61 @@ config BR2_PACKAGE_LINUX_FIRMWARE_QCOM_ADRENO help Firmware files for Qualcomm Adreno GPU firmware +config BR2_PACKAGE_LINUX_FIRMWARE_MFC_V8 + bool "Samsung MFC video encoder/decoder v8 firmware" + help + Firmware files for Samsung MFC video encoder/decoder driver v8 + endmenu # Video menu "Bluetooth firmware" +config BR2_PACKAGE_LINUX_FIRMWARE_AMLOGIC + bool "Amlogic SOC Bluetooth" + help + Firmware files for Conexant Amlogic SOC bluetooth support. + config BR2_PACKAGE_LINUX_FIRMWARE_IBT bool "Intel Wireless Bluetooth" help Firmware files for Intel 3160/7260/7265/8260/8265 Wireless bluetooth support. +config BR2_PACKAGE_LINUX_FIRMWARE_MT7921_BT + bool "MediaTek MT7921" + help + Firmware files for MediaTek MT7921 bluetooth support + +config BR2_PACKAGE_LINUX_FIRMWARE_MT7922_BT + bool "MediaTek MT7922" + help + Firmware files for MediaTek MT7922 bluetooth support + config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7650 bool "MediaTek MT7650" help Firmware files for MediaTek MT7650 bluetooth support +config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7921_BT + bool "MediaTek MT7921" + help + Firmware files for MediaTek MT7921 bluetooth support + +config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7922_BT + bool "MediaTek MT7922" + help + Firmware files for MediaTek MT7922 bluetooth support + config BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174A_BT bool "Qualcomm Atheros Rome 6174A Bluetooth" help Firmware files for QCA Rome 6174A bluetooth support. +config BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_9377_BT + bool "Qualcomm Atheros QCA9377 Bluetooth" + help + Firmware files for QCA9377 bluetooth support. + config BR2_PACKAGE_LINUX_FIRMWARE_AR3011 bool "Qualcomm Atheros 3011" help @@ -74,6 +135,16 @@ config BR2_PACKAGE_LINUX_FIRMWARE_AR3012_USB help Firmware files for Atheros bluetooth chipset AR3012 on USB. +config BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT + bool "Realtek 87xx Bluetooth" + help + Realtek 8723a/8723b/8723bs/8723d/8723ds/8761a + +config BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT + bool "Realtek 88xx Bluetooth" + help + Realtek 8821a/8821c/8822b/8822cs/8822cu/8852au + config BR2_PACKAGE_LINUX_FIRMWARE_TI_CC2560 bool "TI CC2560" help @@ -113,6 +184,11 @@ config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271 help Firmware files for the Atheros 9271 module +config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA9377 + bool "Atheros 10k (QCA9377)" + help + Firmware files for the Atheros QCA9377 module + config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA998X bool "Atheros 10k (QCA998X)" help @@ -120,14 +196,53 @@ config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA998X config BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX bool "Broadcom BRCM bcm43xx" + select BR2_PACKAGE_LINUX_FIRMWARE_CYPRESS_CYW43XX help Firmware files for the Broadcom bcm43xx SoftMAC and FullMAC. config BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX bool "Broadcom BRCM bcm43xxx" + select BR2_PACKAGE_LINUX_FIRMWARE_CYPRESS_CYW43XXX help Firmware files for the Broadcom bcm43xxx, SoftMAC and FullMAC. +config BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM4366B1 + bool "Broadcom 4366b1" + help + Firmware file for the Broadcom 4366b1 FullMAC chip. + +config BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM4366C0 + bool "Broadcom 4366c0" + help + Firmware file for the Broadcom 4366c0 FullMAC chip. + +config BR2_PACKAGE_LINUX_FIRMWARE_CYPRESS_CYW43XX + bool "Cypress CY cyw43xx" + help + Firmware files for the Cypress cyw43xx FullMAC. + +config BR2_PACKAGE_LINUX_FIRMWARE_CYPRESS_CYW43XXX + bool "Cypress CY cyw43xxx" + help + Firmware files for the Cypress cyw43xxx FullMAC. + +config BR2_PACKAGE_LINUX_FIRMWARE_CYPRESS_CYW54XXX + bool "Cypress CY cyw54xxx" + help + Firmware files for the Cypress cyw54xxx FullMAC. + +config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_22000 + bool "Intel iwlwifi 22000" + help + Firmware files for the Intel Wifi 22000 devices supported by + the iwlwifi kernel driver. + +config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_22260 + bool "Intel iwlwifi 22260" + help + Firmware files for the Intel Wifi 22260 devices supported by + the iwlwifi kernel driver. + config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160 bool "Intel iwlwifi 3160" help @@ -140,6 +255,18 @@ config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3168 Firmware files for the Intel Wifi 3168 devices supported by the iwlwifi kernel driver. +config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3945 + bool "Intel iwlwifi 3945" + help + Firmware files for the Intel Wifi 3945 devices supported by + the iwl3945 kernel driver. + +config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_4965 + bool "Intel iwlwifi 4965" + help + Firmware files for the Intel Wifi 4965 devices supported by + the iwl4965 kernel driver. + config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000 bool "Intel iwlwifi 5000" help @@ -197,11 +324,17 @@ config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_9XXX Firmware files for the Intel Wifi 9xxx devices supported by the iwlwifi kernel driver. +config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6E + bool "Intel iwlwifi 6/6E" + help + Firmware files for the Intel Wi-Fi 6 and Wi-Fi 6E devices + supported by the iwlwifi kernel driver. + config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_QUZ bool "Intel iwlwifi QuZ" help - Firmware files for the Intel Wifi QuZ devices supported by - the iwlwifi kernel driver. + Firmware files for the Intel Wifi QuZ devices (used in NUC10) + supported by the iwlwifi kernel driver. config BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V8 bool "Libertas SD 8686 v8" @@ -274,16 +407,53 @@ config BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIE8897 help Firmware files for the Marvell Wifi-Ex 8897 module on PCI-E. +config BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIEUART8997 + bool "Marvell Wifi-Ex 8997 PCI-E/UART" + help + Firmware files for the Marvell Wifi-Ex 8997 module on + PCI-E/UART. + +config BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIEUSB8997 + bool "Marvell Wifi-Ex 8997 PCI-E/USB" + help + Firmware files for the Marvell Wifi-Ex 8997 module on + PCI-E/USB. + config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U bool "MediaTek MT7601U" help MediaTek MT7601U +config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7610E + bool "MediaTek MT7610E" + help + MediaTek MT7610E + config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT76X2E bool "MediaTek MT76x2e" help MediaTek MT76x2e +config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7921 + bool "MediaTek MT7921" + help + MediaTek MT7921 + +config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7922 + bool "MediaTek MT7922" + help + MediaTek MT7922 + +config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7921 + bool "MediaTek MT7921" + help + MediaTek MT7921 + +config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7922 + bool "MediaTek MT7922" + help + MediaTek MT7922 + config BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174 bool "Qualcomm Atheros 6174" help @@ -323,7 +493,13 @@ config BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW88 bool "Realtek rtw88" help Firmware images supported by Realtek's wireless - driver rtw88. + driver rtw88 (802.11n/ac chipsets). + +config BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW89 + bool "Realtek rtw89" + help + Firmware images supported by Realtek's wireless + driver rtw89 (802.11ax chipsets). config BR2_PACKAGE_LINUX_FIRMWARE_REDPINE_RS9113 bool "Redpine rs9113" @@ -355,8 +531,19 @@ endmenu menu "Ethernet firmware" -config BR2_PACKAGE_LINUX_FIRMWARE_BNX2X +config BR2_PACKAGE_LINUX_FIRMWARE_BROADCOM_TIGON3 + bool "Broadcom NetXtreme/Tigon3" + help + Firmware files for Broadcom Tigon3 ethernet cards + (tigon) + +config BR2_PACKAGE_LINUX_FIRMWARE_BNX2 bool "Broadcom NetXtremeII" + help + Firmware files for Broadcom NetXtreme ethernet cards (bnx2) + +config BR2_PACKAGE_LINUX_FIRMWARE_BNX2X + bool "Broadcom NetXtremeII 10Gb" help Firmware files for Broadcom NetXtreme 10Gb ethernet cards (bnx2x) @@ -379,6 +566,17 @@ config BR2_PACKAGE_LINUX_FIRMWARE_INTEL_E100 Firmware files for Intel 825xx handled by driver e100 (e100) +config BR2_PACKAGE_LINUX_FIRMWARE_INTEL_ICE + bool "Intel Ethernet 800 Series" + help + Firmware files for Intel Ethernet 800 Series Network Adapters + (ice) + +config BR2_PACKAGE_LINUX_FIRMWARE_MARVELL_PRESTERA + bool "Marvell Prestera" + help + Firmware files for Marvell Prestera ethernet cards + config BR2_PACKAGE_LINUX_FIRMWARE_MICROCHIP_VSC85XX_PHY bool "Microchip VSC85xx PHYs" help @@ -392,6 +590,12 @@ config BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_4X Firmware files for QLogic FastLinQ 4xxxx ethernet devices (qede) +config BR2_PACKAGE_LINUX_FIRMWARE_RTL_815X + bool "Realtek 8152/8153/8156 USB Ethernet Adapaters" + help + Firmware files for Realtek 8152/8153/8156 based USB Ethernet + adapters. + config BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169 bool "Realtek 8169" help @@ -428,15 +632,6 @@ config BR2_PACKAGE_LINUX_FIRMWARE_XCx000 endmenu -menu "SoC Firmware" - -config BR2_PACKAGE_LINUX_FIRMWARE_IMX_SDMA - bool "Freescale i.MX SDMA" - help - Firmware files for i.MX SDMA. - -endmenu - menu "Fibre Channel Adapter Firmware" config BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_2XXX @@ -465,4 +660,29 @@ config BR2_PACKAGE_LINUX_FIRMWARE_QAT_C62X endmenu +menu "USB to Serial Firmware" + +config BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI + bool "USB TI 3410/5052 Serial Firmware" + help + Firmware files for TI 3410/5052 + +endmenu + +menu "V4L Firmware" + +config BR2_PACKAGE_LINUX_FIRMWARE_CX231XX + bool "Conexant Cx23100/101/102 USB broadcast A/V decoder" + help + Firmware files for Conexant Cx23100/101/102 USB broadcast + A/V decoder needed by the Linux CX231XX driver. + +config BR2_PACKAGE_LINUX_FIRMWARE_CX23885 + bool "Conexant Cx23885/7/8 PCIe broadcast A/V decoder" + help + Firmware files for Conexant Cx23885/7/8 PCIe broadcast + A/V decoder needed by the Linux CX23885 driver. + +endmenu + endif diff --git a/buildroot-patches/0002-linux-firmware/buildroot/package/linux-firmware/Config.in.orig b/buildroot-patches/0002-linux-firmware/buildroot/package/linux-firmware/Config.in.orig index eba5801..920c0a2 100644 --- a/buildroot-patches/0002-linux-firmware/buildroot/package/linux-firmware/Config.in.orig +++ b/buildroot-patches/0002-linux-firmware/buildroot/package/linux-firmware/Config.in.orig @@ -44,10 +44,20 @@ config BR2_PACKAGE_LINUX_FIRMWARE_QCOM_ADRENO help Firmware files for Qualcomm Adreno GPU firmware +config BR2_PACKAGE_LINUX_FIRMWARE_MFC_V8 + bool "Samsung MFC video encoder/decoder v8 firmware" + help + Firmware files for Samsung MFC video encoder/decoder driver v8 + endmenu # Video menu "Bluetooth firmware" +config BR2_PACKAGE_LINUX_FIRMWARE_AMLOGIC + bool "Amlogic SOC Bluetooth" + help + Firmware files for Conexant Amlogic SOC bluetooth support. + config BR2_PACKAGE_LINUX_FIRMWARE_IBT bool "Intel Wireless Bluetooth" help @@ -59,11 +69,26 @@ config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7650 help Firmware files for MediaTek MT7650 bluetooth support +config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7921_BT + bool "MediaTek MT7921" + help + Firmware files for MediaTek MT7921 bluetooth support + +config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7922_BT + bool "MediaTek MT7922" + help + Firmware files for MediaTek MT7922 bluetooth support + config BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174A_BT bool "Qualcomm Atheros Rome 6174A Bluetooth" help Firmware files for QCA Rome 6174A bluetooth support. +config BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_9377_BT + bool "Qualcomm Atheros QCA9377 Bluetooth" + help + Firmware files for QCA9377 bluetooth support. + config BR2_PACKAGE_LINUX_FIRMWARE_AR3011 bool "Qualcomm Atheros 3011" help @@ -74,6 +99,16 @@ config BR2_PACKAGE_LINUX_FIRMWARE_AR3012_USB help Firmware files for Atheros bluetooth chipset AR3012 on USB. +config BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT + bool "Realtek 87xx Bluetooth" + help + Realtek 8723a/8723b/8723bs/8723d/8723ds/8761a + +config BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT + bool "Realtek 88xx Bluetooth" + help + Realtek 8821a/8821c/8822b/8822cs/8822cu/8852au + config BR2_PACKAGE_LINUX_FIRMWARE_TI_CC2560 bool "TI CC2560" help @@ -113,6 +148,11 @@ config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271 help Firmware files for the Atheros 9271 module +config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA9377 + bool "Atheros 10k (QCA9377)" + help + Firmware files for the Atheros QCA9377 module + config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA998X bool "Atheros 10k (QCA998X)" help @@ -120,14 +160,53 @@ config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA998X config BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX bool "Broadcom BRCM bcm43xx" + select BR2_PACKAGE_LINUX_FIRMWARE_CYPRESS_CYW43XX help Firmware files for the Broadcom bcm43xx SoftMAC and FullMAC. config BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX bool "Broadcom BRCM bcm43xxx" + select BR2_PACKAGE_LINUX_FIRMWARE_CYPRESS_CYW43XXX help Firmware files for the Broadcom bcm43xxx, SoftMAC and FullMAC. +config BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM4366B1 + bool "Broadcom 4366b1" + help + Firmware file for the Broadcom 4366b1 FullMAC chip. + +config BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM4366C0 + bool "Broadcom 4366c0" + help + Firmware file for the Broadcom 4366c0 FullMAC chip. + +config BR2_PACKAGE_LINUX_FIRMWARE_CYPRESS_CYW43XX + bool "Cypress CY cyw43xx" + help + Firmware files for the Cypress cyw43xx FullMAC. + +config BR2_PACKAGE_LINUX_FIRMWARE_CYPRESS_CYW43XXX + bool "Cypress CY cyw43xxx" + help + Firmware files for the Cypress cyw43xxx FullMAC. + +config BR2_PACKAGE_LINUX_FIRMWARE_CYPRESS_CYW54XXX + bool "Cypress CY cyw54xxx" + help + Firmware files for the Cypress cyw54xxx FullMAC. + +config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_22000 + bool "Intel iwlwifi 22000" + help + Firmware files for the Intel Wifi 22000 devices supported by + the iwlwifi kernel driver. + +config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_22260 + bool "Intel iwlwifi 22260" + help + Firmware files for the Intel Wifi 22260 devices supported by + the iwlwifi kernel driver. + config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160 bool "Intel iwlwifi 3160" help @@ -140,6 +219,18 @@ config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3168 Firmware files for the Intel Wifi 3168 devices supported by the iwlwifi kernel driver. +config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3945 + bool "Intel iwlwifi 3945" + help + Firmware files for the Intel Wifi 3945 devices supported by + the iwl3945 kernel driver. + +config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_4965 + bool "Intel iwlwifi 4965" + help + Firmware files for the Intel Wifi 4965 devices supported by + the iwl4965 kernel driver. + config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000 bool "Intel iwlwifi 5000" help @@ -197,6 +288,18 @@ config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_9XXX Firmware files for the Intel Wifi 9xxx devices supported by the iwlwifi kernel driver. +config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6E + bool "Intel iwlwifi 6/6E" + help + Firmware files for the Intel Wi-Fi 6 and Wi-Fi 6E devices + supported by the iwlwifi kernel driver. + +config BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_QUZ + bool "Intel iwlwifi QuZ" + help + Firmware files for the Intel Wifi QuZ devices (used in NUC10) + supported by the iwlwifi kernel driver. + config BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V8 bool "Libertas SD 8686 v8" help @@ -268,16 +371,43 @@ config BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIE8897 help Firmware files for the Marvell Wifi-Ex 8897 module on PCI-E. +config BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIEUART8997 + bool "Marvell Wifi-Ex 8997 PCI-E/UART" + help + Firmware files for the Marvell Wifi-Ex 8997 module on + PCI-E/UART. + +config BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIEUSB8997 + bool "Marvell Wifi-Ex 8997 PCI-E/USB" + help + Firmware files for the Marvell Wifi-Ex 8997 module on + PCI-E/USB. + config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U bool "MediaTek MT7601U" help MediaTek MT7601U +config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7610E + bool "MediaTek MT7610E" + help + MediaTek MT7610E + config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT76X2E bool "MediaTek MT76x2e" help MediaTek MT76x2e +config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7921 + bool "MediaTek MT7921" + help + MediaTek MT7921 + +config BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7922 + bool "MediaTek MT7922" + help + MediaTek MT7922 + config BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174 bool "Qualcomm Atheros 6174" help @@ -317,7 +447,13 @@ config BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW88 bool "Realtek rtw88" help Firmware images supported by Realtek's wireless - driver rtw88. + driver rtw88 (802.11n/ac chipsets). + +config BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW89 + bool "Realtek rtw89" + help + Firmware images supported by Realtek's wireless + driver rtw89 (802.11ax chipsets). config BR2_PACKAGE_LINUX_FIRMWARE_REDPINE_RS9113 bool "Redpine rs9113" @@ -349,8 +485,19 @@ endmenu menu "Ethernet firmware" -config BR2_PACKAGE_LINUX_FIRMWARE_BNX2X +config BR2_PACKAGE_LINUX_FIRMWARE_BROADCOM_TIGON3 + bool "Broadcom NetXtreme/Tigon3" + help + Firmware files for Broadcom Tigon3 ethernet cards + (tigon) + +config BR2_PACKAGE_LINUX_FIRMWARE_BNX2 bool "Broadcom NetXtremeII" + help + Firmware files for Broadcom NetXtreme ethernet cards (bnx2) + +config BR2_PACKAGE_LINUX_FIRMWARE_BNX2X + bool "Broadcom NetXtremeII 10Gb" help Firmware files for Broadcom NetXtreme 10Gb ethernet cards (bnx2x) @@ -373,6 +520,17 @@ config BR2_PACKAGE_LINUX_FIRMWARE_INTEL_E100 Firmware files for Intel 825xx handled by driver e100 (e100) +config BR2_PACKAGE_LINUX_FIRMWARE_INTEL_ICE + bool "Intel Ethernet 800 Series" + help + Firmware files for Intel Ethernet 800 Series Network Adapters + (ice) + +config BR2_PACKAGE_LINUX_FIRMWARE_MARVELL_PRESTERA + bool "Marvell Prestera" + help + Firmware files for Marvell Prestera ethernet cards + config BR2_PACKAGE_LINUX_FIRMWARE_MICROCHIP_VSC85XX_PHY bool "Microchip VSC85xx PHYs" help @@ -386,6 +544,12 @@ config BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_4X Firmware files for QLogic FastLinQ 4xxxx ethernet devices (qede) +config BR2_PACKAGE_LINUX_FIRMWARE_RTL_815X + bool "Realtek 8152/8153/8156 USB Ethernet Adapaters" + help + Firmware files for Realtek 8152/8153/8156 based USB Ethernet + adapters. + config BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169 bool "Realtek 8169" help @@ -422,15 +586,6 @@ config BR2_PACKAGE_LINUX_FIRMWARE_XCx000 endmenu -menu "SoC Firmware" - -config BR2_PACKAGE_LINUX_FIRMWARE_IMX_SDMA - bool "Freescale i.MX SDMA" - help - Firmware files for i.MX SDMA. - -endmenu - menu "Fibre Channel Adapter Firmware" config BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_2XXX @@ -459,4 +614,29 @@ config BR2_PACKAGE_LINUX_FIRMWARE_QAT_C62X endmenu +menu "USB to Serial Firmware" + +config BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI + bool "USB TI 3410/5052 Serial Firmware" + help + Firmware files for TI 3410/5052 + +endmenu + +menu "V4L Firmware" + +config BR2_PACKAGE_LINUX_FIRMWARE_CX231XX + bool "Conexant Cx23100/101/102 USB broadcast A/V decoder" + help + Firmware files for Conexant Cx23100/101/102 USB broadcast + A/V decoder needed by the Linux CX231XX driver. + +config BR2_PACKAGE_LINUX_FIRMWARE_CX23885 + bool "Conexant Cx23885/7/8 PCIe broadcast A/V decoder" + help + Firmware files for Conexant Cx23885/7/8 PCIe broadcast + A/V decoder needed by the Linux CX23885 driver. + +endmenu + endif diff --git a/buildroot-patches/0002-linux-firmware/buildroot/package/linux-firmware/linux-firmware.mk b/buildroot-patches/0002-linux-firmware/buildroot/package/linux-firmware/linux-firmware.mk index c7f3704..cbef82d 100644 --- a/buildroot-patches/0002-linux-firmware/buildroot/package/linux-firmware/linux-firmware.mk +++ b/buildroot-patches/0002-linux-firmware/buildroot/package/linux-firmware/linux-firmware.mk @@ -4,9 +4,23 @@ # ################################################################################ -LINUX_FIRMWARE_VERSION = 20201022 -LINUX_FIRMWARE_SITE = http://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git -LINUX_FIRMWARE_SITE_METHOD = git +LINUX_FIRMWARE_VERSION = 20240115 +LINUX_FIRMWARE_SOURCE = linux-firmware-$(LINUX_FIRMWARE_VERSION).tar.xz +LINUX_FIRMWARE_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/firmware +LINUX_FIRMWARE_INSTALL_IMAGES = YES + +LINUX_FIRMWARE_COMPRESSED_FILE_SUFFIX= +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS_XZ),y) +LINUX_FIRMWARE_DEPENDENCIES += host-xz +LINUX_FIRMWARE_COMPRESS_CMD=$(HOST_DIR)/bin/xz -fv -C crc32 --lzma2=dict=2MiB +LINUX_FIRMWARE_COMPRESSED_FILE_SUFFIX=.xz +else +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS_ZSTD),y) +LINUX_FIRMWARE_DEPENDENCIES += host-zstd +LINUX_FIRMWARE_COMPRESS_CMD=$(HOST_DIR)/bin/zstd -f -19 --rm +LINUX_FIRMWARE_COMPRESSED_FILE_SUFFIX=.zst +endif +endif # Intel SST DSP ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_INTEL_SST_DSP),y) @@ -39,22 +53,79 @@ LINUX_FIRMWARE_FILES += qcom/a* LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.qcom qcom/NOTICE.txt endif +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MFC_V8),y) +LINUX_FIRMWARE_FILES += \ + s5p-mfc.fw \ + s5p-mfc-v6.fw \ + s5p-mfc-v6-v2.fw \ + s5p-mfc-v7.fw \ + s5p-mfc-v8.fw +# No license file; the license is in the file WHENCE +# which is installed unconditionally +endif + +# Amlogic SoC Bluetooth +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_AMLOGIC),y) +LINUX_FIRMWARE_FILES += amlogic/bluetooth/*.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.amlogic +endif + # Intel Wireless Bluetooth ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IBT),y) LINUX_FIRMWARE_FILES += intel/ibt-* LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ibt_firmware endif +# Mediatek MT7921 Bluetooth +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MT7921_BT),y) +LINUX_FIRMWARE_FILES += mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.mediatek +endif + +# Mediatek MT7922 Bluetooth +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MT7922_BT),y) +LINUX_FIRMWARE_FILES += mediatek/BT_RAM_CODE_MT7922_1_1_hdr.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.mediatek +endif + # Qualcomm Atheros Rome 6174A Bluetooth ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174A_BT),y) LINUX_FIRMWARE_FILES += qca/rampatch_usb_00000302.bin qca/nvm_usb_00000302.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.qcom endif -# Freescale i.MX SDMA -ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IMX_SDMA),y) -LINUX_FIRMWARE_FILES += imx/sdma/sdma-imx6q.bin imx/sdma/sdma-imx7d.bin -LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.sdma_firmware +# Qualcomm Atheros QCA9377 Bluetooth +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_9377_BT),y) +LINUX_FIRMWARE_FILES += qca/rampatch_00230302.bin qca/nvm_00230302.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.qcom +endif + +# Realtek 87xx Bluetooth +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT),y) +LINUX_FIRMWARE_FILES += \ + rtl_bt/rtl8723a_fw.bin rtl_bt/rtl8723b_fw.bin \ + rtl_bt/rtl8723bs_config-OBDA8723.bin \ + rtl_bt/rtl8723bs_fw.bin rtl_bt/rtl8723d_config.bin \ + rtl_bt/rtl8723d_fw.bin rtl_bt/rtl8761a_fw.bin \ + rtl_bt/rtl8761b_fw.bin rtl_bt/rtl8761b_config.bin \ + rtl_bt/rtl8761bu_fw.bin rtl_bt/rtl8761bu_config.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt +endif + +# Realtek 88xx Bluetooth +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT),y) +LINUX_FIRMWARE_FILES += \ + rtl_bt/rtl8812ae_fw.bin rtl_bt/rtl8821a_fw.bin \ + rtl_bt/rtl8821c_config.bin rtl_bt/rtl8821c_fw.bin \ + rtl_bt/rtl8822b_config.bin rtl_bt/rtl8822b_fw.bin \ + rtl_bt/rtl8822cs_config.bin rtl_bt/rtl8822cs_fw.bin \ + rtl_bt/rtl8822cu_config.bin rtl_bt/rtl8822cu_fw.bin \ + rtl_bt/rtl8851bu_fw.bin rtl_bt/rtl8851bu_config.bin \ + rtl_bt/rtl8852au_fw.bin rtl_bt/rtl8852au_config.bin \ + rtl_bt/rtl8852bu_fw.bin rtl_bt/rtl8852bu_config.bin \ + rtl_bt/rtl8852cu_fw.bin rtl_bt/rtl8852cu_config.bin \ + rtl_bt/rtl8852cu_fw_v2.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt endif # rt2501/rt61 @@ -78,27 +149,38 @@ endif # rtl81xx ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX),y) LINUX_FIRMWARE_FILES += \ - rtlwifi/rtl8192cfw.bin rtlwifi/rtl8192cfwU.bin \ - rtlwifi/rtl8192cfwU_B.bin rtlwifi/rtl8192cufw.bin \ - rtlwifi/rtl8192defw.bin rtlwifi/rtl8192sefw.bin \ - rtlwifi/rtl8188efw.bin rtlwifi/rtl8188eufw.bin \ + rtlwifi/rtl8192cfw.bin \ + rtlwifi/rtl8192cfwU.bin \ + rtlwifi/rtl8192cfwU_B.bin \ + rtlwifi/rtl8192cufw.bin \ + rtlwifi/rtl8192defw.bin \ + rtlwifi/rtl8192sefw.bin \ + rtlwifi/rtl8188efw.bin \ + rtlwifi/rtl8188eufw.bin \ + rtlwifi/rtl8188fufw.bin \ rtlwifi/rtl8192cufw_A.bin \ - rtlwifi/rtl8192cufw_B.bin rtlwifi/rtl8192cufw_TMSC.bin \ - rtlwifi/rtl8192eefw.bin rtlwifi/rtl8192eu_ap_wowlan.bin \ - rtlwifi/rtl8192eu_nic.bin rtlwifi/rtl8192eu_wowlan.bin + rtlwifi/rtl8192cufw_B.bin \ + rtlwifi/rtl8192cufw_TMSC.bin \ + rtlwifi/rtl8192eu_ap_wowlan.bin \ + rtlwifi/rtl8192eu_nic.bin \ + rtlwifi/rtl8192eu_wowlan.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt endif # rtl87xx ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX),y) LINUX_FIRMWARE_FILES += \ - rtlwifi/rtl8712u.bin rtlwifi/rtl8723fw.bin \ - rtlwifi/rtl8723fw_B.bin rtlwifi/rtl8723befw.bin \ - rtlwifi/rtl8723aufw_A.bin rtlwifi/rtl8723aufw_B.bin \ - rtlwifi/rtl8723aufw_B_NoBT.bin rtlwifi/rtl8723befw.bin \ - rtlwifi/rtl8723bs_ap_wowlan.bin rtlwifi/rtl8723bs_bt.bin \ - rtlwifi/rtl8723bs_nic.bin rtlwifi/rtl8723bs_wowlan.bin \ - rtlwifi/rtl8723bu_ap_wowlan.bin rtlwifi/rtl8723bu_nic.bin \ + rtlwifi/rtl8712u.bin \ + rtlwifi/rtl8723fw.bin \ + rtlwifi/rtl8723fw_B.bin \ + rtlwifi/rtl8723befw.bin \ + rtlwifi/rtl8723aufw_A.bin \ + rtlwifi/rtl8723aufw_B.bin \ + rtlwifi/rtl8723aufw_B_NoBT.bin \ + rtlwifi/rtl8723befw.bin \ + rtlwifi/rtl8723bs_bt.bin \ + rtlwifi/rtl8723bu_ap_wowlan.bin \ + rtlwifi/rtl8723bu_nic.bin \ rtlwifi/rtl8723bu_wowlan.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt endif @@ -115,9 +197,21 @@ endif # rtw88 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW88),y) LINUX_FIRMWARE_FILES += \ - rtw88/rtw8723d_fw.bin \ - rtw88/rtw8822b_fw.bin \ - rtw88/rtw8822c_fw.bin + rtw88/rtw*.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt +endif + +# rtw89 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW89),y) +LINUX_FIRMWARE_FILES += \ + rtw89/rtw*.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt +endif + +# rtw89 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW89),y) +LINUX_FIRMWARE_FILES += \ + rtw89/rtw*.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt endif @@ -189,6 +283,15 @@ LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware endif # ath10k +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA9377),y) +LINUX_FIRMWARE_FILES += ath10k/QCA9377/hw1.0/board-2.bin \ + ath10k/QCA9377/hw1.0/board.bin \ + ath10k/QCA9377/hw1.0/firmware-5.bin \ + ath10k/QCA9377/hw1.0/firmware-6.bin \ + ath10k/QCA9377/hw1.0/firmware-sdio-5.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware +endif + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA998X),y) LINUX_FIRMWARE_FILES += ath10k/QCA988X/hw2.0/board.bin \ ath10k/QCA988X/hw2.0/firmware-4.bin \ @@ -280,24 +383,82 @@ LINUX_FIRMWARE_FILES += mrvl/pcie8897_uapsta.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell endif +# pcieuart8997 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIEUART8997),y) +LINUX_FIRMWARE_FILES += mrvl/pcieuart8997_combo_v4.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell +endif + +# pcieusb8997 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIEUSB8997),y) +LINUX_FIRMWARE_FILES += mrvl/pcieusb8997_combo_v4.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell +endif + # MT7601 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U),y) -LINUX_FIRMWARE_FILES += mt7601u.bin +LINUX_FIRMWARE_FILES += mediatek/mt7601u.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink_a_mediatek_company_firmware +endif + +# MT7610 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7610E),y) +LINUX_FIRMWARE_FILES += mediatek/mt7610e.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink_a_mediatek_company_firmware endif # MT7650 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7650),y) -LINUX_FIRMWARE_FILES += mt7650.bin +LINUX_FIRMWARE_FILES += mediatek/mt7650.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink_a_mediatek_company_firmware endif # MT76x2e ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT76X2E),y) -LINUX_FIRMWARE_FILES += mt7662.bin mt7662_rom_patch.bin +LINUX_FIRMWARE_FILES += mediatek/mt7662.bin mediatek/mt7662_rom_patch.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink_a_mediatek_company_firmware endif +# MT7921 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7921),y) +LINUX_FIRMWARE_FILES += mediatek/WIFI_MT7961_patch_mcu_1_2_hdr.bin \ + mediatek/WIFI_RAM_CODE_MT7961_1.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.mediatek +endif + +# Mediatek MT7921 Bluetooth +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7921_BT),y) +LINUX_FIRMWARE_FILES += mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.mediatek +endif + +# MT7922 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7922),y) +LINUX_FIRMWARE_FILES += mediatek/WIFI_MT7922_patch_mcu_1_1_hdr.bin \ + mediatek/WIFI_RAM_CODE_MT7922_1.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.mediatek +endif + +# Mediatek MT7922 Bluetooth +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7922_BT),y) +LINUX_FIRMWARE_FILES += mediatek/BT_RAM_CODE_MT7922_1_1_hdr.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.mediatek +endif + +# MT7921 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7921),y) +LINUX_FIRMWARE_FILES += mediatek/WIFI_MT7961_patch_mcu_1_2_hdr.bin \ + mediatek/WIFI_RAM_CODE_MT7961_1.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.mediatek +endif + +# MT7922 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7922),y) +LINUX_FIRMWARE_FILES += mediatek/WIFI_MT7922_patch_mcu_1_1_hdr.bin \ + mediatek/WIFI_RAM_CODE_MT7922_1.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.mediatek +endif + # qca6174 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174),y) LINUX_FIRMWARE_FILES += ath10k/QCA6174 @@ -371,6 +532,26 @@ LINUX_FIRMWARE_FILES += wil6210.* LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.QualcommAtheros_ath10k endif +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_22000),y) +LINUX_FIRMWARE_FILES += \ + iwlwifi-Qu-b0-hr-b0-72.ucode \ + iwlwifi-Qu-c0-hr-b0-72.ucode \ + iwlwifi-Qu-b0-jf-b0-72.ucode \ + iwlwifi-Qu-c0-jf-b0-72.ucode \ + iwlwifi-QuZ-a0-hr-b0-72.ucode \ + iwlwifi-QuZ-a0-jf-b0-72.ucode \ + iwlwifi-cc-a0-72.ucode \ + iwlwifi-so-a0-jf-b0-72.ucode \ + iwlwifi-so-a0-hr-b0-72.ucode \ + iwlwifi-so-a0-gf-a0-72.ucode \ + iwlwifi-so-a0-gf-a0.pnvm \ + iwlwifi-so-a0-gf4-a0-72.ucode \ + iwlwifi-so-a0-gf4-a0.pnvm \ + iwlwifi-ty-a0-gf-a0-72.ucode \ + iwlwifi-ty-a0-gf-a0.pnvm +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware +endif + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160),y) LINUX_FIRMWARE_FILES += iwlwifi-3160-*.ucode LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware @@ -381,6 +562,16 @@ LINUX_FIRMWARE_FILES += iwlwifi-3168-*.ucode LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware endif +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3945),y) +LINUX_FIRMWARE_FILES += iwlwifi-3945-2.ucode +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware +endif + +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_4965),y) +LINUX_FIRMWARE_FILES += iwlwifi-4965-2.ucode +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware +endif + # iwlwifi 5000. Multiple files are available (iwlwifi-5000-1.ucode, # iwlwifi-5000-2.ucode, iwlwifi-5000-5.ucode), corresponding to # different versions of the firmware API. For now, we only install the @@ -430,11 +621,28 @@ LINUX_FIRMWARE_FILES += iwlwifi-9???-*.ucode LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware endif +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6E),y) +LINUX_FIRMWARE_FILES += iwlwifi-so-a0-gf-a0*.{ucode,pnvm} +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware +endif + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_QUZ),y) LINUX_FIRMWARE_FILES += iwlwifi-QuZ-*.ucode LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware endif +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BROADCOM_TIGON3),y) +LINUX_FIRMWARE_FILES += tigon/* +# No license file; the license is in the file WHENCE +# which is installed unconditionally +endif + +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BNX2),y) +LINUX_FIRMWARE_FILES += bnx2/* +# No license file; the license is in the file WHENCE +# which is installed unconditionally +endif + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BNX2X),y) LINUX_FIRMWARE_FILES += bnx2x/* # No license file; the license is in the file WHENCE @@ -456,6 +664,11 @@ LINUX_FIRMWARE_FILES += e100/*.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.e100 endif +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_INTEL_ICE),y) +LINUX_FIRMWARE_FILES += intel/ice/ddp/*.pkg +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.ice_enhanced +endif + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MICROCHIP_VSC85XX_PHY),y) LINUX_FIRMWARE_FILES += microchip/mscc_vsc85*.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.microchip @@ -468,6 +681,19 @@ LINUX_FIRMWARE_FILES += \ # which is installed unconditionally endif +# rtl815x +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_815X),y) +LINUX_FIRMWARE_FILES += \ + rtl_nic/rtl8153a-2.fw \ + rtl_nic/rtl8153a-3.fw \ + rtl_nic/rtl8153a-4.fw \ + rtl_nic/rtl8153b-2.fw \ + rtl_nic/rtl8153c-1.fw \ + rtl_nic/rtl8156a-2.fw \ + rtl_nic/rtl8156b-2.fw +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt +endif + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169),y) LINUX_FIRMWARE_FILES += \ rtl_nic/rtl8105e-1.fw \ @@ -476,6 +702,7 @@ LINUX_FIRMWARE_FILES += \ rtl_nic/rtl8107e-1.fw \ rtl_nic/rtl8107e-2.fw \ rtl_nic/rtl8125a-3.fw \ + rtl_nic/rtl8125b-2.fw \ rtl_nic/rtl8168d-1.fw \ rtl_nic/rtl8168d-2.fw \ rtl_nic/rtl8168e-1.fw \ @@ -493,6 +720,12 @@ LINUX_FIRMWARE_FILES += \ rtl_nic/rtl8411-2.fw endif +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MARVELL_PRESTERA),y) +LINUX_FIRMWARE_FILES += \ + mrvl/prestera/mvsw_prestera_fw*.img +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell +endif + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_XCx000),y) LINUX_FIRMWARE_FILES += \ dvb-fe-xc4000-1.4.1.fw \ @@ -528,29 +761,102 @@ endif # brcm43xx ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX),y) LINUX_FIRMWARE_FILES += \ - brcm/bcm43xx-0.fw brcm/bcm43xx_hdr-0.fw \ - brcm/bcm4329-fullmac-4.bin brcm/brcmfmac4329-sdio.bin \ - brcm/brcmfmac4330-sdio.bin brcm/brcmfmac4334-sdio.bin \ - brcm/brcmfmac4335-sdio.bin brcm/brcmfmac4339-sdio.bin \ - brcm/brcmfmac4350-pcie.bin brcm/brcmfmac4354-sdio.bin \ - brcm/brcmfmac4356-pcie.bin brcm/brcmfmac4371-pcie.bin + brcm/bcm4329-fullmac-4.bin \ + brcm/brcmfmac4329-sdio.bin \ + brcm/brcmfmac4330-sdio.bin \ + brcm/brcmfmac4334-sdio.bin \ + brcm/brcmfmac4335-sdio.bin \ + brcm/brcmfmac4350c2-pcie.bin \ + brcm/brcmfmac4350-pcie.bin \ + brcm/brcmfmac4358-pcie.bin \ + brcm/brcmfmac4371-pcie.bin \ + brcm/brcmfmac4373.bin \ + brcm/brcmfmac4330-sdio.Prowise-PT301.txt \ + brcm/brcmfmac4356-pcie.gpd-win-pocket.txt \ + brcm/brcmfmac4356-sdio.AP6356S.txt LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx endif # brcm43xxx ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX),y) LINUX_FIRMWARE_FILES += \ - brcm/brcmfmac43143.bin brcm/brcmfmac43143-sdio.bin \ - brcm/brcmfmac43236b.bin brcm/brcmfmac43241b0-sdio.bin \ - brcm/brcmfmac43241b4-sdio.bin brcm/brcmfmac43241b5-sdio.bin \ - brcm/brcmfmac43242a.bin brcm/brcmfmac43340-sdio.bin \ - brcm/brcmfmac43362-sdio.bin brcm/brcmfmac43430-sdio.bin \ - brcm/brcmfmac43430a0-sdio.bin brcm/brcmfmac43455-sdio.bin \ - brcm/brcmfmac43569.bin brcm/brcmfmac43570-pcie.bin \ - brcm/brcmfmac43602-pcie.ap.bin brcm/brcmfmac43602-pcie.bin + brcm/brcmfmac43143.bin \ + brcm/brcmfmac43143-sdio.bin \ + brcm/brcmfmac43236b.bin \ + brcm/brcmfmac43241b0-sdio.bin \ + brcm/brcmfmac43241b4-sdio.bin \ + brcm/brcmfmac43241b5-sdio.bin \ + brcm/brcmfmac43242a.bin \ + brcm/brcmfmac43430a0-sdio.bin \ + brcm/brcmfmac43569.bin \ + brcm/brcmfmac43602-pcie.ap.bin \ + brcm/brcmfmac43602-pcie.bin \ + brcm/brcmfmac43340-sdio.meegopad-t08.txt \ + brcm/brcmfmac43340-sdio.pov-tab-p1006w-data.txt \ + brcm/brcmfmac43340-sdio.predia-basic.txt \ + brcm/brcmfmac43362-sdio.cubietech,cubietruck.txt \ + brcm/brcmfmac43430a0-sdio.ilife-S806.txt \ + brcm/brcmfmac43430a0-sdio.jumper-ezpad-mini3.txt \ + brcm/brcmfmac43430-sdio.AP6212.txt \ + brcm/brcmfmac43430-sdio.Hampoo-D2D3_Vi8A1.txt \ + brcm/brcmfmac43430-sdio.MUR1DX.txt \ + brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt \ + brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt \ + brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx endif +# brcm4366b1 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM4366B1),y) +LINUX_FIRMWARE_FILES += brcm/brcmfmac4366b-pcie.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx +endif + +# brcm4366c0 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM4366C0),y) +LINUX_FIRMWARE_FILES += brcm/brcmfmac4366c-pcie.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx +endif + +# cyfmac43xx +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CYPRESS_CYW43XX),y) +LINUX_FIRMWARE_FILES += \ + cypress/cyfmac4339-sdio.bin \ + cypress/cyfmac4354-sdio.bin \ + cypress/cyfmac4354-sdio.clm_blob \ + cypress/cyfmac4356-pcie.bin \ + cypress/cyfmac4356-pcie.clm_blob \ + cypress/cyfmac4356-sdio.bin \ + cypress/cyfmac4356-sdio.clm_blob \ + cypress/cyfmac4373-sdio.bin \ + cypress/cyfmac4373-sdio.clm_blob +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.cypress +endif + +# cyfmac43xxx +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CYPRESS_CYW43XXX),y) +LINUX_FIRMWARE_FILES += \ + cypress/cyfmac43012-sdio.bin \ + cypress/cyfmac43012-sdio.clm_blob \ + cypress/cyfmac43340-sdio.bin \ + cypress/cyfmac43362-sdio.bin \ + cypress/cyfmac43430-sdio.bin \ + cypress/cyfmac43430-sdio.clm_blob \ + cypress/cyfmac43455-sdio.bin \ + cypress/cyfmac43455-sdio.clm_blob \ + cypress/cyfmac43570-pcie.bin \ + cypress/cyfmac43570-pcie.clm_blob +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.cypress +endif + +# cyfmac54xxx +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CYPRESS_CYW54XXX),y) +LINUX_FIRMWARE_FILES += \ + cypress/cyfmac54591-pcie.bin \ + cypress/cyfmac54591-pcie.clm_blob +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.cypress +endif + # ql2xxx ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_2XXX),y) LINUX_FIRMWARE_FILES += \ @@ -583,27 +889,35 @@ LINUX_FIRMWARE_FILES += qat_c62x.bin qat_c62x_mmp.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.qat_firmware endif -ifneq ($(LINUX_FIRMWARE_FILES),) -define LINUX_FIRMWARE_INSTALL_FILES - cd $(@D) && \ - $(TAR) cf install.tar $(sort $(LINUX_FIRMWARE_FILES)) && \ - $(TAR) xf install.tar -C $(TARGET_DIR)/lib/firmware -endef +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI),y) +LINUX_FIRMWARE_FILES += ti_3410.fw ti_5052.fw \ + mts_cdma.fw mts_gsm.fw mts_edge.fw mts_mt9234mu.fw mts_mt9234zba.fw \ + moxa/moxa-1110.fw moxa/moxa-1130.fw moxa/moxa-1131.fw \ + moxa/moxa-1150.fw moxa/moxa-1151.fw +# Some firmware's license is in the file WHENCE +# which is installed unconditionally +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.moxa endif -ifneq ($(LINUX_FIRMWARE_DIRS),) -# We need to rm-rf the destination directory to avoid copying -# into it in itself, should we re-install the package. -define LINUX_FIRMWARE_INSTALL_DIRS - $(foreach d,$(LINUX_FIRMWARE_DIRS), \ - rm -rf $(TARGET_DIR)/lib/firmware/$(d); \ - mkdir -p $(dir $(TARGET_DIR)/lib/firmware/$(d)); \ - cp -a $(@D)/$(d) $(TARGET_DIR)/lib/firmware/$(d)$(sep)) -endef +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CX231XX),y) +LINUX_FIRMWARE_FILES += v4l-cx231xx-avcore-01.fw +# No license file; the license is in the file WHENCE +# which is installed unconditionally +endif + +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CX23885),y) +LINUX_FIRMWARE_FILES += v4l-cx23885-avcore-01.fw +# No license file; the license is in the file WHENCE +# which is installed unconditionally endif ifneq ($(LINUX_FIRMWARE_FILES)$(LINUX_FIRMWARE_DIRS),) +define LINUX_FIRMWARE_BUILD_CMDS + cd $(@D) && \ + $(TAR) cf br-firmware.tar $(sort $(LINUX_FIRMWARE_FILES) $(LINUX_FIRMWARE_DIRS)) +endef + # Most firmware files are under a proprietary license, so no need to # repeat it for every selections above. Those firmwares that have more # lax licensing terms may still add them on a per-case basis. @@ -618,8 +932,6 @@ LINUX_FIRMWARE_ALL_LICENSE_FILES += WHENCE # duplicates LINUX_FIRMWARE_LICENSE_FILES = $(sort $(LINUX_FIRMWARE_ALL_LICENSE_FILES)) -endif - # Some firmware are distributed as a symlink, for drivers to load them using a # defined name other than the real one. Since 9cfefbd7fbda ("Remove duplicate # symlinks") those symlink aren't distributed in linux-firmware but are created @@ -631,22 +943,57 @@ endif # sure we canonicalize the pointed-to file, to cover the symlinks of the form # a/foo -> ../b/foo where a/ (the directory where to put the symlink) does # not yet exist. -define LINUX_FIRMWARE_CREATE_SYMLINKS - cd $(TARGET_DIR)/lib/firmware/ ; \ +# +# If BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS is enabled, modules are compressed +# in this stage after being copied to the target directory. The compression +# is not done on modules in the images directory, because they must not be +# compressed when bundled via the EXTRA_FIRMWARE option. +# +# $1: target directory +# $2: 'images' (uncompressed) or 'target' (compressed if enabled) +define LINUX_FIRMWARE_INSTALL_FW + mkdir -p $(1) + $(TAR) xf $(@D)/br-firmware.tar -C $(1) + if [ "$(BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS)" = "y" ] && [ "$(2)" = "target" ]; then \ + $(TAR) tf $(@D)/br-firmware.tar | while read f; do \ + if [ -f $(1)/$$f ]; then \ + $(LINUX_FIRMWARE_COMPRESS_CMD) $(1)/$$f; \ + fi ; \ + done ; \ + fi + cd $(1) ; \ + file_suffix="" ; \ + if [ "$(BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS)" = "y" ] && [ "$(2)" = "target" ]; then \ + file_suffix="$(LINUX_FIRMWARE_COMPRESSED_FILE_SUFFIX)" ; \ + fi ; \ sed -r -e '/^Link: (.+) -> (.+)$$/!d; s//\1 \2/' $(@D)/WHENCE | \ while read f d; do \ - if test -f $$(readlink -m $$(dirname $$f)/$$d); then \ - mkdir -p $$(dirname $$f) || exit 1; \ - ln -sf $$d $$f || exit 1; \ + if test -f $$(readlink -m $$(dirname "$$f")/$${d}$${file_suffix}); then \ + mkdir -p $$(dirname "$$f") || exit 1; \ + ln -sf $${d}$${file_suffix} "$${f}$${file_suffix}" || exit 1; \ fi ; \ done endef +endif # LINUX_FIRMWARE_FILES || LINUX_FIRMWARE_DIRS + define LINUX_FIRMWARE_INSTALL_TARGET_CMDS - mkdir -p $(TARGET_DIR)/lib/firmware - $(LINUX_FIRMWARE_INSTALL_FILES) - $(LINUX_FIRMWARE_INSTALL_DIRS) - $(LINUX_FIRMWARE_CREATE_SYMLINKS) + $(call LINUX_FIRMWARE_INSTALL_FW,$(TARGET_DIR)/lib/firmware,target) +endef + +define LINUX_FIRMWARE_INSTALL_IMAGES_CMDS + $(call LINUX_FIRMWARE_INSTALL_FW,$(BINARIES_DIR),images) +endef + +define LINUX_FIRMWARE_LINUX_CONFIG_FIXUPS + $(if $(BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS_XZ), + $(call KCONFIG_ENABLE_OPT,CONFIG_FW_LOADER_COMPRESS) + $(call KCONFIG_ENABLE_OPT,CONFIG_FW_LOADER_COMPRESS_XZ) + $(call KCONFIG_DISABLE_OPT,CONFIG_FW_LOADER_COMPRESS_ZSTD)) + $(if $(BR2_PACKAGE_LINUX_FIRMWARE_COMPRESS_ZSTD), + $(call KCONFIG_ENABLE_OPT,CONFIG_FW_LOADER_COMPRESS) + $(call KCONFIG_DISABLE_OPT,CONFIG_FW_LOADER_COMPRESS_XZ) + $(call KCONFIG_ENABLE_OPT,CONFIG_FW_LOADER_COMPRESS_ZSTD)) endef $(eval $(generic-package)) diff --git a/buildroot-patches/0002-linux-firmware/buildroot/package/linux-firmware/linux-firmware.mk.orig b/buildroot-patches/0002-linux-firmware/buildroot/package/linux-firmware/linux-firmware.mk.orig index 4013095..60e8861 100644 --- a/buildroot-patches/0002-linux-firmware/buildroot/package/linux-firmware/linux-firmware.mk.orig +++ b/buildroot-patches/0002-linux-firmware/buildroot/package/linux-firmware/linux-firmware.mk.orig @@ -4,9 +4,10 @@ # ################################################################################ -LINUX_FIRMWARE_VERSION = 20201022 -LINUX_FIRMWARE_SITE = http://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git -LINUX_FIRMWARE_SITE_METHOD = git +LINUX_FIRMWARE_VERSION = 20240115 +LINUX_FIRMWARE_SOURCE = linux-firmware-$(LINUX_FIRMWARE_VERSION).tar.xz +LINUX_FIRMWARE_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/firmware +LINUX_FIRMWARE_INSTALL_IMAGES = YES # Intel SST DSP ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_INTEL_SST_DSP),y) @@ -39,6 +40,23 @@ LINUX_FIRMWARE_FILES += qcom/a* LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.qcom qcom/NOTICE.txt endif +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MFC_V8),y) +LINUX_FIRMWARE_FILES += \ + s5p-mfc.fw \ + s5p-mfc-v6.fw \ + s5p-mfc-v6-v2.fw \ + s5p-mfc-v7.fw \ + s5p-mfc-v8.fw +# No license file; the license is in the file WHENCE +# which is installed unconditionally +endif + +# Amlogic SoC Bluetooth +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_AMLOGIC),y) +LINUX_FIRMWARE_FILES += amlogic/bluetooth/*.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.amlogic +endif + # Intel Wireless Bluetooth ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IBT),y) LINUX_FIRMWARE_FILES += intel/ibt-* @@ -51,10 +69,38 @@ LINUX_FIRMWARE_FILES += qca/rampatch_usb_00000302.bin qca/nvm_usb_00000302.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.qcom endif -# Freescale i.MX SDMA -ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IMX_SDMA),y) -LINUX_FIRMWARE_FILES += imx/sdma/sdma-imx6q.bin imx/sdma/sdma-imx7d.bin -LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.sdma_firmware +# Qualcomm Atheros QCA9377 Bluetooth +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_9377_BT),y) +LINUX_FIRMWARE_FILES += qca/rampatch_00230302.bin qca/nvm_00230302.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.qcom +endif + +# Realtek 87xx Bluetooth +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT),y) +LINUX_FIRMWARE_FILES += \ + rtl_bt/rtl8723a_fw.bin rtl_bt/rtl8723b_fw.bin \ + rtl_bt/rtl8723bs_config-OBDA8723.bin \ + rtl_bt/rtl8723bs_fw.bin rtl_bt/rtl8723d_config.bin \ + rtl_bt/rtl8723d_fw.bin rtl_bt/rtl8761a_fw.bin \ + rtl_bt/rtl8761b_fw.bin rtl_bt/rtl8761b_config.bin \ + rtl_bt/rtl8761bu_fw.bin rtl_bt/rtl8761bu_config.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt +endif + +# Realtek 88xx Bluetooth +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX_BT),y) +LINUX_FIRMWARE_FILES += \ + rtl_bt/rtl8812ae_fw.bin rtl_bt/rtl8821a_fw.bin \ + rtl_bt/rtl8821c_config.bin rtl_bt/rtl8821c_fw.bin \ + rtl_bt/rtl8822b_config.bin rtl_bt/rtl8822b_fw.bin \ + rtl_bt/rtl8822cs_config.bin rtl_bt/rtl8822cs_fw.bin \ + rtl_bt/rtl8822cu_config.bin rtl_bt/rtl8822cu_fw.bin \ + rtl_bt/rtl8851bu_fw.bin rtl_bt/rtl8851bu_config.bin \ + rtl_bt/rtl8852au_fw.bin rtl_bt/rtl8852au_config.bin \ + rtl_bt/rtl8852bu_fw.bin rtl_bt/rtl8852bu_config.bin \ + rtl_bt/rtl8852cu_fw.bin rtl_bt/rtl8852cu_config.bin \ + rtl_bt/rtl8852cu_fw_v2.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt endif # rt2501/rt61 @@ -78,27 +124,38 @@ endif # rtl81xx ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX),y) LINUX_FIRMWARE_FILES += \ - rtlwifi/rtl8192cfw.bin rtlwifi/rtl8192cfwU.bin \ - rtlwifi/rtl8192cfwU_B.bin rtlwifi/rtl8192cufw.bin \ - rtlwifi/rtl8192defw.bin rtlwifi/rtl8192sefw.bin \ - rtlwifi/rtl8188efw.bin rtlwifi/rtl8188eufw.bin \ + rtlwifi/rtl8192cfw.bin \ + rtlwifi/rtl8192cfwU.bin \ + rtlwifi/rtl8192cfwU_B.bin \ + rtlwifi/rtl8192cufw.bin \ + rtlwifi/rtl8192defw.bin \ + rtlwifi/rtl8192sefw.bin \ + rtlwifi/rtl8188efw.bin \ + rtlwifi/rtl8188eufw.bin \ + rtlwifi/rtl8188fufw.bin \ rtlwifi/rtl8192cufw_A.bin \ - rtlwifi/rtl8192cufw_B.bin rtlwifi/rtl8192cufw_TMSC.bin \ - rtlwifi/rtl8192eefw.bin rtlwifi/rtl8192eu_ap_wowlan.bin \ - rtlwifi/rtl8192eu_nic.bin rtlwifi/rtl8192eu_wowlan.bin + rtlwifi/rtl8192cufw_B.bin \ + rtlwifi/rtl8192cufw_TMSC.bin \ + rtlwifi/rtl8192eu_ap_wowlan.bin \ + rtlwifi/rtl8192eu_nic.bin \ + rtlwifi/rtl8192eu_wowlan.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt endif # rtl87xx ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX),y) LINUX_FIRMWARE_FILES += \ - rtlwifi/rtl8712u.bin rtlwifi/rtl8723fw.bin \ - rtlwifi/rtl8723fw_B.bin rtlwifi/rtl8723befw.bin \ - rtlwifi/rtl8723aufw_A.bin rtlwifi/rtl8723aufw_B.bin \ - rtlwifi/rtl8723aufw_B_NoBT.bin rtlwifi/rtl8723befw.bin \ - rtlwifi/rtl8723bs_ap_wowlan.bin rtlwifi/rtl8723bs_bt.bin \ - rtlwifi/rtl8723bs_nic.bin rtlwifi/rtl8723bs_wowlan.bin \ - rtlwifi/rtl8723bu_ap_wowlan.bin rtlwifi/rtl8723bu_nic.bin \ + rtlwifi/rtl8712u.bin \ + rtlwifi/rtl8723fw.bin \ + rtlwifi/rtl8723fw_B.bin \ + rtlwifi/rtl8723befw.bin \ + rtlwifi/rtl8723aufw_A.bin \ + rtlwifi/rtl8723aufw_B.bin \ + rtlwifi/rtl8723aufw_B_NoBT.bin \ + rtlwifi/rtl8723befw.bin \ + rtlwifi/rtl8723bs_bt.bin \ + rtlwifi/rtl8723bu_ap_wowlan.bin \ + rtlwifi/rtl8723bu_nic.bin \ rtlwifi/rtl8723bu_wowlan.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt endif @@ -115,9 +172,14 @@ endif # rtw88 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW88),y) LINUX_FIRMWARE_FILES += \ - rtw88/rtw8723d_fw.bin \ - rtw88/rtw8822b_fw.bin \ - rtw88/rtw8822c_fw.bin + rtw88/rtw*.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt +endif + +# rtw89 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW89),y) +LINUX_FIRMWARE_FILES += \ + rtw89/rtw*.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt endif @@ -189,6 +251,15 @@ LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware endif # ath10k +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA9377),y) +LINUX_FIRMWARE_FILES += ath10k/QCA9377/hw1.0/board-2.bin \ + ath10k/QCA9377/hw1.0/board.bin \ + ath10k/QCA9377/hw1.0/firmware-5.bin \ + ath10k/QCA9377/hw1.0/firmware-6.bin \ + ath10k/QCA9377/hw1.0/firmware-sdio-5.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware +endif + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA998X),y) LINUX_FIRMWARE_FILES += ath10k/QCA988X/hw2.0/board.bin \ ath10k/QCA988X/hw2.0/firmware-4.bin \ @@ -280,24 +351,68 @@ LINUX_FIRMWARE_FILES += mrvl/pcie8897_uapsta.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell endif +# pcieuart8997 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIEUART8997),y) +LINUX_FIRMWARE_FILES += mrvl/pcieuart8997_combo_v4.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell +endif + +# pcieusb8997 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_PCIEUSB8997),y) +LINUX_FIRMWARE_FILES += mrvl/pcieusb8997_combo_v4.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell +endif + # MT7601 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U),y) -LINUX_FIRMWARE_FILES += mt7601u.bin +LINUX_FIRMWARE_FILES += mediatek/mt7601u.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink_a_mediatek_company_firmware +endif + +# MT7610 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7610E),y) +LINUX_FIRMWARE_FILES += mediatek/mt7610e.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink_a_mediatek_company_firmware endif # MT7650 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7650),y) -LINUX_FIRMWARE_FILES += mt7650.bin +LINUX_FIRMWARE_FILES += mediatek/mt7650.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink_a_mediatek_company_firmware endif # MT76x2e ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT76X2E),y) -LINUX_FIRMWARE_FILES += mt7662.bin mt7662_rom_patch.bin +LINUX_FIRMWARE_FILES += mediatek/mt7662.bin mediatek/mt7662_rom_patch.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.ralink_a_mediatek_company_firmware endif +# MT7921 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7921),y) +LINUX_FIRMWARE_FILES += mediatek/WIFI_MT7961_patch_mcu_1_2_hdr.bin \ + mediatek/WIFI_RAM_CODE_MT7961_1.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.mediatek +endif + +# Mediatek MT7921 Bluetooth +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7921_BT),y) +LINUX_FIRMWARE_FILES += mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.mediatek +endif + +# MT7922 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7922),y) +LINUX_FIRMWARE_FILES += mediatek/WIFI_MT7922_patch_mcu_1_1_hdr.bin \ + mediatek/WIFI_RAM_CODE_MT7922_1.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.mediatek +endif + +# Mediatek MT7922 Bluetooth +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7922_BT),y) +LINUX_FIRMWARE_FILES += mediatek/BT_RAM_CODE_MT7922_1_1_hdr.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.mediatek +endif + # qca6174 ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QUALCOMM_6174),y) LINUX_FIRMWARE_FILES += ath10k/QCA6174 @@ -371,6 +486,16 @@ LINUX_FIRMWARE_FILES += wil6210.* LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.QualcommAtheros_ath10k endif +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_22000),y) +LINUX_FIRMWARE_FILES += iwlwifi-QuZ-*.ucode iwlwifi-Qu-*.ucode +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware +endif + +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_22260),y) +LINUX_FIRMWARE_FILES += iwlwifi-cc-a0-*.ucode +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware +endif + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160),y) LINUX_FIRMWARE_FILES += iwlwifi-3160-*.ucode LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware @@ -381,6 +506,16 @@ LINUX_FIRMWARE_FILES += iwlwifi-3168-*.ucode LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware endif +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3945),y) +LINUX_FIRMWARE_FILES += iwlwifi-3945-2.ucode +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware +endif + +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_4965),y) +LINUX_FIRMWARE_FILES += iwlwifi-4965-2.ucode +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware +endif + # iwlwifi 5000. Multiple files are available (iwlwifi-5000-1.ucode, # iwlwifi-5000-2.ucode, iwlwifi-5000-5.ucode), corresponding to # different versions of the firmware API. For now, we only install the @@ -430,6 +565,28 @@ LINUX_FIRMWARE_FILES += iwlwifi-9???-*.ucode LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware endif +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_6E),y) +LINUX_FIRMWARE_FILES += iwlwifi-so-a0-gf-a0*.{ucode,pnvm} +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware +endif + +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_QUZ),y) +LINUX_FIRMWARE_FILES += iwlwifi-QuZ-*.ucode +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.iwlwifi_firmware +endif + +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BROADCOM_TIGON3),y) +LINUX_FIRMWARE_FILES += tigon/* +# No license file; the license is in the file WHENCE +# which is installed unconditionally +endif + +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BNX2),y) +LINUX_FIRMWARE_FILES += bnx2/* +# No license file; the license is in the file WHENCE +# which is installed unconditionally +endif + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BNX2X),y) LINUX_FIRMWARE_FILES += bnx2x/* # No license file; the license is in the file WHENCE @@ -451,6 +608,11 @@ LINUX_FIRMWARE_FILES += e100/*.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.e100 endif +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_INTEL_ICE),y) +LINUX_FIRMWARE_FILES += intel/ice/ddp/*.pkg +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENSE.ice_enhanced +endif + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MICROCHIP_VSC85XX_PHY),y) LINUX_FIRMWARE_FILES += microchip/mscc_vsc85*.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.microchip @@ -463,6 +625,19 @@ LINUX_FIRMWARE_FILES += \ # which is installed unconditionally endif +# rtl815x +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_815X),y) +LINUX_FIRMWARE_FILES += \ + rtl_nic/rtl8153a-2.fw \ + rtl_nic/rtl8153a-3.fw \ + rtl_nic/rtl8153a-4.fw \ + rtl_nic/rtl8153b-2.fw \ + rtl_nic/rtl8153c-1.fw \ + rtl_nic/rtl8156a-2.fw \ + rtl_nic/rtl8156b-2.fw +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.rtlwifi_firmware.txt +endif + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_RTL_8169),y) LINUX_FIRMWARE_FILES += \ rtl_nic/rtl8105e-1.fw \ @@ -471,6 +646,7 @@ LINUX_FIRMWARE_FILES += \ rtl_nic/rtl8107e-1.fw \ rtl_nic/rtl8107e-2.fw \ rtl_nic/rtl8125a-3.fw \ + rtl_nic/rtl8125b-2.fw \ rtl_nic/rtl8168d-1.fw \ rtl_nic/rtl8168d-2.fw \ rtl_nic/rtl8168e-1.fw \ @@ -488,6 +664,12 @@ LINUX_FIRMWARE_FILES += \ rtl_nic/rtl8411-2.fw endif +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_MARVELL_PRESTERA),y) +LINUX_FIRMWARE_FILES += \ + mrvl/prestera/mvsw_prestera_fw*.img +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.Marvell +endif + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_XCx000),y) LINUX_FIRMWARE_FILES += \ dvb-fe-xc4000-1.4.1.fw \ @@ -523,29 +705,102 @@ endif # brcm43xx ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XX),y) LINUX_FIRMWARE_FILES += \ - brcm/bcm43xx-0.fw brcm/bcm43xx_hdr-0.fw \ - brcm/bcm4329-fullmac-4.bin brcm/brcmfmac4329-sdio.bin \ - brcm/brcmfmac4330-sdio.bin brcm/brcmfmac4334-sdio.bin \ - brcm/brcmfmac4335-sdio.bin brcm/brcmfmac4339-sdio.bin \ - brcm/brcmfmac4350-pcie.bin brcm/brcmfmac4354-sdio.bin \ - brcm/brcmfmac4356-pcie.bin brcm/brcmfmac4371-pcie.bin + brcm/bcm4329-fullmac-4.bin \ + brcm/brcmfmac4329-sdio.bin \ + brcm/brcmfmac4330-sdio.bin \ + brcm/brcmfmac4334-sdio.bin \ + brcm/brcmfmac4335-sdio.bin \ + brcm/brcmfmac4350c2-pcie.bin \ + brcm/brcmfmac4350-pcie.bin \ + brcm/brcmfmac4358-pcie.bin \ + brcm/brcmfmac4371-pcie.bin \ + brcm/brcmfmac4373.bin \ + brcm/brcmfmac4330-sdio.Prowise-PT301.txt \ + brcm/brcmfmac4356-pcie.gpd-win-pocket.txt \ + brcm/brcmfmac4356-sdio.AP6356S.txt LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx endif # brcm43xxx ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX),y) LINUX_FIRMWARE_FILES += \ - brcm/brcmfmac43143.bin brcm/brcmfmac43143-sdio.bin \ - brcm/brcmfmac43236b.bin brcm/brcmfmac43241b0-sdio.bin \ - brcm/brcmfmac43241b4-sdio.bin brcm/brcmfmac43241b5-sdio.bin \ - brcm/brcmfmac43242a.bin brcm/brcmfmac43340-sdio.bin \ - brcm/brcmfmac43362-sdio.bin brcm/brcmfmac43430-sdio.bin \ - brcm/brcmfmac43430a0-sdio.bin brcm/brcmfmac43455-sdio.bin \ - brcm/brcmfmac43569.bin brcm/brcmfmac43570-pcie.bin \ - brcm/brcmfmac43602-pcie.ap.bin brcm/brcmfmac43602-pcie.bin + brcm/brcmfmac43143.bin \ + brcm/brcmfmac43143-sdio.bin \ + brcm/brcmfmac43236b.bin \ + brcm/brcmfmac43241b0-sdio.bin \ + brcm/brcmfmac43241b4-sdio.bin \ + brcm/brcmfmac43241b5-sdio.bin \ + brcm/brcmfmac43242a.bin \ + brcm/brcmfmac43430a0-sdio.bin \ + brcm/brcmfmac43569.bin \ + brcm/brcmfmac43602-pcie.ap.bin \ + brcm/brcmfmac43602-pcie.bin \ + brcm/brcmfmac43340-sdio.meegopad-t08.txt \ + brcm/brcmfmac43340-sdio.pov-tab-p1006w-data.txt \ + brcm/brcmfmac43340-sdio.predia-basic.txt \ + brcm/brcmfmac43362-sdio.cubietech,cubietruck.txt \ + brcm/brcmfmac43430a0-sdio.ilife-S806.txt \ + brcm/brcmfmac43430a0-sdio.jumper-ezpad-mini3.txt \ + brcm/brcmfmac43430-sdio.AP6212.txt \ + brcm/brcmfmac43430-sdio.Hampoo-D2D3_Vi8A1.txt \ + brcm/brcmfmac43430-sdio.MUR1DX.txt \ + brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt \ + brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt \ + brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx +endif + +# brcm4366b1 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM4366B1),y) +LINUX_FIRMWARE_FILES += brcm/brcmfmac4366b-pcie.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx endif +# brcm4366c0 +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM4366C0),y) +LINUX_FIRMWARE_FILES += brcm/brcmfmac4366c-pcie.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.broadcom_bcm43xx +endif + +# cyfmac43xx +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CYPRESS_CYW43XX),y) +LINUX_FIRMWARE_FILES += \ + cypress/cyfmac4339-sdio.bin \ + cypress/cyfmac4354-sdio.bin \ + cypress/cyfmac4354-sdio.clm_blob \ + cypress/cyfmac4356-pcie.bin \ + cypress/cyfmac4356-pcie.clm_blob \ + cypress/cyfmac4356-sdio.bin \ + cypress/cyfmac4356-sdio.clm_blob \ + cypress/cyfmac4373-sdio.bin \ + cypress/cyfmac4373-sdio.clm_blob +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.cypress +endif + +# cyfmac43xxx +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CYPRESS_CYW43XXX),y) +LINUX_FIRMWARE_FILES += \ + cypress/cyfmac43012-sdio.bin \ + cypress/cyfmac43012-sdio.clm_blob \ + cypress/cyfmac43340-sdio.bin \ + cypress/cyfmac43362-sdio.bin \ + cypress/cyfmac43430-sdio.bin \ + cypress/cyfmac43430-sdio.clm_blob \ + cypress/cyfmac43455-sdio.bin \ + cypress/cyfmac43455-sdio.clm_blob \ + cypress/cyfmac43570-pcie.bin \ + cypress/cyfmac43570-pcie.clm_blob +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.cypress +endif + +# cyfmac54xxx +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CYPRESS_CYW54XXX),y) +LINUX_FIRMWARE_FILES += \ + cypress/cyfmac54591-pcie.bin \ + cypress/cyfmac54591-pcie.clm_blob +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.cypress +endif + # ql2xxx ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_QLOGIC_2XXX),y) LINUX_FIRMWARE_FILES += \ @@ -578,27 +833,35 @@ LINUX_FIRMWARE_FILES += qat_c62x.bin qat_c62x_mmp.bin LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.qat_firmware endif -ifneq ($(LINUX_FIRMWARE_FILES),) -define LINUX_FIRMWARE_INSTALL_FILES - cd $(@D) && \ - $(TAR) cf install.tar $(sort $(LINUX_FIRMWARE_FILES)) && \ - $(TAR) xf install.tar -C $(TARGET_DIR)/lib/firmware -endef +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_USB_SERIAL_TI),y) +LINUX_FIRMWARE_FILES += ti_3410.fw ti_5052.fw \ + mts_cdma.fw mts_gsm.fw mts_edge.fw mts_mt9234mu.fw mts_mt9234zba.fw \ + moxa/moxa-1110.fw moxa/moxa-1130.fw moxa/moxa-1131.fw \ + moxa/moxa-1150.fw moxa/moxa-1151.fw +# Some firmware's license is in the file WHENCE +# which is installed unconditionally +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.moxa endif -ifneq ($(LINUX_FIRMWARE_DIRS),) -# We need to rm-rf the destination directory to avoid copying -# into it in itself, should we re-install the package. -define LINUX_FIRMWARE_INSTALL_DIRS - $(foreach d,$(LINUX_FIRMWARE_DIRS), \ - rm -rf $(TARGET_DIR)/lib/firmware/$(d); \ - mkdir -p $(dir $(TARGET_DIR)/lib/firmware/$(d)); \ - cp -a $(@D)/$(d) $(TARGET_DIR)/lib/firmware/$(d)$(sep)) -endef +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CX231XX),y) +LINUX_FIRMWARE_FILES += v4l-cx231xx-avcore-01.fw +# No license file; the license is in the file WHENCE +# which is installed unconditionally +endif + +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_CX23885),y) +LINUX_FIRMWARE_FILES += v4l-cx23885-avcore-01.fw +# No license file; the license is in the file WHENCE +# which is installed unconditionally endif ifneq ($(LINUX_FIRMWARE_FILES)$(LINUX_FIRMWARE_DIRS),) +define LINUX_FIRMWARE_BUILD_CMDS + cd $(@D) && \ + $(TAR) cf br-firmware.tar $(sort $(LINUX_FIRMWARE_FILES) $(LINUX_FIRMWARE_DIRS)) +endef + # Most firmware files are under a proprietary license, so no need to # repeat it for every selections above. Those firmwares that have more # lax licensing terms may still add them on a per-case basis. @@ -613,8 +876,6 @@ LINUX_FIRMWARE_ALL_LICENSE_FILES += WHENCE # duplicates LINUX_FIRMWARE_LICENSE_FILES = $(sort $(LINUX_FIRMWARE_ALL_LICENSE_FILES)) -endif - # Some firmware are distributed as a symlink, for drivers to load them using a # defined name other than the real one. Since 9cfefbd7fbda ("Remove duplicate # symlinks") those symlink aren't distributed in linux-firmware but are created @@ -626,22 +887,27 @@ endif # sure we canonicalize the pointed-to file, to cover the symlinks of the form # a/foo -> ../b/foo where a/ (the directory where to put the symlink) does # not yet exist. -define LINUX_FIRMWARE_CREATE_SYMLINKS - cd $(TARGET_DIR)/lib/firmware/ ; \ +define LINUX_FIRMWARE_INSTALL_FW + mkdir -p $(1) + $(TAR) xf $(@D)/br-firmware.tar -C $(1) + cd $(1) ; \ sed -r -e '/^Link: (.+) -> (.+)$$/!d; s//\1 \2/' $(@D)/WHENCE | \ while read f d; do \ - if test -f $$(readlink -m $$(dirname $$f)/$$d); then \ - mkdir -p $$(dirname $$f) || exit 1; \ - ln -sf $$d $$f || exit 1; \ + if test -f $$(readlink -m $$(dirname "$$f")/$$d); then \ + mkdir -p $$(dirname "$$f") || exit 1; \ + ln -sf $$d "$$f" || exit 1; \ fi ; \ done endef +endif # LINUX_FIRMWARE_FILES || LINUX_FIRMWARE_DIRS + define LINUX_FIRMWARE_INSTALL_TARGET_CMDS - mkdir -p $(TARGET_DIR)/lib/firmware - $(LINUX_FIRMWARE_INSTALL_FILES) - $(LINUX_FIRMWARE_INSTALL_DIRS) - $(LINUX_FIRMWARE_CREATE_SYMLINKS) + $(call LINUX_FIRMWARE_INSTALL_FW, $(TARGET_DIR)/lib/firmware) +endef + +define LINUX_FIRMWARE_INSTALL_IMAGES_CMDS + $(call LINUX_FIRMWARE_INSTALL_FW, $(BINARIES_DIR)) endef $(eval $(generic-package)) diff --git a/buildroot-patches/0008-rpi-firmware.patch b/buildroot-patches/0008-rpi-firmware.patch index 4702072..9a4dab5 100644 --- a/buildroot-patches/0008-rpi-firmware.patch +++ b/buildroot-patches/0008-rpi-firmware.patch @@ -6,26 +6,19 @@ +config BR2_PACKAGE_RPI_FIRMWARE_VERSION + string "Custom firmware version" -+ default "01ecfd2ba2b7cf3a2f4aa75ada895ee4a3e729f5" ++ default "83dafbc92c0e63f76ca2ecdd42462d56489d1c77" + config BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN bool "rpi 0/1/2/3 bootcode.bin" help --- buildroot/package/rpi-firmware/rpi-firmware.mk.orig +++ buildroot/package/rpi-firmware/rpi-firmware.mk -@@ -4,12 +4,14 @@ +@@ -4,7 +4,7 @@ # ################################################################################ --RPI_FIRMWARE_VERSION = 3f20b832b27cd730deb6419b570f31a98167eef6 +-RPI_FIRMWARE_VERSION = 83dafbc92c0e63f76ca2ecdd42462d56489d1c77 +RPI_FIRMWARE_VERSION = $(call qstrip,$(BR2_PACKAGE_RPI_FIRMWARE_VERSION)) RPI_FIRMWARE_SITE = $(call github,raspberrypi,firmware,$(RPI_FIRMWARE_VERSION)) RPI_FIRMWARE_LICENSE = BSD-3-Clause RPI_FIRMWARE_LICENSE_FILES = boot/LICENCE.broadcom - RPI_FIRMWARE_INSTALL_IMAGES = YES - -+BR_NO_CHECK_HASH_FOR += $(RPI_FIRMWARE_SOURCE) -+ - RPI_FIRMWARE_FILES = \ - $(if $(BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN), bootcode.bin) \ - $(if $(BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI), start.elf fixup.dat) \ diff --git a/buildroot-patches/0008-rpi-firmware/buildroot/package/rpi-firmware/Config.in b/buildroot-patches/0008-rpi-firmware/buildroot/package/rpi-firmware/Config.in index e60d895..139b52b 100644 --- a/buildroot-patches/0008-rpi-firmware/buildroot/package/rpi-firmware/Config.in +++ b/buildroot-patches/0008-rpi-firmware/buildroot/package/rpi-firmware/Config.in @@ -13,7 +13,7 @@ if BR2_PACKAGE_RPI_FIRMWARE config BR2_PACKAGE_RPI_FIRMWARE_VERSION string "Custom firmware version" - default "01ecfd2ba2b7cf3a2f4aa75ada895ee4a3e729f5" + default "83dafbc92c0e63f76ca2ecdd42462d56489d1c77" config BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN bool "rpi 0/1/2/3 bootcode.bin" @@ -73,6 +73,13 @@ config BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE Path to a file stored as config.txt in the boot partiton of the generated SD card image. +config BR2_PACKAGE_RPI_FIRMWARE_CMDLINE_FILE + string "Path to a file stored as boot/cmdline.txt" + default "board/raspberrypi/cmdline.txt" # legacy + help + Path to a file stored as cmdline.txt in the boot partiton + of the generated SD card image. + config BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTBS bool "Install Device Tree Blobs (DTBs)" default y @@ -102,7 +109,6 @@ config BR2_PACKAGE_RPI_FIRMWARE_INSTALL_VCDBG depends on BR2_arm # prebuilt arm binary, rpi-userland depends on BR2_TOOLCHAIN_USES_GLIBC depends on BR2_INSTALL_LIBSTDCPP # rpi-userland - select BR2_PACKAGE_RPI_USERLAND help Install vcdbg, to help debug communication with the GPU. diff --git a/buildroot-patches/0008-rpi-firmware/buildroot/package/rpi-firmware/Config.in.orig b/buildroot-patches/0008-rpi-firmware/buildroot/package/rpi-firmware/Config.in.orig index f9fc0b0..a9aeaed 100644 --- a/buildroot-patches/0008-rpi-firmware/buildroot/package/rpi-firmware/Config.in.orig +++ b/buildroot-patches/0008-rpi-firmware/buildroot/package/rpi-firmware/Config.in.orig @@ -69,6 +69,13 @@ config BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE Path to a file stored as config.txt in the boot partiton of the generated SD card image. +config BR2_PACKAGE_RPI_FIRMWARE_CMDLINE_FILE + string "Path to a file stored as boot/cmdline.txt" + default "board/raspberrypi/cmdline.txt" # legacy + help + Path to a file stored as cmdline.txt in the boot partiton + of the generated SD card image. + config BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTBS bool "Install Device Tree Blobs (DTBs)" default y @@ -98,7 +105,6 @@ config BR2_PACKAGE_RPI_FIRMWARE_INSTALL_VCDBG depends on BR2_arm # prebuilt arm binary, rpi-userland depends on BR2_TOOLCHAIN_USES_GLIBC depends on BR2_INSTALL_LIBSTDCPP # rpi-userland - select BR2_PACKAGE_RPI_USERLAND help Install vcdbg, to help debug communication with the GPU. diff --git a/buildroot-patches/0008-rpi-firmware/buildroot/package/rpi-firmware/rpi-firmware.mk b/buildroot-patches/0008-rpi-firmware/buildroot/package/rpi-firmware/rpi-firmware.mk index b2cbfdf..efaeb44 100644 --- a/buildroot-patches/0008-rpi-firmware/buildroot/package/rpi-firmware/rpi-firmware.mk +++ b/buildroot-patches/0008-rpi-firmware/buildroot/package/rpi-firmware/rpi-firmware.mk @@ -10,8 +10,6 @@ RPI_FIRMWARE_LICENSE = BSD-3-Clause RPI_FIRMWARE_LICENSE_FILES = boot/LICENCE.broadcom RPI_FIRMWARE_INSTALL_IMAGES = YES -BR_NO_CHECK_HASH_FOR += $(RPI_FIRMWARE_SOURCE) - RPI_FIRMWARE_FILES = \ $(if $(BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN), bootcode.bin) \ $(if $(BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI), start.elf fixup.dat) \ @@ -37,6 +35,14 @@ define RPI_FIRMWARE_INSTALL_CONFIG endef endif +RPI_FIRMWARE_CMDLINE_FILE = $(call qstrip,$(BR2_PACKAGE_RPI_FIRMWARE_CMDLINE_FILE)) +ifneq ($(RPI_FIRMWARE_CMDLINE_FILE),) +define RPI_FIRMWARE_INSTALL_CMDLINE + $(INSTALL) -D -m 0644 $(RPI_FIRMWARE_CMDLINE_FILE) \ + $(BINARIES_DIR)/rpi-firmware/cmdline.txt +endef +endif + ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTBS),y) define RPI_FIRMWARE_INSTALL_DTB $(foreach dtb,$(wildcard $(@D)/boot/*.dtb), \ @@ -50,12 +56,8 @@ define RPI_FIRMWARE_INSTALL_DTB_OVERLAYS $(foreach ovldtb,$(wildcard $(@D)/boot/overlays/*.dtbo), \ $(INSTALL) -D -m 0644 $(ovldtb) $(BINARIES_DIR)/rpi-firmware/overlays/$(notdir $(ovldtb)) ) -endef -else -# Still create the directory, so a genimage.cfg can include it independently of -# whether _INSTALL_DTB_OVERLAYS is selected or not. -define RPI_FIRMWARE_INSTALL_DTB_OVERLAYS - $(INSTALL) -d $(BINARIES_DIR)/rpi-firmware/overlays + $(INSTALL) -D -m 0644 $(@D)/boot/overlays/overlay_map.dtb $(BINARIES_DIR)/rpi-firmware/overlays/ + touch $(BINARIES_DIR)/rpi-firmware/overlays/README endef endif @@ -80,9 +82,9 @@ endef endif # INSTALL_VCDBG define RPI_FIRMWARE_INSTALL_IMAGES_CMDS - $(INSTALL) -D -m 0644 package/rpi-firmware/cmdline.txt $(BINARIES_DIR)/rpi-firmware/cmdline.txt $(RPI_FIRMWARE_INSTALL_BIN) $(RPI_FIRMWARE_INSTALL_CONFIG) + $(RPI_FIRMWARE_INSTALL_CMDLINE) $(RPI_FIRMWARE_INSTALL_DTB) $(RPI_FIRMWARE_INSTALL_DTB_OVERLAYS) endef diff --git a/buildroot-patches/0008-rpi-firmware/buildroot/package/rpi-firmware/rpi-firmware.mk.orig b/buildroot-patches/0008-rpi-firmware/buildroot/package/rpi-firmware/rpi-firmware.mk.orig index b46a7f5..11177ae 100644 --- a/buildroot-patches/0008-rpi-firmware/buildroot/package/rpi-firmware/rpi-firmware.mk.orig +++ b/buildroot-patches/0008-rpi-firmware/buildroot/package/rpi-firmware/rpi-firmware.mk.orig @@ -4,7 +4,7 @@ # ################################################################################ -RPI_FIRMWARE_VERSION = 3f20b832b27cd730deb6419b570f31a98167eef6 +RPI_FIRMWARE_VERSION = 83dafbc92c0e63f76ca2ecdd42462d56489d1c77 RPI_FIRMWARE_SITE = $(call github,raspberrypi,firmware,$(RPI_FIRMWARE_VERSION)) RPI_FIRMWARE_LICENSE = BSD-3-Clause RPI_FIRMWARE_LICENSE_FILES = boot/LICENCE.broadcom @@ -35,6 +35,14 @@ define RPI_FIRMWARE_INSTALL_CONFIG endef endif +RPI_FIRMWARE_CMDLINE_FILE = $(call qstrip,$(BR2_PACKAGE_RPI_FIRMWARE_CMDLINE_FILE)) +ifneq ($(RPI_FIRMWARE_CMDLINE_FILE),) +define RPI_FIRMWARE_INSTALL_CMDLINE + $(INSTALL) -D -m 0644 $(RPI_FIRMWARE_CMDLINE_FILE) \ + $(BINARIES_DIR)/rpi-firmware/cmdline.txt +endef +endif + ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTBS),y) define RPI_FIRMWARE_INSTALL_DTB $(foreach dtb,$(wildcard $(@D)/boot/*.dtb), \ @@ -48,12 +56,8 @@ define RPI_FIRMWARE_INSTALL_DTB_OVERLAYS $(foreach ovldtb,$(wildcard $(@D)/boot/overlays/*.dtbo), \ $(INSTALL) -D -m 0644 $(ovldtb) $(BINARIES_DIR)/rpi-firmware/overlays/$(notdir $(ovldtb)) ) -endef -else -# Still create the directory, so a genimage.cfg can include it independently of -# whether _INSTALL_DTB_OVERLAYS is selected or not. -define RPI_FIRMWARE_INSTALL_DTB_OVERLAYS - $(INSTALL) -d $(BINARIES_DIR)/rpi-firmware/overlays + $(INSTALL) -D -m 0644 $(@D)/boot/overlays/overlay_map.dtb $(BINARIES_DIR)/rpi-firmware/overlays/ + touch $(BINARIES_DIR)/rpi-firmware/overlays/README endef endif @@ -78,9 +82,9 @@ endef endif # INSTALL_VCDBG define RPI_FIRMWARE_INSTALL_IMAGES_CMDS - $(INSTALL) -D -m 0644 package/rpi-firmware/cmdline.txt $(BINARIES_DIR)/rpi-firmware/cmdline.txt $(RPI_FIRMWARE_INSTALL_BIN) $(RPI_FIRMWARE_INSTALL_CONFIG) + $(RPI_FIRMWARE_INSTALL_CMDLINE) $(RPI_FIRMWARE_INSTALL_DTB) $(RPI_FIRMWARE_INSTALL_DTB_OVERLAYS) endef diff --git a/buildroot-patches/0012-ffmpeg-rpi-userland-aarch64.patch b/buildroot-patches/0012-ffmpeg-rpi-userland-aarch64.patch_off similarity index 100% rename from buildroot-patches/0012-ffmpeg-rpi-userland-aarch64.patch rename to buildroot-patches/0012-ffmpeg-rpi-userland-aarch64.patch_off diff --git a/scripts/update-buildroot.sh b/scripts/update-buildroot.sh index efa6d2e..0a5e17a 100755 --- a/scripts/update-buildroot.sh +++ b/scripts/update-buildroot.sh @@ -1,9 +1,21 @@ #!/bin/bash set -e -if [ -z "$1" ]; then - echo "Need a Buildroot version (see https://buildroot.org)" +ID=${1} +PACKAGE_NAME="buildroot" +PROJECT_URL="https://github.com/buildroot/buildroot" +ARCHIVE_URL="${PROJECT_URL}/archive/${ID}/${PACKAGE_NAME}-${ID}.tar.gz" + +if [[ -z "${ID}" ]]; then + echo "tag name or commit sha required (see ${URL})" exit 1 fi -sed -i "s/BUILDROOT_VERSION=.*/BUILDROOT_VERSION=$1/g" Makefile +# download archive for hash update +ARCHIVE_HASH=$(wget --passive-ftp -nd -t 3 -O - "${ARCHIVE_URL}" | sha256sum | awk '{ print $1 }') +if [[ -n "${ARCHIVE_HASH}" ]]; then + # update package info + sed -i "s/BUILDROOT_VERSION=.*/BUILDROOT_VERSION=$1/g" "Makefile" + # update package hash + sed -i "s/BUILDROOT_SHA256=.*/BUILDROOT_SHA256=${ARCHIVE_HASH}/g" "Makefile" +fi