Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] rpi*-kernel: update to 5.15.68, merge templates
@ 2022-09-24  9:42 classabbyamp
  2022-09-24 23:51 ` [PR PATCH] [Updated] " classabbyamp
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: classabbyamp @ 2022-09-24  9:42 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 532 bytes --]

There is a new pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages the-rpi-unification-of-2024
https://github.com/void-linux/void-packages/pull/39442

rpi*-kernel: update to 5.15.68, merge templates
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**



A patch file from https://github.com/void-linux/void-packages/pull/39442.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-the-rpi-unification-of-2024-39442.patch --]
[-- Type: text/x-diff, Size: 75946 bytes --]

From 16c8f7c7a89d515848cb3bd9db004a4765451403 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:35:07 -0400
Subject: [PATCH 1/3] rpi-base: re-merge rpi kernel packages

---
 srcpkgs/rpi-base/template | 48 +++++++++------------------------------
 1 file changed, 11 insertions(+), 37 deletions(-)

diff --git a/srcpkgs/rpi-base/template b/srcpkgs/rpi-base/template
index 8940033c83ab..3b22d684f4b2 100644
--- a/srcpkgs/rpi-base/template
+++ b/srcpkgs/rpi-base/template
@@ -1,10 +1,9 @@
 # Template file for 'rpi-base'
 pkgname=rpi-base
 version=3.0
-revision=2
+revision=3
 archs="armv6l* armv7l* aarch64*"
-_base_depends="virtual?ntp-daemon rpi-firmware"
-depends="${_base_depends} rpi-kernel"
+depends="virtual?ntp-daemon rpi-firmware rpi-kernel"
 short_desc="Void Linux Raspberry Pi base files"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="Public Domain"
@@ -26,45 +25,20 @@ case "$XBPS_TARGET_MACHINE" in
 		;;
 esac
 
-# support legacy systems (before rpi-kernel was split to rpi{,2,3})
-# archs != armv6* are emtpy meta packages to pull the new rpi${n}-base package
-case "$XBPS_TARGET_MACHINE" in
-	armv6*) : ;;
-	*)
-		build_style=meta
-		short_desc+=" (transitional dummy package)"
-
-	 	do_install() { : ; }
-
-		case "$XBPS_TARGET_MACHINE" in
-			armv7*) depends="rpi2-base" ;;
-			aarch64*) depends="rpi3-base" ;;
-		esac
-		;;
-esac
-
 rpi2-base_package() {
-	depends="${_base_depends} rpi2-kernel"
-	short_desc="Void Linux Raspberry Pi 2 base files"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }
 
-
 rpi3-base_package() {
-	depends="${_base_depends} rpi3-kernel"
-	short_desc="Void Linux Raspberry Pi 3 base files"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }
 
 rpi4-base_package() {
-	depends="${_base_depends} rpi4-kernel"
-	short_desc="Void Linux Raspberry Pi 4 base files"
-	conflicts="rpi3-base"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }

From 6d231314f322db4e1df8c655d40b6ad84afc374f Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:37:19 -0400
Subject: [PATCH 2/3] rpi-firmware: add kernel config include

this is required for unification of rpi*-kernel
---
 srcpkgs/rpi-firmware/files/config.txt | 3 +++
 srcpkgs/rpi-firmware/template         | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/rpi-firmware/files/config.txt b/srcpkgs/rpi-firmware/files/config.txt
index ea6233326d61..2b5433d8fa81 100755
--- a/srcpkgs/rpi-firmware/files/config.txt
+++ b/srcpkgs/rpi-firmware/files/config.txt
@@ -84,3 +84,6 @@
 
 ## Enable the BCM2835 audio driver
 #dtparam=audio=on
+
+# Tell the bootloader where the kernel is
+include kernel.txt
diff --git a/srcpkgs/rpi-firmware/template b/srcpkgs/rpi-firmware/template
index 62d809b840ce..df20bfa19e1d 100644
--- a/srcpkgs/rpi-firmware/template
+++ b/srcpkgs/rpi-firmware/template
@@ -4,7 +4,7 @@ _gitshort="${_githash:0:7}"
 
 pkgname=rpi-firmware
 version=20220823
-revision=2
+revision=3
 archs="armv6l* armv7l* aarch64*"
 wrksrc="firmware-${_githash}"
 provides="linux-firmware-broadcom-${version}_${revision}"

From c1221daea9a4b05b1c40ff6160498f6420da2d13 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:38:28 -0400
Subject: [PATCH 3/3] rpi*-kernel: update to 5.15.68, merge templates

---
 srcpkgs/rpi-kernel/files/rpi34_defconfig | 1613 ++++++++++++++++++++++
 srcpkgs/rpi-kernel/template              |  165 ++-
 srcpkgs/rpi2-kernel                      |    1 +
 srcpkgs/rpi2-kernel-headers              |    2 +-
 srcpkgs/rpi2-kernel/template             |  228 ---
 srcpkgs/rpi3-kernel                      |    1 +
 srcpkgs/rpi3-kernel-headers              |    2 +-
 srcpkgs/rpi3-kernel/template             |  228 ---
 srcpkgs/rpi4-kernel                      |    1 +
 srcpkgs/rpi4-kernel-headers              |    2 +-
 srcpkgs/rpi4-kernel/template             |  229 ---
 11 files changed, 1700 insertions(+), 772 deletions(-)
 create mode 100644 srcpkgs/rpi-kernel/files/rpi34_defconfig
 create mode 120000 srcpkgs/rpi2-kernel
 delete mode 100644 srcpkgs/rpi2-kernel/template
 create mode 120000 srcpkgs/rpi3-kernel
 delete mode 100644 srcpkgs/rpi3-kernel/template
 create mode 120000 srcpkgs/rpi4-kernel
 delete mode 100644 srcpkgs/rpi4-kernel/template

diff --git a/srcpkgs/rpi-kernel/files/rpi34_defconfig b/srcpkgs/rpi-kernel/files/rpi34_defconfig
new file mode 100644
index 000000000000..6e0750be2b8a
--- /dev/null
+++ b/srcpkgs/rpi-kernel/files/rpi34_defconfig
@@ -0,0 +1,1613 @@
+CONFIG_LOCALVERSION="-v8"
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_GENERIC_IRQ_DEBUGFS=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_BPF_JIT=y
+CONFIG_PREEMPT=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_IKCONFIG=m
+CONFIG_IKCONFIG_PROC=y
+CONFIG_MEMCG=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CPUSETS=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_PERF=y
+CONFIG_CGROUP_BPF=y
+CONFIG_NAMESPACES=y
+CONFIG_USER_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_EMBEDDED=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_PROFILING=y
+CONFIG_ARCH_BCM2835=y
+# CONFIG_CAVIUM_ERRATUM_22375 is not set
+# CONFIG_CAVIUM_ERRATUM_23154 is not set
+# CONFIG_CAVIUM_ERRATUM_27456 is not set
+CONFIG_SCHED_MC=y
+CONFIG_NR_CPUS=256
+CONFIG_HZ_100=y
+CONFIG_HZ=100
+CONFIG_COMPAT=y
+CONFIG_ARMV8_DEPRECATED=y
+CONFIG_SWP_EMULATION=y
+CONFIG_CP15_BARRIER_EMULATION=y
+CONFIG_SETEND_EMULATION=y
+CONFIG_RANDOMIZE_BASE=y
+CONFIG_CMDLINE="console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait"
+# CONFIG_SUSPEND is not set
+CONFIG_CPU_IDLE=y
+CONFIG_ARM_CPUIDLE=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+CONFIG_CPUFREQ_DT=y
+CONFIG_ARM_RASPBERRYPI_CPUFREQ=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=y
+CONFIG_CRYPTO_AES_ARM64_BS=m
+CONFIG_JUMP_LABEL=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_MODULE_COMPRESS_XZ=y
+CONFIG_BLK_DEV_THROTTLING=y
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_MAC_PARTITION=y
+CONFIG_BINFMT_MISC=m
+CONFIG_CLEANCACHE=y
+CONFIG_FRONTSWAP=y
+CONFIG_CMA=y
+CONFIG_ZSWAP=y
+CONFIG_Z3FOLD=m
+CONFIG_ZSMALLOC=m
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM_USER=m
+CONFIG_XFRM_STATISTICS=y
+CONFIG_NET_KEY=m
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_NET_IPVTI=m
+CONFIG_NET_FOU=m
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_DIAG=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BBR=m
+CONFIG_IPV6=m
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_ESP_OFFLOAD=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_ILA=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IPV6_PIMSM_V2=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+CONFIG_BRIDGE_NETFILTER=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_INET=y
+CONFIG_NF_TABLES_NETDEV=y
+CONFIG_NFT_NUMGEN=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_FLOW_OFFLOAD=m
+CONFIG_NFT_COUNTER=m
+CONFIG_NFT_CONNLIMIT=m
+CONFIG_NFT_LOG=m
+CONFIG_NFT_LIMIT=m
+CONFIG_NFT_MASQ=m
+CONFIG_NFT_REDIR=m
+CONFIG_NFT_NAT=m
+CONFIG_NFT_TUNNEL=m
+CONFIG_NFT_OBJREF=m
+CONFIG_NFT_QUEUE=m
+CONFIG_NFT_QUOTA=m
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_XFRM=m
+CONFIG_NFT_SOCKET=m
+CONFIG_NFT_OSF=m
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_SYNPROXY=m
+CONFIG_NFT_DUP_NETDEV=m
+CONFIG_NFT_FWD_NETDEV=m
+CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE=m
+CONFIG_NETFILTER_XT_SET=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HMARK=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_BPF=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_VS=m
+CONFIG_IP_VS_IPV6=y
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_PE_SIP=m
+CONFIG_NFT_DUP_IPV4=m
+CONFIG_NFT_FIB_IPV4=m
+CONFIG_NF_TABLES_ARP=y
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_LOG_ARP=m
+CONFIG_NF_LOG_IPV4=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+CONFIG_NFT_DUP_IPV6=m
+CONFIG_NFT_FIB_IPV6=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_TARGET_SYNPROXY=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_IP6_NF_TARGET_NPT=m
+CONFIG_NF_TABLES_BRIDGE=m
+CONFIG_NFT_BRIDGE_REJECT=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+CONFIG_ATM=m
+CONFIG_L2TP=m
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_BRIDGE=m
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_ATALK=m
+CONFIG_6LOWPAN=m
+CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
+CONFIG_MAC802154=m
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_CODEL=m
+CONFIG_NET_SCH_FQ_CODEL=m
+CONFIG_NET_SCH_CAKE=m
+CONFIG_NET_SCH_FQ=m
+CONFIG_NET_SCH_HHF=m
+CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_PLUG=m
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=m
+CONFIG_NET_CLS_BPF=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_EMATCH_IPSET=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_BATMAN_ADV=m
+CONFIG_OPENVSWITCH=m
+CONFIG_VSOCKETS=m
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_NET_PKTGEN=m
+CONFIG_HAMRADIO=y
+CONFIG_AX25=m
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_YAM=m
+CONFIG_CAN=m
+CONFIG_CAN_J1939=m
+CONFIG_CAN_ISOTP=m
+CONFIG_CAN_VCAN=m
+CONFIG_CAN_SLCAN=m
+CONFIG_CAN_MCP251X=m
+CONFIG_CAN_MCP251XFD=m
+CONFIG_CAN_EMS_USB=m
+CONFIG_CAN_GS_USB=m
+CONFIG_CAN_PEAK_USB=m
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+CONFIG_BT_6LOWPAN=m
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_3WIRE=y
+CONFIG_BT_HCIUART_BCM=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_CFG80211=m
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211=m
+CONFIG_MAC80211_MESH=y
+CONFIG_RFKILL=m
+CONFIG_RFKILL_INPUT=y
+CONFIG_NET_9P=m
+CONFIG_NFC=m
+CONFIG_PCI=y
+CONFIG_PCIE_BRCMSTB=y
+CONFIG_UEVENT_HELPER=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_RASPBERRYPI_FIRMWARE=y
+# CONFIG_EFI_VARS_PSTORE is not set
+CONFIG_MTD=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK2MTD=m
+CONFIG_MTD_SPI_NOR=m
+CONFIG_MTD_UBI=m
+CONFIG_OF_CONFIGFS=y
+CONFIG_ZRAM=m
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_RAM=y
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_ATA_OVER_ETH=m
+CONFIG_BLK_DEV_NVME=y
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_TI_ST=m
+CONFIG_SCSI=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_CHR_DEV_ST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_CHR_DEV_SG=m
+CONFIG_SCSI_ISCSI_ATTRS=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_ATA=m
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_MV=m
+CONFIG_MD=y
+CONFIG_MD_LINEAR=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+CONFIG_DM_CACHE=m
+CONFIG_DM_WRITECACHE=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_RAID=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_DELAY=m
+CONFIG_NETDEVICES=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_WIREGUARD=m
+CONFIG_IFB=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_IPVLAN=m
+CONFIG_VXLAN=m
+CONFIG_NETCONSOLE=m
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_NET_VRF=m
+CONFIG_VSOCKMON=m
+CONFIG_BCMGENET=y
+CONFIG_ENC28J60=m
+CONFIG_LAN743X=m
+CONFIG_QCA7000_SPI=m
+CONFIG_QCA7000_UART=m
+CONFIG_R8169=m
+CONFIG_WIZNET_W5100=m
+CONFIG_WIZNET_W5100_SPI=m
+CONFIG_MICREL_PHY=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_LAN78XX=y
+CONFIG_USB_USBNET=y
+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_HUAWEI_CDC_NCM=m
+CONFIG_USB_NET_CDC_MBIM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SR9700=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=y
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_USB_NET_AQC111=m
+CONFIG_ATH9K=m
+CONFIG_ATH9K_HTC=m
+CONFIG_CARL9170=m
+CONFIG_ATH6KL=m
+CONFIG_ATH6KL_USB=m
+CONFIG_AR5523=m
+CONFIG_AT76C50X_USB=m
+CONFIG_B43=m
+# CONFIG_B43_PHY_N is not set
+CONFIG_B43LEGACY=m
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_USB=y
+CONFIG_BRCMDBG=y
+CONFIG_HOSTAP=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_THINFIRM=m
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MT7601U=m
+CONFIG_MT76x0U=m
+CONFIG_MT76x2U=m
+CONFIG_RT2X00=m
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT3573=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RTL8187=m
+CONFIG_RTL8192CU=m
+CONFIG_RTL8XXXU=m
+CONFIG_USB_ZD1201=m
+CONFIG_ZD1211RW=m
+CONFIG_MAC80211_HWSIM=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_IEEE802154_AT86RF230=m
+CONFIG_IEEE802154_MRF24J40=m
+CONFIG_IEEE802154_CC2520=m
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=y
+# CONFIG_KEYBOARD_ATKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_TCA8418=m
+CONFIG_KEYBOARD_MATRIX=m
+CONFIG_KEYBOARD_CAP11XX=m
+# CONFIG_INPUT_MOUSE is not set
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_RPISENSE=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_EGALAX=m
+CONFIG_TOUCHSCREEN_EXC3000=m
+CONFIG_TOUCHSCREEN_GOODIX=m
+CONFIG_TOUCHSCREEN_ILI210X=m
+CONFIG_TOUCHSCREEN_EKTF2127=m
+CONFIG_TOUCHSCREEN_EDT_FT5X06=m
+CONFIG_TOUCHSCREEN_RASPBERRYPI_FW=m
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_STMPE=m
+CONFIG_TOUCHSCREEN_IQS5XX=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_CMA3000=m
+CONFIG_SERIO=m
+CONFIG_SERIO_RAW=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_BRCM_CHAR_DRIVERS=y
+CONFIG_BCM_VCIO=y
+CONFIG_BCM2835_DEVGPIOMEM=y
+CONFIG_RPIVID_MEM=m
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+# CONFIG_SERIAL_8250_DMA is not set
+CONFIG_SERIAL_8250_NR_UARTS=1
+CONFIG_SERIAL_8250_RUNTIME_UARTS=0
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_BCM2835AUX=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_SC16IS7XX=m
+CONFIG_SERIAL_SC16IS7XX_SPI=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_TTY_PRINTK=y
+CONFIG_HW_RANDOM=y
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS_SPI=m
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX_GPMUX=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_MUX_PINCTRL=m
+CONFIG_I2C_BCM2708=m
+CONFIG_I2C_BCM2835=m
+CONFIG_I2C_BRCMSTB=m
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_ROBOTFUZZ_OSIF=m
+CONFIG_I2C_TINY_USB=m
+CONFIG_SPI=y
+CONFIG_SPI_BCM2835=m
+CONFIG_SPI_BCM2835AUX=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_SLAVE=y
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_GPIO=m
+CONFIG_PINCTRL_MCP23S08=m
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_BCM_VIRT=y
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCA953X_IRQ=y
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_ARIZONA=m
+CONFIG_GPIO_FSM=m
+CONFIG_GPIO_STMPE=y
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MOCKUP=m
+CONFIG_W1=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_GPIO=m
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2413=m
+CONFIG_W1_SLAVE_DS2406=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_DS2781=m
+CONFIG_W1_SLAVE_DS28E04=m
+CONFIG_W1_SLAVE_DS28E17=m
+CONFIG_POWER_RESET_GPIO=y
+CONFIG_RPI_POE_POWER=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_BATTERY_GAUGE_LTC2941=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_GPIO_FAN=m
+CONFIG_SENSORS_IIO_HWMON=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_PWM_FAN=m
+CONFIG_SENSORS_RASPBERRYPI_HWMON=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SHT3x=m
+CONFIG_SENSORS_SHTC1=m
+CONFIG_SENSORS_EMC2305=m
+CONFIG_SENSORS_INA2XX=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_BCM2711_THERMAL=y
+CONFIG_BCM2835_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_GPIO_WATCHDOG=m
+CONFIG_BCM2835_WDT=y
+CONFIG_MFD_RASPBERRYPI_POE_HAT=m
+CONFIG_MFD_STMPE=y
+CONFIG_STMPE_SPI=y
+CONFIG_MFD_SYSCON=y
+CONFIG_MFD_ARIZONA_I2C=m
+CONFIG_MFD_ARIZONA_SPI=m
+CONFIG_MFD_WM5102=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_ARIZONA_LDO1=m
+CONFIG_REGULATOR_ARIZONA_MICSUPP=m
+CONFIG_REGULATOR_GPIO=y
+CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m
+CONFIG_RC_CORE=y
+CONFIG_LIRC=y
+CONFIG_BPF_LIRC_MODE2=y
+CONFIG_RC_DECODERS=y
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_SANYO_DECODER=m
+CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_XMP_DECODER=m
+CONFIG_IR_IMON_DECODER=m
+CONFIG_RC_DEVICES=y
+CONFIG_RC_ATI_REMOTE=m
+CONFIG_IR_IMON=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_IGUANA=m
+CONFIG_IR_TTUSBIR=m
+CONFIG_RC_LOOPBACK=m
+CONFIG_IR_GPIO_CIR=m
+CONFIG_IR_GPIO_TX=m
+CONFIG_IR_PWM_TX=m
+CONFIG_IR_TOY=m
+CONFIG_MEDIA_CEC_RC=y
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_DTCS033=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_JL2005BCD=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STK1135=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
+CONFIG_USB_GSPCA_TOUPTEK=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_USB_PWC=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_VIDEO_USBTV=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_STK1160_COMMON=m
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_AU0828_RC=y
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+CONFIG_DVB_USB=m
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_V2=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_AF9035=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_AZ6007=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB_MXL111SF=m
+CONFIG_DVB_USB_RTL28XXU=m
+CONFIG_DVB_USB_DVBSKY=m
+CONFIG_SMS_USB_DRV=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+CONFIG_DVB_AS102=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_V4L2=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_RADIO_SI470X=m
+CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
+CONFIG_RADIO_SI4713=m
+CONFIG_I2C_SI4713=m
+CONFIG_USB_MR800=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_SHARK=m
+CONFIG_RADIO_SHARK2=m
+CONFIG_USB_KEENE=m
+CONFIG_USB_MA901=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_WL1273=m
+CONFIG_RADIO_WL128X=m
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_MUX=m
+CONFIG_VIDEO_BCM2835_UNICAM=m
+CONFIG_V4L_TEST_DRIVERS=y
+CONFIG_VIDEO_VIMC=m
+CONFIG_VIDEO_VIVID=m
+CONFIG_VIDEO_VIM2M=m
+CONFIG_VIDEO_VICODEC=m
+CONFIG_VIDEO_UDA1342=m
+CONFIG_VIDEO_SONY_BTF_MPX=m
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_TC358743=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TW2804=m
+CONFIG_VIDEO_TW9903=m
+CONFIG_VIDEO_TW9906=m
+CONFIG_VIDEO_ARDUCAM_64MP=m
+CONFIG_VIDEO_ARDUCAM_PIVARIETY=m
+CONFIG_VIDEO_IMX219=m
+CONFIG_VIDEO_IMX258=m
+CONFIG_VIDEO_IMX290=m
+CONFIG_VIDEO_IMX296=m
+CONFIG_VIDEO_IMX477=m
+CONFIG_VIDEO_IMX519=m
+CONFIG_VIDEO_OV2311=m
+CONFIG_VIDEO_OV5647=m
+CONFIG_VIDEO_OV7251=m
+CONFIG_VIDEO_OV7640=m
+CONFIG_VIDEO_OV9281=m
+CONFIG_VIDEO_IRS1125=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_AD5398=m
+CONFIG_DRM=m
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+CONFIG_DRM_UDL=m
+CONFIG_DRM_PANEL_SIMPLE=m
+CONFIG_DRM_PANEL_ILITEK_ILI9806E=m
+CONFIG_DRM_PANEL_ILITEK_ILI9881C=m
+CONFIG_DRM_PANEL_JDI_LT070ME05000=m
+CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
+CONFIG_DRM_PANEL_SITRONIX_ST7701=m
+CONFIG_DRM_PANEL_TPO_Y17P=m
+CONFIG_DRM_DISPLAY_CONNECTOR=m
+CONFIG_DRM_SIMPLE_BRIDGE=m
+CONFIG_DRM_TOSHIBA_TC358762=m
+CONFIG_DRM_V3D=m
+CONFIG_DRM_VC4=m
+CONFIG_DRM_VC4_HDMI_CEC=y
+CONFIG_DRM_PANEL_MIPI_DBI=m
+CONFIG_TINYDRM_HX8357D=m
+CONFIG_TINYDRM_ILI9225=m
+CONFIG_TINYDRM_ILI9341=m
+CONFIG_TINYDRM_MI0283QT=m
+CONFIG_TINYDRM_REPAPER=m
+CONFIG_TINYDRM_ST7586=m
+CONFIG_TINYDRM_ST7735R=m
+CONFIG_DRM_GUD=m
+CONFIG_FB=y
+CONFIG_FB_BCM2708=y
+CONFIG_FB_UDL=m
+CONFIG_FB_SIMPLE=y
+CONFIG_FB_SSD1307=m
+CONFIG_FB_RPISENSE=m
+CONFIG_BACKLIGHT_PWM=m
+CONFIG_BACKLIGHT_RPI=m
+CONFIG_BACKLIGHT_GPIO=m
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_SOUND=y
+CONFIG_SND=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_USB_HIFACE=m
+CONFIG_SND_USB_TONEPORT=m
+CONFIG_SND_SOC=m
+CONFIG_SND_BCM2835_SOC_I2S=m
+CONFIG_SND_BCM2708_SOC_CHIPDIP_DAC=m
+CONFIG_SND_BCM2708_SOC_GOOGLEVOICEHAT_SOUNDCARD=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSHD=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSADC=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSADCPRO=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSDSP=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP=m
+CONFIG_SND_BCM2708_SOC_PIFI_40=m
+CONFIG_SND_BCM2708_SOC_RPI_CIRRUS=m
+CONFIG_SND_BCM2708_SOC_RPI_DAC=m
+CONFIG_SND_BCM2708_SOC_RPI_PROTO=m
+CONFIG_SND_BCM2708_SOC_JUSTBOOM_BOTH=m
+CONFIG_SND_BCM2708_SOC_JUSTBOOM_DAC=m
+CONFIG_SND_BCM2708_SOC_JUSTBOOM_DIGI=m
+CONFIG_SND_BCM2708_SOC_IQAUDIO_CODEC=m
+CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC=m
+CONFIG_SND_BCM2708_SOC_IQAUDIO_DIGI=m
+CONFIG_SND_BCM2708_SOC_I_SABRE_Q2M=m
+CONFIG_SND_BCM2708_SOC_ADAU1977_ADC=m
+CONFIG_SND_AUDIOINJECTOR_PI_SOUNDCARD=m
+CONFIG_SND_AUDIOINJECTOR_OCTO_SOUNDCARD=m
+CONFIG_SND_AUDIOINJECTOR_ISOLATED_SOUNDCARD=m
+CONFIG_SND_AUDIOSENSE_PI=m
+CONFIG_SND_DIGIDAC1_SOUNDCARD=m
+CONFIG_SND_BCM2708_SOC_DIONAUDIO_LOCO=m
+CONFIG_SND_BCM2708_SOC_DIONAUDIO_LOCO_V2=m
+CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC=m
+CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC_PLUS=m
+CONFIG_SND_BCM2708_SOC_ALLO_BOSS_DAC=m
+CONFIG_SND_BCM2708_SOC_ALLO_BOSS2_DAC=m
+CONFIG_SND_BCM2708_SOC_ALLO_DIGIONE=m
+CONFIG_SND_BCM2708_SOC_ALLO_KATANA_DAC=m
+CONFIG_SND_BCM2708_SOC_FE_PI_AUDIO=m
+CONFIG_SND_PISOUND=m
+CONFIG_SND_DACBERRY400=m
+CONFIG_SND_SOC_AD193X_SPI=m
+CONFIG_SND_SOC_AD193X_I2C=m
+CONFIG_SND_SOC_ADAU1701=m
+CONFIG_SND_SOC_ADAU7002=m
+CONFIG_SND_SOC_AK4554=m
+CONFIG_SND_SOC_CS4265=m
+CONFIG_SND_SOC_ICS43432=m
+CONFIG_SND_SOC_MA120X0P=m
+CONFIG_SND_SOC_MAX98357A=m
+CONFIG_SND_SOC_SPDIF=m
+CONFIG_SND_SOC_WM8804_I2C=m
+CONFIG_SND_SOC_WM8960=m
+CONFIG_SND_SIMPLE_CARD=m
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_UHID=m
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+CONFIG_HID_APPLE=m
+CONFIG_HID_ASUS=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_BETOP_FF=m
+CONFIG_HID_BIGBEN_FF=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_ELO=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_GEMBIRD=m
+CONFIG_HID_HOLTEK=m
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PLAYSTATION=m
+CONFIG_PLAYSTATION_FF=y
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_SONY_FF=y
+CONFIG_HID_SPEEDLINK=m
+CONFIG_HID_STEAM=y
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THINGM=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_HID_WACOM=m
+CONFIG_HID_WIIMOTE=m
+CONFIG_HID_XINMO=m
+CONFIG_HID_ZEROPLUS=m
+CONFIG_HID_ZYDACRON=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+CONFIG_USB=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_MON=m
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_PLATFORM=m
+CONFIG_USB_DWCOTG=y
+CONFIG_USB_PRINTER=m
+CONFIG_USB_TMC=m
+CONFIG_USB_STORAGE=y
+CONFIG_USB_STORAGE_REALTEK=m
+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
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+CONFIG_USBIP_VUDC=m
+CONFIG_USB_DWC2=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_XSENS_MT=m
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
+CONFIG_USB_SERIAL_DEBUG=m
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_YUREX=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+CONFIG_USB_CONFIGFS_F_UAC2=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_USB_CONFIGFS_F_PRINTER=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_USB_G_ACM_MS=m
+CONFIG_USB_G_MULTI=m
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_WEBCAM=m
+CONFIG_MMC=y
+CONFIG_MMC_BLOCK_MINORS=32
+CONFIG_MMC_BCM2835_MMC=y
+CONFIG_MMC_BCM2835_DMA=y
+CONFIG_MMC_BCM2835_SDHOST=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_IPROC=y
+CONFIG_MMC_SPI=m
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_PCA963X=m
+CONFIG_LEDS_PWM=y
+CONFIG_LEDS_IS31FL32XX=m
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_ONESHOT=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=y
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_GPIO=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+CONFIG_LEDS_TRIGGER_TRANSIENT=m
+CONFIG_LEDS_TRIGGER_CAMERA=m
+CONFIG_LEDS_TRIGGER_INPUT=y
+CONFIG_LEDS_TRIGGER_PANIC=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
+CONFIG_LEDS_TRIGGER_PATTERN=m
+CONFIG_LEDS_TRIGGER_ACTPWR=y
+CONFIG_ACCESSIBILITY=y
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_ABX80X=m
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8523=m
+CONFIG_RTC_DRV_PCF85063=m
+CONFIG_RTC_DRV_PCF85363=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3028=m
+CONFIG_RTC_DRV_RV8803=m
+CONFIG_RTC_DRV_SD3078=m
+CONFIG_RTC_DRV_M41T93=m
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1302=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RX4581=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_PCF2123=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_RV3029C2=m
+CONFIG_DMADEVICES=y
+CONFIG_DMA_BCM2835=y
+CONFIG_DMA_BCM2708=y
+CONFIG_DMABUF_HEAPS=y
+CONFIG_DMABUF_HEAPS_SYSTEM=y
+CONFIG_DMABUF_HEAPS_CMA=y
+CONFIG_AUXDISPLAY=y
+CONFIG_HD44780_COMMON=m
+CONFIG_HD44780=m
+CONFIG_UIO=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_VHOST_NET=m
+CONFIG_VHOST_VSOCK=m
+CONFIG_VHOST_CROSS_ENDIAN_LEGACY=y
+CONFIG_STAGING=y
+CONFIG_PRISM2_USB=m
+CONFIG_R8712U=m
+CONFIG_R8188EU=m
+CONFIG_88EU_AP_MODE=y
+CONFIG_VT6656=m
+CONFIG_STAGING_MEDIA=y
+CONFIG_VIDEO_RPIVID=m
+CONFIG_ASHMEM=y
+CONFIG_FB_TFT=m
+CONFIG_FB_TFT_AGM1264K_FL=m
+CONFIG_FB_TFT_BD663474=m
+CONFIG_FB_TFT_HX8340BN=m
+CONFIG_FB_TFT_HX8347D=m
+CONFIG_FB_TFT_HX8353D=m
+CONFIG_FB_TFT_HX8357D=m
+CONFIG_FB_TFT_ILI9163=m
+CONFIG_FB_TFT_ILI9320=m
+CONFIG_FB_TFT_ILI9325=m
+CONFIG_FB_TFT_ILI9340=m
+CONFIG_FB_TFT_ILI9341=m
+CONFIG_FB_TFT_ILI9481=m
+CONFIG_FB_TFT_ILI9486=m
+CONFIG_FB_TFT_PCD8544=m
+CONFIG_FB_TFT_RA8875=m
+CONFIG_FB_TFT_S6D02A1=m
+CONFIG_FB_TFT_S6D1121=m
+CONFIG_FB_TFT_SH1106=m
+CONFIG_FB_TFT_SSD1289=m
+CONFIG_FB_TFT_SSD1306=m
+CONFIG_FB_TFT_SSD1331=m
+CONFIG_FB_TFT_SSD1351=m
+CONFIG_FB_TFT_ST7735R=m
+CONFIG_FB_TFT_ST7789V=m
+CONFIG_FB_TFT_TINYLCD=m
+CONFIG_FB_TFT_TLS8204=m
+CONFIG_FB_TFT_UC1701=m
+CONFIG_FB_TFT_UPD161704=m
+CONFIG_FB_TFT_WATTEROTT=m
+CONFIG_BCM2835_VCHIQ=y
+CONFIG_SND_BCM2835=m
+CONFIG_VIDEO_BCM2835=m
+CONFIG_VIDEO_CODEC_BCM2835=m
+CONFIG_VIDEO_ISP_BCM2835=m
+CONFIG_CLK_RASPBERRYPI=y
+CONFIG_MAILBOX=y
+CONFIG_BCM2835_MBOX=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_RASPBERRYPI_POWER=y
+CONFIG_IIO=m
+CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_SW_TRIGGER=m
+CONFIG_MCP320X=m
+CONFIG_MCP3422=m
+CONFIG_TI_ADS1015=m
+CONFIG_BME680=m
+CONFIG_CCS811=m
+CONFIG_SENSIRION_SGP30=m
+CONFIG_SPS30_I2C=m
+CONFIG_MAX30102=m
+CONFIG_DHT11=m
+CONFIG_HDC100X=m
+CONFIG_HTU21=m
+CONFIG_INV_MPU6050_I2C=m
+CONFIG_APDS9960=m
+CONFIG_BH1750=m
+CONFIG_TSL4531=m
+CONFIG_VEML6070=m
+CONFIG_IIO_HRTIMER_TRIGGER=m
+CONFIG_IIO_INTERRUPT_TRIGGER=m
+CONFIG_IIO_SYSFS_TRIGGER=m
+CONFIG_BMP280=m
+CONFIG_MAXIM_THERMOCOUPLE=m
+CONFIG_MAX31856=m
+CONFIG_PWM_BCM2835=m
+CONFIG_PWM_PCA9685=m
+CONFIG_PWM_RASPBERRYPI_POE=m
+CONFIG_RPI_AXIPERF=m
+CONFIG_ANDROID=y
+CONFIG_ANDROID_BINDER_IPC=y
+CONFIG_ANDROID_BINDERFS=y
+CONFIG_NVMEM_RMEM=m
+CONFIG_MUX_GPIO=m
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_REISERFS_FS=m
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+CONFIG_JFS_STATISTICS=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+CONFIG_GFS2_FS=m
+CONFIG_OCFS2_FS=m
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_F2FS_FS=y
+CONFIG_F2FS_FS_SECURITY=y
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FANOTIFY=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_OVERLAY_FS=m
+CONFIG_FSCACHE=y
+CONFIG_FSCACHE_STATS=y
+CONFIG_CACHEFILES=y
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
+CONFIG_EXFAT_FS=m
+CONFIG_NTFS_FS=m
+CONFIG_NTFS_RW=y
+CONFIG_NTFS3_FS=m
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_ECRYPT_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_SUMMARY=y
+CONFIG_UBIFS_FS=m
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_PSTORE=y
+CONFIG_PSTORE_CONSOLE=y
+CONFIG_PSTORE_RAM=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_SWAP=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_NFS_FSCACHE=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_CEPH_FS=m
+CONFIG_CIFS=m
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_SMB_SERVER=m
+CONFIG_9P_FS=m
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_DLM=m
+CONFIG_SECURITY=y
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_LSM=""
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_LZ4=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_USER_API_RNG=m
+CONFIG_CRYPTO_USER_API_AEAD=m
+# CONFIG_CRYPTO_HW is not set
+CONFIG_CRC_ITU_T=y
+CONFIG_LIBCRC32C=y
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=5
+CONFIG_PRINTK_TIME=y
+CONFIG_BOOT_PRINTK_DELAY=y
+CONFIG_KGDB=y
+CONFIG_KGDB_KDB=y
+CONFIG_KDB_KEYBOARD=y
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_LATENCYTOP=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_STACK_TRACER=y
+CONFIG_IRQSOFF_TRACER=y
+CONFIG_SCHED_TRACER=y
+CONFIG_BLK_DEV_IO_TRACE=y
+# CONFIG_UPROBE_EVENTS is not set
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index 3183183b6a4e..265d3101e9bc 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -9,25 +9,21 @@
 # "Merge remote-tracking branch 'stable/linux-5.10.y' into rpi-5.10.y" commit.
 #
 # [1] https://github.com/raspberrypi/linux/tags
-#
-# WARNING: keep all rpi*-kernel packages in sync
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
 
 pkgname=rpi-kernel
-version=5.15.61
+version=5.15.68
 revision=1
-archs="armv6l*"
+_githash="ac7d1fdd216a11b75527e5d6b3a00d86ec28edfc"
+archs="armv6l* armv7l* aarch64*"
 wrksrc="linux-${_githash}"
 hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
 makedepends="ncurses-devel"
 maintainer="Piraty <piraty1@inbox.ru>"
 homepage="http://www.kernel.org"
 license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi zero/1 (${version%.*} series [git ${_gitshort}])"
+short_desc="Linux kernel for Raspberry Pi (${version%.*} series [git ${_githash:0:7}])"
 distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
+checksum=44699750d6e69ef47343af9cf9fbae3431a6da12990151273339324820c3bf0e
 python_version=3
 
 _kernver="${version}_${revision}"
@@ -40,52 +36,45 @@ noshlibprovides=yes
 triggers="kernel-hooks"
 # These files could be modified when an external module is built.
 mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
+ /usr/lib/modules/${_kernver}/modules.dep
+ /usr/lib/modules/${_kernver}/modules.dep.bin
+ /usr/lib/modules/${_kernver}/modules.symbols
+ /usr/lib/modules/${_kernver}/modules.symbols.bin
+ /usr/lib/modules/${_kernver}/modules.alias
+ /usr/lib/modules/${_kernver}/modules.alias.bin
+ /usr/lib/modules/${_kernver}/modules.devname"
 
 _arch=
+_image=
 case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
+	arm*) _arch=arm; _image=zImage ;;
+	aarch64*) _arch=arm64; _image=Image ;;
 esac
+
 _cross=
 if [ "$CROSS_BUILD" ]; then
 	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
 fi
 
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
 do_configure() {
 	local target defconfig
 
-	# Use upstream's default configuration, no need to maintain ours.
 	case "$XBPS_TARGET_MACHINE" in
-		armv6l*)
-			target=bcmrpi_defconfig
-			;;
+		# for zero, 1
+		armv6l*) target=bcmrpi_defconfig ;;
+		# for 2
+		armv7l*) target=bcm2709_defconfig ;;
+		# for 3, 4, zero 2
+		# combination of bcmrpi3_defconfig and bcm2711_defconfig
+		aarch64*)
+			target=rpi34_defconfig
+			cp "${FILESDIR}/${target}" "arch/${_arch}/configs"
+		;;
 	esac
 
 	defconfig="arch/${_arch}/configs/${target}"
 	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
 	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
 
 	# HID Controllers
 	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
@@ -98,26 +87,17 @@ do_configure() {
 	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
 	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
 }
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
 
+do_build() {
 	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
+	make ${makejobs} ${_cross} ARCH=${_arch} ${_image} modules dtbs
 }
+
 do_install() {
-	local hdrdest
+	local hdrdest="${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}"
 
 	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
+	vsed -i -e '2iexit 0' scripts/depmod.sh
 
 	# Install kernel, firmware and modules
 	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
@@ -125,11 +105,16 @@ do_install() {
 	# Install device tree blobs
 	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
 
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm/boot/zImage ${DESTDIR}/boot/kernel.img
+	# Install kernel image
+	# TODO: does zImage work on 64?
+	if [ "$_arch" = "arm" ]; then
+		vinstall arch/${_arch}/boot/${_image} 644 boot/kernel.img
+	else
+		vinstall arch/${_arch}/boot/${_image} 644 boot/kernel.img
+	fi
 
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
+	# Tell the rpi bootloader where to find the kernel
+	echo "kernel=kernel.img" > ${DESTDIR}/boot/kernel.txt
 
 	# Switch to /usr.
 	vmkdir usr
@@ -224,6 +209,13 @@ do_install() {
 	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
 }
 
+subpackages="rpi-kernel-headers"
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7l*) subpackages+=" rpi2-kernel rpi2-kernel-headers" ;;
+	aarch64*) subpackages+=" rpi3-kernel rpi3-kernel-headers rpi4-kernel rpi4-kernel-headers" ;;
+esac
+
 rpi-kernel-headers_package() {
 	nostrip=yes
 	noverifyrdeps=yes
@@ -235,33 +227,38 @@ rpi-kernel-headers_package() {
 	}
 }
 
+rpi2-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
 
-# support legacy systems (before rpi-kernel was split to rpi{,2,3})
-# archs != armv6* are emtpy meta packages to pull the new rpi{$n}-kernel package
-archs+=" armv7l* aarch64*"
-case "$XBPS_TARGET_MACHINE" in
-	armv6*) : ;;
-	*)
-		build_style=meta
-		short_desc="Linux kernel for Raspberry Pi (transitional dummy package)"
-
-		pre_configure() { : ; }
-		do_configure() { : ; }
-		do_build() { : ; }
-		do_install() { : ; }
-
-		case "$XBPS_TARGET_MACHINE" in
-			armv7*) depends=rpi2-kernel ;;
-			aarch64*) depends=rpi3-kernel ;;
-		esac
-
-		rpi-kernel-headers_package() {
-			build_style=meta
-			short_desc="Linux kernel headers for Raspberry Pi (transitional dummy package)"
-			case "$XBPS_TARGET_MACHINE" in
-				armv7*) depends=rpi2-kernel-headers ;;
-				aarch64*) depends=rpi3-kernel-headers ;;
-			esac
-		}
-		;;
-esac
+rpi2-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
+
+rpi3-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
+
+rpi3-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
+
+rpi4-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
+
+rpi4-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
diff --git a/srcpkgs/rpi2-kernel b/srcpkgs/rpi2-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi2-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi2-kernel-headers b/srcpkgs/rpi2-kernel-headers
index fbe6d91aeb7f..3b4ec073331b 120000
--- a/srcpkgs/rpi2-kernel-headers
+++ b/srcpkgs/rpi2-kernel-headers
@@ -1 +1 @@
-rpi2-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi2-kernel/template b/srcpkgs/rpi2-kernel/template
deleted file mode 100644
index 8963b855a4de..000000000000
--- a/srcpkgs/rpi2-kernel/template
+++ /dev/null
@@ -1,228 +0,0 @@
-# Template file for 'rpi2-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi2-kernel
-version=5.10.110
-revision=1
-archs="armv7l*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 2 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		armv7l*)
-			target=bcm2709_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	# Disable GCC plugins
-	echo "# CONFIG_GCC_PLUGINS is not set" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm/boot/zImage ${DESTDIR}/boot/kernel7.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi2-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}
diff --git a/srcpkgs/rpi3-kernel b/srcpkgs/rpi3-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi3-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi3-kernel-headers b/srcpkgs/rpi3-kernel-headers
index 29e9f333d668..3b4ec073331b 120000
--- a/srcpkgs/rpi3-kernel-headers
+++ b/srcpkgs/rpi3-kernel-headers
@@ -1 +1 @@
-rpi3-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi3-kernel/template b/srcpkgs/rpi3-kernel/template
deleted file mode 100644
index 20d51a6b8579..000000000000
--- a/srcpkgs/rpi3-kernel/template
+++ /dev/null
@@ -1,228 +0,0 @@
-# Template file for 'rpi3-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi3-kernel
-version=5.15.61
-revision=1
-archs="aarch64*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 3 / Zero 2 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		aarch64*)
-			target=bcmrpi3_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# move dtb that ended up in /boot/broadcom
-	mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm64/boot/Image ${DESTDIR}/boot/kernel8.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi3-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}
diff --git a/srcpkgs/rpi4-kernel b/srcpkgs/rpi4-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi4-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi4-kernel-headers b/srcpkgs/rpi4-kernel-headers
index 9c2fad143506..3b4ec073331b 120000
--- a/srcpkgs/rpi4-kernel-headers
+++ b/srcpkgs/rpi4-kernel-headers
@@ -1 +1 @@
-rpi4-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi4-kernel/template b/srcpkgs/rpi4-kernel/template
deleted file mode 100644
index d4fb3c72906e..000000000000
--- a/srcpkgs/rpi4-kernel/template
+++ /dev/null
@@ -1,229 +0,0 @@
-# Template file for 'rpi4-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi4-kernel
-version=5.15.61
-revision=1
-archs="aarch64*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 4 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-conflicts=rpi3-kernel
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		aarch64*)
-			target=bcm2711_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# move dtb that ended up in /boot/broadcom
-	mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm64/boot/Image ${DESTDIR}/boot/kernel8.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi4-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PR PATCH] [Updated] rpi*-kernel: update to 5.15.68, merge templates
  2022-09-24  9:42 [PR PATCH] rpi*-kernel: update to 5.15.68, merge templates classabbyamp
@ 2022-09-24 23:51 ` classabbyamp
  2022-09-25  6:59 ` classabbyamp
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: classabbyamp @ 2022-09-24 23:51 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1048 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages the-rpi-unification-of-2024
https://github.com/void-linux/void-packages/pull/39442

rpi*-kernel: update to 5.15.68, merge templates
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**

### TODO
- [ ] test if `zImage` works for `aarch64*` (it might, according to [the note here](https://www.raspberrypi.com/documentation/computers/config_txt.html#arm_64bit))
- [ ] test upgrade on all platforms
     - [ ] ensure upgrade cannot fail (due to `config.txt` being in `rpi-firmware` and a conf file, this is not necessarily trivial)
- [ ] fix build error on `armv7l*`: `/usr/lib/gcc/armv7l-linux-gnueabihf/10.2.1/plugin/include/system.h:687:10: fatal error: gmp.h: No such file or directory`


A patch file from https://github.com/void-linux/void-packages/pull/39442.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-the-rpi-unification-of-2024-39442.patch --]
[-- Type: text/x-diff, Size: 76110 bytes --]

From 16c8f7c7a89d515848cb3bd9db004a4765451403 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:35:07 -0400
Subject: [PATCH 1/3] rpi-base: re-merge rpi kernel packages

---
 srcpkgs/rpi-base/template | 48 +++++++++------------------------------
 1 file changed, 11 insertions(+), 37 deletions(-)

diff --git a/srcpkgs/rpi-base/template b/srcpkgs/rpi-base/template
index 8940033c83ab..3b22d684f4b2 100644
--- a/srcpkgs/rpi-base/template
+++ b/srcpkgs/rpi-base/template
@@ -1,10 +1,9 @@
 # Template file for 'rpi-base'
 pkgname=rpi-base
 version=3.0
-revision=2
+revision=3
 archs="armv6l* armv7l* aarch64*"
-_base_depends="virtual?ntp-daemon rpi-firmware"
-depends="${_base_depends} rpi-kernel"
+depends="virtual?ntp-daemon rpi-firmware rpi-kernel"
 short_desc="Void Linux Raspberry Pi base files"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="Public Domain"
@@ -26,45 +25,20 @@ case "$XBPS_TARGET_MACHINE" in
 		;;
 esac
 
-# support legacy systems (before rpi-kernel was split to rpi{,2,3})
-# archs != armv6* are emtpy meta packages to pull the new rpi${n}-base package
-case "$XBPS_TARGET_MACHINE" in
-	armv6*) : ;;
-	*)
-		build_style=meta
-		short_desc+=" (transitional dummy package)"
-
-	 	do_install() { : ; }
-
-		case "$XBPS_TARGET_MACHINE" in
-			armv7*) depends="rpi2-base" ;;
-			aarch64*) depends="rpi3-base" ;;
-		esac
-		;;
-esac
-
 rpi2-base_package() {
-	depends="${_base_depends} rpi2-kernel"
-	short_desc="Void Linux Raspberry Pi 2 base files"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }
 
-
 rpi3-base_package() {
-	depends="${_base_depends} rpi3-kernel"
-	short_desc="Void Linux Raspberry Pi 3 base files"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }
 
 rpi4-base_package() {
-	depends="${_base_depends} rpi4-kernel"
-	short_desc="Void Linux Raspberry Pi 4 base files"
-	conflicts="rpi3-base"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }

From 6d231314f322db4e1df8c655d40b6ad84afc374f Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:37:19 -0400
Subject: [PATCH 2/3] rpi-firmware: add kernel config include

this is required for unification of rpi*-kernel
---
 srcpkgs/rpi-firmware/files/config.txt | 3 +++
 srcpkgs/rpi-firmware/template         | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/srcpkgs/rpi-firmware/files/config.txt b/srcpkgs/rpi-firmware/files/config.txt
index ea6233326d61..2b5433d8fa81 100755
--- a/srcpkgs/rpi-firmware/files/config.txt
+++ b/srcpkgs/rpi-firmware/files/config.txt
@@ -84,3 +84,6 @@
 
 ## Enable the BCM2835 audio driver
 #dtparam=audio=on
+
+# Tell the bootloader where the kernel is
+include kernel.txt
diff --git a/srcpkgs/rpi-firmware/template b/srcpkgs/rpi-firmware/template
index 62d809b840ce..df20bfa19e1d 100644
--- a/srcpkgs/rpi-firmware/template
+++ b/srcpkgs/rpi-firmware/template
@@ -4,7 +4,7 @@ _gitshort="${_githash:0:7}"
 
 pkgname=rpi-firmware
 version=20220823
-revision=2
+revision=3
 archs="armv6l* armv7l* aarch64*"
 wrksrc="firmware-${_githash}"
 provides="linux-firmware-broadcom-${version}_${revision}"

From 25d5a13be768d5b340ca24c2dcc80f894e9c3664 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:38:28 -0400
Subject: [PATCH 3/3] rpi*-kernel: update to 5.15.68, merge templates

---
 srcpkgs/rpi-kernel/files/rpi34_defconfig | 1613 ++++++++++++++++++++++
 srcpkgs/rpi-kernel/template              |  168 +--
 srcpkgs/rpi2-kernel                      |    1 +
 srcpkgs/rpi2-kernel-headers              |    2 +-
 srcpkgs/rpi2-kernel/template             |  228 ---
 srcpkgs/rpi3-kernel                      |    1 +
 srcpkgs/rpi3-kernel-headers              |    2 +-
 srcpkgs/rpi3-kernel/template             |  228 ---
 srcpkgs/rpi4-kernel                      |    1 +
 srcpkgs/rpi4-kernel-headers              |    2 +-
 srcpkgs/rpi4-kernel/template             |  229 ---
 11 files changed, 1703 insertions(+), 772 deletions(-)
 create mode 100644 srcpkgs/rpi-kernel/files/rpi34_defconfig
 create mode 120000 srcpkgs/rpi2-kernel
 delete mode 100644 srcpkgs/rpi2-kernel/template
 create mode 120000 srcpkgs/rpi3-kernel
 delete mode 100644 srcpkgs/rpi3-kernel/template
 create mode 120000 srcpkgs/rpi4-kernel
 delete mode 100644 srcpkgs/rpi4-kernel/template

diff --git a/srcpkgs/rpi-kernel/files/rpi34_defconfig b/srcpkgs/rpi-kernel/files/rpi34_defconfig
new file mode 100644
index 000000000000..6e0750be2b8a
--- /dev/null
+++ b/srcpkgs/rpi-kernel/files/rpi34_defconfig
@@ -0,0 +1,1613 @@
+CONFIG_LOCALVERSION="-v8"
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_GENERIC_IRQ_DEBUGFS=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_BPF_JIT=y
+CONFIG_PREEMPT=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_IKCONFIG=m
+CONFIG_IKCONFIG_PROC=y
+CONFIG_MEMCG=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CPUSETS=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_PERF=y
+CONFIG_CGROUP_BPF=y
+CONFIG_NAMESPACES=y
+CONFIG_USER_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_EMBEDDED=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_PROFILING=y
+CONFIG_ARCH_BCM2835=y
+# CONFIG_CAVIUM_ERRATUM_22375 is not set
+# CONFIG_CAVIUM_ERRATUM_23154 is not set
+# CONFIG_CAVIUM_ERRATUM_27456 is not set
+CONFIG_SCHED_MC=y
+CONFIG_NR_CPUS=256
+CONFIG_HZ_100=y
+CONFIG_HZ=100
+CONFIG_COMPAT=y
+CONFIG_ARMV8_DEPRECATED=y
+CONFIG_SWP_EMULATION=y
+CONFIG_CP15_BARRIER_EMULATION=y
+CONFIG_SETEND_EMULATION=y
+CONFIG_RANDOMIZE_BASE=y
+CONFIG_CMDLINE="console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait"
+# CONFIG_SUSPEND is not set
+CONFIG_CPU_IDLE=y
+CONFIG_ARM_CPUIDLE=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+CONFIG_CPUFREQ_DT=y
+CONFIG_ARM_RASPBERRYPI_CPUFREQ=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=y
+CONFIG_CRYPTO_AES_ARM64_BS=m
+CONFIG_JUMP_LABEL=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_MODULE_COMPRESS_XZ=y
+CONFIG_BLK_DEV_THROTTLING=y
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_MAC_PARTITION=y
+CONFIG_BINFMT_MISC=m
+CONFIG_CLEANCACHE=y
+CONFIG_FRONTSWAP=y
+CONFIG_CMA=y
+CONFIG_ZSWAP=y
+CONFIG_Z3FOLD=m
+CONFIG_ZSMALLOC=m
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM_USER=m
+CONFIG_XFRM_STATISTICS=y
+CONFIG_NET_KEY=m
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_NET_IPVTI=m
+CONFIG_NET_FOU=m
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_DIAG=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BBR=m
+CONFIG_IPV6=m
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_ESP_OFFLOAD=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_ILA=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IPV6_PIMSM_V2=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+CONFIG_BRIDGE_NETFILTER=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_INET=y
+CONFIG_NF_TABLES_NETDEV=y
+CONFIG_NFT_NUMGEN=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_FLOW_OFFLOAD=m
+CONFIG_NFT_COUNTER=m
+CONFIG_NFT_CONNLIMIT=m
+CONFIG_NFT_LOG=m
+CONFIG_NFT_LIMIT=m
+CONFIG_NFT_MASQ=m
+CONFIG_NFT_REDIR=m
+CONFIG_NFT_NAT=m
+CONFIG_NFT_TUNNEL=m
+CONFIG_NFT_OBJREF=m
+CONFIG_NFT_QUEUE=m
+CONFIG_NFT_QUOTA=m
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_XFRM=m
+CONFIG_NFT_SOCKET=m
+CONFIG_NFT_OSF=m
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_SYNPROXY=m
+CONFIG_NFT_DUP_NETDEV=m
+CONFIG_NFT_FWD_NETDEV=m
+CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE=m
+CONFIG_NETFILTER_XT_SET=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HMARK=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_BPF=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_VS=m
+CONFIG_IP_VS_IPV6=y
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_PE_SIP=m
+CONFIG_NFT_DUP_IPV4=m
+CONFIG_NFT_FIB_IPV4=m
+CONFIG_NF_TABLES_ARP=y
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_LOG_ARP=m
+CONFIG_NF_LOG_IPV4=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+CONFIG_NFT_DUP_IPV6=m
+CONFIG_NFT_FIB_IPV6=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_TARGET_SYNPROXY=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_IP6_NF_TARGET_NPT=m
+CONFIG_NF_TABLES_BRIDGE=m
+CONFIG_NFT_BRIDGE_REJECT=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+CONFIG_ATM=m
+CONFIG_L2TP=m
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_BRIDGE=m
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_ATALK=m
+CONFIG_6LOWPAN=m
+CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
+CONFIG_MAC802154=m
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_CODEL=m
+CONFIG_NET_SCH_FQ_CODEL=m
+CONFIG_NET_SCH_CAKE=m
+CONFIG_NET_SCH_FQ=m
+CONFIG_NET_SCH_HHF=m
+CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_PLUG=m
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=m
+CONFIG_NET_CLS_BPF=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_EMATCH_IPSET=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_BATMAN_ADV=m
+CONFIG_OPENVSWITCH=m
+CONFIG_VSOCKETS=m
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_NET_PKTGEN=m
+CONFIG_HAMRADIO=y
+CONFIG_AX25=m
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_YAM=m
+CONFIG_CAN=m
+CONFIG_CAN_J1939=m
+CONFIG_CAN_ISOTP=m
+CONFIG_CAN_VCAN=m
+CONFIG_CAN_SLCAN=m
+CONFIG_CAN_MCP251X=m
+CONFIG_CAN_MCP251XFD=m
+CONFIG_CAN_EMS_USB=m
+CONFIG_CAN_GS_USB=m
+CONFIG_CAN_PEAK_USB=m
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+CONFIG_BT_6LOWPAN=m
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_3WIRE=y
+CONFIG_BT_HCIUART_BCM=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_CFG80211=m
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211=m
+CONFIG_MAC80211_MESH=y
+CONFIG_RFKILL=m
+CONFIG_RFKILL_INPUT=y
+CONFIG_NET_9P=m
+CONFIG_NFC=m
+CONFIG_PCI=y
+CONFIG_PCIE_BRCMSTB=y
+CONFIG_UEVENT_HELPER=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_RASPBERRYPI_FIRMWARE=y
+# CONFIG_EFI_VARS_PSTORE is not set
+CONFIG_MTD=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK2MTD=m
+CONFIG_MTD_SPI_NOR=m
+CONFIG_MTD_UBI=m
+CONFIG_OF_CONFIGFS=y
+CONFIG_ZRAM=m
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_RAM=y
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_ATA_OVER_ETH=m
+CONFIG_BLK_DEV_NVME=y
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_TI_ST=m
+CONFIG_SCSI=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_CHR_DEV_ST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_CHR_DEV_SG=m
+CONFIG_SCSI_ISCSI_ATTRS=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_ATA=m
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_MV=m
+CONFIG_MD=y
+CONFIG_MD_LINEAR=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+CONFIG_DM_CACHE=m
+CONFIG_DM_WRITECACHE=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_RAID=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_DELAY=m
+CONFIG_NETDEVICES=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_WIREGUARD=m
+CONFIG_IFB=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_IPVLAN=m
+CONFIG_VXLAN=m
+CONFIG_NETCONSOLE=m
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_NET_VRF=m
+CONFIG_VSOCKMON=m
+CONFIG_BCMGENET=y
+CONFIG_ENC28J60=m
+CONFIG_LAN743X=m
+CONFIG_QCA7000_SPI=m
+CONFIG_QCA7000_UART=m
+CONFIG_R8169=m
+CONFIG_WIZNET_W5100=m
+CONFIG_WIZNET_W5100_SPI=m
+CONFIG_MICREL_PHY=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_LAN78XX=y
+CONFIG_USB_USBNET=y
+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_HUAWEI_CDC_NCM=m
+CONFIG_USB_NET_CDC_MBIM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SR9700=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=y
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_USB_NET_AQC111=m
+CONFIG_ATH9K=m
+CONFIG_ATH9K_HTC=m
+CONFIG_CARL9170=m
+CONFIG_ATH6KL=m
+CONFIG_ATH6KL_USB=m
+CONFIG_AR5523=m
+CONFIG_AT76C50X_USB=m
+CONFIG_B43=m
+# CONFIG_B43_PHY_N is not set
+CONFIG_B43LEGACY=m
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_USB=y
+CONFIG_BRCMDBG=y
+CONFIG_HOSTAP=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_THINFIRM=m
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MT7601U=m
+CONFIG_MT76x0U=m
+CONFIG_MT76x2U=m
+CONFIG_RT2X00=m
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT3573=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RTL8187=m
+CONFIG_RTL8192CU=m
+CONFIG_RTL8XXXU=m
+CONFIG_USB_ZD1201=m
+CONFIG_ZD1211RW=m
+CONFIG_MAC80211_HWSIM=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_IEEE802154_AT86RF230=m
+CONFIG_IEEE802154_MRF24J40=m
+CONFIG_IEEE802154_CC2520=m
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=y
+# CONFIG_KEYBOARD_ATKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_TCA8418=m
+CONFIG_KEYBOARD_MATRIX=m
+CONFIG_KEYBOARD_CAP11XX=m
+# CONFIG_INPUT_MOUSE is not set
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_RPISENSE=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_EGALAX=m
+CONFIG_TOUCHSCREEN_EXC3000=m
+CONFIG_TOUCHSCREEN_GOODIX=m
+CONFIG_TOUCHSCREEN_ILI210X=m
+CONFIG_TOUCHSCREEN_EKTF2127=m
+CONFIG_TOUCHSCREEN_EDT_FT5X06=m
+CONFIG_TOUCHSCREEN_RASPBERRYPI_FW=m
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_STMPE=m
+CONFIG_TOUCHSCREEN_IQS5XX=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_CMA3000=m
+CONFIG_SERIO=m
+CONFIG_SERIO_RAW=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_BRCM_CHAR_DRIVERS=y
+CONFIG_BCM_VCIO=y
+CONFIG_BCM2835_DEVGPIOMEM=y
+CONFIG_RPIVID_MEM=m
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+# CONFIG_SERIAL_8250_DMA is not set
+CONFIG_SERIAL_8250_NR_UARTS=1
+CONFIG_SERIAL_8250_RUNTIME_UARTS=0
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_BCM2835AUX=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_SC16IS7XX=m
+CONFIG_SERIAL_SC16IS7XX_SPI=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_TTY_PRINTK=y
+CONFIG_HW_RANDOM=y
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS_SPI=m
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX_GPMUX=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_MUX_PINCTRL=m
+CONFIG_I2C_BCM2708=m
+CONFIG_I2C_BCM2835=m
+CONFIG_I2C_BRCMSTB=m
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_ROBOTFUZZ_OSIF=m
+CONFIG_I2C_TINY_USB=m
+CONFIG_SPI=y
+CONFIG_SPI_BCM2835=m
+CONFIG_SPI_BCM2835AUX=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_SLAVE=y
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_GPIO=m
+CONFIG_PINCTRL_MCP23S08=m
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_BCM_VIRT=y
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCA953X_IRQ=y
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_ARIZONA=m
+CONFIG_GPIO_FSM=m
+CONFIG_GPIO_STMPE=y
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MOCKUP=m
+CONFIG_W1=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_GPIO=m
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2413=m
+CONFIG_W1_SLAVE_DS2406=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_DS2781=m
+CONFIG_W1_SLAVE_DS28E04=m
+CONFIG_W1_SLAVE_DS28E17=m
+CONFIG_POWER_RESET_GPIO=y
+CONFIG_RPI_POE_POWER=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_BATTERY_GAUGE_LTC2941=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_GPIO_FAN=m
+CONFIG_SENSORS_IIO_HWMON=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_PWM_FAN=m
+CONFIG_SENSORS_RASPBERRYPI_HWMON=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SHT3x=m
+CONFIG_SENSORS_SHTC1=m
+CONFIG_SENSORS_EMC2305=m
+CONFIG_SENSORS_INA2XX=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_BCM2711_THERMAL=y
+CONFIG_BCM2835_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_GPIO_WATCHDOG=m
+CONFIG_BCM2835_WDT=y
+CONFIG_MFD_RASPBERRYPI_POE_HAT=m
+CONFIG_MFD_STMPE=y
+CONFIG_STMPE_SPI=y
+CONFIG_MFD_SYSCON=y
+CONFIG_MFD_ARIZONA_I2C=m
+CONFIG_MFD_ARIZONA_SPI=m
+CONFIG_MFD_WM5102=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_ARIZONA_LDO1=m
+CONFIG_REGULATOR_ARIZONA_MICSUPP=m
+CONFIG_REGULATOR_GPIO=y
+CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m
+CONFIG_RC_CORE=y
+CONFIG_LIRC=y
+CONFIG_BPF_LIRC_MODE2=y
+CONFIG_RC_DECODERS=y
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_SANYO_DECODER=m
+CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_XMP_DECODER=m
+CONFIG_IR_IMON_DECODER=m
+CONFIG_RC_DEVICES=y
+CONFIG_RC_ATI_REMOTE=m
+CONFIG_IR_IMON=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_IGUANA=m
+CONFIG_IR_TTUSBIR=m
+CONFIG_RC_LOOPBACK=m
+CONFIG_IR_GPIO_CIR=m
+CONFIG_IR_GPIO_TX=m
+CONFIG_IR_PWM_TX=m
+CONFIG_IR_TOY=m
+CONFIG_MEDIA_CEC_RC=y
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_DTCS033=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_JL2005BCD=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STK1135=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
+CONFIG_USB_GSPCA_TOUPTEK=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_USB_PWC=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_VIDEO_USBTV=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_STK1160_COMMON=m
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_AU0828_RC=y
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+CONFIG_DVB_USB=m
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_V2=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_AF9035=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_AZ6007=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB_MXL111SF=m
+CONFIG_DVB_USB_RTL28XXU=m
+CONFIG_DVB_USB_DVBSKY=m
+CONFIG_SMS_USB_DRV=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+CONFIG_DVB_AS102=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_V4L2=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_RADIO_SI470X=m
+CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
+CONFIG_RADIO_SI4713=m
+CONFIG_I2C_SI4713=m
+CONFIG_USB_MR800=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_SHARK=m
+CONFIG_RADIO_SHARK2=m
+CONFIG_USB_KEENE=m
+CONFIG_USB_MA901=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_WL1273=m
+CONFIG_RADIO_WL128X=m
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_MUX=m
+CONFIG_VIDEO_BCM2835_UNICAM=m
+CONFIG_V4L_TEST_DRIVERS=y
+CONFIG_VIDEO_VIMC=m
+CONFIG_VIDEO_VIVID=m
+CONFIG_VIDEO_VIM2M=m
+CONFIG_VIDEO_VICODEC=m
+CONFIG_VIDEO_UDA1342=m
+CONFIG_VIDEO_SONY_BTF_MPX=m
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_TC358743=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TW2804=m
+CONFIG_VIDEO_TW9903=m
+CONFIG_VIDEO_TW9906=m
+CONFIG_VIDEO_ARDUCAM_64MP=m
+CONFIG_VIDEO_ARDUCAM_PIVARIETY=m
+CONFIG_VIDEO_IMX219=m
+CONFIG_VIDEO_IMX258=m
+CONFIG_VIDEO_IMX290=m
+CONFIG_VIDEO_IMX296=m
+CONFIG_VIDEO_IMX477=m
+CONFIG_VIDEO_IMX519=m
+CONFIG_VIDEO_OV2311=m
+CONFIG_VIDEO_OV5647=m
+CONFIG_VIDEO_OV7251=m
+CONFIG_VIDEO_OV7640=m
+CONFIG_VIDEO_OV9281=m
+CONFIG_VIDEO_IRS1125=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_AD5398=m
+CONFIG_DRM=m
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+CONFIG_DRM_UDL=m
+CONFIG_DRM_PANEL_SIMPLE=m
+CONFIG_DRM_PANEL_ILITEK_ILI9806E=m
+CONFIG_DRM_PANEL_ILITEK_ILI9881C=m
+CONFIG_DRM_PANEL_JDI_LT070ME05000=m
+CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
+CONFIG_DRM_PANEL_SITRONIX_ST7701=m
+CONFIG_DRM_PANEL_TPO_Y17P=m
+CONFIG_DRM_DISPLAY_CONNECTOR=m
+CONFIG_DRM_SIMPLE_BRIDGE=m
+CONFIG_DRM_TOSHIBA_TC358762=m
+CONFIG_DRM_V3D=m
+CONFIG_DRM_VC4=m
+CONFIG_DRM_VC4_HDMI_CEC=y
+CONFIG_DRM_PANEL_MIPI_DBI=m
+CONFIG_TINYDRM_HX8357D=m
+CONFIG_TINYDRM_ILI9225=m
+CONFIG_TINYDRM_ILI9341=m
+CONFIG_TINYDRM_MI0283QT=m
+CONFIG_TINYDRM_REPAPER=m
+CONFIG_TINYDRM_ST7586=m
+CONFIG_TINYDRM_ST7735R=m
+CONFIG_DRM_GUD=m
+CONFIG_FB=y
+CONFIG_FB_BCM2708=y
+CONFIG_FB_UDL=m
+CONFIG_FB_SIMPLE=y
+CONFIG_FB_SSD1307=m
+CONFIG_FB_RPISENSE=m
+CONFIG_BACKLIGHT_PWM=m
+CONFIG_BACKLIGHT_RPI=m
+CONFIG_BACKLIGHT_GPIO=m
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_SOUND=y
+CONFIG_SND=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_USB_HIFACE=m
+CONFIG_SND_USB_TONEPORT=m
+CONFIG_SND_SOC=m
+CONFIG_SND_BCM2835_SOC_I2S=m
+CONFIG_SND_BCM2708_SOC_CHIPDIP_DAC=m
+CONFIG_SND_BCM2708_SOC_GOOGLEVOICEHAT_SOUNDCARD=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSHD=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSADC=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSADCPRO=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSDSP=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP=m
+CONFIG_SND_BCM2708_SOC_PIFI_40=m
+CONFIG_SND_BCM2708_SOC_RPI_CIRRUS=m
+CONFIG_SND_BCM2708_SOC_RPI_DAC=m
+CONFIG_SND_BCM2708_SOC_RPI_PROTO=m
+CONFIG_SND_BCM2708_SOC_JUSTBOOM_BOTH=m
+CONFIG_SND_BCM2708_SOC_JUSTBOOM_DAC=m
+CONFIG_SND_BCM2708_SOC_JUSTBOOM_DIGI=m
+CONFIG_SND_BCM2708_SOC_IQAUDIO_CODEC=m
+CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC=m
+CONFIG_SND_BCM2708_SOC_IQAUDIO_DIGI=m
+CONFIG_SND_BCM2708_SOC_I_SABRE_Q2M=m
+CONFIG_SND_BCM2708_SOC_ADAU1977_ADC=m
+CONFIG_SND_AUDIOINJECTOR_PI_SOUNDCARD=m
+CONFIG_SND_AUDIOINJECTOR_OCTO_SOUNDCARD=m
+CONFIG_SND_AUDIOINJECTOR_ISOLATED_SOUNDCARD=m
+CONFIG_SND_AUDIOSENSE_PI=m
+CONFIG_SND_DIGIDAC1_SOUNDCARD=m
+CONFIG_SND_BCM2708_SOC_DIONAUDIO_LOCO=m
+CONFIG_SND_BCM2708_SOC_DIONAUDIO_LOCO_V2=m
+CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC=m
+CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC_PLUS=m
+CONFIG_SND_BCM2708_SOC_ALLO_BOSS_DAC=m
+CONFIG_SND_BCM2708_SOC_ALLO_BOSS2_DAC=m
+CONFIG_SND_BCM2708_SOC_ALLO_DIGIONE=m
+CONFIG_SND_BCM2708_SOC_ALLO_KATANA_DAC=m
+CONFIG_SND_BCM2708_SOC_FE_PI_AUDIO=m
+CONFIG_SND_PISOUND=m
+CONFIG_SND_DACBERRY400=m
+CONFIG_SND_SOC_AD193X_SPI=m
+CONFIG_SND_SOC_AD193X_I2C=m
+CONFIG_SND_SOC_ADAU1701=m
+CONFIG_SND_SOC_ADAU7002=m
+CONFIG_SND_SOC_AK4554=m
+CONFIG_SND_SOC_CS4265=m
+CONFIG_SND_SOC_ICS43432=m
+CONFIG_SND_SOC_MA120X0P=m
+CONFIG_SND_SOC_MAX98357A=m
+CONFIG_SND_SOC_SPDIF=m
+CONFIG_SND_SOC_WM8804_I2C=m
+CONFIG_SND_SOC_WM8960=m
+CONFIG_SND_SIMPLE_CARD=m
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_UHID=m
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+CONFIG_HID_APPLE=m
+CONFIG_HID_ASUS=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_BETOP_FF=m
+CONFIG_HID_BIGBEN_FF=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_ELO=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_GEMBIRD=m
+CONFIG_HID_HOLTEK=m
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PLAYSTATION=m
+CONFIG_PLAYSTATION_FF=y
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_SONY_FF=y
+CONFIG_HID_SPEEDLINK=m
+CONFIG_HID_STEAM=y
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THINGM=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_HID_WACOM=m
+CONFIG_HID_WIIMOTE=m
+CONFIG_HID_XINMO=m
+CONFIG_HID_ZEROPLUS=m
+CONFIG_HID_ZYDACRON=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+CONFIG_USB=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_MON=m
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_PLATFORM=m
+CONFIG_USB_DWCOTG=y
+CONFIG_USB_PRINTER=m
+CONFIG_USB_TMC=m
+CONFIG_USB_STORAGE=y
+CONFIG_USB_STORAGE_REALTEK=m
+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
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+CONFIG_USBIP_VUDC=m
+CONFIG_USB_DWC2=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_XSENS_MT=m
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
+CONFIG_USB_SERIAL_DEBUG=m
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_YUREX=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+CONFIG_USB_CONFIGFS_F_UAC2=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_USB_CONFIGFS_F_PRINTER=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_USB_G_ACM_MS=m
+CONFIG_USB_G_MULTI=m
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_WEBCAM=m
+CONFIG_MMC=y
+CONFIG_MMC_BLOCK_MINORS=32
+CONFIG_MMC_BCM2835_MMC=y
+CONFIG_MMC_BCM2835_DMA=y
+CONFIG_MMC_BCM2835_SDHOST=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_IPROC=y
+CONFIG_MMC_SPI=m
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_PCA963X=m
+CONFIG_LEDS_PWM=y
+CONFIG_LEDS_IS31FL32XX=m
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_ONESHOT=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=y
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_GPIO=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+CONFIG_LEDS_TRIGGER_TRANSIENT=m
+CONFIG_LEDS_TRIGGER_CAMERA=m
+CONFIG_LEDS_TRIGGER_INPUT=y
+CONFIG_LEDS_TRIGGER_PANIC=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
+CONFIG_LEDS_TRIGGER_PATTERN=m
+CONFIG_LEDS_TRIGGER_ACTPWR=y
+CONFIG_ACCESSIBILITY=y
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_ABX80X=m
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8523=m
+CONFIG_RTC_DRV_PCF85063=m
+CONFIG_RTC_DRV_PCF85363=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3028=m
+CONFIG_RTC_DRV_RV8803=m
+CONFIG_RTC_DRV_SD3078=m
+CONFIG_RTC_DRV_M41T93=m
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1302=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RX4581=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_PCF2123=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_RV3029C2=m
+CONFIG_DMADEVICES=y
+CONFIG_DMA_BCM2835=y
+CONFIG_DMA_BCM2708=y
+CONFIG_DMABUF_HEAPS=y
+CONFIG_DMABUF_HEAPS_SYSTEM=y
+CONFIG_DMABUF_HEAPS_CMA=y
+CONFIG_AUXDISPLAY=y
+CONFIG_HD44780_COMMON=m
+CONFIG_HD44780=m
+CONFIG_UIO=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_VHOST_NET=m
+CONFIG_VHOST_VSOCK=m
+CONFIG_VHOST_CROSS_ENDIAN_LEGACY=y
+CONFIG_STAGING=y
+CONFIG_PRISM2_USB=m
+CONFIG_R8712U=m
+CONFIG_R8188EU=m
+CONFIG_88EU_AP_MODE=y
+CONFIG_VT6656=m
+CONFIG_STAGING_MEDIA=y
+CONFIG_VIDEO_RPIVID=m
+CONFIG_ASHMEM=y
+CONFIG_FB_TFT=m
+CONFIG_FB_TFT_AGM1264K_FL=m
+CONFIG_FB_TFT_BD663474=m
+CONFIG_FB_TFT_HX8340BN=m
+CONFIG_FB_TFT_HX8347D=m
+CONFIG_FB_TFT_HX8353D=m
+CONFIG_FB_TFT_HX8357D=m
+CONFIG_FB_TFT_ILI9163=m
+CONFIG_FB_TFT_ILI9320=m
+CONFIG_FB_TFT_ILI9325=m
+CONFIG_FB_TFT_ILI9340=m
+CONFIG_FB_TFT_ILI9341=m
+CONFIG_FB_TFT_ILI9481=m
+CONFIG_FB_TFT_ILI9486=m
+CONFIG_FB_TFT_PCD8544=m
+CONFIG_FB_TFT_RA8875=m
+CONFIG_FB_TFT_S6D02A1=m
+CONFIG_FB_TFT_S6D1121=m
+CONFIG_FB_TFT_SH1106=m
+CONFIG_FB_TFT_SSD1289=m
+CONFIG_FB_TFT_SSD1306=m
+CONFIG_FB_TFT_SSD1331=m
+CONFIG_FB_TFT_SSD1351=m
+CONFIG_FB_TFT_ST7735R=m
+CONFIG_FB_TFT_ST7789V=m
+CONFIG_FB_TFT_TINYLCD=m
+CONFIG_FB_TFT_TLS8204=m
+CONFIG_FB_TFT_UC1701=m
+CONFIG_FB_TFT_UPD161704=m
+CONFIG_FB_TFT_WATTEROTT=m
+CONFIG_BCM2835_VCHIQ=y
+CONFIG_SND_BCM2835=m
+CONFIG_VIDEO_BCM2835=m
+CONFIG_VIDEO_CODEC_BCM2835=m
+CONFIG_VIDEO_ISP_BCM2835=m
+CONFIG_CLK_RASPBERRYPI=y
+CONFIG_MAILBOX=y
+CONFIG_BCM2835_MBOX=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_RASPBERRYPI_POWER=y
+CONFIG_IIO=m
+CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_SW_TRIGGER=m
+CONFIG_MCP320X=m
+CONFIG_MCP3422=m
+CONFIG_TI_ADS1015=m
+CONFIG_BME680=m
+CONFIG_CCS811=m
+CONFIG_SENSIRION_SGP30=m
+CONFIG_SPS30_I2C=m
+CONFIG_MAX30102=m
+CONFIG_DHT11=m
+CONFIG_HDC100X=m
+CONFIG_HTU21=m
+CONFIG_INV_MPU6050_I2C=m
+CONFIG_APDS9960=m
+CONFIG_BH1750=m
+CONFIG_TSL4531=m
+CONFIG_VEML6070=m
+CONFIG_IIO_HRTIMER_TRIGGER=m
+CONFIG_IIO_INTERRUPT_TRIGGER=m
+CONFIG_IIO_SYSFS_TRIGGER=m
+CONFIG_BMP280=m
+CONFIG_MAXIM_THERMOCOUPLE=m
+CONFIG_MAX31856=m
+CONFIG_PWM_BCM2835=m
+CONFIG_PWM_PCA9685=m
+CONFIG_PWM_RASPBERRYPI_POE=m
+CONFIG_RPI_AXIPERF=m
+CONFIG_ANDROID=y
+CONFIG_ANDROID_BINDER_IPC=y
+CONFIG_ANDROID_BINDERFS=y
+CONFIG_NVMEM_RMEM=m
+CONFIG_MUX_GPIO=m
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_REISERFS_FS=m
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+CONFIG_JFS_STATISTICS=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+CONFIG_GFS2_FS=m
+CONFIG_OCFS2_FS=m
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_F2FS_FS=y
+CONFIG_F2FS_FS_SECURITY=y
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FANOTIFY=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_OVERLAY_FS=m
+CONFIG_FSCACHE=y
+CONFIG_FSCACHE_STATS=y
+CONFIG_CACHEFILES=y
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
+CONFIG_EXFAT_FS=m
+CONFIG_NTFS_FS=m
+CONFIG_NTFS_RW=y
+CONFIG_NTFS3_FS=m
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_ECRYPT_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_SUMMARY=y
+CONFIG_UBIFS_FS=m
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_PSTORE=y
+CONFIG_PSTORE_CONSOLE=y
+CONFIG_PSTORE_RAM=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_SWAP=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_NFS_FSCACHE=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_CEPH_FS=m
+CONFIG_CIFS=m
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_SMB_SERVER=m
+CONFIG_9P_FS=m
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_DLM=m
+CONFIG_SECURITY=y
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_LSM=""
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_LZ4=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_USER_API_RNG=m
+CONFIG_CRYPTO_USER_API_AEAD=m
+# CONFIG_CRYPTO_HW is not set
+CONFIG_CRC_ITU_T=y
+CONFIG_LIBCRC32C=y
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=5
+CONFIG_PRINTK_TIME=y
+CONFIG_BOOT_PRINTK_DELAY=y
+CONFIG_KGDB=y
+CONFIG_KGDB_KDB=y
+CONFIG_KDB_KEYBOARD=y
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_LATENCYTOP=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_STACK_TRACER=y
+CONFIG_IRQSOFF_TRACER=y
+CONFIG_SCHED_TRACER=y
+CONFIG_BLK_DEV_IO_TRACE=y
+# CONFIG_UPROBE_EVENTS is not set
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index 3183183b6a4e..b5e32d423b6c 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -9,25 +9,21 @@
 # "Merge remote-tracking branch 'stable/linux-5.10.y' into rpi-5.10.y" commit.
 #
 # [1] https://github.com/raspberrypi/linux/tags
-#
-# WARNING: keep all rpi*-kernel packages in sync
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
 
 pkgname=rpi-kernel
-version=5.15.61
+version=5.15.68
 revision=1
-archs="armv6l*"
+_githash="ac7d1fdd216a11b75527e5d6b3a00d86ec28edfc"
+archs="armv6l* armv7l* aarch64*"
 wrksrc="linux-${_githash}"
 hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
 makedepends="ncurses-devel"
 maintainer="Piraty <piraty1@inbox.ru>"
 homepage="http://www.kernel.org"
 license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi zero/1 (${version%.*} series [git ${_gitshort}])"
+short_desc="Linux kernel for Raspberry Pi (${version%.*} series [git ${_githash:0:7}])"
 distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
+checksum=44699750d6e69ef47343af9cf9fbae3431a6da12990151273339324820c3bf0e
 python_version=3
 
 _kernver="${version}_${revision}"
@@ -40,56 +36,52 @@ noshlibprovides=yes
 triggers="kernel-hooks"
 # These files could be modified when an external module is built.
 mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
+ /usr/lib/modules/${_kernver}/modules.dep
+ /usr/lib/modules/${_kernver}/modules.dep.bin
+ /usr/lib/modules/${_kernver}/modules.symbols
+ /usr/lib/modules/${_kernver}/modules.symbols.bin
+ /usr/lib/modules/${_kernver}/modules.alias
+ /usr/lib/modules/${_kernver}/modules.alias.bin
+ /usr/lib/modules/${_kernver}/modules.devname"
 
 _arch=
+_image=
 case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
+	arm*) _arch=arm; _image=zImage ;;
+	aarch64*) _arch=arm64; _image=Image ;;
 esac
+
 _cross=
 if [ "$CROSS_BUILD" ]; then
 	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
 fi
 
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
 do_configure() {
 	local target defconfig
 
-	# Use upstream's default configuration, no need to maintain ours.
 	case "$XBPS_TARGET_MACHINE" in
-		armv6l*)
-			target=bcmrpi_defconfig
-			;;
+		# for zero, 1
+		armv6l*) target=bcmrpi_defconfig ;;
+		# for 2
+		armv7l*) target=bcm2709_defconfig ;;
+		# for 3, 4, zero 2
+		# combination of bcmrpi3_defconfig and bcm2711_defconfig
+		aarch64*)
+			target=rpi34_defconfig
+			cp "${FILESDIR}/${target}" "arch/${_arch}/configs"
+		;;
 	esac
 
 	defconfig="arch/${_arch}/configs/${target}"
 	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
 	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
 
 	# HID Controllers
 	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
 
+	# Disable GCC plugins
+	echo "# CONFIG_GCC_PLUGINS is not set" >> "$defconfig"
+
 	# LXD 4.2+ support
 	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
 
@@ -98,26 +90,17 @@ do_configure() {
 	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
 	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
 }
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
 
+do_build() {
 	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
+	make ${makejobs} ${_cross} ARCH=${_arch} ${_image} modules dtbs
 }
+
 do_install() {
-	local hdrdest
+	local hdrdest="${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}"
 
 	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
+	vsed -i -e '2iexit 0' scripts/depmod.sh
 
 	# Install kernel, firmware and modules
 	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
@@ -125,11 +108,16 @@ do_install() {
 	# Install device tree blobs
 	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
 
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm/boot/zImage ${DESTDIR}/boot/kernel.img
+	# Install kernel image
+	# TODO: does zImage work on 64?
+	if [ "$_arch" = "arm" ]; then
+		vinstall arch/${_arch}/boot/${_image} 644 boot/kernel.img
+	else
+		vinstall arch/${_arch}/boot/${_image} 644 boot/kernel.img
+	fi
 
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
+	# Tell the rpi bootloader where to find the kernel
+	echo "kernel=kernel.img" > ${DESTDIR}/boot/kernel.txt
 
 	# Switch to /usr.
 	vmkdir usr
@@ -224,6 +212,13 @@ do_install() {
 	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
 }
 
+subpackages="rpi-kernel-headers"
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7l*) subpackages+=" rpi2-kernel rpi2-kernel-headers" ;;
+	aarch64*) subpackages+=" rpi3-kernel rpi3-kernel-headers rpi4-kernel rpi4-kernel-headers" ;;
+esac
+
 rpi-kernel-headers_package() {
 	nostrip=yes
 	noverifyrdeps=yes
@@ -235,33 +230,38 @@ rpi-kernel-headers_package() {
 	}
 }
 
+rpi2-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
 
-# support legacy systems (before rpi-kernel was split to rpi{,2,3})
-# archs != armv6* are emtpy meta packages to pull the new rpi{$n}-kernel package
-archs+=" armv7l* aarch64*"
-case "$XBPS_TARGET_MACHINE" in
-	armv6*) : ;;
-	*)
-		build_style=meta
-		short_desc="Linux kernel for Raspberry Pi (transitional dummy package)"
-
-		pre_configure() { : ; }
-		do_configure() { : ; }
-		do_build() { : ; }
-		do_install() { : ; }
-
-		case "$XBPS_TARGET_MACHINE" in
-			armv7*) depends=rpi2-kernel ;;
-			aarch64*) depends=rpi3-kernel ;;
-		esac
-
-		rpi-kernel-headers_package() {
-			build_style=meta
-			short_desc="Linux kernel headers for Raspberry Pi (transitional dummy package)"
-			case "$XBPS_TARGET_MACHINE" in
-				armv7*) depends=rpi2-kernel-headers ;;
-				aarch64*) depends=rpi3-kernel-headers ;;
-			esac
-		}
-		;;
-esac
+rpi2-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
+
+rpi3-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
+
+rpi3-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
+
+rpi4-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
+
+rpi4-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
diff --git a/srcpkgs/rpi2-kernel b/srcpkgs/rpi2-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi2-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi2-kernel-headers b/srcpkgs/rpi2-kernel-headers
index fbe6d91aeb7f..3b4ec073331b 120000
--- a/srcpkgs/rpi2-kernel-headers
+++ b/srcpkgs/rpi2-kernel-headers
@@ -1 +1 @@
-rpi2-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi2-kernel/template b/srcpkgs/rpi2-kernel/template
deleted file mode 100644
index 8963b855a4de..000000000000
--- a/srcpkgs/rpi2-kernel/template
+++ /dev/null
@@ -1,228 +0,0 @@
-# Template file for 'rpi2-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi2-kernel
-version=5.10.110
-revision=1
-archs="armv7l*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 2 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		armv7l*)
-			target=bcm2709_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	# Disable GCC plugins
-	echo "# CONFIG_GCC_PLUGINS is not set" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm/boot/zImage ${DESTDIR}/boot/kernel7.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi2-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}
diff --git a/srcpkgs/rpi3-kernel b/srcpkgs/rpi3-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi3-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi3-kernel-headers b/srcpkgs/rpi3-kernel-headers
index 29e9f333d668..3b4ec073331b 120000
--- a/srcpkgs/rpi3-kernel-headers
+++ b/srcpkgs/rpi3-kernel-headers
@@ -1 +1 @@
-rpi3-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi3-kernel/template b/srcpkgs/rpi3-kernel/template
deleted file mode 100644
index 20d51a6b8579..000000000000
--- a/srcpkgs/rpi3-kernel/template
+++ /dev/null
@@ -1,228 +0,0 @@
-# Template file for 'rpi3-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi3-kernel
-version=5.15.61
-revision=1
-archs="aarch64*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 3 / Zero 2 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		aarch64*)
-			target=bcmrpi3_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# move dtb that ended up in /boot/broadcom
-	mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm64/boot/Image ${DESTDIR}/boot/kernel8.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi3-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}
diff --git a/srcpkgs/rpi4-kernel b/srcpkgs/rpi4-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi4-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi4-kernel-headers b/srcpkgs/rpi4-kernel-headers
index 9c2fad143506..3b4ec073331b 120000
--- a/srcpkgs/rpi4-kernel-headers
+++ b/srcpkgs/rpi4-kernel-headers
@@ -1 +1 @@
-rpi4-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi4-kernel/template b/srcpkgs/rpi4-kernel/template
deleted file mode 100644
index d4fb3c72906e..000000000000
--- a/srcpkgs/rpi4-kernel/template
+++ /dev/null
@@ -1,229 +0,0 @@
-# Template file for 'rpi4-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi4-kernel
-version=5.15.61
-revision=1
-archs="aarch64*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 4 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-conflicts=rpi3-kernel
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		aarch64*)
-			target=bcm2711_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# move dtb that ended up in /boot/broadcom
-	mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm64/boot/Image ${DESTDIR}/boot/kernel8.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi4-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PR PATCH] [Updated] rpi*-kernel: update to 5.15.68, merge templates
  2022-09-24  9:42 [PR PATCH] rpi*-kernel: update to 5.15.68, merge templates classabbyamp
  2022-09-24 23:51 ` [PR PATCH] [Updated] " classabbyamp
@ 2022-09-25  6:59 ` classabbyamp
  2022-09-25  9:08 ` classabbyamp
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: classabbyamp @ 2022-09-25  6:59 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 914 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages the-rpi-unification-of-2024
https://github.com/void-linux/void-packages/pull/39442

rpi*-kernel: update to 5.15.68, merge templates
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**

### TODO
- [ ] test if `zImage` works for `aarch64*` (it might, according to [the note here](https://www.raspberrypi.com/documentation/computers/config_txt.html#arm_64bit))
- [ ] test upgrade on all platforms
     - [ ] rpi1 (armv6l)
     - [ ] rpi0 (armv6l)
     - [x] rpi2 (armv7l)
     - [ ] rpi3 (aarch64)
     - [ ] rpi02 (aarch64)
     - [ ] rpi4 (aarch64)


A patch file from https://github.com/void-linux/void-packages/pull/39442.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-the-rpi-unification-of-2024-39442.patch --]
[-- Type: text/x-diff, Size: 74890 bytes --]

From eea27e4efc877bdcfad961d4c8339e7b5a3effc7 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:35:07 -0400
Subject: [PATCH 1/2] rpi-base: re-merge rpi*-base and -kernel packages

---
 srcpkgs/rpi-base/template | 48 +++++++++------------------------------
 1 file changed, 11 insertions(+), 37 deletions(-)

diff --git a/srcpkgs/rpi-base/template b/srcpkgs/rpi-base/template
index 8940033c83ab..3b22d684f4b2 100644
--- a/srcpkgs/rpi-base/template
+++ b/srcpkgs/rpi-base/template
@@ -1,10 +1,9 @@
 # Template file for 'rpi-base'
 pkgname=rpi-base
 version=3.0
-revision=2
+revision=3
 archs="armv6l* armv7l* aarch64*"
-_base_depends="virtual?ntp-daemon rpi-firmware"
-depends="${_base_depends} rpi-kernel"
+depends="virtual?ntp-daemon rpi-firmware rpi-kernel"
 short_desc="Void Linux Raspberry Pi base files"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="Public Domain"
@@ -26,45 +25,20 @@ case "$XBPS_TARGET_MACHINE" in
 		;;
 esac
 
-# support legacy systems (before rpi-kernel was split to rpi{,2,3})
-# archs != armv6* are emtpy meta packages to pull the new rpi${n}-base package
-case "$XBPS_TARGET_MACHINE" in
-	armv6*) : ;;
-	*)
-		build_style=meta
-		short_desc+=" (transitional dummy package)"
-
-	 	do_install() { : ; }
-
-		case "$XBPS_TARGET_MACHINE" in
-			armv7*) depends="rpi2-base" ;;
-			aarch64*) depends="rpi3-base" ;;
-		esac
-		;;
-esac
-
 rpi2-base_package() {
-	depends="${_base_depends} rpi2-kernel"
-	short_desc="Void Linux Raspberry Pi 2 base files"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }
 
-
 rpi3-base_package() {
-	depends="${_base_depends} rpi3-kernel"
-	short_desc="Void Linux Raspberry Pi 3 base files"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }
 
 rpi4-base_package() {
-	depends="${_base_depends} rpi4-kernel"
-	short_desc="Void Linux Raspberry Pi 4 base files"
-	conflicts="rpi3-base"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }

From 20d768b47c020489eedba8bd9e13b36a7f650f26 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:38:28 -0400
Subject: [PATCH 2/2] rpi*-kernel: update to 5.15.68, merge templates

---
 srcpkgs/rpi-kernel/files/rpi34_defconfig | 1613 ++++++++++++++++++++++
 srcpkgs/rpi-kernel/template              |  165 ++-
 srcpkgs/rpi2-kernel                      |    1 +
 srcpkgs/rpi2-kernel-headers              |    2 +-
 srcpkgs/rpi2-kernel/template             |  228 ---
 srcpkgs/rpi3-kernel                      |    1 +
 srcpkgs/rpi3-kernel-headers              |    2 +-
 srcpkgs/rpi3-kernel/template             |  228 ---
 srcpkgs/rpi4-kernel                      |    1 +
 srcpkgs/rpi4-kernel-headers              |    2 +-
 srcpkgs/rpi4-kernel/template             |  229 ---
 11 files changed, 1699 insertions(+), 773 deletions(-)
 create mode 100644 srcpkgs/rpi-kernel/files/rpi34_defconfig
 create mode 120000 srcpkgs/rpi2-kernel
 delete mode 100644 srcpkgs/rpi2-kernel/template
 create mode 120000 srcpkgs/rpi3-kernel
 delete mode 100644 srcpkgs/rpi3-kernel/template
 create mode 120000 srcpkgs/rpi4-kernel
 delete mode 100644 srcpkgs/rpi4-kernel/template

diff --git a/srcpkgs/rpi-kernel/files/rpi34_defconfig b/srcpkgs/rpi-kernel/files/rpi34_defconfig
new file mode 100644
index 000000000000..6e0750be2b8a
--- /dev/null
+++ b/srcpkgs/rpi-kernel/files/rpi34_defconfig
@@ -0,0 +1,1613 @@
+CONFIG_LOCALVERSION="-v8"
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_GENERIC_IRQ_DEBUGFS=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_BPF_JIT=y
+CONFIG_PREEMPT=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_IKCONFIG=m
+CONFIG_IKCONFIG_PROC=y
+CONFIG_MEMCG=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CPUSETS=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_PERF=y
+CONFIG_CGROUP_BPF=y
+CONFIG_NAMESPACES=y
+CONFIG_USER_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_EMBEDDED=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_PROFILING=y
+CONFIG_ARCH_BCM2835=y
+# CONFIG_CAVIUM_ERRATUM_22375 is not set
+# CONFIG_CAVIUM_ERRATUM_23154 is not set
+# CONFIG_CAVIUM_ERRATUM_27456 is not set
+CONFIG_SCHED_MC=y
+CONFIG_NR_CPUS=256
+CONFIG_HZ_100=y
+CONFIG_HZ=100
+CONFIG_COMPAT=y
+CONFIG_ARMV8_DEPRECATED=y
+CONFIG_SWP_EMULATION=y
+CONFIG_CP15_BARRIER_EMULATION=y
+CONFIG_SETEND_EMULATION=y
+CONFIG_RANDOMIZE_BASE=y
+CONFIG_CMDLINE="console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait"
+# CONFIG_SUSPEND is not set
+CONFIG_CPU_IDLE=y
+CONFIG_ARM_CPUIDLE=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+CONFIG_CPUFREQ_DT=y
+CONFIG_ARM_RASPBERRYPI_CPUFREQ=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=y
+CONFIG_CRYPTO_AES_ARM64_BS=m
+CONFIG_JUMP_LABEL=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_MODULE_COMPRESS_XZ=y
+CONFIG_BLK_DEV_THROTTLING=y
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_MAC_PARTITION=y
+CONFIG_BINFMT_MISC=m
+CONFIG_CLEANCACHE=y
+CONFIG_FRONTSWAP=y
+CONFIG_CMA=y
+CONFIG_ZSWAP=y
+CONFIG_Z3FOLD=m
+CONFIG_ZSMALLOC=m
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM_USER=m
+CONFIG_XFRM_STATISTICS=y
+CONFIG_NET_KEY=m
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_NET_IPVTI=m
+CONFIG_NET_FOU=m
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_DIAG=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BBR=m
+CONFIG_IPV6=m
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_ESP_OFFLOAD=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_ILA=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IPV6_PIMSM_V2=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+CONFIG_BRIDGE_NETFILTER=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_INET=y
+CONFIG_NF_TABLES_NETDEV=y
+CONFIG_NFT_NUMGEN=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_FLOW_OFFLOAD=m
+CONFIG_NFT_COUNTER=m
+CONFIG_NFT_CONNLIMIT=m
+CONFIG_NFT_LOG=m
+CONFIG_NFT_LIMIT=m
+CONFIG_NFT_MASQ=m
+CONFIG_NFT_REDIR=m
+CONFIG_NFT_NAT=m
+CONFIG_NFT_TUNNEL=m
+CONFIG_NFT_OBJREF=m
+CONFIG_NFT_QUEUE=m
+CONFIG_NFT_QUOTA=m
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_XFRM=m
+CONFIG_NFT_SOCKET=m
+CONFIG_NFT_OSF=m
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_SYNPROXY=m
+CONFIG_NFT_DUP_NETDEV=m
+CONFIG_NFT_FWD_NETDEV=m
+CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE=m
+CONFIG_NETFILTER_XT_SET=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HMARK=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_BPF=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_VS=m
+CONFIG_IP_VS_IPV6=y
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_PE_SIP=m
+CONFIG_NFT_DUP_IPV4=m
+CONFIG_NFT_FIB_IPV4=m
+CONFIG_NF_TABLES_ARP=y
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_LOG_ARP=m
+CONFIG_NF_LOG_IPV4=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+CONFIG_NFT_DUP_IPV6=m
+CONFIG_NFT_FIB_IPV6=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_TARGET_SYNPROXY=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_IP6_NF_TARGET_NPT=m
+CONFIG_NF_TABLES_BRIDGE=m
+CONFIG_NFT_BRIDGE_REJECT=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+CONFIG_ATM=m
+CONFIG_L2TP=m
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_BRIDGE=m
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_ATALK=m
+CONFIG_6LOWPAN=m
+CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
+CONFIG_MAC802154=m
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_CODEL=m
+CONFIG_NET_SCH_FQ_CODEL=m
+CONFIG_NET_SCH_CAKE=m
+CONFIG_NET_SCH_FQ=m
+CONFIG_NET_SCH_HHF=m
+CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_PLUG=m
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=m
+CONFIG_NET_CLS_BPF=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_EMATCH_IPSET=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_BATMAN_ADV=m
+CONFIG_OPENVSWITCH=m
+CONFIG_VSOCKETS=m
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_NET_PKTGEN=m
+CONFIG_HAMRADIO=y
+CONFIG_AX25=m
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_YAM=m
+CONFIG_CAN=m
+CONFIG_CAN_J1939=m
+CONFIG_CAN_ISOTP=m
+CONFIG_CAN_VCAN=m
+CONFIG_CAN_SLCAN=m
+CONFIG_CAN_MCP251X=m
+CONFIG_CAN_MCP251XFD=m
+CONFIG_CAN_EMS_USB=m
+CONFIG_CAN_GS_USB=m
+CONFIG_CAN_PEAK_USB=m
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+CONFIG_BT_6LOWPAN=m
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_3WIRE=y
+CONFIG_BT_HCIUART_BCM=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_CFG80211=m
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211=m
+CONFIG_MAC80211_MESH=y
+CONFIG_RFKILL=m
+CONFIG_RFKILL_INPUT=y
+CONFIG_NET_9P=m
+CONFIG_NFC=m
+CONFIG_PCI=y
+CONFIG_PCIE_BRCMSTB=y
+CONFIG_UEVENT_HELPER=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_RASPBERRYPI_FIRMWARE=y
+# CONFIG_EFI_VARS_PSTORE is not set
+CONFIG_MTD=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK2MTD=m
+CONFIG_MTD_SPI_NOR=m
+CONFIG_MTD_UBI=m
+CONFIG_OF_CONFIGFS=y
+CONFIG_ZRAM=m
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_RAM=y
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_ATA_OVER_ETH=m
+CONFIG_BLK_DEV_NVME=y
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_TI_ST=m
+CONFIG_SCSI=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_CHR_DEV_ST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_CHR_DEV_SG=m
+CONFIG_SCSI_ISCSI_ATTRS=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_ATA=m
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_MV=m
+CONFIG_MD=y
+CONFIG_MD_LINEAR=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+CONFIG_DM_CACHE=m
+CONFIG_DM_WRITECACHE=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_RAID=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_DELAY=m
+CONFIG_NETDEVICES=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_WIREGUARD=m
+CONFIG_IFB=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_IPVLAN=m
+CONFIG_VXLAN=m
+CONFIG_NETCONSOLE=m
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_NET_VRF=m
+CONFIG_VSOCKMON=m
+CONFIG_BCMGENET=y
+CONFIG_ENC28J60=m
+CONFIG_LAN743X=m
+CONFIG_QCA7000_SPI=m
+CONFIG_QCA7000_UART=m
+CONFIG_R8169=m
+CONFIG_WIZNET_W5100=m
+CONFIG_WIZNET_W5100_SPI=m
+CONFIG_MICREL_PHY=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_LAN78XX=y
+CONFIG_USB_USBNET=y
+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_HUAWEI_CDC_NCM=m
+CONFIG_USB_NET_CDC_MBIM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SR9700=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=y
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_USB_NET_AQC111=m
+CONFIG_ATH9K=m
+CONFIG_ATH9K_HTC=m
+CONFIG_CARL9170=m
+CONFIG_ATH6KL=m
+CONFIG_ATH6KL_USB=m
+CONFIG_AR5523=m
+CONFIG_AT76C50X_USB=m
+CONFIG_B43=m
+# CONFIG_B43_PHY_N is not set
+CONFIG_B43LEGACY=m
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_USB=y
+CONFIG_BRCMDBG=y
+CONFIG_HOSTAP=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_THINFIRM=m
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MT7601U=m
+CONFIG_MT76x0U=m
+CONFIG_MT76x2U=m
+CONFIG_RT2X00=m
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT3573=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RTL8187=m
+CONFIG_RTL8192CU=m
+CONFIG_RTL8XXXU=m
+CONFIG_USB_ZD1201=m
+CONFIG_ZD1211RW=m
+CONFIG_MAC80211_HWSIM=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_IEEE802154_AT86RF230=m
+CONFIG_IEEE802154_MRF24J40=m
+CONFIG_IEEE802154_CC2520=m
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=y
+# CONFIG_KEYBOARD_ATKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_TCA8418=m
+CONFIG_KEYBOARD_MATRIX=m
+CONFIG_KEYBOARD_CAP11XX=m
+# CONFIG_INPUT_MOUSE is not set
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_RPISENSE=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_EGALAX=m
+CONFIG_TOUCHSCREEN_EXC3000=m
+CONFIG_TOUCHSCREEN_GOODIX=m
+CONFIG_TOUCHSCREEN_ILI210X=m
+CONFIG_TOUCHSCREEN_EKTF2127=m
+CONFIG_TOUCHSCREEN_EDT_FT5X06=m
+CONFIG_TOUCHSCREEN_RASPBERRYPI_FW=m
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_STMPE=m
+CONFIG_TOUCHSCREEN_IQS5XX=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_CMA3000=m
+CONFIG_SERIO=m
+CONFIG_SERIO_RAW=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_BRCM_CHAR_DRIVERS=y
+CONFIG_BCM_VCIO=y
+CONFIG_BCM2835_DEVGPIOMEM=y
+CONFIG_RPIVID_MEM=m
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+# CONFIG_SERIAL_8250_DMA is not set
+CONFIG_SERIAL_8250_NR_UARTS=1
+CONFIG_SERIAL_8250_RUNTIME_UARTS=0
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_BCM2835AUX=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_SC16IS7XX=m
+CONFIG_SERIAL_SC16IS7XX_SPI=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_TTY_PRINTK=y
+CONFIG_HW_RANDOM=y
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS_SPI=m
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX_GPMUX=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_MUX_PINCTRL=m
+CONFIG_I2C_BCM2708=m
+CONFIG_I2C_BCM2835=m
+CONFIG_I2C_BRCMSTB=m
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_ROBOTFUZZ_OSIF=m
+CONFIG_I2C_TINY_USB=m
+CONFIG_SPI=y
+CONFIG_SPI_BCM2835=m
+CONFIG_SPI_BCM2835AUX=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_SLAVE=y
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_GPIO=m
+CONFIG_PINCTRL_MCP23S08=m
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_BCM_VIRT=y
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCA953X_IRQ=y
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_ARIZONA=m
+CONFIG_GPIO_FSM=m
+CONFIG_GPIO_STMPE=y
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MOCKUP=m
+CONFIG_W1=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_GPIO=m
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2413=m
+CONFIG_W1_SLAVE_DS2406=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_DS2781=m
+CONFIG_W1_SLAVE_DS28E04=m
+CONFIG_W1_SLAVE_DS28E17=m
+CONFIG_POWER_RESET_GPIO=y
+CONFIG_RPI_POE_POWER=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_BATTERY_GAUGE_LTC2941=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_GPIO_FAN=m
+CONFIG_SENSORS_IIO_HWMON=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_PWM_FAN=m
+CONFIG_SENSORS_RASPBERRYPI_HWMON=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SHT3x=m
+CONFIG_SENSORS_SHTC1=m
+CONFIG_SENSORS_EMC2305=m
+CONFIG_SENSORS_INA2XX=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_BCM2711_THERMAL=y
+CONFIG_BCM2835_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_GPIO_WATCHDOG=m
+CONFIG_BCM2835_WDT=y
+CONFIG_MFD_RASPBERRYPI_POE_HAT=m
+CONFIG_MFD_STMPE=y
+CONFIG_STMPE_SPI=y
+CONFIG_MFD_SYSCON=y
+CONFIG_MFD_ARIZONA_I2C=m
+CONFIG_MFD_ARIZONA_SPI=m
+CONFIG_MFD_WM5102=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_ARIZONA_LDO1=m
+CONFIG_REGULATOR_ARIZONA_MICSUPP=m
+CONFIG_REGULATOR_GPIO=y
+CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m
+CONFIG_RC_CORE=y
+CONFIG_LIRC=y
+CONFIG_BPF_LIRC_MODE2=y
+CONFIG_RC_DECODERS=y
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_SANYO_DECODER=m
+CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_XMP_DECODER=m
+CONFIG_IR_IMON_DECODER=m
+CONFIG_RC_DEVICES=y
+CONFIG_RC_ATI_REMOTE=m
+CONFIG_IR_IMON=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_IGUANA=m
+CONFIG_IR_TTUSBIR=m
+CONFIG_RC_LOOPBACK=m
+CONFIG_IR_GPIO_CIR=m
+CONFIG_IR_GPIO_TX=m
+CONFIG_IR_PWM_TX=m
+CONFIG_IR_TOY=m
+CONFIG_MEDIA_CEC_RC=y
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_DTCS033=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_JL2005BCD=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STK1135=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
+CONFIG_USB_GSPCA_TOUPTEK=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_USB_PWC=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_VIDEO_USBTV=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_STK1160_COMMON=m
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_AU0828_RC=y
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+CONFIG_DVB_USB=m
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_V2=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_AF9035=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_AZ6007=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB_MXL111SF=m
+CONFIG_DVB_USB_RTL28XXU=m
+CONFIG_DVB_USB_DVBSKY=m
+CONFIG_SMS_USB_DRV=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+CONFIG_DVB_AS102=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_V4L2=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_RADIO_SI470X=m
+CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
+CONFIG_RADIO_SI4713=m
+CONFIG_I2C_SI4713=m
+CONFIG_USB_MR800=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_SHARK=m
+CONFIG_RADIO_SHARK2=m
+CONFIG_USB_KEENE=m
+CONFIG_USB_MA901=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_WL1273=m
+CONFIG_RADIO_WL128X=m
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_MUX=m
+CONFIG_VIDEO_BCM2835_UNICAM=m
+CONFIG_V4L_TEST_DRIVERS=y
+CONFIG_VIDEO_VIMC=m
+CONFIG_VIDEO_VIVID=m
+CONFIG_VIDEO_VIM2M=m
+CONFIG_VIDEO_VICODEC=m
+CONFIG_VIDEO_UDA1342=m
+CONFIG_VIDEO_SONY_BTF_MPX=m
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_TC358743=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TW2804=m
+CONFIG_VIDEO_TW9903=m
+CONFIG_VIDEO_TW9906=m
+CONFIG_VIDEO_ARDUCAM_64MP=m
+CONFIG_VIDEO_ARDUCAM_PIVARIETY=m
+CONFIG_VIDEO_IMX219=m
+CONFIG_VIDEO_IMX258=m
+CONFIG_VIDEO_IMX290=m
+CONFIG_VIDEO_IMX296=m
+CONFIG_VIDEO_IMX477=m
+CONFIG_VIDEO_IMX519=m
+CONFIG_VIDEO_OV2311=m
+CONFIG_VIDEO_OV5647=m
+CONFIG_VIDEO_OV7251=m
+CONFIG_VIDEO_OV7640=m
+CONFIG_VIDEO_OV9281=m
+CONFIG_VIDEO_IRS1125=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_AD5398=m
+CONFIG_DRM=m
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+CONFIG_DRM_UDL=m
+CONFIG_DRM_PANEL_SIMPLE=m
+CONFIG_DRM_PANEL_ILITEK_ILI9806E=m
+CONFIG_DRM_PANEL_ILITEK_ILI9881C=m
+CONFIG_DRM_PANEL_JDI_LT070ME05000=m
+CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
+CONFIG_DRM_PANEL_SITRONIX_ST7701=m
+CONFIG_DRM_PANEL_TPO_Y17P=m
+CONFIG_DRM_DISPLAY_CONNECTOR=m
+CONFIG_DRM_SIMPLE_BRIDGE=m
+CONFIG_DRM_TOSHIBA_TC358762=m
+CONFIG_DRM_V3D=m
+CONFIG_DRM_VC4=m
+CONFIG_DRM_VC4_HDMI_CEC=y
+CONFIG_DRM_PANEL_MIPI_DBI=m
+CONFIG_TINYDRM_HX8357D=m
+CONFIG_TINYDRM_ILI9225=m
+CONFIG_TINYDRM_ILI9341=m
+CONFIG_TINYDRM_MI0283QT=m
+CONFIG_TINYDRM_REPAPER=m
+CONFIG_TINYDRM_ST7586=m
+CONFIG_TINYDRM_ST7735R=m
+CONFIG_DRM_GUD=m
+CONFIG_FB=y
+CONFIG_FB_BCM2708=y
+CONFIG_FB_UDL=m
+CONFIG_FB_SIMPLE=y
+CONFIG_FB_SSD1307=m
+CONFIG_FB_RPISENSE=m
+CONFIG_BACKLIGHT_PWM=m
+CONFIG_BACKLIGHT_RPI=m
+CONFIG_BACKLIGHT_GPIO=m
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_SOUND=y
+CONFIG_SND=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_USB_HIFACE=m
+CONFIG_SND_USB_TONEPORT=m
+CONFIG_SND_SOC=m
+CONFIG_SND_BCM2835_SOC_I2S=m
+CONFIG_SND_BCM2708_SOC_CHIPDIP_DAC=m
+CONFIG_SND_BCM2708_SOC_GOOGLEVOICEHAT_SOUNDCARD=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSHD=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSADC=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSADCPRO=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSDSP=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP=m
+CONFIG_SND_BCM2708_SOC_PIFI_40=m
+CONFIG_SND_BCM2708_SOC_RPI_CIRRUS=m
+CONFIG_SND_BCM2708_SOC_RPI_DAC=m
+CONFIG_SND_BCM2708_SOC_RPI_PROTO=m
+CONFIG_SND_BCM2708_SOC_JUSTBOOM_BOTH=m
+CONFIG_SND_BCM2708_SOC_JUSTBOOM_DAC=m
+CONFIG_SND_BCM2708_SOC_JUSTBOOM_DIGI=m
+CONFIG_SND_BCM2708_SOC_IQAUDIO_CODEC=m
+CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC=m
+CONFIG_SND_BCM2708_SOC_IQAUDIO_DIGI=m
+CONFIG_SND_BCM2708_SOC_I_SABRE_Q2M=m
+CONFIG_SND_BCM2708_SOC_ADAU1977_ADC=m
+CONFIG_SND_AUDIOINJECTOR_PI_SOUNDCARD=m
+CONFIG_SND_AUDIOINJECTOR_OCTO_SOUNDCARD=m
+CONFIG_SND_AUDIOINJECTOR_ISOLATED_SOUNDCARD=m
+CONFIG_SND_AUDIOSENSE_PI=m
+CONFIG_SND_DIGIDAC1_SOUNDCARD=m
+CONFIG_SND_BCM2708_SOC_DIONAUDIO_LOCO=m
+CONFIG_SND_BCM2708_SOC_DIONAUDIO_LOCO_V2=m
+CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC=m
+CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC_PLUS=m
+CONFIG_SND_BCM2708_SOC_ALLO_BOSS_DAC=m
+CONFIG_SND_BCM2708_SOC_ALLO_BOSS2_DAC=m
+CONFIG_SND_BCM2708_SOC_ALLO_DIGIONE=m
+CONFIG_SND_BCM2708_SOC_ALLO_KATANA_DAC=m
+CONFIG_SND_BCM2708_SOC_FE_PI_AUDIO=m
+CONFIG_SND_PISOUND=m
+CONFIG_SND_DACBERRY400=m
+CONFIG_SND_SOC_AD193X_SPI=m
+CONFIG_SND_SOC_AD193X_I2C=m
+CONFIG_SND_SOC_ADAU1701=m
+CONFIG_SND_SOC_ADAU7002=m
+CONFIG_SND_SOC_AK4554=m
+CONFIG_SND_SOC_CS4265=m
+CONFIG_SND_SOC_ICS43432=m
+CONFIG_SND_SOC_MA120X0P=m
+CONFIG_SND_SOC_MAX98357A=m
+CONFIG_SND_SOC_SPDIF=m
+CONFIG_SND_SOC_WM8804_I2C=m
+CONFIG_SND_SOC_WM8960=m
+CONFIG_SND_SIMPLE_CARD=m
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_UHID=m
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+CONFIG_HID_APPLE=m
+CONFIG_HID_ASUS=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_BETOP_FF=m
+CONFIG_HID_BIGBEN_FF=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_ELO=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_GEMBIRD=m
+CONFIG_HID_HOLTEK=m
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PLAYSTATION=m
+CONFIG_PLAYSTATION_FF=y
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_SONY_FF=y
+CONFIG_HID_SPEEDLINK=m
+CONFIG_HID_STEAM=y
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THINGM=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_HID_WACOM=m
+CONFIG_HID_WIIMOTE=m
+CONFIG_HID_XINMO=m
+CONFIG_HID_ZEROPLUS=m
+CONFIG_HID_ZYDACRON=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+CONFIG_USB=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_MON=m
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_PLATFORM=m
+CONFIG_USB_DWCOTG=y
+CONFIG_USB_PRINTER=m
+CONFIG_USB_TMC=m
+CONFIG_USB_STORAGE=y
+CONFIG_USB_STORAGE_REALTEK=m
+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
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+CONFIG_USBIP_VUDC=m
+CONFIG_USB_DWC2=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_XSENS_MT=m
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
+CONFIG_USB_SERIAL_DEBUG=m
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_YUREX=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+CONFIG_USB_CONFIGFS_F_UAC2=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_USB_CONFIGFS_F_PRINTER=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_USB_G_ACM_MS=m
+CONFIG_USB_G_MULTI=m
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_WEBCAM=m
+CONFIG_MMC=y
+CONFIG_MMC_BLOCK_MINORS=32
+CONFIG_MMC_BCM2835_MMC=y
+CONFIG_MMC_BCM2835_DMA=y
+CONFIG_MMC_BCM2835_SDHOST=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_IPROC=y
+CONFIG_MMC_SPI=m
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_PCA963X=m
+CONFIG_LEDS_PWM=y
+CONFIG_LEDS_IS31FL32XX=m
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_ONESHOT=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=y
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_GPIO=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+CONFIG_LEDS_TRIGGER_TRANSIENT=m
+CONFIG_LEDS_TRIGGER_CAMERA=m
+CONFIG_LEDS_TRIGGER_INPUT=y
+CONFIG_LEDS_TRIGGER_PANIC=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
+CONFIG_LEDS_TRIGGER_PATTERN=m
+CONFIG_LEDS_TRIGGER_ACTPWR=y
+CONFIG_ACCESSIBILITY=y
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_ABX80X=m
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8523=m
+CONFIG_RTC_DRV_PCF85063=m
+CONFIG_RTC_DRV_PCF85363=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3028=m
+CONFIG_RTC_DRV_RV8803=m
+CONFIG_RTC_DRV_SD3078=m
+CONFIG_RTC_DRV_M41T93=m
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1302=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RX4581=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_PCF2123=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_RV3029C2=m
+CONFIG_DMADEVICES=y
+CONFIG_DMA_BCM2835=y
+CONFIG_DMA_BCM2708=y
+CONFIG_DMABUF_HEAPS=y
+CONFIG_DMABUF_HEAPS_SYSTEM=y
+CONFIG_DMABUF_HEAPS_CMA=y
+CONFIG_AUXDISPLAY=y
+CONFIG_HD44780_COMMON=m
+CONFIG_HD44780=m
+CONFIG_UIO=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_VHOST_NET=m
+CONFIG_VHOST_VSOCK=m
+CONFIG_VHOST_CROSS_ENDIAN_LEGACY=y
+CONFIG_STAGING=y
+CONFIG_PRISM2_USB=m
+CONFIG_R8712U=m
+CONFIG_R8188EU=m
+CONFIG_88EU_AP_MODE=y
+CONFIG_VT6656=m
+CONFIG_STAGING_MEDIA=y
+CONFIG_VIDEO_RPIVID=m
+CONFIG_ASHMEM=y
+CONFIG_FB_TFT=m
+CONFIG_FB_TFT_AGM1264K_FL=m
+CONFIG_FB_TFT_BD663474=m
+CONFIG_FB_TFT_HX8340BN=m
+CONFIG_FB_TFT_HX8347D=m
+CONFIG_FB_TFT_HX8353D=m
+CONFIG_FB_TFT_HX8357D=m
+CONFIG_FB_TFT_ILI9163=m
+CONFIG_FB_TFT_ILI9320=m
+CONFIG_FB_TFT_ILI9325=m
+CONFIG_FB_TFT_ILI9340=m
+CONFIG_FB_TFT_ILI9341=m
+CONFIG_FB_TFT_ILI9481=m
+CONFIG_FB_TFT_ILI9486=m
+CONFIG_FB_TFT_PCD8544=m
+CONFIG_FB_TFT_RA8875=m
+CONFIG_FB_TFT_S6D02A1=m
+CONFIG_FB_TFT_S6D1121=m
+CONFIG_FB_TFT_SH1106=m
+CONFIG_FB_TFT_SSD1289=m
+CONFIG_FB_TFT_SSD1306=m
+CONFIG_FB_TFT_SSD1331=m
+CONFIG_FB_TFT_SSD1351=m
+CONFIG_FB_TFT_ST7735R=m
+CONFIG_FB_TFT_ST7789V=m
+CONFIG_FB_TFT_TINYLCD=m
+CONFIG_FB_TFT_TLS8204=m
+CONFIG_FB_TFT_UC1701=m
+CONFIG_FB_TFT_UPD161704=m
+CONFIG_FB_TFT_WATTEROTT=m
+CONFIG_BCM2835_VCHIQ=y
+CONFIG_SND_BCM2835=m
+CONFIG_VIDEO_BCM2835=m
+CONFIG_VIDEO_CODEC_BCM2835=m
+CONFIG_VIDEO_ISP_BCM2835=m
+CONFIG_CLK_RASPBERRYPI=y
+CONFIG_MAILBOX=y
+CONFIG_BCM2835_MBOX=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_RASPBERRYPI_POWER=y
+CONFIG_IIO=m
+CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_SW_TRIGGER=m
+CONFIG_MCP320X=m
+CONFIG_MCP3422=m
+CONFIG_TI_ADS1015=m
+CONFIG_BME680=m
+CONFIG_CCS811=m
+CONFIG_SENSIRION_SGP30=m
+CONFIG_SPS30_I2C=m
+CONFIG_MAX30102=m
+CONFIG_DHT11=m
+CONFIG_HDC100X=m
+CONFIG_HTU21=m
+CONFIG_INV_MPU6050_I2C=m
+CONFIG_APDS9960=m
+CONFIG_BH1750=m
+CONFIG_TSL4531=m
+CONFIG_VEML6070=m
+CONFIG_IIO_HRTIMER_TRIGGER=m
+CONFIG_IIO_INTERRUPT_TRIGGER=m
+CONFIG_IIO_SYSFS_TRIGGER=m
+CONFIG_BMP280=m
+CONFIG_MAXIM_THERMOCOUPLE=m
+CONFIG_MAX31856=m
+CONFIG_PWM_BCM2835=m
+CONFIG_PWM_PCA9685=m
+CONFIG_PWM_RASPBERRYPI_POE=m
+CONFIG_RPI_AXIPERF=m
+CONFIG_ANDROID=y
+CONFIG_ANDROID_BINDER_IPC=y
+CONFIG_ANDROID_BINDERFS=y
+CONFIG_NVMEM_RMEM=m
+CONFIG_MUX_GPIO=m
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_REISERFS_FS=m
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+CONFIG_JFS_STATISTICS=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+CONFIG_GFS2_FS=m
+CONFIG_OCFS2_FS=m
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_F2FS_FS=y
+CONFIG_F2FS_FS_SECURITY=y
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FANOTIFY=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_OVERLAY_FS=m
+CONFIG_FSCACHE=y
+CONFIG_FSCACHE_STATS=y
+CONFIG_CACHEFILES=y
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
+CONFIG_EXFAT_FS=m
+CONFIG_NTFS_FS=m
+CONFIG_NTFS_RW=y
+CONFIG_NTFS3_FS=m
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_ECRYPT_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_SUMMARY=y
+CONFIG_UBIFS_FS=m
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_PSTORE=y
+CONFIG_PSTORE_CONSOLE=y
+CONFIG_PSTORE_RAM=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_SWAP=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_NFS_FSCACHE=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_CEPH_FS=m
+CONFIG_CIFS=m
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_SMB_SERVER=m
+CONFIG_9P_FS=m
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_DLM=m
+CONFIG_SECURITY=y
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_LSM=""
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_LZ4=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_USER_API_RNG=m
+CONFIG_CRYPTO_USER_API_AEAD=m
+# CONFIG_CRYPTO_HW is not set
+CONFIG_CRC_ITU_T=y
+CONFIG_LIBCRC32C=y
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=5
+CONFIG_PRINTK_TIME=y
+CONFIG_BOOT_PRINTK_DELAY=y
+CONFIG_KGDB=y
+CONFIG_KGDB_KDB=y
+CONFIG_KDB_KEYBOARD=y
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_LATENCYTOP=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_STACK_TRACER=y
+CONFIG_IRQSOFF_TRACER=y
+CONFIG_SCHED_TRACER=y
+CONFIG_BLK_DEV_IO_TRACE=y
+# CONFIG_UPROBE_EVENTS is not set
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index 3183183b6a4e..52090f681312 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -9,25 +9,21 @@
 # "Merge remote-tracking branch 'stable/linux-5.10.y' into rpi-5.10.y" commit.
 #
 # [1] https://github.com/raspberrypi/linux/tags
-#
-# WARNING: keep all rpi*-kernel packages in sync
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
 
 pkgname=rpi-kernel
-version=5.15.61
+version=5.15.68
 revision=1
-archs="armv6l*"
+_githash="ac7d1fdd216a11b75527e5d6b3a00d86ec28edfc"
+archs="armv6l* armv7l* aarch64*"
 wrksrc="linux-${_githash}"
 hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
 makedepends="ncurses-devel"
 maintainer="Piraty <piraty1@inbox.ru>"
 homepage="http://www.kernel.org"
 license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi zero/1 (${version%.*} series [git ${_gitshort}])"
+short_desc="Linux kernel for Raspberry Pi (${version%.*} series [git ${_githash:0:7}])"
 distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
+checksum=44699750d6e69ef47343af9cf9fbae3431a6da12990151273339324820c3bf0e
 python_version=3
 
 _kernver="${version}_${revision}"
@@ -40,56 +36,54 @@ noshlibprovides=yes
 triggers="kernel-hooks"
 # These files could be modified when an external module is built.
 mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
+ /usr/lib/modules/${_kernver}/modules.dep
+ /usr/lib/modules/${_kernver}/modules.dep.bin
+ /usr/lib/modules/${_kernver}/modules.symbols
+ /usr/lib/modules/${_kernver}/modules.symbols.bin
+ /usr/lib/modules/${_kernver}/modules.alias
+ /usr/lib/modules/${_kernver}/modules.alias.bin
+ /usr/lib/modules/${_kernver}/modules.devname"
 
 _arch=
+_image_target=
+_image_name=
 case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
+	armv6l*) _arch=arm; _image_target=zImage; _image_name=kernel.img ;;
+	armv7l*) _arch=arm; _image_target=zImage; _image_name=kernel7.img ;;
+	aarch64*) _arch=arm64; _image_target=Image; _image_name=kernel8.img ;;
 esac
+
 _cross=
 if [ "$CROSS_BUILD" ]; then
 	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
 fi
 
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
 do_configure() {
 	local target defconfig
 
-	# Use upstream's default configuration, no need to maintain ours.
 	case "$XBPS_TARGET_MACHINE" in
-		armv6l*)
-			target=bcmrpi_defconfig
-			;;
+		# for zero, 1
+		armv6l*) target=bcmrpi_defconfig ;;
+		# for 2
+		armv7l*) target=bcm2709_defconfig ;;
+		# for 3, 4, zero 2
+		# combination of bcmrpi3_defconfig and bcm2711_defconfig
+		aarch64*)
+			target=rpi34_defconfig
+			cp "${FILESDIR}/${target}" "arch/${_arch}/configs"
+		;;
 	esac
 
 	defconfig="arch/${_arch}/configs/${target}"
 	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
 	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
 
 	# HID Controllers
 	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
 
+	# Disable GCC plugins
+	echo "# CONFIG_GCC_PLUGINS is not set" >> "$defconfig"
+
 	# LXD 4.2+ support
 	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
 
@@ -98,26 +92,17 @@ do_configure() {
 	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
 	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
 }
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
 
+do_build() {
 	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
+	make ${makejobs} ${_cross} ARCH=${_arch} ${_image_target} modules dtbs
 }
+
 do_install() {
-	local hdrdest
+	local hdrdest="${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}"
 
 	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
+	vsed -i -e '2iexit 0' scripts/depmod.sh
 
 	# Install kernel, firmware and modules
 	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
@@ -125,11 +110,9 @@ do_install() {
 	# Install device tree blobs
 	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
 
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm/boot/zImage ${DESTDIR}/boot/kernel.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
+	# Install kernel image
+	# TODO: does zImage work on 64?
+	vinstall arch/${_arch}/boot/${_image_target} 644 boot ${_image_name}
 
 	# Switch to /usr.
 	vmkdir usr
@@ -224,6 +207,13 @@ do_install() {
 	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
 }
 
+subpackages="rpi-kernel-headers"
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7l*) subpackages+=" rpi2-kernel rpi2-kernel-headers" ;;
+	aarch64*) subpackages+=" rpi3-kernel rpi3-kernel-headers rpi4-kernel rpi4-kernel-headers" ;;
+esac
+
 rpi-kernel-headers_package() {
 	nostrip=yes
 	noverifyrdeps=yes
@@ -235,33 +225,38 @@ rpi-kernel-headers_package() {
 	}
 }
 
+rpi2-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
 
-# support legacy systems (before rpi-kernel was split to rpi{,2,3})
-# archs != armv6* are emtpy meta packages to pull the new rpi{$n}-kernel package
-archs+=" armv7l* aarch64*"
-case "$XBPS_TARGET_MACHINE" in
-	armv6*) : ;;
-	*)
-		build_style=meta
-		short_desc="Linux kernel for Raspberry Pi (transitional dummy package)"
-
-		pre_configure() { : ; }
-		do_configure() { : ; }
-		do_build() { : ; }
-		do_install() { : ; }
-
-		case "$XBPS_TARGET_MACHINE" in
-			armv7*) depends=rpi2-kernel ;;
-			aarch64*) depends=rpi3-kernel ;;
-		esac
-
-		rpi-kernel-headers_package() {
-			build_style=meta
-			short_desc="Linux kernel headers for Raspberry Pi (transitional dummy package)"
-			case "$XBPS_TARGET_MACHINE" in
-				armv7*) depends=rpi2-kernel-headers ;;
-				aarch64*) depends=rpi3-kernel-headers ;;
-			esac
-		}
-		;;
-esac
+rpi2-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
+
+rpi3-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
+
+rpi3-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
+
+rpi4-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
+
+rpi4-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
diff --git a/srcpkgs/rpi2-kernel b/srcpkgs/rpi2-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi2-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi2-kernel-headers b/srcpkgs/rpi2-kernel-headers
index fbe6d91aeb7f..3b4ec073331b 120000
--- a/srcpkgs/rpi2-kernel-headers
+++ b/srcpkgs/rpi2-kernel-headers
@@ -1 +1 @@
-rpi2-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi2-kernel/template b/srcpkgs/rpi2-kernel/template
deleted file mode 100644
index 8963b855a4de..000000000000
--- a/srcpkgs/rpi2-kernel/template
+++ /dev/null
@@ -1,228 +0,0 @@
-# Template file for 'rpi2-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi2-kernel
-version=5.10.110
-revision=1
-archs="armv7l*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 2 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		armv7l*)
-			target=bcm2709_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	# Disable GCC plugins
-	echo "# CONFIG_GCC_PLUGINS is not set" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm/boot/zImage ${DESTDIR}/boot/kernel7.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi2-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}
diff --git a/srcpkgs/rpi3-kernel b/srcpkgs/rpi3-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi3-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi3-kernel-headers b/srcpkgs/rpi3-kernel-headers
index 29e9f333d668..3b4ec073331b 120000
--- a/srcpkgs/rpi3-kernel-headers
+++ b/srcpkgs/rpi3-kernel-headers
@@ -1 +1 @@
-rpi3-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi3-kernel/template b/srcpkgs/rpi3-kernel/template
deleted file mode 100644
index 20d51a6b8579..000000000000
--- a/srcpkgs/rpi3-kernel/template
+++ /dev/null
@@ -1,228 +0,0 @@
-# Template file for 'rpi3-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi3-kernel
-version=5.15.61
-revision=1
-archs="aarch64*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 3 / Zero 2 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		aarch64*)
-			target=bcmrpi3_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# move dtb that ended up in /boot/broadcom
-	mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm64/boot/Image ${DESTDIR}/boot/kernel8.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi3-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}
diff --git a/srcpkgs/rpi4-kernel b/srcpkgs/rpi4-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi4-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi4-kernel-headers b/srcpkgs/rpi4-kernel-headers
index 9c2fad143506..3b4ec073331b 120000
--- a/srcpkgs/rpi4-kernel-headers
+++ b/srcpkgs/rpi4-kernel-headers
@@ -1 +1 @@
-rpi4-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi4-kernel/template b/srcpkgs/rpi4-kernel/template
deleted file mode 100644
index d4fb3c72906e..000000000000
--- a/srcpkgs/rpi4-kernel/template
+++ /dev/null
@@ -1,229 +0,0 @@
-# Template file for 'rpi4-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi4-kernel
-version=5.15.61
-revision=1
-archs="aarch64*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 4 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-conflicts=rpi3-kernel
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		aarch64*)
-			target=bcm2711_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# move dtb that ended up in /boot/broadcom
-	mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm64/boot/Image ${DESTDIR}/boot/kernel8.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi4-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PR PATCH] [Updated] rpi*-kernel: update to 5.15.68, merge templates
  2022-09-24  9:42 [PR PATCH] rpi*-kernel: update to 5.15.68, merge templates classabbyamp
  2022-09-24 23:51 ` [PR PATCH] [Updated] " classabbyamp
  2022-09-25  6:59 ` classabbyamp
@ 2022-09-25  9:08 ` classabbyamp
  2022-09-25  9:19 ` classabbyamp
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: classabbyamp @ 2022-09-25  9:08 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 914 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages the-rpi-unification-of-2024
https://github.com/void-linux/void-packages/pull/39442

rpi*-kernel: update to 5.15.68, merge templates
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**

### TODO
- [ ] test if `zImage` works for `aarch64*` (it might, according to [the note here](https://www.raspberrypi.com/documentation/computers/config_txt.html#arm_64bit))
- [ ] test upgrade on all platforms
     - [ ] rpi1 (armv6l)
     - [ ] rpi0 (armv6l)
     - [x] rpi2 (armv7l)
     - [ ] rpi3 (aarch64)
     - [x] rpi02 (aarch64)
     - [ ] rpi4 (aarch64)


A patch file from https://github.com/void-linux/void-packages/pull/39442.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-the-rpi-unification-of-2024-39442.patch --]
[-- Type: text/x-diff, Size: 75042 bytes --]

From eea27e4efc877bdcfad961d4c8339e7b5a3effc7 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:35:07 -0400
Subject: [PATCH 1/2] rpi-base: re-merge rpi*-base and -kernel packages

---
 srcpkgs/rpi-base/template | 48 +++++++++------------------------------
 1 file changed, 11 insertions(+), 37 deletions(-)

diff --git a/srcpkgs/rpi-base/template b/srcpkgs/rpi-base/template
index 8940033c83ab..3b22d684f4b2 100644
--- a/srcpkgs/rpi-base/template
+++ b/srcpkgs/rpi-base/template
@@ -1,10 +1,9 @@
 # Template file for 'rpi-base'
 pkgname=rpi-base
 version=3.0
-revision=2
+revision=3
 archs="armv6l* armv7l* aarch64*"
-_base_depends="virtual?ntp-daemon rpi-firmware"
-depends="${_base_depends} rpi-kernel"
+depends="virtual?ntp-daemon rpi-firmware rpi-kernel"
 short_desc="Void Linux Raspberry Pi base files"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="Public Domain"
@@ -26,45 +25,20 @@ case "$XBPS_TARGET_MACHINE" in
 		;;
 esac
 
-# support legacy systems (before rpi-kernel was split to rpi{,2,3})
-# archs != armv6* are emtpy meta packages to pull the new rpi${n}-base package
-case "$XBPS_TARGET_MACHINE" in
-	armv6*) : ;;
-	*)
-		build_style=meta
-		short_desc+=" (transitional dummy package)"
-
-	 	do_install() { : ; }
-
-		case "$XBPS_TARGET_MACHINE" in
-			armv7*) depends="rpi2-base" ;;
-			aarch64*) depends="rpi3-base" ;;
-		esac
-		;;
-esac
-
 rpi2-base_package() {
-	depends="${_base_depends} rpi2-kernel"
-	short_desc="Void Linux Raspberry Pi 2 base files"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }
 
-
 rpi3-base_package() {
-	depends="${_base_depends} rpi3-kernel"
-	short_desc="Void Linux Raspberry Pi 3 base files"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }
 
 rpi4-base_package() {
-	depends="${_base_depends} rpi4-kernel"
-	short_desc="Void Linux Raspberry Pi 4 base files"
-	conflicts="rpi3-base"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }

From 22c86d341d2c94b6de593931703b694b852ea081 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:38:28 -0400
Subject: [PATCH 2/2] rpi*-kernel: update to 5.15.68, merge templates

---
 srcpkgs/rpi-kernel/files/rpi34_defconfig | 1613 ++++++++++++++++++++++
 srcpkgs/rpi-kernel/template              |  168 +--
 srcpkgs/rpi2-kernel                      |    1 +
 srcpkgs/rpi2-kernel-headers              |    2 +-
 srcpkgs/rpi2-kernel/template             |  228 ---
 srcpkgs/rpi3-kernel                      |    1 +
 srcpkgs/rpi3-kernel-headers              |    2 +-
 srcpkgs/rpi3-kernel/template             |  228 ---
 srcpkgs/rpi4-kernel                      |    1 +
 srcpkgs/rpi4-kernel-headers              |    2 +-
 srcpkgs/rpi4-kernel/template             |  229 ---
 11 files changed, 1703 insertions(+), 772 deletions(-)
 create mode 100644 srcpkgs/rpi-kernel/files/rpi34_defconfig
 create mode 120000 srcpkgs/rpi2-kernel
 delete mode 100644 srcpkgs/rpi2-kernel/template
 create mode 120000 srcpkgs/rpi3-kernel
 delete mode 100644 srcpkgs/rpi3-kernel/template
 create mode 120000 srcpkgs/rpi4-kernel
 delete mode 100644 srcpkgs/rpi4-kernel/template

diff --git a/srcpkgs/rpi-kernel/files/rpi34_defconfig b/srcpkgs/rpi-kernel/files/rpi34_defconfig
new file mode 100644
index 000000000000..6e0750be2b8a
--- /dev/null
+++ b/srcpkgs/rpi-kernel/files/rpi34_defconfig
@@ -0,0 +1,1613 @@
+CONFIG_LOCALVERSION="-v8"
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_GENERIC_IRQ_DEBUGFS=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_BPF_JIT=y
+CONFIG_PREEMPT=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_IKCONFIG=m
+CONFIG_IKCONFIG_PROC=y
+CONFIG_MEMCG=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CPUSETS=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_PERF=y
+CONFIG_CGROUP_BPF=y
+CONFIG_NAMESPACES=y
+CONFIG_USER_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_EMBEDDED=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_PROFILING=y
+CONFIG_ARCH_BCM2835=y
+# CONFIG_CAVIUM_ERRATUM_22375 is not set
+# CONFIG_CAVIUM_ERRATUM_23154 is not set
+# CONFIG_CAVIUM_ERRATUM_27456 is not set
+CONFIG_SCHED_MC=y
+CONFIG_NR_CPUS=256
+CONFIG_HZ_100=y
+CONFIG_HZ=100
+CONFIG_COMPAT=y
+CONFIG_ARMV8_DEPRECATED=y
+CONFIG_SWP_EMULATION=y
+CONFIG_CP15_BARRIER_EMULATION=y
+CONFIG_SETEND_EMULATION=y
+CONFIG_RANDOMIZE_BASE=y
+CONFIG_CMDLINE="console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait"
+# CONFIG_SUSPEND is not set
+CONFIG_CPU_IDLE=y
+CONFIG_ARM_CPUIDLE=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+CONFIG_CPUFREQ_DT=y
+CONFIG_ARM_RASPBERRYPI_CPUFREQ=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=y
+CONFIG_CRYPTO_AES_ARM64_BS=m
+CONFIG_JUMP_LABEL=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_MODULE_COMPRESS_XZ=y
+CONFIG_BLK_DEV_THROTTLING=y
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_MAC_PARTITION=y
+CONFIG_BINFMT_MISC=m
+CONFIG_CLEANCACHE=y
+CONFIG_FRONTSWAP=y
+CONFIG_CMA=y
+CONFIG_ZSWAP=y
+CONFIG_Z3FOLD=m
+CONFIG_ZSMALLOC=m
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM_USER=m
+CONFIG_XFRM_STATISTICS=y
+CONFIG_NET_KEY=m
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_NET_IPVTI=m
+CONFIG_NET_FOU=m
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_DIAG=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BBR=m
+CONFIG_IPV6=m
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_ESP_OFFLOAD=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_ILA=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IPV6_PIMSM_V2=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+CONFIG_BRIDGE_NETFILTER=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_INET=y
+CONFIG_NF_TABLES_NETDEV=y
+CONFIG_NFT_NUMGEN=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_FLOW_OFFLOAD=m
+CONFIG_NFT_COUNTER=m
+CONFIG_NFT_CONNLIMIT=m
+CONFIG_NFT_LOG=m
+CONFIG_NFT_LIMIT=m
+CONFIG_NFT_MASQ=m
+CONFIG_NFT_REDIR=m
+CONFIG_NFT_NAT=m
+CONFIG_NFT_TUNNEL=m
+CONFIG_NFT_OBJREF=m
+CONFIG_NFT_QUEUE=m
+CONFIG_NFT_QUOTA=m
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_XFRM=m
+CONFIG_NFT_SOCKET=m
+CONFIG_NFT_OSF=m
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_SYNPROXY=m
+CONFIG_NFT_DUP_NETDEV=m
+CONFIG_NFT_FWD_NETDEV=m
+CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE=m
+CONFIG_NETFILTER_XT_SET=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HMARK=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_BPF=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_VS=m
+CONFIG_IP_VS_IPV6=y
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_PE_SIP=m
+CONFIG_NFT_DUP_IPV4=m
+CONFIG_NFT_FIB_IPV4=m
+CONFIG_NF_TABLES_ARP=y
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_LOG_ARP=m
+CONFIG_NF_LOG_IPV4=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+CONFIG_NFT_DUP_IPV6=m
+CONFIG_NFT_FIB_IPV6=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_TARGET_SYNPROXY=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_IP6_NF_TARGET_NPT=m
+CONFIG_NF_TABLES_BRIDGE=m
+CONFIG_NFT_BRIDGE_REJECT=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+CONFIG_ATM=m
+CONFIG_L2TP=m
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_BRIDGE=m
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_ATALK=m
+CONFIG_6LOWPAN=m
+CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
+CONFIG_MAC802154=m
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_CODEL=m
+CONFIG_NET_SCH_FQ_CODEL=m
+CONFIG_NET_SCH_CAKE=m
+CONFIG_NET_SCH_FQ=m
+CONFIG_NET_SCH_HHF=m
+CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_PLUG=m
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=m
+CONFIG_NET_CLS_BPF=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_EMATCH_IPSET=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_BATMAN_ADV=m
+CONFIG_OPENVSWITCH=m
+CONFIG_VSOCKETS=m
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_NET_PKTGEN=m
+CONFIG_HAMRADIO=y
+CONFIG_AX25=m
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_YAM=m
+CONFIG_CAN=m
+CONFIG_CAN_J1939=m
+CONFIG_CAN_ISOTP=m
+CONFIG_CAN_VCAN=m
+CONFIG_CAN_SLCAN=m
+CONFIG_CAN_MCP251X=m
+CONFIG_CAN_MCP251XFD=m
+CONFIG_CAN_EMS_USB=m
+CONFIG_CAN_GS_USB=m
+CONFIG_CAN_PEAK_USB=m
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+CONFIG_BT_6LOWPAN=m
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_3WIRE=y
+CONFIG_BT_HCIUART_BCM=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_CFG80211=m
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211=m
+CONFIG_MAC80211_MESH=y
+CONFIG_RFKILL=m
+CONFIG_RFKILL_INPUT=y
+CONFIG_NET_9P=m
+CONFIG_NFC=m
+CONFIG_PCI=y
+CONFIG_PCIE_BRCMSTB=y
+CONFIG_UEVENT_HELPER=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_RASPBERRYPI_FIRMWARE=y
+# CONFIG_EFI_VARS_PSTORE is not set
+CONFIG_MTD=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK2MTD=m
+CONFIG_MTD_SPI_NOR=m
+CONFIG_MTD_UBI=m
+CONFIG_OF_CONFIGFS=y
+CONFIG_ZRAM=m
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_RAM=y
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_ATA_OVER_ETH=m
+CONFIG_BLK_DEV_NVME=y
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_TI_ST=m
+CONFIG_SCSI=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_CHR_DEV_ST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_CHR_DEV_SG=m
+CONFIG_SCSI_ISCSI_ATTRS=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_ATA=m
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_MV=m
+CONFIG_MD=y
+CONFIG_MD_LINEAR=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+CONFIG_DM_CACHE=m
+CONFIG_DM_WRITECACHE=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_RAID=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_DELAY=m
+CONFIG_NETDEVICES=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_WIREGUARD=m
+CONFIG_IFB=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_IPVLAN=m
+CONFIG_VXLAN=m
+CONFIG_NETCONSOLE=m
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_NET_VRF=m
+CONFIG_VSOCKMON=m
+CONFIG_BCMGENET=y
+CONFIG_ENC28J60=m
+CONFIG_LAN743X=m
+CONFIG_QCA7000_SPI=m
+CONFIG_QCA7000_UART=m
+CONFIG_R8169=m
+CONFIG_WIZNET_W5100=m
+CONFIG_WIZNET_W5100_SPI=m
+CONFIG_MICREL_PHY=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_LAN78XX=y
+CONFIG_USB_USBNET=y
+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_HUAWEI_CDC_NCM=m
+CONFIG_USB_NET_CDC_MBIM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SR9700=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=y
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_USB_NET_AQC111=m
+CONFIG_ATH9K=m
+CONFIG_ATH9K_HTC=m
+CONFIG_CARL9170=m
+CONFIG_ATH6KL=m
+CONFIG_ATH6KL_USB=m
+CONFIG_AR5523=m
+CONFIG_AT76C50X_USB=m
+CONFIG_B43=m
+# CONFIG_B43_PHY_N is not set
+CONFIG_B43LEGACY=m
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_USB=y
+CONFIG_BRCMDBG=y
+CONFIG_HOSTAP=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_THINFIRM=m
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MT7601U=m
+CONFIG_MT76x0U=m
+CONFIG_MT76x2U=m
+CONFIG_RT2X00=m
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT3573=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RTL8187=m
+CONFIG_RTL8192CU=m
+CONFIG_RTL8XXXU=m
+CONFIG_USB_ZD1201=m
+CONFIG_ZD1211RW=m
+CONFIG_MAC80211_HWSIM=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_IEEE802154_AT86RF230=m
+CONFIG_IEEE802154_MRF24J40=m
+CONFIG_IEEE802154_CC2520=m
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=y
+# CONFIG_KEYBOARD_ATKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_TCA8418=m
+CONFIG_KEYBOARD_MATRIX=m
+CONFIG_KEYBOARD_CAP11XX=m
+# CONFIG_INPUT_MOUSE is not set
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_RPISENSE=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_EGALAX=m
+CONFIG_TOUCHSCREEN_EXC3000=m
+CONFIG_TOUCHSCREEN_GOODIX=m
+CONFIG_TOUCHSCREEN_ILI210X=m
+CONFIG_TOUCHSCREEN_EKTF2127=m
+CONFIG_TOUCHSCREEN_EDT_FT5X06=m
+CONFIG_TOUCHSCREEN_RASPBERRYPI_FW=m
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_STMPE=m
+CONFIG_TOUCHSCREEN_IQS5XX=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_CMA3000=m
+CONFIG_SERIO=m
+CONFIG_SERIO_RAW=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_BRCM_CHAR_DRIVERS=y
+CONFIG_BCM_VCIO=y
+CONFIG_BCM2835_DEVGPIOMEM=y
+CONFIG_RPIVID_MEM=m
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+# CONFIG_SERIAL_8250_DMA is not set
+CONFIG_SERIAL_8250_NR_UARTS=1
+CONFIG_SERIAL_8250_RUNTIME_UARTS=0
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_BCM2835AUX=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_SC16IS7XX=m
+CONFIG_SERIAL_SC16IS7XX_SPI=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_TTY_PRINTK=y
+CONFIG_HW_RANDOM=y
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS_SPI=m
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX_GPMUX=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_MUX_PINCTRL=m
+CONFIG_I2C_BCM2708=m
+CONFIG_I2C_BCM2835=m
+CONFIG_I2C_BRCMSTB=m
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_ROBOTFUZZ_OSIF=m
+CONFIG_I2C_TINY_USB=m
+CONFIG_SPI=y
+CONFIG_SPI_BCM2835=m
+CONFIG_SPI_BCM2835AUX=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_SLAVE=y
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_GPIO=m
+CONFIG_PINCTRL_MCP23S08=m
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_BCM_VIRT=y
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCA953X_IRQ=y
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_ARIZONA=m
+CONFIG_GPIO_FSM=m
+CONFIG_GPIO_STMPE=y
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MOCKUP=m
+CONFIG_W1=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_GPIO=m
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2413=m
+CONFIG_W1_SLAVE_DS2406=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_DS2781=m
+CONFIG_W1_SLAVE_DS28E04=m
+CONFIG_W1_SLAVE_DS28E17=m
+CONFIG_POWER_RESET_GPIO=y
+CONFIG_RPI_POE_POWER=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_BATTERY_GAUGE_LTC2941=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_GPIO_FAN=m
+CONFIG_SENSORS_IIO_HWMON=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_PWM_FAN=m
+CONFIG_SENSORS_RASPBERRYPI_HWMON=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SHT3x=m
+CONFIG_SENSORS_SHTC1=m
+CONFIG_SENSORS_EMC2305=m
+CONFIG_SENSORS_INA2XX=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_BCM2711_THERMAL=y
+CONFIG_BCM2835_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_GPIO_WATCHDOG=m
+CONFIG_BCM2835_WDT=y
+CONFIG_MFD_RASPBERRYPI_POE_HAT=m
+CONFIG_MFD_STMPE=y
+CONFIG_STMPE_SPI=y
+CONFIG_MFD_SYSCON=y
+CONFIG_MFD_ARIZONA_I2C=m
+CONFIG_MFD_ARIZONA_SPI=m
+CONFIG_MFD_WM5102=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_ARIZONA_LDO1=m
+CONFIG_REGULATOR_ARIZONA_MICSUPP=m
+CONFIG_REGULATOR_GPIO=y
+CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m
+CONFIG_RC_CORE=y
+CONFIG_LIRC=y
+CONFIG_BPF_LIRC_MODE2=y
+CONFIG_RC_DECODERS=y
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_SANYO_DECODER=m
+CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_XMP_DECODER=m
+CONFIG_IR_IMON_DECODER=m
+CONFIG_RC_DEVICES=y
+CONFIG_RC_ATI_REMOTE=m
+CONFIG_IR_IMON=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_IGUANA=m
+CONFIG_IR_TTUSBIR=m
+CONFIG_RC_LOOPBACK=m
+CONFIG_IR_GPIO_CIR=m
+CONFIG_IR_GPIO_TX=m
+CONFIG_IR_PWM_TX=m
+CONFIG_IR_TOY=m
+CONFIG_MEDIA_CEC_RC=y
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_DTCS033=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_JL2005BCD=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STK1135=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
+CONFIG_USB_GSPCA_TOUPTEK=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_USB_PWC=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_VIDEO_USBTV=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_STK1160_COMMON=m
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_AU0828_RC=y
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+CONFIG_DVB_USB=m
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_V2=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_AF9035=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_AZ6007=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB_MXL111SF=m
+CONFIG_DVB_USB_RTL28XXU=m
+CONFIG_DVB_USB_DVBSKY=m
+CONFIG_SMS_USB_DRV=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+CONFIG_DVB_AS102=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_V4L2=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_RADIO_SI470X=m
+CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
+CONFIG_RADIO_SI4713=m
+CONFIG_I2C_SI4713=m
+CONFIG_USB_MR800=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_SHARK=m
+CONFIG_RADIO_SHARK2=m
+CONFIG_USB_KEENE=m
+CONFIG_USB_MA901=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_WL1273=m
+CONFIG_RADIO_WL128X=m
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_MUX=m
+CONFIG_VIDEO_BCM2835_UNICAM=m
+CONFIG_V4L_TEST_DRIVERS=y
+CONFIG_VIDEO_VIMC=m
+CONFIG_VIDEO_VIVID=m
+CONFIG_VIDEO_VIM2M=m
+CONFIG_VIDEO_VICODEC=m
+CONFIG_VIDEO_UDA1342=m
+CONFIG_VIDEO_SONY_BTF_MPX=m
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_TC358743=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TW2804=m
+CONFIG_VIDEO_TW9903=m
+CONFIG_VIDEO_TW9906=m
+CONFIG_VIDEO_ARDUCAM_64MP=m
+CONFIG_VIDEO_ARDUCAM_PIVARIETY=m
+CONFIG_VIDEO_IMX219=m
+CONFIG_VIDEO_IMX258=m
+CONFIG_VIDEO_IMX290=m
+CONFIG_VIDEO_IMX296=m
+CONFIG_VIDEO_IMX477=m
+CONFIG_VIDEO_IMX519=m
+CONFIG_VIDEO_OV2311=m
+CONFIG_VIDEO_OV5647=m
+CONFIG_VIDEO_OV7251=m
+CONFIG_VIDEO_OV7640=m
+CONFIG_VIDEO_OV9281=m
+CONFIG_VIDEO_IRS1125=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_AD5398=m
+CONFIG_DRM=m
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+CONFIG_DRM_UDL=m
+CONFIG_DRM_PANEL_SIMPLE=m
+CONFIG_DRM_PANEL_ILITEK_ILI9806E=m
+CONFIG_DRM_PANEL_ILITEK_ILI9881C=m
+CONFIG_DRM_PANEL_JDI_LT070ME05000=m
+CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
+CONFIG_DRM_PANEL_SITRONIX_ST7701=m
+CONFIG_DRM_PANEL_TPO_Y17P=m
+CONFIG_DRM_DISPLAY_CONNECTOR=m
+CONFIG_DRM_SIMPLE_BRIDGE=m
+CONFIG_DRM_TOSHIBA_TC358762=m
+CONFIG_DRM_V3D=m
+CONFIG_DRM_VC4=m
+CONFIG_DRM_VC4_HDMI_CEC=y
+CONFIG_DRM_PANEL_MIPI_DBI=m
+CONFIG_TINYDRM_HX8357D=m
+CONFIG_TINYDRM_ILI9225=m
+CONFIG_TINYDRM_ILI9341=m
+CONFIG_TINYDRM_MI0283QT=m
+CONFIG_TINYDRM_REPAPER=m
+CONFIG_TINYDRM_ST7586=m
+CONFIG_TINYDRM_ST7735R=m
+CONFIG_DRM_GUD=m
+CONFIG_FB=y
+CONFIG_FB_BCM2708=y
+CONFIG_FB_UDL=m
+CONFIG_FB_SIMPLE=y
+CONFIG_FB_SSD1307=m
+CONFIG_FB_RPISENSE=m
+CONFIG_BACKLIGHT_PWM=m
+CONFIG_BACKLIGHT_RPI=m
+CONFIG_BACKLIGHT_GPIO=m
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_SOUND=y
+CONFIG_SND=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_USB_HIFACE=m
+CONFIG_SND_USB_TONEPORT=m
+CONFIG_SND_SOC=m
+CONFIG_SND_BCM2835_SOC_I2S=m
+CONFIG_SND_BCM2708_SOC_CHIPDIP_DAC=m
+CONFIG_SND_BCM2708_SOC_GOOGLEVOICEHAT_SOUNDCARD=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSHD=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSADC=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSADCPRO=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSDSP=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP=m
+CONFIG_SND_BCM2708_SOC_PIFI_40=m
+CONFIG_SND_BCM2708_SOC_RPI_CIRRUS=m
+CONFIG_SND_BCM2708_SOC_RPI_DAC=m
+CONFIG_SND_BCM2708_SOC_RPI_PROTO=m
+CONFIG_SND_BCM2708_SOC_JUSTBOOM_BOTH=m
+CONFIG_SND_BCM2708_SOC_JUSTBOOM_DAC=m
+CONFIG_SND_BCM2708_SOC_JUSTBOOM_DIGI=m
+CONFIG_SND_BCM2708_SOC_IQAUDIO_CODEC=m
+CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC=m
+CONFIG_SND_BCM2708_SOC_IQAUDIO_DIGI=m
+CONFIG_SND_BCM2708_SOC_I_SABRE_Q2M=m
+CONFIG_SND_BCM2708_SOC_ADAU1977_ADC=m
+CONFIG_SND_AUDIOINJECTOR_PI_SOUNDCARD=m
+CONFIG_SND_AUDIOINJECTOR_OCTO_SOUNDCARD=m
+CONFIG_SND_AUDIOINJECTOR_ISOLATED_SOUNDCARD=m
+CONFIG_SND_AUDIOSENSE_PI=m
+CONFIG_SND_DIGIDAC1_SOUNDCARD=m
+CONFIG_SND_BCM2708_SOC_DIONAUDIO_LOCO=m
+CONFIG_SND_BCM2708_SOC_DIONAUDIO_LOCO_V2=m
+CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC=m
+CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC_PLUS=m
+CONFIG_SND_BCM2708_SOC_ALLO_BOSS_DAC=m
+CONFIG_SND_BCM2708_SOC_ALLO_BOSS2_DAC=m
+CONFIG_SND_BCM2708_SOC_ALLO_DIGIONE=m
+CONFIG_SND_BCM2708_SOC_ALLO_KATANA_DAC=m
+CONFIG_SND_BCM2708_SOC_FE_PI_AUDIO=m
+CONFIG_SND_PISOUND=m
+CONFIG_SND_DACBERRY400=m
+CONFIG_SND_SOC_AD193X_SPI=m
+CONFIG_SND_SOC_AD193X_I2C=m
+CONFIG_SND_SOC_ADAU1701=m
+CONFIG_SND_SOC_ADAU7002=m
+CONFIG_SND_SOC_AK4554=m
+CONFIG_SND_SOC_CS4265=m
+CONFIG_SND_SOC_ICS43432=m
+CONFIG_SND_SOC_MA120X0P=m
+CONFIG_SND_SOC_MAX98357A=m
+CONFIG_SND_SOC_SPDIF=m
+CONFIG_SND_SOC_WM8804_I2C=m
+CONFIG_SND_SOC_WM8960=m
+CONFIG_SND_SIMPLE_CARD=m
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_UHID=m
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+CONFIG_HID_APPLE=m
+CONFIG_HID_ASUS=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_BETOP_FF=m
+CONFIG_HID_BIGBEN_FF=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_ELO=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_GEMBIRD=m
+CONFIG_HID_HOLTEK=m
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PLAYSTATION=m
+CONFIG_PLAYSTATION_FF=y
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_SONY_FF=y
+CONFIG_HID_SPEEDLINK=m
+CONFIG_HID_STEAM=y
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THINGM=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_HID_WACOM=m
+CONFIG_HID_WIIMOTE=m
+CONFIG_HID_XINMO=m
+CONFIG_HID_ZEROPLUS=m
+CONFIG_HID_ZYDACRON=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+CONFIG_USB=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_MON=m
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_PLATFORM=m
+CONFIG_USB_DWCOTG=y
+CONFIG_USB_PRINTER=m
+CONFIG_USB_TMC=m
+CONFIG_USB_STORAGE=y
+CONFIG_USB_STORAGE_REALTEK=m
+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
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+CONFIG_USBIP_VUDC=m
+CONFIG_USB_DWC2=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_XSENS_MT=m
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
+CONFIG_USB_SERIAL_DEBUG=m
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_YUREX=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+CONFIG_USB_CONFIGFS_F_UAC2=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_USB_CONFIGFS_F_PRINTER=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_USB_G_ACM_MS=m
+CONFIG_USB_G_MULTI=m
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_WEBCAM=m
+CONFIG_MMC=y
+CONFIG_MMC_BLOCK_MINORS=32
+CONFIG_MMC_BCM2835_MMC=y
+CONFIG_MMC_BCM2835_DMA=y
+CONFIG_MMC_BCM2835_SDHOST=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_IPROC=y
+CONFIG_MMC_SPI=m
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_PCA963X=m
+CONFIG_LEDS_PWM=y
+CONFIG_LEDS_IS31FL32XX=m
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_ONESHOT=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=y
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_GPIO=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+CONFIG_LEDS_TRIGGER_TRANSIENT=m
+CONFIG_LEDS_TRIGGER_CAMERA=m
+CONFIG_LEDS_TRIGGER_INPUT=y
+CONFIG_LEDS_TRIGGER_PANIC=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
+CONFIG_LEDS_TRIGGER_PATTERN=m
+CONFIG_LEDS_TRIGGER_ACTPWR=y
+CONFIG_ACCESSIBILITY=y
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_ABX80X=m
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8523=m
+CONFIG_RTC_DRV_PCF85063=m
+CONFIG_RTC_DRV_PCF85363=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3028=m
+CONFIG_RTC_DRV_RV8803=m
+CONFIG_RTC_DRV_SD3078=m
+CONFIG_RTC_DRV_M41T93=m
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1302=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RX4581=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_PCF2123=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_RV3029C2=m
+CONFIG_DMADEVICES=y
+CONFIG_DMA_BCM2835=y
+CONFIG_DMA_BCM2708=y
+CONFIG_DMABUF_HEAPS=y
+CONFIG_DMABUF_HEAPS_SYSTEM=y
+CONFIG_DMABUF_HEAPS_CMA=y
+CONFIG_AUXDISPLAY=y
+CONFIG_HD44780_COMMON=m
+CONFIG_HD44780=m
+CONFIG_UIO=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_VHOST_NET=m
+CONFIG_VHOST_VSOCK=m
+CONFIG_VHOST_CROSS_ENDIAN_LEGACY=y
+CONFIG_STAGING=y
+CONFIG_PRISM2_USB=m
+CONFIG_R8712U=m
+CONFIG_R8188EU=m
+CONFIG_88EU_AP_MODE=y
+CONFIG_VT6656=m
+CONFIG_STAGING_MEDIA=y
+CONFIG_VIDEO_RPIVID=m
+CONFIG_ASHMEM=y
+CONFIG_FB_TFT=m
+CONFIG_FB_TFT_AGM1264K_FL=m
+CONFIG_FB_TFT_BD663474=m
+CONFIG_FB_TFT_HX8340BN=m
+CONFIG_FB_TFT_HX8347D=m
+CONFIG_FB_TFT_HX8353D=m
+CONFIG_FB_TFT_HX8357D=m
+CONFIG_FB_TFT_ILI9163=m
+CONFIG_FB_TFT_ILI9320=m
+CONFIG_FB_TFT_ILI9325=m
+CONFIG_FB_TFT_ILI9340=m
+CONFIG_FB_TFT_ILI9341=m
+CONFIG_FB_TFT_ILI9481=m
+CONFIG_FB_TFT_ILI9486=m
+CONFIG_FB_TFT_PCD8544=m
+CONFIG_FB_TFT_RA8875=m
+CONFIG_FB_TFT_S6D02A1=m
+CONFIG_FB_TFT_S6D1121=m
+CONFIG_FB_TFT_SH1106=m
+CONFIG_FB_TFT_SSD1289=m
+CONFIG_FB_TFT_SSD1306=m
+CONFIG_FB_TFT_SSD1331=m
+CONFIG_FB_TFT_SSD1351=m
+CONFIG_FB_TFT_ST7735R=m
+CONFIG_FB_TFT_ST7789V=m
+CONFIG_FB_TFT_TINYLCD=m
+CONFIG_FB_TFT_TLS8204=m
+CONFIG_FB_TFT_UC1701=m
+CONFIG_FB_TFT_UPD161704=m
+CONFIG_FB_TFT_WATTEROTT=m
+CONFIG_BCM2835_VCHIQ=y
+CONFIG_SND_BCM2835=m
+CONFIG_VIDEO_BCM2835=m
+CONFIG_VIDEO_CODEC_BCM2835=m
+CONFIG_VIDEO_ISP_BCM2835=m
+CONFIG_CLK_RASPBERRYPI=y
+CONFIG_MAILBOX=y
+CONFIG_BCM2835_MBOX=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_RASPBERRYPI_POWER=y
+CONFIG_IIO=m
+CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_SW_TRIGGER=m
+CONFIG_MCP320X=m
+CONFIG_MCP3422=m
+CONFIG_TI_ADS1015=m
+CONFIG_BME680=m
+CONFIG_CCS811=m
+CONFIG_SENSIRION_SGP30=m
+CONFIG_SPS30_I2C=m
+CONFIG_MAX30102=m
+CONFIG_DHT11=m
+CONFIG_HDC100X=m
+CONFIG_HTU21=m
+CONFIG_INV_MPU6050_I2C=m
+CONFIG_APDS9960=m
+CONFIG_BH1750=m
+CONFIG_TSL4531=m
+CONFIG_VEML6070=m
+CONFIG_IIO_HRTIMER_TRIGGER=m
+CONFIG_IIO_INTERRUPT_TRIGGER=m
+CONFIG_IIO_SYSFS_TRIGGER=m
+CONFIG_BMP280=m
+CONFIG_MAXIM_THERMOCOUPLE=m
+CONFIG_MAX31856=m
+CONFIG_PWM_BCM2835=m
+CONFIG_PWM_PCA9685=m
+CONFIG_PWM_RASPBERRYPI_POE=m
+CONFIG_RPI_AXIPERF=m
+CONFIG_ANDROID=y
+CONFIG_ANDROID_BINDER_IPC=y
+CONFIG_ANDROID_BINDERFS=y
+CONFIG_NVMEM_RMEM=m
+CONFIG_MUX_GPIO=m
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_REISERFS_FS=m
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+CONFIG_JFS_STATISTICS=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+CONFIG_GFS2_FS=m
+CONFIG_OCFS2_FS=m
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_F2FS_FS=y
+CONFIG_F2FS_FS_SECURITY=y
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FANOTIFY=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_OVERLAY_FS=m
+CONFIG_FSCACHE=y
+CONFIG_FSCACHE_STATS=y
+CONFIG_CACHEFILES=y
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
+CONFIG_EXFAT_FS=m
+CONFIG_NTFS_FS=m
+CONFIG_NTFS_RW=y
+CONFIG_NTFS3_FS=m
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_ECRYPT_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_SUMMARY=y
+CONFIG_UBIFS_FS=m
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_PSTORE=y
+CONFIG_PSTORE_CONSOLE=y
+CONFIG_PSTORE_RAM=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_SWAP=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_NFS_FSCACHE=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_CEPH_FS=m
+CONFIG_CIFS=m
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_SMB_SERVER=m
+CONFIG_9P_FS=m
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_DLM=m
+CONFIG_SECURITY=y
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_LSM=""
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_LZ4=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_USER_API_RNG=m
+CONFIG_CRYPTO_USER_API_AEAD=m
+# CONFIG_CRYPTO_HW is not set
+CONFIG_CRC_ITU_T=y
+CONFIG_LIBCRC32C=y
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=5
+CONFIG_PRINTK_TIME=y
+CONFIG_BOOT_PRINTK_DELAY=y
+CONFIG_KGDB=y
+CONFIG_KGDB_KDB=y
+CONFIG_KDB_KEYBOARD=y
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_LATENCYTOP=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_STACK_TRACER=y
+CONFIG_IRQSOFF_TRACER=y
+CONFIG_SCHED_TRACER=y
+CONFIG_BLK_DEV_IO_TRACE=y
+# CONFIG_UPROBE_EVENTS is not set
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index 3183183b6a4e..e535b482e5e6 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -9,25 +9,21 @@
 # "Merge remote-tracking branch 'stable/linux-5.10.y' into rpi-5.10.y" commit.
 #
 # [1] https://github.com/raspberrypi/linux/tags
-#
-# WARNING: keep all rpi*-kernel packages in sync
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
 
 pkgname=rpi-kernel
-version=5.15.61
+version=5.15.68
 revision=1
-archs="armv6l*"
+_githash="ac7d1fdd216a11b75527e5d6b3a00d86ec28edfc"
+archs="armv6l* armv7l* aarch64*"
 wrksrc="linux-${_githash}"
 hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
 makedepends="ncurses-devel"
 maintainer="Piraty <piraty1@inbox.ru>"
 homepage="http://www.kernel.org"
 license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi zero/1 (${version%.*} series [git ${_gitshort}])"
+short_desc="Linux kernel for Raspberry Pi (${version%.*} series [git ${_githash:0:7}])"
 distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
+checksum=44699750d6e69ef47343af9cf9fbae3431a6da12990151273339324820c3bf0e
 python_version=3
 
 _kernver="${version}_${revision}"
@@ -40,56 +36,54 @@ noshlibprovides=yes
 triggers="kernel-hooks"
 # These files could be modified when an external module is built.
 mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
+ /usr/lib/modules/${_kernver}/modules.dep
+ /usr/lib/modules/${_kernver}/modules.dep.bin
+ /usr/lib/modules/${_kernver}/modules.symbols
+ /usr/lib/modules/${_kernver}/modules.symbols.bin
+ /usr/lib/modules/${_kernver}/modules.alias
+ /usr/lib/modules/${_kernver}/modules.alias.bin
+ /usr/lib/modules/${_kernver}/modules.devname"
 
 _arch=
+_image_target=
+_image_name=
 case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
+	armv6l*) _arch=arm; _image_target=zImage; _image_name=kernel.img ;;
+	armv7l*) _arch=arm; _image_target=zImage; _image_name=kernel7.img ;;
+	aarch64*) _arch=arm64; _image_target=Image.gz; _image_name=kernel8.img ;;
 esac
+
 _cross=
 if [ "$CROSS_BUILD" ]; then
 	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
 fi
 
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
 do_configure() {
 	local target defconfig
 
-	# Use upstream's default configuration, no need to maintain ours.
 	case "$XBPS_TARGET_MACHINE" in
-		armv6l*)
-			target=bcmrpi_defconfig
-			;;
+		# for zero, 1
+		armv6l*) target=bcmrpi_defconfig ;;
+		# for 2
+		armv7l*) target=bcm2709_defconfig ;;
+		# for 3, 4, zero 2
+		# combination of bcmrpi3_defconfig and bcm2711_defconfig
+		aarch64*)
+			target=rpi34_defconfig
+			cp "${FILESDIR}/${target}" "arch/${_arch}/configs"
+		;;
 	esac
 
 	defconfig="arch/${_arch}/configs/${target}"
 	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
 	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
 
 	# HID Controllers
 	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
 
+	# Disable GCC plugins
+	echo "# CONFIG_GCC_PLUGINS is not set" >> "$defconfig"
+
 	# LXD 4.2+ support
 	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
 
@@ -98,26 +92,17 @@ do_configure() {
 	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
 	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
 }
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
 
+do_build() {
 	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
+	make ${makejobs} ${_cross} ARCH=${_arch} ${_image_target} modules dtbs
 }
+
 do_install() {
-	local hdrdest
+	local hdrdest="${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}"
 
 	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
+	vsed -i -e '2iexit 0' scripts/depmod.sh
 
 	# Install kernel, firmware and modules
 	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
@@ -125,11 +110,14 @@ do_install() {
 	# Install device tree blobs
 	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
 
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm/boot/zImage ${DESTDIR}/boot/kernel.img
+	# move dtbs that ended up in /boot/broadcom
+	if [ -d "${DESTDIR}/boot/broadcom" ]; then
+		mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
+	fi
 
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
+	# Install kernel image
+	# TODO: does zImage work on 64?
+	vinstall arch/${_arch}/boot/${_image_target} 644 boot ${_image_name}
 
 	# Switch to /usr.
 	vmkdir usr
@@ -224,6 +212,13 @@ do_install() {
 	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
 }
 
+subpackages="rpi-kernel-headers"
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7l*) subpackages+=" rpi2-kernel rpi2-kernel-headers" ;;
+	aarch64*) subpackages+=" rpi3-kernel rpi3-kernel-headers rpi4-kernel rpi4-kernel-headers" ;;
+esac
+
 rpi-kernel-headers_package() {
 	nostrip=yes
 	noverifyrdeps=yes
@@ -235,33 +230,38 @@ rpi-kernel-headers_package() {
 	}
 }
 
+rpi2-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
 
-# support legacy systems (before rpi-kernel was split to rpi{,2,3})
-# archs != armv6* are emtpy meta packages to pull the new rpi{$n}-kernel package
-archs+=" armv7l* aarch64*"
-case "$XBPS_TARGET_MACHINE" in
-	armv6*) : ;;
-	*)
-		build_style=meta
-		short_desc="Linux kernel for Raspberry Pi (transitional dummy package)"
-
-		pre_configure() { : ; }
-		do_configure() { : ; }
-		do_build() { : ; }
-		do_install() { : ; }
-
-		case "$XBPS_TARGET_MACHINE" in
-			armv7*) depends=rpi2-kernel ;;
-			aarch64*) depends=rpi3-kernel ;;
-		esac
-
-		rpi-kernel-headers_package() {
-			build_style=meta
-			short_desc="Linux kernel headers for Raspberry Pi (transitional dummy package)"
-			case "$XBPS_TARGET_MACHINE" in
-				armv7*) depends=rpi2-kernel-headers ;;
-				aarch64*) depends=rpi3-kernel-headers ;;
-			esac
-		}
-		;;
-esac
+rpi2-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
+
+rpi3-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
+
+rpi3-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
+
+rpi4-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
+
+rpi4-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
diff --git a/srcpkgs/rpi2-kernel b/srcpkgs/rpi2-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi2-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi2-kernel-headers b/srcpkgs/rpi2-kernel-headers
index fbe6d91aeb7f..3b4ec073331b 120000
--- a/srcpkgs/rpi2-kernel-headers
+++ b/srcpkgs/rpi2-kernel-headers
@@ -1 +1 @@
-rpi2-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi2-kernel/template b/srcpkgs/rpi2-kernel/template
deleted file mode 100644
index 8963b855a4de..000000000000
--- a/srcpkgs/rpi2-kernel/template
+++ /dev/null
@@ -1,228 +0,0 @@
-# Template file for 'rpi2-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi2-kernel
-version=5.10.110
-revision=1
-archs="armv7l*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 2 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		armv7l*)
-			target=bcm2709_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	# Disable GCC plugins
-	echo "# CONFIG_GCC_PLUGINS is not set" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm/boot/zImage ${DESTDIR}/boot/kernel7.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi2-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}
diff --git a/srcpkgs/rpi3-kernel b/srcpkgs/rpi3-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi3-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi3-kernel-headers b/srcpkgs/rpi3-kernel-headers
index 29e9f333d668..3b4ec073331b 120000
--- a/srcpkgs/rpi3-kernel-headers
+++ b/srcpkgs/rpi3-kernel-headers
@@ -1 +1 @@
-rpi3-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi3-kernel/template b/srcpkgs/rpi3-kernel/template
deleted file mode 100644
index 20d51a6b8579..000000000000
--- a/srcpkgs/rpi3-kernel/template
+++ /dev/null
@@ -1,228 +0,0 @@
-# Template file for 'rpi3-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi3-kernel
-version=5.15.61
-revision=1
-archs="aarch64*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 3 / Zero 2 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		aarch64*)
-			target=bcmrpi3_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# move dtb that ended up in /boot/broadcom
-	mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm64/boot/Image ${DESTDIR}/boot/kernel8.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi3-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}
diff --git a/srcpkgs/rpi4-kernel b/srcpkgs/rpi4-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi4-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi4-kernel-headers b/srcpkgs/rpi4-kernel-headers
index 9c2fad143506..3b4ec073331b 120000
--- a/srcpkgs/rpi4-kernel-headers
+++ b/srcpkgs/rpi4-kernel-headers
@@ -1 +1 @@
-rpi4-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi4-kernel/template b/srcpkgs/rpi4-kernel/template
deleted file mode 100644
index d4fb3c72906e..000000000000
--- a/srcpkgs/rpi4-kernel/template
+++ /dev/null
@@ -1,229 +0,0 @@
-# Template file for 'rpi4-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi4-kernel
-version=5.15.61
-revision=1
-archs="aarch64*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 4 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-conflicts=rpi3-kernel
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		aarch64*)
-			target=bcm2711_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# move dtb that ended up in /boot/broadcom
-	mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm64/boot/Image ${DESTDIR}/boot/kernel8.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi4-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PR PATCH] [Updated] rpi*-kernel: update to 5.15.68, merge templates
  2022-09-24  9:42 [PR PATCH] rpi*-kernel: update to 5.15.68, merge templates classabbyamp
                   ` (2 preceding siblings ...)
  2022-09-25  9:08 ` classabbyamp
@ 2022-09-25  9:19 ` classabbyamp
  2022-09-25  9:55 ` classabbyamp
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: classabbyamp @ 2022-09-25  9:19 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 914 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages the-rpi-unification-of-2024
https://github.com/void-linux/void-packages/pull/39442

rpi*-kernel: update to 5.15.68, merge templates
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**

### TODO
- [ ] test if `zImage` works for `aarch64*` (it might, according to [the note here](https://www.raspberrypi.com/documentation/computers/config_txt.html#arm_64bit))
- [ ] test upgrade on all platforms
     - [ ] rpi1 (armv6l)
     - [ ] rpi0 (armv6l)
     - [x] rpi2 (armv7l)
     - [ ] rpi3 (aarch64)
     - [x] rpi02 (aarch64)
     - [ ] rpi4 (aarch64)


A patch file from https://github.com/void-linux/void-packages/pull/39442.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-the-rpi-unification-of-2024-39442.patch --]
[-- Type: text/x-diff, Size: 75257 bytes --]

From eea27e4efc877bdcfad961d4c8339e7b5a3effc7 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:35:07 -0400
Subject: [PATCH 1/2] rpi-base: re-merge rpi*-base and -kernel packages

---
 srcpkgs/rpi-base/template | 48 +++++++++------------------------------
 1 file changed, 11 insertions(+), 37 deletions(-)

diff --git a/srcpkgs/rpi-base/template b/srcpkgs/rpi-base/template
index 8940033c83ab..3b22d684f4b2 100644
--- a/srcpkgs/rpi-base/template
+++ b/srcpkgs/rpi-base/template
@@ -1,10 +1,9 @@
 # Template file for 'rpi-base'
 pkgname=rpi-base
 version=3.0
-revision=2
+revision=3
 archs="armv6l* armv7l* aarch64*"
-_base_depends="virtual?ntp-daemon rpi-firmware"
-depends="${_base_depends} rpi-kernel"
+depends="virtual?ntp-daemon rpi-firmware rpi-kernel"
 short_desc="Void Linux Raspberry Pi base files"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="Public Domain"
@@ -26,45 +25,20 @@ case "$XBPS_TARGET_MACHINE" in
 		;;
 esac
 
-# support legacy systems (before rpi-kernel was split to rpi{,2,3})
-# archs != armv6* are emtpy meta packages to pull the new rpi${n}-base package
-case "$XBPS_TARGET_MACHINE" in
-	armv6*) : ;;
-	*)
-		build_style=meta
-		short_desc+=" (transitional dummy package)"
-
-	 	do_install() { : ; }
-
-		case "$XBPS_TARGET_MACHINE" in
-			armv7*) depends="rpi2-base" ;;
-			aarch64*) depends="rpi3-base" ;;
-		esac
-		;;
-esac
-
 rpi2-base_package() {
-	depends="${_base_depends} rpi2-kernel"
-	short_desc="Void Linux Raspberry Pi 2 base files"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }
 
-
 rpi3-base_package() {
-	depends="${_base_depends} rpi3-kernel"
-	short_desc="Void Linux Raspberry Pi 3 base files"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }
 
 rpi4-base_package() {
-	depends="${_base_depends} rpi4-kernel"
-	short_desc="Void Linux Raspberry Pi 4 base files"
-	conflicts="rpi3-base"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }

From 12552d198f62bf70a33275f5535ad81e157a879c Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:38:28 -0400
Subject: [PATCH 2/2] rpi*-kernel: update to 5.15.68, merge templates

---
 srcpkgs/rpi-kernel/files/rpi34_defconfig | 1613 ++++++++++++++++++++++
 srcpkgs/rpi-kernel/template              |  170 +--
 srcpkgs/rpi2-kernel                      |    1 +
 srcpkgs/rpi2-kernel-headers              |    2 +-
 srcpkgs/rpi2-kernel/template             |  228 ---
 srcpkgs/rpi3-kernel                      |    1 +
 srcpkgs/rpi3-kernel-headers              |    2 +-
 srcpkgs/rpi3-kernel/template             |  228 ---
 srcpkgs/rpi4-kernel                      |    1 +
 srcpkgs/rpi4-kernel-headers              |    2 +-
 srcpkgs/rpi4-kernel/template             |  229 ---
 11 files changed, 1704 insertions(+), 773 deletions(-)
 create mode 100644 srcpkgs/rpi-kernel/files/rpi34_defconfig
 create mode 120000 srcpkgs/rpi2-kernel
 delete mode 100644 srcpkgs/rpi2-kernel/template
 create mode 120000 srcpkgs/rpi3-kernel
 delete mode 100644 srcpkgs/rpi3-kernel/template
 create mode 120000 srcpkgs/rpi4-kernel
 delete mode 100644 srcpkgs/rpi4-kernel/template

diff --git a/srcpkgs/rpi-kernel/files/rpi34_defconfig b/srcpkgs/rpi-kernel/files/rpi34_defconfig
new file mode 100644
index 000000000000..6e0750be2b8a
--- /dev/null
+++ b/srcpkgs/rpi-kernel/files/rpi34_defconfig
@@ -0,0 +1,1613 @@
+CONFIG_LOCALVERSION="-v8"
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_GENERIC_IRQ_DEBUGFS=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_BPF_JIT=y
+CONFIG_PREEMPT=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_IKCONFIG=m
+CONFIG_IKCONFIG_PROC=y
+CONFIG_MEMCG=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CPUSETS=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_PERF=y
+CONFIG_CGROUP_BPF=y
+CONFIG_NAMESPACES=y
+CONFIG_USER_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_EMBEDDED=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_PROFILING=y
+CONFIG_ARCH_BCM2835=y
+# CONFIG_CAVIUM_ERRATUM_22375 is not set
+# CONFIG_CAVIUM_ERRATUM_23154 is not set
+# CONFIG_CAVIUM_ERRATUM_27456 is not set
+CONFIG_SCHED_MC=y
+CONFIG_NR_CPUS=256
+CONFIG_HZ_100=y
+CONFIG_HZ=100
+CONFIG_COMPAT=y
+CONFIG_ARMV8_DEPRECATED=y
+CONFIG_SWP_EMULATION=y
+CONFIG_CP15_BARRIER_EMULATION=y
+CONFIG_SETEND_EMULATION=y
+CONFIG_RANDOMIZE_BASE=y
+CONFIG_CMDLINE="console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait"
+# CONFIG_SUSPEND is not set
+CONFIG_CPU_IDLE=y
+CONFIG_ARM_CPUIDLE=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+CONFIG_CPUFREQ_DT=y
+CONFIG_ARM_RASPBERRYPI_CPUFREQ=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=y
+CONFIG_CRYPTO_AES_ARM64_BS=m
+CONFIG_JUMP_LABEL=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_MODULE_COMPRESS_XZ=y
+CONFIG_BLK_DEV_THROTTLING=y
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_MAC_PARTITION=y
+CONFIG_BINFMT_MISC=m
+CONFIG_CLEANCACHE=y
+CONFIG_FRONTSWAP=y
+CONFIG_CMA=y
+CONFIG_ZSWAP=y
+CONFIG_Z3FOLD=m
+CONFIG_ZSMALLOC=m
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM_USER=m
+CONFIG_XFRM_STATISTICS=y
+CONFIG_NET_KEY=m
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_NET_IPVTI=m
+CONFIG_NET_FOU=m
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_DIAG=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BBR=m
+CONFIG_IPV6=m
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_ESP_OFFLOAD=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_ILA=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IPV6_PIMSM_V2=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+CONFIG_BRIDGE_NETFILTER=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_INET=y
+CONFIG_NF_TABLES_NETDEV=y
+CONFIG_NFT_NUMGEN=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_FLOW_OFFLOAD=m
+CONFIG_NFT_COUNTER=m
+CONFIG_NFT_CONNLIMIT=m
+CONFIG_NFT_LOG=m
+CONFIG_NFT_LIMIT=m
+CONFIG_NFT_MASQ=m
+CONFIG_NFT_REDIR=m
+CONFIG_NFT_NAT=m
+CONFIG_NFT_TUNNEL=m
+CONFIG_NFT_OBJREF=m
+CONFIG_NFT_QUEUE=m
+CONFIG_NFT_QUOTA=m
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_XFRM=m
+CONFIG_NFT_SOCKET=m
+CONFIG_NFT_OSF=m
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_SYNPROXY=m
+CONFIG_NFT_DUP_NETDEV=m
+CONFIG_NFT_FWD_NETDEV=m
+CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE=m
+CONFIG_NETFILTER_XT_SET=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HMARK=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_BPF=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_VS=m
+CONFIG_IP_VS_IPV6=y
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_PE_SIP=m
+CONFIG_NFT_DUP_IPV4=m
+CONFIG_NFT_FIB_IPV4=m
+CONFIG_NF_TABLES_ARP=y
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_LOG_ARP=m
+CONFIG_NF_LOG_IPV4=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+CONFIG_NFT_DUP_IPV6=m
+CONFIG_NFT_FIB_IPV6=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_TARGET_SYNPROXY=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_IP6_NF_TARGET_NPT=m
+CONFIG_NF_TABLES_BRIDGE=m
+CONFIG_NFT_BRIDGE_REJECT=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+CONFIG_ATM=m
+CONFIG_L2TP=m
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_BRIDGE=m
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_ATALK=m
+CONFIG_6LOWPAN=m
+CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
+CONFIG_MAC802154=m
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_CODEL=m
+CONFIG_NET_SCH_FQ_CODEL=m
+CONFIG_NET_SCH_CAKE=m
+CONFIG_NET_SCH_FQ=m
+CONFIG_NET_SCH_HHF=m
+CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_PLUG=m
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=m
+CONFIG_NET_CLS_BPF=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_EMATCH_IPSET=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_BATMAN_ADV=m
+CONFIG_OPENVSWITCH=m
+CONFIG_VSOCKETS=m
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_NET_PKTGEN=m
+CONFIG_HAMRADIO=y
+CONFIG_AX25=m
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_YAM=m
+CONFIG_CAN=m
+CONFIG_CAN_J1939=m
+CONFIG_CAN_ISOTP=m
+CONFIG_CAN_VCAN=m
+CONFIG_CAN_SLCAN=m
+CONFIG_CAN_MCP251X=m
+CONFIG_CAN_MCP251XFD=m
+CONFIG_CAN_EMS_USB=m
+CONFIG_CAN_GS_USB=m
+CONFIG_CAN_PEAK_USB=m
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+CONFIG_BT_6LOWPAN=m
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_3WIRE=y
+CONFIG_BT_HCIUART_BCM=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_CFG80211=m
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211=m
+CONFIG_MAC80211_MESH=y
+CONFIG_RFKILL=m
+CONFIG_RFKILL_INPUT=y
+CONFIG_NET_9P=m
+CONFIG_NFC=m
+CONFIG_PCI=y
+CONFIG_PCIE_BRCMSTB=y
+CONFIG_UEVENT_HELPER=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_RASPBERRYPI_FIRMWARE=y
+# CONFIG_EFI_VARS_PSTORE is not set
+CONFIG_MTD=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK2MTD=m
+CONFIG_MTD_SPI_NOR=m
+CONFIG_MTD_UBI=m
+CONFIG_OF_CONFIGFS=y
+CONFIG_ZRAM=m
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_RAM=y
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_ATA_OVER_ETH=m
+CONFIG_BLK_DEV_NVME=y
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_TI_ST=m
+CONFIG_SCSI=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_CHR_DEV_ST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_CHR_DEV_SG=m
+CONFIG_SCSI_ISCSI_ATTRS=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_ATA=m
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_MV=m
+CONFIG_MD=y
+CONFIG_MD_LINEAR=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+CONFIG_DM_CACHE=m
+CONFIG_DM_WRITECACHE=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_RAID=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_DELAY=m
+CONFIG_NETDEVICES=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_WIREGUARD=m
+CONFIG_IFB=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_IPVLAN=m
+CONFIG_VXLAN=m
+CONFIG_NETCONSOLE=m
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_NET_VRF=m
+CONFIG_VSOCKMON=m
+CONFIG_BCMGENET=y
+CONFIG_ENC28J60=m
+CONFIG_LAN743X=m
+CONFIG_QCA7000_SPI=m
+CONFIG_QCA7000_UART=m
+CONFIG_R8169=m
+CONFIG_WIZNET_W5100=m
+CONFIG_WIZNET_W5100_SPI=m
+CONFIG_MICREL_PHY=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_LAN78XX=y
+CONFIG_USB_USBNET=y
+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_HUAWEI_CDC_NCM=m
+CONFIG_USB_NET_CDC_MBIM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SR9700=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=y
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_USB_NET_AQC111=m
+CONFIG_ATH9K=m
+CONFIG_ATH9K_HTC=m
+CONFIG_CARL9170=m
+CONFIG_ATH6KL=m
+CONFIG_ATH6KL_USB=m
+CONFIG_AR5523=m
+CONFIG_AT76C50X_USB=m
+CONFIG_B43=m
+# CONFIG_B43_PHY_N is not set
+CONFIG_B43LEGACY=m
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_USB=y
+CONFIG_BRCMDBG=y
+CONFIG_HOSTAP=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_THINFIRM=m
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MT7601U=m
+CONFIG_MT76x0U=m
+CONFIG_MT76x2U=m
+CONFIG_RT2X00=m
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT3573=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RTL8187=m
+CONFIG_RTL8192CU=m
+CONFIG_RTL8XXXU=m
+CONFIG_USB_ZD1201=m
+CONFIG_ZD1211RW=m
+CONFIG_MAC80211_HWSIM=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_IEEE802154_AT86RF230=m
+CONFIG_IEEE802154_MRF24J40=m
+CONFIG_IEEE802154_CC2520=m
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=y
+# CONFIG_KEYBOARD_ATKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_TCA8418=m
+CONFIG_KEYBOARD_MATRIX=m
+CONFIG_KEYBOARD_CAP11XX=m
+# CONFIG_INPUT_MOUSE is not set
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_RPISENSE=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_EGALAX=m
+CONFIG_TOUCHSCREEN_EXC3000=m
+CONFIG_TOUCHSCREEN_GOODIX=m
+CONFIG_TOUCHSCREEN_ILI210X=m
+CONFIG_TOUCHSCREEN_EKTF2127=m
+CONFIG_TOUCHSCREEN_EDT_FT5X06=m
+CONFIG_TOUCHSCREEN_RASPBERRYPI_FW=m
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_STMPE=m
+CONFIG_TOUCHSCREEN_IQS5XX=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_CMA3000=m
+CONFIG_SERIO=m
+CONFIG_SERIO_RAW=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_BRCM_CHAR_DRIVERS=y
+CONFIG_BCM_VCIO=y
+CONFIG_BCM2835_DEVGPIOMEM=y
+CONFIG_RPIVID_MEM=m
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+# CONFIG_SERIAL_8250_DMA is not set
+CONFIG_SERIAL_8250_NR_UARTS=1
+CONFIG_SERIAL_8250_RUNTIME_UARTS=0
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_BCM2835AUX=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_SC16IS7XX=m
+CONFIG_SERIAL_SC16IS7XX_SPI=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_TTY_PRINTK=y
+CONFIG_HW_RANDOM=y
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS_SPI=m
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX_GPMUX=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_MUX_PINCTRL=m
+CONFIG_I2C_BCM2708=m
+CONFIG_I2C_BCM2835=m
+CONFIG_I2C_BRCMSTB=m
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_ROBOTFUZZ_OSIF=m
+CONFIG_I2C_TINY_USB=m
+CONFIG_SPI=y
+CONFIG_SPI_BCM2835=m
+CONFIG_SPI_BCM2835AUX=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_SLAVE=y
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_GPIO=m
+CONFIG_PINCTRL_MCP23S08=m
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_BCM_VIRT=y
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCA953X_IRQ=y
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_ARIZONA=m
+CONFIG_GPIO_FSM=m
+CONFIG_GPIO_STMPE=y
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MOCKUP=m
+CONFIG_W1=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_GPIO=m
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2413=m
+CONFIG_W1_SLAVE_DS2406=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_DS2781=m
+CONFIG_W1_SLAVE_DS28E04=m
+CONFIG_W1_SLAVE_DS28E17=m
+CONFIG_POWER_RESET_GPIO=y
+CONFIG_RPI_POE_POWER=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_BATTERY_GAUGE_LTC2941=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_GPIO_FAN=m
+CONFIG_SENSORS_IIO_HWMON=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_PWM_FAN=m
+CONFIG_SENSORS_RASPBERRYPI_HWMON=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SHT3x=m
+CONFIG_SENSORS_SHTC1=m
+CONFIG_SENSORS_EMC2305=m
+CONFIG_SENSORS_INA2XX=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_BCM2711_THERMAL=y
+CONFIG_BCM2835_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_GPIO_WATCHDOG=m
+CONFIG_BCM2835_WDT=y
+CONFIG_MFD_RASPBERRYPI_POE_HAT=m
+CONFIG_MFD_STMPE=y
+CONFIG_STMPE_SPI=y
+CONFIG_MFD_SYSCON=y
+CONFIG_MFD_ARIZONA_I2C=m
+CONFIG_MFD_ARIZONA_SPI=m
+CONFIG_MFD_WM5102=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_ARIZONA_LDO1=m
+CONFIG_REGULATOR_ARIZONA_MICSUPP=m
+CONFIG_REGULATOR_GPIO=y
+CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m
+CONFIG_RC_CORE=y
+CONFIG_LIRC=y
+CONFIG_BPF_LIRC_MODE2=y
+CONFIG_RC_DECODERS=y
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_SANYO_DECODER=m
+CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_XMP_DECODER=m
+CONFIG_IR_IMON_DECODER=m
+CONFIG_RC_DEVICES=y
+CONFIG_RC_ATI_REMOTE=m
+CONFIG_IR_IMON=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_IGUANA=m
+CONFIG_IR_TTUSBIR=m
+CONFIG_RC_LOOPBACK=m
+CONFIG_IR_GPIO_CIR=m
+CONFIG_IR_GPIO_TX=m
+CONFIG_IR_PWM_TX=m
+CONFIG_IR_TOY=m
+CONFIG_MEDIA_CEC_RC=y
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_DTCS033=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_JL2005BCD=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STK1135=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
+CONFIG_USB_GSPCA_TOUPTEK=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_USB_PWC=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_VIDEO_USBTV=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_STK1160_COMMON=m
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_AU0828_RC=y
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+CONFIG_DVB_USB=m
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_V2=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_AF9035=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_AZ6007=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB_MXL111SF=m
+CONFIG_DVB_USB_RTL28XXU=m
+CONFIG_DVB_USB_DVBSKY=m
+CONFIG_SMS_USB_DRV=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+CONFIG_DVB_AS102=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_V4L2=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_RADIO_SI470X=m
+CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
+CONFIG_RADIO_SI4713=m
+CONFIG_I2C_SI4713=m
+CONFIG_USB_MR800=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_SHARK=m
+CONFIG_RADIO_SHARK2=m
+CONFIG_USB_KEENE=m
+CONFIG_USB_MA901=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_WL1273=m
+CONFIG_RADIO_WL128X=m
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_MUX=m
+CONFIG_VIDEO_BCM2835_UNICAM=m
+CONFIG_V4L_TEST_DRIVERS=y
+CONFIG_VIDEO_VIMC=m
+CONFIG_VIDEO_VIVID=m
+CONFIG_VIDEO_VIM2M=m
+CONFIG_VIDEO_VICODEC=m
+CONFIG_VIDEO_UDA1342=m
+CONFIG_VIDEO_SONY_BTF_MPX=m
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_TC358743=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TW2804=m
+CONFIG_VIDEO_TW9903=m
+CONFIG_VIDEO_TW9906=m
+CONFIG_VIDEO_ARDUCAM_64MP=m
+CONFIG_VIDEO_ARDUCAM_PIVARIETY=m
+CONFIG_VIDEO_IMX219=m
+CONFIG_VIDEO_IMX258=m
+CONFIG_VIDEO_IMX290=m
+CONFIG_VIDEO_IMX296=m
+CONFIG_VIDEO_IMX477=m
+CONFIG_VIDEO_IMX519=m
+CONFIG_VIDEO_OV2311=m
+CONFIG_VIDEO_OV5647=m
+CONFIG_VIDEO_OV7251=m
+CONFIG_VIDEO_OV7640=m
+CONFIG_VIDEO_OV9281=m
+CONFIG_VIDEO_IRS1125=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_AD5398=m
+CONFIG_DRM=m
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+CONFIG_DRM_UDL=m
+CONFIG_DRM_PANEL_SIMPLE=m
+CONFIG_DRM_PANEL_ILITEK_ILI9806E=m
+CONFIG_DRM_PANEL_ILITEK_ILI9881C=m
+CONFIG_DRM_PANEL_JDI_LT070ME05000=m
+CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
+CONFIG_DRM_PANEL_SITRONIX_ST7701=m
+CONFIG_DRM_PANEL_TPO_Y17P=m
+CONFIG_DRM_DISPLAY_CONNECTOR=m
+CONFIG_DRM_SIMPLE_BRIDGE=m
+CONFIG_DRM_TOSHIBA_TC358762=m
+CONFIG_DRM_V3D=m
+CONFIG_DRM_VC4=m
+CONFIG_DRM_VC4_HDMI_CEC=y
+CONFIG_DRM_PANEL_MIPI_DBI=m
+CONFIG_TINYDRM_HX8357D=m
+CONFIG_TINYDRM_ILI9225=m
+CONFIG_TINYDRM_ILI9341=m
+CONFIG_TINYDRM_MI0283QT=m
+CONFIG_TINYDRM_REPAPER=m
+CONFIG_TINYDRM_ST7586=m
+CONFIG_TINYDRM_ST7735R=m
+CONFIG_DRM_GUD=m
+CONFIG_FB=y
+CONFIG_FB_BCM2708=y
+CONFIG_FB_UDL=m
+CONFIG_FB_SIMPLE=y
+CONFIG_FB_SSD1307=m
+CONFIG_FB_RPISENSE=m
+CONFIG_BACKLIGHT_PWM=m
+CONFIG_BACKLIGHT_RPI=m
+CONFIG_BACKLIGHT_GPIO=m
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_SOUND=y
+CONFIG_SND=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_USB_HIFACE=m
+CONFIG_SND_USB_TONEPORT=m
+CONFIG_SND_SOC=m
+CONFIG_SND_BCM2835_SOC_I2S=m
+CONFIG_SND_BCM2708_SOC_CHIPDIP_DAC=m
+CONFIG_SND_BCM2708_SOC_GOOGLEVOICEHAT_SOUNDCARD=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUS=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSHD=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSADC=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSADCPRO=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSDSP=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI=m
+CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP=m
+CONFIG_SND_BCM2708_SOC_PIFI_40=m
+CONFIG_SND_BCM2708_SOC_RPI_CIRRUS=m
+CONFIG_SND_BCM2708_SOC_RPI_DAC=m
+CONFIG_SND_BCM2708_SOC_RPI_PROTO=m
+CONFIG_SND_BCM2708_SOC_JUSTBOOM_BOTH=m
+CONFIG_SND_BCM2708_SOC_JUSTBOOM_DAC=m
+CONFIG_SND_BCM2708_SOC_JUSTBOOM_DIGI=m
+CONFIG_SND_BCM2708_SOC_IQAUDIO_CODEC=m
+CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC=m
+CONFIG_SND_BCM2708_SOC_IQAUDIO_DIGI=m
+CONFIG_SND_BCM2708_SOC_I_SABRE_Q2M=m
+CONFIG_SND_BCM2708_SOC_ADAU1977_ADC=m
+CONFIG_SND_AUDIOINJECTOR_PI_SOUNDCARD=m
+CONFIG_SND_AUDIOINJECTOR_OCTO_SOUNDCARD=m
+CONFIG_SND_AUDIOINJECTOR_ISOLATED_SOUNDCARD=m
+CONFIG_SND_AUDIOSENSE_PI=m
+CONFIG_SND_DIGIDAC1_SOUNDCARD=m
+CONFIG_SND_BCM2708_SOC_DIONAUDIO_LOCO=m
+CONFIG_SND_BCM2708_SOC_DIONAUDIO_LOCO_V2=m
+CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC=m
+CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC_PLUS=m
+CONFIG_SND_BCM2708_SOC_ALLO_BOSS_DAC=m
+CONFIG_SND_BCM2708_SOC_ALLO_BOSS2_DAC=m
+CONFIG_SND_BCM2708_SOC_ALLO_DIGIONE=m
+CONFIG_SND_BCM2708_SOC_ALLO_KATANA_DAC=m
+CONFIG_SND_BCM2708_SOC_FE_PI_AUDIO=m
+CONFIG_SND_PISOUND=m
+CONFIG_SND_DACBERRY400=m
+CONFIG_SND_SOC_AD193X_SPI=m
+CONFIG_SND_SOC_AD193X_I2C=m
+CONFIG_SND_SOC_ADAU1701=m
+CONFIG_SND_SOC_ADAU7002=m
+CONFIG_SND_SOC_AK4554=m
+CONFIG_SND_SOC_CS4265=m
+CONFIG_SND_SOC_ICS43432=m
+CONFIG_SND_SOC_MA120X0P=m
+CONFIG_SND_SOC_MAX98357A=m
+CONFIG_SND_SOC_SPDIF=m
+CONFIG_SND_SOC_WM8804_I2C=m
+CONFIG_SND_SOC_WM8960=m
+CONFIG_SND_SIMPLE_CARD=m
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_UHID=m
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+CONFIG_HID_APPLE=m
+CONFIG_HID_ASUS=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_BETOP_FF=m
+CONFIG_HID_BIGBEN_FF=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_ELO=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_GEMBIRD=m
+CONFIG_HID_HOLTEK=m
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PLAYSTATION=m
+CONFIG_PLAYSTATION_FF=y
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_SONY_FF=y
+CONFIG_HID_SPEEDLINK=m
+CONFIG_HID_STEAM=y
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THINGM=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_HID_WACOM=m
+CONFIG_HID_WIIMOTE=m
+CONFIG_HID_XINMO=m
+CONFIG_HID_ZEROPLUS=m
+CONFIG_HID_ZYDACRON=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+CONFIG_USB=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_MON=m
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_PLATFORM=m
+CONFIG_USB_DWCOTG=y
+CONFIG_USB_PRINTER=m
+CONFIG_USB_TMC=m
+CONFIG_USB_STORAGE=y
+CONFIG_USB_STORAGE_REALTEK=m
+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
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+CONFIG_USBIP_VUDC=m
+CONFIG_USB_DWC2=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_XSENS_MT=m
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
+CONFIG_USB_SERIAL_DEBUG=m
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_YUREX=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+CONFIG_USB_CONFIGFS_F_UAC2=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_USB_CONFIGFS_F_PRINTER=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_USB_G_ACM_MS=m
+CONFIG_USB_G_MULTI=m
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_WEBCAM=m
+CONFIG_MMC=y
+CONFIG_MMC_BLOCK_MINORS=32
+CONFIG_MMC_BCM2835_MMC=y
+CONFIG_MMC_BCM2835_DMA=y
+CONFIG_MMC_BCM2835_SDHOST=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_IPROC=y
+CONFIG_MMC_SPI=m
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_PCA963X=m
+CONFIG_LEDS_PWM=y
+CONFIG_LEDS_IS31FL32XX=m
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_ONESHOT=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=y
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_GPIO=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+CONFIG_LEDS_TRIGGER_TRANSIENT=m
+CONFIG_LEDS_TRIGGER_CAMERA=m
+CONFIG_LEDS_TRIGGER_INPUT=y
+CONFIG_LEDS_TRIGGER_PANIC=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
+CONFIG_LEDS_TRIGGER_PATTERN=m
+CONFIG_LEDS_TRIGGER_ACTPWR=y
+CONFIG_ACCESSIBILITY=y
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_ABX80X=m
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8523=m
+CONFIG_RTC_DRV_PCF85063=m
+CONFIG_RTC_DRV_PCF85363=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3028=m
+CONFIG_RTC_DRV_RV8803=m
+CONFIG_RTC_DRV_SD3078=m
+CONFIG_RTC_DRV_M41T93=m
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1302=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RX4581=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_PCF2123=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_RV3029C2=m
+CONFIG_DMADEVICES=y
+CONFIG_DMA_BCM2835=y
+CONFIG_DMA_BCM2708=y
+CONFIG_DMABUF_HEAPS=y
+CONFIG_DMABUF_HEAPS_SYSTEM=y
+CONFIG_DMABUF_HEAPS_CMA=y
+CONFIG_AUXDISPLAY=y
+CONFIG_HD44780_COMMON=m
+CONFIG_HD44780=m
+CONFIG_UIO=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_VHOST_NET=m
+CONFIG_VHOST_VSOCK=m
+CONFIG_VHOST_CROSS_ENDIAN_LEGACY=y
+CONFIG_STAGING=y
+CONFIG_PRISM2_USB=m
+CONFIG_R8712U=m
+CONFIG_R8188EU=m
+CONFIG_88EU_AP_MODE=y
+CONFIG_VT6656=m
+CONFIG_STAGING_MEDIA=y
+CONFIG_VIDEO_RPIVID=m
+CONFIG_ASHMEM=y
+CONFIG_FB_TFT=m
+CONFIG_FB_TFT_AGM1264K_FL=m
+CONFIG_FB_TFT_BD663474=m
+CONFIG_FB_TFT_HX8340BN=m
+CONFIG_FB_TFT_HX8347D=m
+CONFIG_FB_TFT_HX8353D=m
+CONFIG_FB_TFT_HX8357D=m
+CONFIG_FB_TFT_ILI9163=m
+CONFIG_FB_TFT_ILI9320=m
+CONFIG_FB_TFT_ILI9325=m
+CONFIG_FB_TFT_ILI9340=m
+CONFIG_FB_TFT_ILI9341=m
+CONFIG_FB_TFT_ILI9481=m
+CONFIG_FB_TFT_ILI9486=m
+CONFIG_FB_TFT_PCD8544=m
+CONFIG_FB_TFT_RA8875=m
+CONFIG_FB_TFT_S6D02A1=m
+CONFIG_FB_TFT_S6D1121=m
+CONFIG_FB_TFT_SH1106=m
+CONFIG_FB_TFT_SSD1289=m
+CONFIG_FB_TFT_SSD1306=m
+CONFIG_FB_TFT_SSD1331=m
+CONFIG_FB_TFT_SSD1351=m
+CONFIG_FB_TFT_ST7735R=m
+CONFIG_FB_TFT_ST7789V=m
+CONFIG_FB_TFT_TINYLCD=m
+CONFIG_FB_TFT_TLS8204=m
+CONFIG_FB_TFT_UC1701=m
+CONFIG_FB_TFT_UPD161704=m
+CONFIG_FB_TFT_WATTEROTT=m
+CONFIG_BCM2835_VCHIQ=y
+CONFIG_SND_BCM2835=m
+CONFIG_VIDEO_BCM2835=m
+CONFIG_VIDEO_CODEC_BCM2835=m
+CONFIG_VIDEO_ISP_BCM2835=m
+CONFIG_CLK_RASPBERRYPI=y
+CONFIG_MAILBOX=y
+CONFIG_BCM2835_MBOX=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_RASPBERRYPI_POWER=y
+CONFIG_IIO=m
+CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_SW_TRIGGER=m
+CONFIG_MCP320X=m
+CONFIG_MCP3422=m
+CONFIG_TI_ADS1015=m
+CONFIG_BME680=m
+CONFIG_CCS811=m
+CONFIG_SENSIRION_SGP30=m
+CONFIG_SPS30_I2C=m
+CONFIG_MAX30102=m
+CONFIG_DHT11=m
+CONFIG_HDC100X=m
+CONFIG_HTU21=m
+CONFIG_INV_MPU6050_I2C=m
+CONFIG_APDS9960=m
+CONFIG_BH1750=m
+CONFIG_TSL4531=m
+CONFIG_VEML6070=m
+CONFIG_IIO_HRTIMER_TRIGGER=m
+CONFIG_IIO_INTERRUPT_TRIGGER=m
+CONFIG_IIO_SYSFS_TRIGGER=m
+CONFIG_BMP280=m
+CONFIG_MAXIM_THERMOCOUPLE=m
+CONFIG_MAX31856=m
+CONFIG_PWM_BCM2835=m
+CONFIG_PWM_PCA9685=m
+CONFIG_PWM_RASPBERRYPI_POE=m
+CONFIG_RPI_AXIPERF=m
+CONFIG_ANDROID=y
+CONFIG_ANDROID_BINDER_IPC=y
+CONFIG_ANDROID_BINDERFS=y
+CONFIG_NVMEM_RMEM=m
+CONFIG_MUX_GPIO=m
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_REISERFS_FS=m
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+CONFIG_JFS_STATISTICS=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+CONFIG_GFS2_FS=m
+CONFIG_OCFS2_FS=m
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_F2FS_FS=y
+CONFIG_F2FS_FS_SECURITY=y
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FANOTIFY=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_OVERLAY_FS=m
+CONFIG_FSCACHE=y
+CONFIG_FSCACHE_STATS=y
+CONFIG_CACHEFILES=y
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
+CONFIG_EXFAT_FS=m
+CONFIG_NTFS_FS=m
+CONFIG_NTFS_RW=y
+CONFIG_NTFS3_FS=m
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_ECRYPT_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_SUMMARY=y
+CONFIG_UBIFS_FS=m
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_PSTORE=y
+CONFIG_PSTORE_CONSOLE=y
+CONFIG_PSTORE_RAM=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_SWAP=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_NFS_FSCACHE=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_CEPH_FS=m
+CONFIG_CIFS=m
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_SMB_SERVER=m
+CONFIG_9P_FS=m
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_DLM=m
+CONFIG_SECURITY=y
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_LSM=""
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_LZ4=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_USER_API_RNG=m
+CONFIG_CRYPTO_USER_API_AEAD=m
+# CONFIG_CRYPTO_HW is not set
+CONFIG_CRC_ITU_T=y
+CONFIG_LIBCRC32C=y
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=5
+CONFIG_PRINTK_TIME=y
+CONFIG_BOOT_PRINTK_DELAY=y
+CONFIG_KGDB=y
+CONFIG_KGDB_KDB=y
+CONFIG_KDB_KEYBOARD=y
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_LATENCYTOP=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_STACK_TRACER=y
+CONFIG_IRQSOFF_TRACER=y
+CONFIG_SCHED_TRACER=y
+CONFIG_BLK_DEV_IO_TRACE=y
+# CONFIG_UPROBE_EVENTS is not set
diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index 3183183b6a4e..c16c8c92194e 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -6,28 +6,24 @@
 # https://forums.raspberrypi.com/viewtopic.php?t=322879
 #
 # Commit hash is picked from latest tag [1], if appropriate, or from latest
-# "Merge remote-tracking branch 'stable/linux-5.10.y' into rpi-5.10.y" commit.
+# "Merge remote-tracking branch 'stable/linux-5.x.y' into rpi-5.x.y" commit.
 #
 # [1] https://github.com/raspberrypi/linux/tags
-#
-# WARNING: keep all rpi*-kernel packages in sync
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
 
 pkgname=rpi-kernel
-version=5.15.61
+version=5.15.68
 revision=1
-archs="armv6l*"
+_githash="ac7d1fdd216a11b75527e5d6b3a00d86ec28edfc"
+archs="armv6l* armv7l* aarch64*"
 wrksrc="linux-${_githash}"
 hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
 makedepends="ncurses-devel"
 maintainer="Piraty <piraty1@inbox.ru>"
 homepage="http://www.kernel.org"
 license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi zero/1 (${version%.*} series [git ${_gitshort}])"
+short_desc="Linux kernel for Raspberry Pi (${version%.*} series [git ${_githash:0:7}])"
 distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
+checksum=44699750d6e69ef47343af9cf9fbae3431a6da12990151273339324820c3bf0e
 python_version=3
 
 _kernver="${version}_${revision}"
@@ -40,56 +36,54 @@ noshlibprovides=yes
 triggers="kernel-hooks"
 # These files could be modified when an external module is built.
 mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
+ /usr/lib/modules/${_kernver}/modules.dep
+ /usr/lib/modules/${_kernver}/modules.dep.bin
+ /usr/lib/modules/${_kernver}/modules.symbols
+ /usr/lib/modules/${_kernver}/modules.symbols.bin
+ /usr/lib/modules/${_kernver}/modules.alias
+ /usr/lib/modules/${_kernver}/modules.alias.bin
+ /usr/lib/modules/${_kernver}/modules.devname"
 
 _arch=
+_image_target=
+_image_name=
 case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
+	armv6l*) _arch=arm; _image_target=zImage; _image_name=kernel.img ;;
+	armv7l*) _arch=arm; _image_target=zImage; _image_name=kernel7.img ;;
+	aarch64*) _arch=arm64; _image_target=Image.gz; _image_name=kernel8.img ;;
 esac
+
 _cross=
 if [ "$CROSS_BUILD" ]; then
 	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
 fi
 
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
 do_configure() {
 	local target defconfig
 
-	# Use upstream's default configuration, no need to maintain ours.
 	case "$XBPS_TARGET_MACHINE" in
-		armv6l*)
-			target=bcmrpi_defconfig
-			;;
+		# for zero, 1
+		armv6l*) target=bcmrpi_defconfig ;;
+		# for 2
+		armv7l*) target=bcm2709_defconfig ;;
+		# for 3, 4, zero 2
+		# combination of bcmrpi3_defconfig and bcm2711_defconfig
+		aarch64*)
+			target=rpi34_defconfig
+			cp "${FILESDIR}/${target}" "arch/${_arch}/configs"
+		;;
 	esac
 
 	defconfig="arch/${_arch}/configs/${target}"
 	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
 	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
 
 	# HID Controllers
 	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
 
+	# Disable GCC plugins
+	echo "# CONFIG_GCC_PLUGINS is not set" >> "$defconfig"
+
 	# LXD 4.2+ support
 	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
 
@@ -98,26 +92,17 @@ do_configure() {
 	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
 	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
 }
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
 
+do_build() {
 	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
+	make ${makejobs} ${_cross} ARCH=${_arch} ${_image_target} modules dtbs
 }
+
 do_install() {
-	local hdrdest
+	local hdrdest="${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}"
 
 	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
+	vsed -i -e '2iexit 0' scripts/depmod.sh
 
 	# Install kernel, firmware and modules
 	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
@@ -125,11 +110,14 @@ do_install() {
 	# Install device tree blobs
 	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
 
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm/boot/zImage ${DESTDIR}/boot/kernel.img
+	# move dtbs that ended up in /boot/broadcom
+	if [ -d "${DESTDIR}/boot/broadcom" ]; then
+		mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
+	fi
 
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
+	# Install kernel image
+	# TODO: does zImage work on 64?
+	vinstall arch/${_arch}/boot/${_image_target} 644 boot ${_image_name}
 
 	# Switch to /usr.
 	vmkdir usr
@@ -224,6 +212,13 @@ do_install() {
 	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
 }
 
+subpackages="rpi-kernel-headers"
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7l*) subpackages+=" rpi2-kernel rpi2-kernel-headers" ;;
+	aarch64*) subpackages+=" rpi3-kernel rpi3-kernel-headers rpi4-kernel rpi4-kernel-headers" ;;
+esac
+
 rpi-kernel-headers_package() {
 	nostrip=yes
 	noverifyrdeps=yes
@@ -235,33 +230,38 @@ rpi-kernel-headers_package() {
 	}
 }
 
+rpi2-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
 
-# support legacy systems (before rpi-kernel was split to rpi{,2,3})
-# archs != armv6* are emtpy meta packages to pull the new rpi{$n}-kernel package
-archs+=" armv7l* aarch64*"
-case "$XBPS_TARGET_MACHINE" in
-	armv6*) : ;;
-	*)
-		build_style=meta
-		short_desc="Linux kernel for Raspberry Pi (transitional dummy package)"
-
-		pre_configure() { : ; }
-		do_configure() { : ; }
-		do_build() { : ; }
-		do_install() { : ; }
-
-		case "$XBPS_TARGET_MACHINE" in
-			armv7*) depends=rpi2-kernel ;;
-			aarch64*) depends=rpi3-kernel ;;
-		esac
-
-		rpi-kernel-headers_package() {
-			build_style=meta
-			short_desc="Linux kernel headers for Raspberry Pi (transitional dummy package)"
-			case "$XBPS_TARGET_MACHINE" in
-				armv7*) depends=rpi2-kernel-headers ;;
-				aarch64*) depends=rpi3-kernel-headers ;;
-			esac
-		}
-		;;
-esac
+rpi2-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
+
+rpi3-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
+
+rpi3-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
+
+rpi4-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
+
+rpi4-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
diff --git a/srcpkgs/rpi2-kernel b/srcpkgs/rpi2-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi2-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi2-kernel-headers b/srcpkgs/rpi2-kernel-headers
index fbe6d91aeb7f..3b4ec073331b 120000
--- a/srcpkgs/rpi2-kernel-headers
+++ b/srcpkgs/rpi2-kernel-headers
@@ -1 +1 @@
-rpi2-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi2-kernel/template b/srcpkgs/rpi2-kernel/template
deleted file mode 100644
index 8963b855a4de..000000000000
--- a/srcpkgs/rpi2-kernel/template
+++ /dev/null
@@ -1,228 +0,0 @@
-# Template file for 'rpi2-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi2-kernel
-version=5.10.110
-revision=1
-archs="armv7l*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 2 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		armv7l*)
-			target=bcm2709_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	# Disable GCC plugins
-	echo "# CONFIG_GCC_PLUGINS is not set" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm/boot/zImage ${DESTDIR}/boot/kernel7.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi2-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}
diff --git a/srcpkgs/rpi3-kernel b/srcpkgs/rpi3-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi3-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi3-kernel-headers b/srcpkgs/rpi3-kernel-headers
index 29e9f333d668..3b4ec073331b 120000
--- a/srcpkgs/rpi3-kernel-headers
+++ b/srcpkgs/rpi3-kernel-headers
@@ -1 +1 @@
-rpi3-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi3-kernel/template b/srcpkgs/rpi3-kernel/template
deleted file mode 100644
index 20d51a6b8579..000000000000
--- a/srcpkgs/rpi3-kernel/template
+++ /dev/null
@@ -1,228 +0,0 @@
-# Template file for 'rpi3-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi3-kernel
-version=5.15.61
-revision=1
-archs="aarch64*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 3 / Zero 2 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		aarch64*)
-			target=bcmrpi3_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# move dtb that ended up in /boot/broadcom
-	mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm64/boot/Image ${DESTDIR}/boot/kernel8.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi3-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}
diff --git a/srcpkgs/rpi4-kernel b/srcpkgs/rpi4-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi4-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi4-kernel-headers b/srcpkgs/rpi4-kernel-headers
index 9c2fad143506..3b4ec073331b 120000
--- a/srcpkgs/rpi4-kernel-headers
+++ b/srcpkgs/rpi4-kernel-headers
@@ -1 +1 @@
-rpi4-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi4-kernel/template b/srcpkgs/rpi4-kernel/template
deleted file mode 100644
index d4fb3c72906e..000000000000
--- a/srcpkgs/rpi4-kernel/template
+++ /dev/null
@@ -1,229 +0,0 @@
-# Template file for 'rpi4-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi4-kernel
-version=5.15.61
-revision=1
-archs="aarch64*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 4 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-conflicts=rpi3-kernel
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		aarch64*)
-			target=bcm2711_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# move dtb that ended up in /boot/broadcom
-	mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm64/boot/Image ${DESTDIR}/boot/kernel8.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi4-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PR PATCH] [Updated] rpi*-kernel: update to 5.15.68, merge templates
  2022-09-24  9:42 [PR PATCH] rpi*-kernel: update to 5.15.68, merge templates classabbyamp
                   ` (3 preceding siblings ...)
  2022-09-25  9:19 ` classabbyamp
@ 2022-09-25  9:55 ` classabbyamp
  2022-09-25 10:19 ` classabbyamp
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: classabbyamp @ 2022-09-25  9:55 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1031 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages the-rpi-unification-of-2024
https://github.com/void-linux/void-packages/pull/39442

rpi*-kernel: update to 5.15.68, merge templates
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**|**briefly**|**NO**

### TODO
- [ ] test if `zImage` works for `aarch64*` (it might, according to [the note here](https://www.raspberrypi.com/documentation/computers/config_txt.html#arm_64bit))
- [ ] test upgrade on all platforms
     - [x] rpi1 (armv6l)
     - [ ] rpi0 (armv6l)
     - [x] rpi2 (armv7l)
     - [ ] rpi3 (aarch64)
     - [x] rpi02 (aarch64)
     - [ ] rpi4 (aarch64)

pre-built packages can be found here: https://devspace.voidlinux.org/abby/rpi-merge/, just add as a repo and update

A patch file from https://github.com/void-linux/void-packages/pull/39442.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-the-rpi-unification-of-2024-39442.patch --]
[-- Type: text/x-diff, Size: 34393 bytes --]

From eea27e4efc877bdcfad961d4c8339e7b5a3effc7 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:35:07 -0400
Subject: [PATCH 1/2] rpi-base: re-merge rpi*-base and -kernel packages

---
 srcpkgs/rpi-base/template | 48 +++++++++------------------------------
 1 file changed, 11 insertions(+), 37 deletions(-)

diff --git a/srcpkgs/rpi-base/template b/srcpkgs/rpi-base/template
index 8940033c83ab..3b22d684f4b2 100644
--- a/srcpkgs/rpi-base/template
+++ b/srcpkgs/rpi-base/template
@@ -1,10 +1,9 @@
 # Template file for 'rpi-base'
 pkgname=rpi-base
 version=3.0
-revision=2
+revision=3
 archs="armv6l* armv7l* aarch64*"
-_base_depends="virtual?ntp-daemon rpi-firmware"
-depends="${_base_depends} rpi-kernel"
+depends="virtual?ntp-daemon rpi-firmware rpi-kernel"
 short_desc="Void Linux Raspberry Pi base files"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="Public Domain"
@@ -26,45 +25,20 @@ case "$XBPS_TARGET_MACHINE" in
 		;;
 esac
 
-# support legacy systems (before rpi-kernel was split to rpi{,2,3})
-# archs != armv6* are emtpy meta packages to pull the new rpi${n}-base package
-case "$XBPS_TARGET_MACHINE" in
-	armv6*) : ;;
-	*)
-		build_style=meta
-		short_desc+=" (transitional dummy package)"
-
-	 	do_install() { : ; }
-
-		case "$XBPS_TARGET_MACHINE" in
-			armv7*) depends="rpi2-base" ;;
-			aarch64*) depends="rpi3-base" ;;
-		esac
-		;;
-esac
-
 rpi2-base_package() {
-	depends="${_base_depends} rpi2-kernel"
-	short_desc="Void Linux Raspberry Pi 2 base files"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }
 
-
 rpi3-base_package() {
-	depends="${_base_depends} rpi3-kernel"
-	short_desc="Void Linux Raspberry Pi 3 base files"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }
 
 rpi4-base_package() {
-	depends="${_base_depends} rpi4-kernel"
-	short_desc="Void Linux Raspberry Pi 4 base files"
-	conflicts="rpi3-base"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }

From 06518e85449cdc52f7d67b7a689bd9fffcfaf35a Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:38:28 -0400
Subject: [PATCH 2/2] rpi*-kernel: update to 5.15.68, merge templates

---
 srcpkgs/rpi-kernel/template  | 165 ++++++++++++-------------
 srcpkgs/rpi2-kernel          |   1 +
 srcpkgs/rpi2-kernel-headers  |   2 +-
 srcpkgs/rpi2-kernel/template | 228 ----------------------------------
 srcpkgs/rpi3-kernel          |   1 +
 srcpkgs/rpi3-kernel-headers  |   2 +-
 srcpkgs/rpi3-kernel/template | 228 ----------------------------------
 srcpkgs/rpi4-kernel          |   1 +
 srcpkgs/rpi4-kernel-headers  |   2 +-
 srcpkgs/rpi4-kernel/template | 229 -----------------------------------
 10 files changed, 86 insertions(+), 773 deletions(-)
 create mode 120000 srcpkgs/rpi2-kernel
 delete mode 100644 srcpkgs/rpi2-kernel/template
 create mode 120000 srcpkgs/rpi3-kernel
 delete mode 100644 srcpkgs/rpi3-kernel/template
 create mode 120000 srcpkgs/rpi4-kernel
 delete mode 100644 srcpkgs/rpi4-kernel/template

diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index 3183183b6a4e..3d06090d43ed 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -6,28 +6,24 @@
 # https://forums.raspberrypi.com/viewtopic.php?t=322879
 #
 # Commit hash is picked from latest tag [1], if appropriate, or from latest
-# "Merge remote-tracking branch 'stable/linux-5.10.y' into rpi-5.10.y" commit.
+# "Merge remote-tracking branch 'stable/linux-5.x.y' into rpi-5.x.y" commit.
 #
 # [1] https://github.com/raspberrypi/linux/tags
-#
-# WARNING: keep all rpi*-kernel packages in sync
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
 
 pkgname=rpi-kernel
-version=5.15.61
+version=5.15.68
 revision=1
-archs="armv6l*"
+_githash="ac7d1fdd216a11b75527e5d6b3a00d86ec28edfc"
+archs="armv6l* armv7l* aarch64*"
 wrksrc="linux-${_githash}"
 hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
 makedepends="ncurses-devel"
 maintainer="Piraty <piraty1@inbox.ru>"
 homepage="http://www.kernel.org"
 license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi zero/1 (${version%.*} series [git ${_gitshort}])"
+short_desc="Linux kernel for Raspberry Pi (${version%.*} series [git ${_githash:0:7}])"
 distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
+checksum=44699750d6e69ef47343af9cf9fbae3431a6da12990151273339324820c3bf0e
 python_version=3
 
 _kernver="${version}_${revision}"
@@ -40,56 +36,50 @@ noshlibprovides=yes
 triggers="kernel-hooks"
 # These files could be modified when an external module is built.
 mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
+ /usr/lib/modules/${_kernver}/modules.dep
+ /usr/lib/modules/${_kernver}/modules.dep.bin
+ /usr/lib/modules/${_kernver}/modules.symbols
+ /usr/lib/modules/${_kernver}/modules.symbols.bin
+ /usr/lib/modules/${_kernver}/modules.alias
+ /usr/lib/modules/${_kernver}/modules.alias.bin
+ /usr/lib/modules/${_kernver}/modules.devname"
 
 _arch=
+_image_target=
+_image_name=
 case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
+	armv6l*) _arch=arm; _image_target=zImage; _image_name=kernel.img ;;
+	armv7l*) _arch=arm; _image_target=zImage; _image_name=kernel7.img ;;
+	aarch64*) _arch=arm64; _image_target=Image.gz; _image_name=kernel8.img ;;
 esac
+
 _cross=
 if [ "$CROSS_BUILD" ]; then
 	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
 fi
 
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
 do_configure() {
 	local target defconfig
 
-	# Use upstream's default configuration, no need to maintain ours.
 	case "$XBPS_TARGET_MACHINE" in
-		armv6l*)
-			target=bcmrpi_defconfig
-			;;
+		# for zero, 1
+		armv6l*) target=bcmrpi_defconfig ;;
+		# for 2
+		armv7l*) target=bcm2709_defconfig ;;
+		# for 3, 4, zero 2
+		aarch64*) target=bcm2711_defconfig ;;
 	esac
 
 	defconfig="arch/${_arch}/configs/${target}"
 	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
 	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
 
 	# HID Controllers
 	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
 
+	# Disable GCC plugins
+	echo "# CONFIG_GCC_PLUGINS is not set" >> "$defconfig"
+
 	# LXD 4.2+ support
 	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
 
@@ -98,26 +88,17 @@ do_configure() {
 	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
 	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
 }
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
 
+do_build() {
 	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
+	make ${makejobs} ${_cross} ARCH=${_arch} ${_image_target} modules dtbs
 }
+
 do_install() {
-	local hdrdest
+	local hdrdest="${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}"
 
 	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
+	vsed -i -e '2iexit 0' scripts/depmod.sh
 
 	# Install kernel, firmware and modules
 	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
@@ -125,11 +106,13 @@ do_install() {
 	# Install device tree blobs
 	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
 
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm/boot/zImage ${DESTDIR}/boot/kernel.img
+	# move dtbs that ended up in /boot/broadcom
+	if [ -d "${DESTDIR}/boot/broadcom" ]; then
+		mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
+	fi
 
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
+	# Install kernel image
+	vinstall arch/${_arch}/boot/${_image_target} 644 boot ${_image_name}
 
 	# Switch to /usr.
 	vmkdir usr
@@ -224,6 +207,13 @@ do_install() {
 	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
 }
 
+subpackages="rpi-kernel-headers"
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7l*) subpackages+=" rpi2-kernel rpi2-kernel-headers" ;;
+	aarch64*) subpackages+=" rpi3-kernel rpi3-kernel-headers rpi4-kernel rpi4-kernel-headers" ;;
+esac
+
 rpi-kernel-headers_package() {
 	nostrip=yes
 	noverifyrdeps=yes
@@ -235,33 +225,38 @@ rpi-kernel-headers_package() {
 	}
 }
 
+rpi2-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
+
+rpi2-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
 
-# support legacy systems (before rpi-kernel was split to rpi{,2,3})
-# archs != armv6* are emtpy meta packages to pull the new rpi{$n}-kernel package
-archs+=" armv7l* aarch64*"
-case "$XBPS_TARGET_MACHINE" in
-	armv6*) : ;;
-	*)
-		build_style=meta
-		short_desc="Linux kernel for Raspberry Pi (transitional dummy package)"
-
-		pre_configure() { : ; }
-		do_configure() { : ; }
-		do_build() { : ; }
-		do_install() { : ; }
-
-		case "$XBPS_TARGET_MACHINE" in
-			armv7*) depends=rpi2-kernel ;;
-			aarch64*) depends=rpi3-kernel ;;
-		esac
-
-		rpi-kernel-headers_package() {
-			build_style=meta
-			short_desc="Linux kernel headers for Raspberry Pi (transitional dummy package)"
-			case "$XBPS_TARGET_MACHINE" in
-				armv7*) depends=rpi2-kernel-headers ;;
-				aarch64*) depends=rpi3-kernel-headers ;;
-			esac
-		}
-		;;
-esac
+rpi3-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
+
+rpi3-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
+
+rpi4-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
+
+rpi4-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
diff --git a/srcpkgs/rpi2-kernel b/srcpkgs/rpi2-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi2-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi2-kernel-headers b/srcpkgs/rpi2-kernel-headers
index fbe6d91aeb7f..3b4ec073331b 120000
--- a/srcpkgs/rpi2-kernel-headers
+++ b/srcpkgs/rpi2-kernel-headers
@@ -1 +1 @@
-rpi2-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi2-kernel/template b/srcpkgs/rpi2-kernel/template
deleted file mode 100644
index 8963b855a4de..000000000000
--- a/srcpkgs/rpi2-kernel/template
+++ /dev/null
@@ -1,228 +0,0 @@
-# Template file for 'rpi2-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi2-kernel
-version=5.10.110
-revision=1
-archs="armv7l*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 2 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		armv7l*)
-			target=bcm2709_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	# Disable GCC plugins
-	echo "# CONFIG_GCC_PLUGINS is not set" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm/boot/zImage ${DESTDIR}/boot/kernel7.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi2-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}
diff --git a/srcpkgs/rpi3-kernel b/srcpkgs/rpi3-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi3-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi3-kernel-headers b/srcpkgs/rpi3-kernel-headers
index 29e9f333d668..3b4ec073331b 120000
--- a/srcpkgs/rpi3-kernel-headers
+++ b/srcpkgs/rpi3-kernel-headers
@@ -1 +1 @@
-rpi3-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi3-kernel/template b/srcpkgs/rpi3-kernel/template
deleted file mode 100644
index 20d51a6b8579..000000000000
--- a/srcpkgs/rpi3-kernel/template
+++ /dev/null
@@ -1,228 +0,0 @@
-# Template file for 'rpi3-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi3-kernel
-version=5.15.61
-revision=1
-archs="aarch64*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 3 / Zero 2 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		aarch64*)
-			target=bcmrpi3_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# move dtb that ended up in /boot/broadcom
-	mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm64/boot/Image ${DESTDIR}/boot/kernel8.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi3-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}
diff --git a/srcpkgs/rpi4-kernel b/srcpkgs/rpi4-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi4-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi4-kernel-headers b/srcpkgs/rpi4-kernel-headers
index 9c2fad143506..3b4ec073331b 120000
--- a/srcpkgs/rpi4-kernel-headers
+++ b/srcpkgs/rpi4-kernel-headers
@@ -1 +1 @@
-rpi4-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi4-kernel/template b/srcpkgs/rpi4-kernel/template
deleted file mode 100644
index d4fb3c72906e..000000000000
--- a/srcpkgs/rpi4-kernel/template
+++ /dev/null
@@ -1,229 +0,0 @@
-# Template file for 'rpi4-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi4-kernel
-version=5.15.61
-revision=1
-archs="aarch64*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 4 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-conflicts=rpi3-kernel
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		aarch64*)
-			target=bcm2711_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# move dtb that ended up in /boot/broadcom
-	mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm64/boot/Image ${DESTDIR}/boot/kernel8.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi4-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PR PATCH] [Updated] rpi*-kernel: update to 5.15.68, merge templates
  2022-09-24  9:42 [PR PATCH] rpi*-kernel: update to 5.15.68, merge templates classabbyamp
                   ` (4 preceding siblings ...)
  2022-09-25  9:55 ` classabbyamp
@ 2022-09-25 10:19 ` classabbyamp
  2022-09-28 19:53 ` classabbyamp
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: classabbyamp @ 2022-09-25 10:19 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1068 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages the-rpi-unification-of-2024
https://github.com/void-linux/void-packages/pull/39442

rpi*-kernel: update to 5.15.68, merge templates
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

### TODO
- [x] test if `zImage` works for `aarch64*` (it might, according to [the note here](https://www.raspberrypi.com/documentation/computers/config_txt.html#arm_64bit))
    - the correct target is `Image.gz`
- [ ] test upgrade on all platforms
     - [x] rpi1 (armv6l)
     - [ ] rpi0 (armv6l)
     - [x] rpi2 (armv7l)
     - [ ] rpi3 (aarch64)
     - [x] rpi02 (aarch64)
     - [ ] rpi4 (aarch64)

pre-built packages can be found here: https://devspace.voidlinux.org/abby/rpi-merge, just add as a repo and update

closes #39174

A patch file from https://github.com/void-linux/void-packages/pull/39442.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-the-rpi-unification-of-2024-39442.patch --]
[-- Type: text/x-diff, Size: 34490 bytes --]

From eea27e4efc877bdcfad961d4c8339e7b5a3effc7 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:35:07 -0400
Subject: [PATCH 1/2] rpi-base: re-merge rpi*-base and -kernel packages

---
 srcpkgs/rpi-base/template | 48 +++++++++------------------------------
 1 file changed, 11 insertions(+), 37 deletions(-)

diff --git a/srcpkgs/rpi-base/template b/srcpkgs/rpi-base/template
index 8940033c83ab..3b22d684f4b2 100644
--- a/srcpkgs/rpi-base/template
+++ b/srcpkgs/rpi-base/template
@@ -1,10 +1,9 @@
 # Template file for 'rpi-base'
 pkgname=rpi-base
 version=3.0
-revision=2
+revision=3
 archs="armv6l* armv7l* aarch64*"
-_base_depends="virtual?ntp-daemon rpi-firmware"
-depends="${_base_depends} rpi-kernel"
+depends="virtual?ntp-daemon rpi-firmware rpi-kernel"
 short_desc="Void Linux Raspberry Pi base files"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="Public Domain"
@@ -26,45 +25,20 @@ case "$XBPS_TARGET_MACHINE" in
 		;;
 esac
 
-# support legacy systems (before rpi-kernel was split to rpi{,2,3})
-# archs != armv6* are emtpy meta packages to pull the new rpi${n}-base package
-case "$XBPS_TARGET_MACHINE" in
-	armv6*) : ;;
-	*)
-		build_style=meta
-		short_desc+=" (transitional dummy package)"
-
-	 	do_install() { : ; }
-
-		case "$XBPS_TARGET_MACHINE" in
-			armv7*) depends="rpi2-base" ;;
-			aarch64*) depends="rpi3-base" ;;
-		esac
-		;;
-esac
-
 rpi2-base_package() {
-	depends="${_base_depends} rpi2-kernel"
-	short_desc="Void Linux Raspberry Pi 2 base files"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }
 
-
 rpi3-base_package() {
-	depends="${_base_depends} rpi3-kernel"
-	short_desc="Void Linux Raspberry Pi 3 base files"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }
 
 rpi4-base_package() {
-	depends="${_base_depends} rpi4-kernel"
-	short_desc="Void Linux Raspberry Pi 4 base files"
-	conflicts="rpi3-base"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }

From da2182eb4bff623bcaf98b76c6c4d39abd5bbc14 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:38:28 -0400
Subject: [PATCH 2/2] rpi*-kernel: update to 5.15.68, merge templates

---
 srcpkgs/rpi-kernel/template  | 165 +++++++++++++------------
 srcpkgs/rpi2-kernel          |   1 +
 srcpkgs/rpi2-kernel-headers  |   2 +-
 srcpkgs/rpi2-kernel/template | 228 ----------------------------------
 srcpkgs/rpi3-kernel          |   1 +
 srcpkgs/rpi3-kernel-headers  |   2 +-
 srcpkgs/rpi3-kernel/template | 228 ----------------------------------
 srcpkgs/rpi4-kernel          |   1 +
 srcpkgs/rpi4-kernel-headers  |   2 +-
 srcpkgs/rpi4-kernel/template | 229 -----------------------------------
 10 files changed, 87 insertions(+), 772 deletions(-)
 create mode 120000 srcpkgs/rpi2-kernel
 delete mode 100644 srcpkgs/rpi2-kernel/template
 create mode 120000 srcpkgs/rpi3-kernel
 delete mode 100644 srcpkgs/rpi3-kernel/template
 create mode 120000 srcpkgs/rpi4-kernel
 delete mode 100644 srcpkgs/rpi4-kernel/template

diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index 3183183b6a4e..b55ad3de9026 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -6,28 +6,26 @@
 # https://forums.raspberrypi.com/viewtopic.php?t=322879
 #
 # Commit hash is picked from latest tag [1], if appropriate, or from latest
-# "Merge remote-tracking branch 'stable/linux-5.10.y' into rpi-5.10.y" commit.
+# "Merge remote-tracking branch 'stable/linux-5.x.y' into rpi-5.x.y" commit.
 #
 # [1] https://github.com/raspberrypi/linux/tags
 #
-# WARNING: keep all rpi*-kernel packages in sync
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
+# Upstream documentation: https://www.raspberrypi.com/documentation/computers/linux_kernel.html
 
 pkgname=rpi-kernel
-version=5.15.61
+version=5.15.68
 revision=1
-archs="armv6l*"
+_githash="ac7d1fdd216a11b75527e5d6b3a00d86ec28edfc"
+archs="armv6l* armv7l* aarch64*"
 wrksrc="linux-${_githash}"
 hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
 makedepends="ncurses-devel"
 maintainer="Piraty <piraty1@inbox.ru>"
 homepage="http://www.kernel.org"
 license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi zero/1 (${version%.*} series [git ${_gitshort}])"
+short_desc="Linux kernel for Raspberry Pi (${version%.*} series [git ${_githash:0:7}])"
 distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
+checksum=44699750d6e69ef47343af9cf9fbae3431a6da12990151273339324820c3bf0e
 python_version=3
 
 _kernver="${version}_${revision}"
@@ -40,56 +38,50 @@ noshlibprovides=yes
 triggers="kernel-hooks"
 # These files could be modified when an external module is built.
 mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
+ /usr/lib/modules/${_kernver}/modules.dep
+ /usr/lib/modules/${_kernver}/modules.dep.bin
+ /usr/lib/modules/${_kernver}/modules.symbols
+ /usr/lib/modules/${_kernver}/modules.symbols.bin
+ /usr/lib/modules/${_kernver}/modules.alias
+ /usr/lib/modules/${_kernver}/modules.alias.bin
+ /usr/lib/modules/${_kernver}/modules.devname"
 
 _arch=
+_image_target=
+_image_name=
 case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
+	armv6l*) _arch=arm; _image_target=zImage; _image_name=kernel.img ;;
+	armv7l*) _arch=arm; _image_target=zImage; _image_name=kernel7.img ;;
+	aarch64*) _arch=arm64; _image_target=Image.gz; _image_name=kernel8.img ;;
 esac
+
 _cross=
 if [ "$CROSS_BUILD" ]; then
 	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
 fi
 
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
 do_configure() {
 	local target defconfig
 
-	# Use upstream's default configuration, no need to maintain ours.
 	case "$XBPS_TARGET_MACHINE" in
-		armv6l*)
-			target=bcmrpi_defconfig
-			;;
+		# for zero, 1
+		armv6l*) target=bcmrpi_defconfig ;;
+		# for 2
+		armv7l*) target=bcm2709_defconfig ;;
+		# for 3, 4, zero 2
+		aarch64*) target=bcm2711_defconfig ;;
 	esac
 
 	defconfig="arch/${_arch}/configs/${target}"
 	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
 	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
 
 	# HID Controllers
 	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
 
+	# Disable GCC plugins
+	echo "# CONFIG_GCC_PLUGINS is not set" >> "$defconfig"
+
 	# LXD 4.2+ support
 	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
 
@@ -98,26 +90,17 @@ do_configure() {
 	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
 	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
 }
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
 
+do_build() {
 	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
+	make ${makejobs} ${_cross} ARCH=${_arch} ${_image_target} modules dtbs
 }
+
 do_install() {
-	local hdrdest
+	local hdrdest="${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}"
 
 	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
+	vsed -i -e '2iexit 0' scripts/depmod.sh
 
 	# Install kernel, firmware and modules
 	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
@@ -125,11 +108,13 @@ do_install() {
 	# Install device tree blobs
 	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
 
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm/boot/zImage ${DESTDIR}/boot/kernel.img
+	# move dtbs that ended up in /boot/broadcom
+	if [ -d "${DESTDIR}/boot/broadcom" ]; then
+		mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
+	fi
 
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
+	# Install kernel image
+	vinstall arch/${_arch}/boot/${_image_target} 644 boot ${_image_name}
 
 	# Switch to /usr.
 	vmkdir usr
@@ -224,6 +209,13 @@ do_install() {
 	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
 }
 
+subpackages="rpi-kernel-headers"
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7l*) subpackages+=" rpi2-kernel rpi2-kernel-headers" ;;
+	aarch64*) subpackages+=" rpi3-kernel rpi3-kernel-headers rpi4-kernel rpi4-kernel-headers" ;;
+esac
+
 rpi-kernel-headers_package() {
 	nostrip=yes
 	noverifyrdeps=yes
@@ -235,33 +227,38 @@ rpi-kernel-headers_package() {
 	}
 }
 
+rpi2-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
 
-# support legacy systems (before rpi-kernel was split to rpi{,2,3})
-# archs != armv6* are emtpy meta packages to pull the new rpi{$n}-kernel package
-archs+=" armv7l* aarch64*"
-case "$XBPS_TARGET_MACHINE" in
-	armv6*) : ;;
-	*)
-		build_style=meta
-		short_desc="Linux kernel for Raspberry Pi (transitional dummy package)"
-
-		pre_configure() { : ; }
-		do_configure() { : ; }
-		do_build() { : ; }
-		do_install() { : ; }
-
-		case "$XBPS_TARGET_MACHINE" in
-			armv7*) depends=rpi2-kernel ;;
-			aarch64*) depends=rpi3-kernel ;;
-		esac
-
-		rpi-kernel-headers_package() {
-			build_style=meta
-			short_desc="Linux kernel headers for Raspberry Pi (transitional dummy package)"
-			case "$XBPS_TARGET_MACHINE" in
-				armv7*) depends=rpi2-kernel-headers ;;
-				aarch64*) depends=rpi3-kernel-headers ;;
-			esac
-		}
-		;;
-esac
+rpi2-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
+
+rpi3-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
+
+rpi3-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
+
+rpi4-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel"
+}
+
+rpi4-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers"
+}
diff --git a/srcpkgs/rpi2-kernel b/srcpkgs/rpi2-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi2-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi2-kernel-headers b/srcpkgs/rpi2-kernel-headers
index fbe6d91aeb7f..3b4ec073331b 120000
--- a/srcpkgs/rpi2-kernel-headers
+++ b/srcpkgs/rpi2-kernel-headers
@@ -1 +1 @@
-rpi2-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi2-kernel/template b/srcpkgs/rpi2-kernel/template
deleted file mode 100644
index 8963b855a4de..000000000000
--- a/srcpkgs/rpi2-kernel/template
+++ /dev/null
@@ -1,228 +0,0 @@
-# Template file for 'rpi2-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi2-kernel
-version=5.10.110
-revision=1
-archs="armv7l*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 2 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		armv7l*)
-			target=bcm2709_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	# Disable GCC plugins
-	echo "# CONFIG_GCC_PLUGINS is not set" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm/boot/zImage ${DESTDIR}/boot/kernel7.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi2-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}
diff --git a/srcpkgs/rpi3-kernel b/srcpkgs/rpi3-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi3-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi3-kernel-headers b/srcpkgs/rpi3-kernel-headers
index 29e9f333d668..3b4ec073331b 120000
--- a/srcpkgs/rpi3-kernel-headers
+++ b/srcpkgs/rpi3-kernel-headers
@@ -1 +1 @@
-rpi3-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi3-kernel/template b/srcpkgs/rpi3-kernel/template
deleted file mode 100644
index 20d51a6b8579..000000000000
--- a/srcpkgs/rpi3-kernel/template
+++ /dev/null
@@ -1,228 +0,0 @@
-# Template file for 'rpi3-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi3-kernel
-version=5.15.61
-revision=1
-archs="aarch64*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 3 / Zero 2 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		aarch64*)
-			target=bcmrpi3_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# move dtb that ended up in /boot/broadcom
-	mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm64/boot/Image ${DESTDIR}/boot/kernel8.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi3-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}
diff --git a/srcpkgs/rpi4-kernel b/srcpkgs/rpi4-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi4-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi4-kernel-headers b/srcpkgs/rpi4-kernel-headers
index 9c2fad143506..3b4ec073331b 120000
--- a/srcpkgs/rpi4-kernel-headers
+++ b/srcpkgs/rpi4-kernel-headers
@@ -1 +1 @@
-rpi4-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi4-kernel/template b/srcpkgs/rpi4-kernel/template
deleted file mode 100644
index d4fb3c72906e..000000000000
--- a/srcpkgs/rpi4-kernel/template
+++ /dev/null
@@ -1,229 +0,0 @@
-# Template file for 'rpi4-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi4-kernel
-version=5.15.61
-revision=1
-archs="aarch64*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 4 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-conflicts=rpi3-kernel
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		aarch64*)
-			target=bcm2711_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# move dtb that ended up in /boot/broadcom
-	mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm64/boot/Image ${DESTDIR}/boot/kernel8.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi4-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PR PATCH] [Updated] rpi*-kernel: update to 5.15.68, merge templates
  2022-09-24  9:42 [PR PATCH] rpi*-kernel: update to 5.15.68, merge templates classabbyamp
                   ` (5 preceding siblings ...)
  2022-09-25 10:19 ` classabbyamp
@ 2022-09-28 19:53 ` classabbyamp
  2022-09-30  7:33 ` classabbyamp
  2022-10-01  5:36 ` [PR PATCH] [Merged]: " classabbyamp
  8 siblings, 0 replies; 10+ messages in thread
From: classabbyamp @ 2022-09-28 19:53 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1160 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages the-rpi-unification-of-2024
https://github.com/void-linux/void-packages/pull/39442

rpi*-kernel: update to 5.15.68, merge templates
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

### TODO
- [x] test if `zImage` works for `aarch64*` (it might, according to [the note here](https://www.raspberrypi.com/documentation/computers/config_txt.html#arm_64bit))
    - the correct target is `Image.gz`
- [ ] test upgrade on all platforms
     - [x] rpi1 (armv6l)
     - [x] rpi0 (armv6l)
     - [x] rpi2 (armv7l)
     - [ ] rpi3 (aarch64)
     - [x] rpi02 (aarch64)
     - [x] rpi4 (aarch64)
 - [ ] matching changes to documentation
 - [ ] matching changes to mklive

pre-built packages can be found here: https://devspace.voidlinux.org/abby/rpi-merge, just add as a repo and update

closes #39174
closes #39138

A patch file from https://github.com/void-linux/void-packages/pull/39442.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-the-rpi-unification-of-2024-39442.patch --]
[-- Type: text/x-diff, Size: 34667 bytes --]

From eea27e4efc877bdcfad961d4c8339e7b5a3effc7 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:35:07 -0400
Subject: [PATCH 1/2] rpi-base: re-merge rpi*-base and -kernel packages

---
 srcpkgs/rpi-base/template | 48 +++++++++------------------------------
 1 file changed, 11 insertions(+), 37 deletions(-)

diff --git a/srcpkgs/rpi-base/template b/srcpkgs/rpi-base/template
index 8940033c83ab..3b22d684f4b2 100644
--- a/srcpkgs/rpi-base/template
+++ b/srcpkgs/rpi-base/template
@@ -1,10 +1,9 @@
 # Template file for 'rpi-base'
 pkgname=rpi-base
 version=3.0
-revision=2
+revision=3
 archs="armv6l* armv7l* aarch64*"
-_base_depends="virtual?ntp-daemon rpi-firmware"
-depends="${_base_depends} rpi-kernel"
+depends="virtual?ntp-daemon rpi-firmware rpi-kernel"
 short_desc="Void Linux Raspberry Pi base files"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="Public Domain"
@@ -26,45 +25,20 @@ case "$XBPS_TARGET_MACHINE" in
 		;;
 esac
 
-# support legacy systems (before rpi-kernel was split to rpi{,2,3})
-# archs != armv6* are emtpy meta packages to pull the new rpi${n}-base package
-case "$XBPS_TARGET_MACHINE" in
-	armv6*) : ;;
-	*)
-		build_style=meta
-		short_desc+=" (transitional dummy package)"
-
-	 	do_install() { : ; }
-
-		case "$XBPS_TARGET_MACHINE" in
-			armv7*) depends="rpi2-base" ;;
-			aarch64*) depends="rpi3-base" ;;
-		esac
-		;;
-esac
-
 rpi2-base_package() {
-	depends="${_base_depends} rpi2-kernel"
-	short_desc="Void Linux Raspberry Pi 2 base files"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }
 
-
 rpi3-base_package() {
-	depends="${_base_depends} rpi3-kernel"
-	short_desc="Void Linux Raspberry Pi 3 base files"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }
 
 rpi4-base_package() {
-	depends="${_base_depends} rpi4-kernel"
-	short_desc="Void Linux Raspberry Pi 4 base files"
-	conflicts="rpi3-base"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }

From 52d24f5f3eb0f1a7ba5c3f7b540ecc083ed7f60d Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:38:28 -0400
Subject: [PATCH 2/2] rpi*-kernel: update to 5.15.68, merge templates

---
 srcpkgs/rpi-kernel/template  | 167 +++++++++++++------------
 srcpkgs/rpi2-kernel          |   1 +
 srcpkgs/rpi2-kernel-headers  |   2 +-
 srcpkgs/rpi2-kernel/template | 228 ----------------------------------
 srcpkgs/rpi3-kernel          |   1 +
 srcpkgs/rpi3-kernel-headers  |   2 +-
 srcpkgs/rpi3-kernel/template | 228 ----------------------------------
 srcpkgs/rpi4-kernel          |   1 +
 srcpkgs/rpi4-kernel-headers  |   2 +-
 srcpkgs/rpi4-kernel/template | 229 -----------------------------------
 10 files changed, 89 insertions(+), 772 deletions(-)
 create mode 120000 srcpkgs/rpi2-kernel
 delete mode 100644 srcpkgs/rpi2-kernel/template
 create mode 120000 srcpkgs/rpi3-kernel
 delete mode 100644 srcpkgs/rpi3-kernel/template
 create mode 120000 srcpkgs/rpi4-kernel
 delete mode 100644 srcpkgs/rpi4-kernel/template

diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index 3183183b6a4e..cdb0eac32cfb 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -6,28 +6,26 @@
 # https://forums.raspberrypi.com/viewtopic.php?t=322879
 #
 # Commit hash is picked from latest tag [1], if appropriate, or from latest
-# "Merge remote-tracking branch 'stable/linux-5.10.y' into rpi-5.10.y" commit.
+# "Merge remote-tracking branch 'stable/linux-5.x.y' into rpi-5.x.y" commit.
 #
 # [1] https://github.com/raspberrypi/linux/tags
 #
-# WARNING: keep all rpi*-kernel packages in sync
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
+# Upstream documentation: https://www.raspberrypi.com/documentation/computers/linux_kernel.html
 
 pkgname=rpi-kernel
-version=5.15.61
+version=5.15.68
 revision=1
-archs="armv6l*"
+_githash="ac7d1fdd216a11b75527e5d6b3a00d86ec28edfc"
+archs="armv6l* armv7l* aarch64*"
 wrksrc="linux-${_githash}"
 hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
 makedepends="ncurses-devel"
 maintainer="Piraty <piraty1@inbox.ru>"
 homepage="http://www.kernel.org"
 license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi zero/1 (${version%.*} series [git ${_gitshort}])"
+short_desc="Linux kernel for Raspberry Pi (${version%.*} series [git ${_githash:0:7}])"
 distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
+checksum=44699750d6e69ef47343af9cf9fbae3431a6da12990151273339324820c3bf0e
 python_version=3
 
 _kernver="${version}_${revision}"
@@ -40,56 +38,50 @@ noshlibprovides=yes
 triggers="kernel-hooks"
 # These files could be modified when an external module is built.
 mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
+ /usr/lib/modules/${_kernver}/modules.dep
+ /usr/lib/modules/${_kernver}/modules.dep.bin
+ /usr/lib/modules/${_kernver}/modules.symbols
+ /usr/lib/modules/${_kernver}/modules.symbols.bin
+ /usr/lib/modules/${_kernver}/modules.alias
+ /usr/lib/modules/${_kernver}/modules.alias.bin
+ /usr/lib/modules/${_kernver}/modules.devname"
 
 _arch=
+_image_target=
+_image_name=
 case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
+	armv6l*) _arch=arm; _image_target=zImage; _image_name=kernel.img ;;
+	armv7l*) _arch=arm; _image_target=zImage; _image_name=kernel7.img ;;
+	aarch64*) _arch=arm64; _image_target=Image.gz; _image_name=kernel8.img ;;
 esac
+
 _cross=
 if [ "$CROSS_BUILD" ]; then
 	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
 fi
 
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
 do_configure() {
 	local target defconfig
 
-	# Use upstream's default configuration, no need to maintain ours.
 	case "$XBPS_TARGET_MACHINE" in
-		armv6l*)
-			target=bcmrpi_defconfig
-			;;
+		# for zero, 1
+		armv6l*) target=bcmrpi_defconfig ;;
+		# for 2
+		armv7l*) target=bcm2709_defconfig ;;
+		# for 3, 4, zero 2
+		aarch64*) target=bcm2711_defconfig ;;
 	esac
 
 	defconfig="arch/${_arch}/configs/${target}"
 	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
 	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
 
 	# HID Controllers
 	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
 
+	# Disable GCC plugins
+	echo "# CONFIG_GCC_PLUGINS is not set" >> "$defconfig"
+
 	# LXD 4.2+ support
 	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
 
@@ -98,26 +90,17 @@ do_configure() {
 	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
 	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
 }
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
 
+do_build() {
 	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
+	make ${makejobs} ${_cross} ARCH=${_arch} ${_image_target} modules dtbs
 }
+
 do_install() {
-	local hdrdest
+	local hdrdest="${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}"
 
 	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
+	vsed -i -e '2iexit 0' scripts/depmod.sh
 
 	# Install kernel, firmware and modules
 	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
@@ -125,11 +108,13 @@ do_install() {
 	# Install device tree blobs
 	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
 
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm/boot/zImage ${DESTDIR}/boot/kernel.img
+	# move dtbs that ended up in /boot/broadcom
+	if [ -d "${DESTDIR}/boot/broadcom" ]; then
+		mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
+	fi
 
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
+	# Install kernel image
+	vinstall arch/${_arch}/boot/${_image_target} 644 boot ${_image_name}
 
 	# Switch to /usr.
 	vmkdir usr
@@ -224,6 +209,13 @@ do_install() {
 	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
 }
 
+subpackages="rpi-kernel-headers"
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7l*) subpackages+=" rpi2-kernel rpi2-kernel-headers" ;;
+	aarch64*) subpackages+=" rpi3-kernel rpi3-kernel-headers rpi4-kernel rpi4-kernel-headers" ;;
+esac
+
 rpi-kernel-headers_package() {
 	nostrip=yes
 	noverifyrdeps=yes
@@ -235,33 +227,40 @@ rpi-kernel-headers_package() {
 	}
 }
 
+# hard-code the minimum version to prevent possible issues with partial upgrades
+# of legacy (split) systems
+rpi2-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel>=5.15.68_1"
+}
 
-# support legacy systems (before rpi-kernel was split to rpi{,2,3})
-# archs != armv6* are emtpy meta packages to pull the new rpi{$n}-kernel package
-archs+=" armv7l* aarch64*"
-case "$XBPS_TARGET_MACHINE" in
-	armv6*) : ;;
-	*)
-		build_style=meta
-		short_desc="Linux kernel for Raspberry Pi (transitional dummy package)"
-
-		pre_configure() { : ; }
-		do_configure() { : ; }
-		do_build() { : ; }
-		do_install() { : ; }
-
-		case "$XBPS_TARGET_MACHINE" in
-			armv7*) depends=rpi2-kernel ;;
-			aarch64*) depends=rpi3-kernel ;;
-		esac
-
-		rpi-kernel-headers_package() {
-			build_style=meta
-			short_desc="Linux kernel headers for Raspberry Pi (transitional dummy package)"
-			case "$XBPS_TARGET_MACHINE" in
-				armv7*) depends=rpi2-kernel-headers ;;
-				aarch64*) depends=rpi3-kernel-headers ;;
-			esac
-		}
-		;;
-esac
+rpi2-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers>=5.15.68_1"
+}
+
+rpi3-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel>=5.15.68_1"
+}
+
+rpi3-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers>=5.15.68_1"
+}
+
+rpi4-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel>=5.15.68_1"
+}
+
+rpi4-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers>=5.15.68_1"
+}
diff --git a/srcpkgs/rpi2-kernel b/srcpkgs/rpi2-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi2-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi2-kernel-headers b/srcpkgs/rpi2-kernel-headers
index fbe6d91aeb7f..3b4ec073331b 120000
--- a/srcpkgs/rpi2-kernel-headers
+++ b/srcpkgs/rpi2-kernel-headers
@@ -1 +1 @@
-rpi2-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi2-kernel/template b/srcpkgs/rpi2-kernel/template
deleted file mode 100644
index 8963b855a4de..000000000000
--- a/srcpkgs/rpi2-kernel/template
+++ /dev/null
@@ -1,228 +0,0 @@
-# Template file for 'rpi2-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi2-kernel
-version=5.10.110
-revision=1
-archs="armv7l*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 2 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		armv7l*)
-			target=bcm2709_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	# Disable GCC plugins
-	echo "# CONFIG_GCC_PLUGINS is not set" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm/boot/zImage ${DESTDIR}/boot/kernel7.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi2-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}
diff --git a/srcpkgs/rpi3-kernel b/srcpkgs/rpi3-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi3-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi3-kernel-headers b/srcpkgs/rpi3-kernel-headers
index 29e9f333d668..3b4ec073331b 120000
--- a/srcpkgs/rpi3-kernel-headers
+++ b/srcpkgs/rpi3-kernel-headers
@@ -1 +1 @@
-rpi3-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi3-kernel/template b/srcpkgs/rpi3-kernel/template
deleted file mode 100644
index 20d51a6b8579..000000000000
--- a/srcpkgs/rpi3-kernel/template
+++ /dev/null
@@ -1,228 +0,0 @@
-# Template file for 'rpi3-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi3-kernel
-version=5.15.61
-revision=1
-archs="aarch64*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 3 / Zero 2 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		aarch64*)
-			target=bcmrpi3_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# move dtb that ended up in /boot/broadcom
-	mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm64/boot/Image ${DESTDIR}/boot/kernel8.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi3-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}
diff --git a/srcpkgs/rpi4-kernel b/srcpkgs/rpi4-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi4-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi4-kernel-headers b/srcpkgs/rpi4-kernel-headers
index 9c2fad143506..3b4ec073331b 120000
--- a/srcpkgs/rpi4-kernel-headers
+++ b/srcpkgs/rpi4-kernel-headers
@@ -1 +1 @@
-rpi4-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi4-kernel/template b/srcpkgs/rpi4-kernel/template
deleted file mode 100644
index d4fb3c72906e..000000000000
--- a/srcpkgs/rpi4-kernel/template
+++ /dev/null
@@ -1,229 +0,0 @@
-# Template file for 'rpi4-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi4-kernel
-version=5.15.61
-revision=1
-archs="aarch64*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 4 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-conflicts=rpi3-kernel
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		aarch64*)
-			target=bcm2711_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# move dtb that ended up in /boot/broadcom
-	mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm64/boot/Image ${DESTDIR}/boot/kernel8.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi4-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PR PATCH] [Updated] rpi*-kernel: update to 5.15.68, merge templates
  2022-09-24  9:42 [PR PATCH] rpi*-kernel: update to 5.15.68, merge templates classabbyamp
                   ` (6 preceding siblings ...)
  2022-09-28 19:53 ` classabbyamp
@ 2022-09-30  7:33 ` classabbyamp
  2022-10-01  5:36 ` [PR PATCH] [Merged]: " classabbyamp
  8 siblings, 0 replies; 10+ messages in thread
From: classabbyamp @ 2022-09-30  7:33 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1160 bytes --]

There is an updated pull request by classabbyamp against master on the void-packages repository

https://github.com/classabbyamp/void-packages the-rpi-unification-of-2024
https://github.com/void-linux/void-packages/pull/39442

rpi*-kernel: update to 5.15.68, merge templates
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

### TODO
- [x] test if `zImage` works for `aarch64*` (it might, according to [the note here](https://www.raspberrypi.com/documentation/computers/config_txt.html#arm_64bit))
    - the correct target is `Image.gz`
- [ ] test upgrade on all platforms
     - [x] rpi1 (armv6l)
     - [x] rpi0 (armv6l)
     - [x] rpi2 (armv7l)
     - [ ] rpi3 (aarch64)
     - [x] rpi02 (aarch64)
     - [x] rpi4 (aarch64)
 - [ ] matching changes to documentation
 - [ ] matching changes to mklive

pre-built packages can be found here: https://devspace.voidlinux.org/abby/rpi-merge, just add as a repo and update

closes #39174
closes #39138

A patch file from https://github.com/void-linux/void-packages/pull/39442.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-the-rpi-unification-of-2024-39442.patch --]
[-- Type: text/x-diff, Size: 35107 bytes --]

From eea27e4efc877bdcfad961d4c8339e7b5a3effc7 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:35:07 -0400
Subject: [PATCH 1/2] rpi-base: re-merge rpi*-base and -kernel packages

---
 srcpkgs/rpi-base/template | 48 +++++++++------------------------------
 1 file changed, 11 insertions(+), 37 deletions(-)

diff --git a/srcpkgs/rpi-base/template b/srcpkgs/rpi-base/template
index 8940033c83ab..3b22d684f4b2 100644
--- a/srcpkgs/rpi-base/template
+++ b/srcpkgs/rpi-base/template
@@ -1,10 +1,9 @@
 # Template file for 'rpi-base'
 pkgname=rpi-base
 version=3.0
-revision=2
+revision=3
 archs="armv6l* armv7l* aarch64*"
-_base_depends="virtual?ntp-daemon rpi-firmware"
-depends="${_base_depends} rpi-kernel"
+depends="virtual?ntp-daemon rpi-firmware rpi-kernel"
 short_desc="Void Linux Raspberry Pi base files"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="Public Domain"
@@ -26,45 +25,20 @@ case "$XBPS_TARGET_MACHINE" in
 		;;
 esac
 
-# support legacy systems (before rpi-kernel was split to rpi{,2,3})
-# archs != armv6* are emtpy meta packages to pull the new rpi${n}-base package
-case "$XBPS_TARGET_MACHINE" in
-	armv6*) : ;;
-	*)
-		build_style=meta
-		short_desc+=" (transitional dummy package)"
-
-	 	do_install() { : ; }
-
-		case "$XBPS_TARGET_MACHINE" in
-			armv7*) depends="rpi2-base" ;;
-			aarch64*) depends="rpi3-base" ;;
-		esac
-		;;
-esac
-
 rpi2-base_package() {
-	depends="${_base_depends} rpi2-kernel"
-	short_desc="Void Linux Raspberry Pi 2 base files"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }
 
-
 rpi3-base_package() {
-	depends="${_base_depends} rpi3-kernel"
-	short_desc="Void Linux Raspberry Pi 3 base files"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }
 
 rpi4-base_package() {
-	depends="${_base_depends} rpi4-kernel"
-	short_desc="Void Linux Raspberry Pi 4 base files"
-	conflicts="rpi3-base"
-	pkg_install() {
-		vinstall "${FILESDIR}/71-raspberrypi.rules" 644 usr/lib/udev/rules.d
-	}
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-base"
 }

From 49c1f8a46a750b817558375706bb61397fc222ea Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Sat, 24 Sep 2022 05:38:28 -0400
Subject: [PATCH 2/2] rpi*-kernel: update to 5.15.68, merge templates

---
 srcpkgs/rpi-kernel/template  | 169 +++++++++++++-------------
 srcpkgs/rpi2-kernel          |   1 +
 srcpkgs/rpi2-kernel-headers  |   2 +-
 srcpkgs/rpi2-kernel/template | 228 ----------------------------------
 srcpkgs/rpi3-kernel          |   1 +
 srcpkgs/rpi3-kernel-headers  |   2 +-
 srcpkgs/rpi3-kernel/template | 228 ----------------------------------
 srcpkgs/rpi4-kernel          |   1 +
 srcpkgs/rpi4-kernel-headers  |   2 +-
 srcpkgs/rpi4-kernel/template | 229 -----------------------------------
 10 files changed, 90 insertions(+), 773 deletions(-)
 create mode 120000 srcpkgs/rpi2-kernel
 delete mode 100644 srcpkgs/rpi2-kernel/template
 create mode 120000 srcpkgs/rpi3-kernel
 delete mode 100644 srcpkgs/rpi3-kernel/template
 create mode 120000 srcpkgs/rpi4-kernel
 delete mode 100644 srcpkgs/rpi4-kernel/template

diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template
index 3183183b6a4e..1534ee228918 100644
--- a/srcpkgs/rpi-kernel/template
+++ b/srcpkgs/rpi-kernel/template
@@ -6,28 +6,26 @@
 # https://forums.raspberrypi.com/viewtopic.php?t=322879
 #
 # Commit hash is picked from latest tag [1], if appropriate, or from latest
-# "Merge remote-tracking branch 'stable/linux-5.10.y' into rpi-5.10.y" commit.
+# "Merge remote-tracking branch 'stable/linux-5.x.y' into rpi-5.x.y" commit.
 #
 # [1] https://github.com/raspberrypi/linux/tags
 #
-# WARNING: keep all rpi*-kernel packages in sync
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
+# Upstream documentation: https://www.raspberrypi.com/documentation/computers/linux_kernel.html
 
 pkgname=rpi-kernel
-version=5.15.61
+version=5.15.68
 revision=1
-archs="armv6l*"
+_githash="ac7d1fdd216a11b75527e5d6b3a00d86ec28edfc"
+archs="armv6l* armv7l* aarch64*"
 wrksrc="linux-${_githash}"
 hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
 makedepends="ncurses-devel"
 maintainer="Piraty <piraty1@inbox.ru>"
 homepage="http://www.kernel.org"
 license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi zero/1 (${version%.*} series [git ${_gitshort}])"
+short_desc="Linux kernel for Raspberry Pi (${version%.*} series [git ${_githash:0:7}])"
 distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
+checksum=44699750d6e69ef47343af9cf9fbae3431a6da12990151273339324820c3bf0e
 python_version=3
 
 _kernver="${version}_${revision}"
@@ -40,56 +38,50 @@ noshlibprovides=yes
 triggers="kernel-hooks"
 # These files could be modified when an external module is built.
 mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
+ /usr/lib/modules/${_kernver}/modules.dep
+ /usr/lib/modules/${_kernver}/modules.dep.bin
+ /usr/lib/modules/${_kernver}/modules.symbols
+ /usr/lib/modules/${_kernver}/modules.symbols.bin
+ /usr/lib/modules/${_kernver}/modules.alias
+ /usr/lib/modules/${_kernver}/modules.alias.bin
+ /usr/lib/modules/${_kernver}/modules.devname"
 
 _arch=
+_image_target=
+_image_name=
 case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
+	armv6l*) _arch=arm; _image_target=zImage; _image_name=kernel.img ;;
+	armv7l*) _arch=arm; _image_target=zImage; _image_name=kernel7.img ;;
+	aarch64*) _arch=arm64; _image_target=Image.gz; _image_name=kernel8.img ;;
 esac
+
 _cross=
 if [ "$CROSS_BUILD" ]; then
 	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
 fi
 
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
 do_configure() {
 	local target defconfig
 
-	# Use upstream's default configuration, no need to maintain ours.
 	case "$XBPS_TARGET_MACHINE" in
-		armv6l*)
-			target=bcmrpi_defconfig
-			;;
+		# for zero, 1
+		armv6l*) target=bcmrpi_defconfig ;;
+		# for 2
+		armv7l*) target=bcm2709_defconfig ;;
+		# for 3, 4, zero 2
+		aarch64*) target=bcm2711_defconfig ;;
 	esac
 
 	defconfig="arch/${_arch}/configs/${target}"
 	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
 	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
 
 	# HID Controllers
 	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
 
+	# Disable GCC plugins
+	echo "# CONFIG_GCC_PLUGINS is not set" >> "$defconfig"
+
 	# LXD 4.2+ support
 	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
 
@@ -98,26 +90,17 @@ do_configure() {
 	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
 	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
 }
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
 
+do_build() {
 	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
+	make ${makejobs} ${_cross} ARCH=${_arch} ${_image_target} modules dtbs
 }
+
 do_install() {
-	local hdrdest
+	local hdrdest="${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}"
 
 	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
+	vsed -i -e '2iexit 0' scripts/depmod.sh
 
 	# Install kernel, firmware and modules
 	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
@@ -125,11 +108,13 @@ do_install() {
 	# Install device tree blobs
 	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
 
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm/boot/zImage ${DESTDIR}/boot/kernel.img
+	# move dtbs that ended up in /boot/broadcom
+	if [ -d "${DESTDIR}/boot/broadcom" ]; then
+		mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
+	fi
 
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
+	# Install kernel image
+	vinstall arch/${_arch}/boot/${_image_target} 644 boot ${_image_name}
 
 	# Switch to /usr.
 	vmkdir usr
@@ -157,7 +142,7 @@ do_install() {
 	# Remove firmware stuff provided by the "linux-firmware" pkg.
 	rm -rf ${DESTDIR}/usr/lib/firmware
 
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
+	for i in acpi asm-generic clocksource config crypto drm dt-bindings generated linux \
 		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
 		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
 	done
@@ -224,6 +209,13 @@ do_install() {
 	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
 }
 
+subpackages="rpi-kernel-headers"
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7l*) subpackages+=" rpi2-kernel rpi2-kernel-headers" ;;
+	aarch64*) subpackages+=" rpi3-kernel rpi3-kernel-headers rpi4-kernel rpi4-kernel-headers" ;;
+esac
+
 rpi-kernel-headers_package() {
 	nostrip=yes
 	noverifyrdeps=yes
@@ -235,33 +227,40 @@ rpi-kernel-headers_package() {
 	}
 }
 
+# hard-code the minimum version to prevent possible issues with partial upgrades
+# of legacy (split) systems
+rpi2-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel>=5.15.68_1"
+}
 
-# support legacy systems (before rpi-kernel was split to rpi{,2,3})
-# archs != armv6* are emtpy meta packages to pull the new rpi{$n}-kernel package
-archs+=" armv7l* aarch64*"
-case "$XBPS_TARGET_MACHINE" in
-	armv6*) : ;;
-	*)
-		build_style=meta
-		short_desc="Linux kernel for Raspberry Pi (transitional dummy package)"
-
-		pre_configure() { : ; }
-		do_configure() { : ; }
-		do_build() { : ; }
-		do_install() { : ; }
-
-		case "$XBPS_TARGET_MACHINE" in
-			armv7*) depends=rpi2-kernel ;;
-			aarch64*) depends=rpi3-kernel ;;
-		esac
-
-		rpi-kernel-headers_package() {
-			build_style=meta
-			short_desc="Linux kernel headers for Raspberry Pi (transitional dummy package)"
-			case "$XBPS_TARGET_MACHINE" in
-				armv7*) depends=rpi2-kernel-headers ;;
-				aarch64*) depends=rpi3-kernel-headers ;;
-			esac
-		}
-		;;
-esac
+rpi2-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers>=5.15.68_1"
+}
+
+rpi3-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel>=5.15.68_1"
+}
+
+rpi3-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers>=5.15.68_1"
+}
+
+rpi4-kernel_package() {
+	build_style=meta
+	short_desc+=" (transitional dummy package)"
+	depends="rpi-kernel>=5.15.68_1"
+}
+
+rpi4-kernel-headers_package() {
+	build_style=meta
+	short_desc="${short_desc/kernel/kernel headers} (transitional dummy package)"
+	depends="rpi-kernel-headers>=5.15.68_1"
+}
diff --git a/srcpkgs/rpi2-kernel b/srcpkgs/rpi2-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi2-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi2-kernel-headers b/srcpkgs/rpi2-kernel-headers
index fbe6d91aeb7f..3b4ec073331b 120000
--- a/srcpkgs/rpi2-kernel-headers
+++ b/srcpkgs/rpi2-kernel-headers
@@ -1 +1 @@
-rpi2-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi2-kernel/template b/srcpkgs/rpi2-kernel/template
deleted file mode 100644
index 8963b855a4de..000000000000
--- a/srcpkgs/rpi2-kernel/template
+++ /dev/null
@@ -1,228 +0,0 @@
-# Template file for 'rpi2-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi2-kernel
-version=5.10.110
-revision=1
-archs="armv7l*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 2 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		armv7l*)
-			target=bcm2709_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	# Disable GCC plugins
-	echo "# CONFIG_GCC_PLUGINS is not set" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm/boot/zImage ${DESTDIR}/boot/kernel7.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi2-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}
diff --git a/srcpkgs/rpi3-kernel b/srcpkgs/rpi3-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi3-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi3-kernel-headers b/srcpkgs/rpi3-kernel-headers
index 29e9f333d668..3b4ec073331b 120000
--- a/srcpkgs/rpi3-kernel-headers
+++ b/srcpkgs/rpi3-kernel-headers
@@ -1 +1 @@
-rpi3-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi3-kernel/template b/srcpkgs/rpi3-kernel/template
deleted file mode 100644
index 20d51a6b8579..000000000000
--- a/srcpkgs/rpi3-kernel/template
+++ /dev/null
@@ -1,228 +0,0 @@
-# Template file for 'rpi3-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi3-kernel
-version=5.15.61
-revision=1
-archs="aarch64*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 3 / Zero 2 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		aarch64*)
-			target=bcmrpi3_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# move dtb that ended up in /boot/broadcom
-	mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm64/boot/Image ${DESTDIR}/boot/kernel8.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi3-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}
diff --git a/srcpkgs/rpi4-kernel b/srcpkgs/rpi4-kernel
new file mode 120000
index 000000000000..3b4ec073331b
--- /dev/null
+++ b/srcpkgs/rpi4-kernel
@@ -0,0 +1 @@
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi4-kernel-headers b/srcpkgs/rpi4-kernel-headers
index 9c2fad143506..3b4ec073331b 120000
--- a/srcpkgs/rpi4-kernel-headers
+++ b/srcpkgs/rpi4-kernel-headers
@@ -1 +1 @@
-rpi4-kernel
\ No newline at end of file
+rpi-kernel
\ No newline at end of file
diff --git a/srcpkgs/rpi4-kernel/template b/srcpkgs/rpi4-kernel/template
deleted file mode 100644
index d4fb3c72906e..000000000000
--- a/srcpkgs/rpi4-kernel/template
+++ /dev/null
@@ -1,229 +0,0 @@
-# Template file for 'rpi4-kernel'
-# See rpi-kernel for version policy
-
-_githash="64ad74084fa44abe8689564071df5729ded4c589"
-_gitshort="${_githash:0:7}"
-
-pkgname=rpi4-kernel
-version=5.15.61
-revision=1
-archs="aarch64*"
-wrksrc="linux-${_githash}"
-hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz"
-makedepends="ncurses-devel"
-maintainer="Piraty <piraty1@inbox.ru>"
-homepage="http://www.kernel.org"
-license="GPL-2.0-only"
-short_desc="Linux kernel for Raspberry Pi 4 (${version%.*} series [git ${_gitshort}])"
-distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz"
-checksum=8257604cc47792007284cc2640d7dd9f70fab062a7c596e92903e99718434244
-python_version=3
-conflicts=rpi3-kernel
-
-_kernver="${version}_${revision}"
-
-nodebug=yes
-nostrip=yes
-noverifyrdeps=yes
-noshlibprovides=yes
-
-triggers="kernel-hooks"
-# These files could be modified when an external module is built.
-mutable_files="
-	/usr/lib/modules/${_kernver}/modules.dep
-	/usr/lib/modules/${_kernver}/modules.dep.bin
-	/usr/lib/modules/${_kernver}/modules.symbols
-	/usr/lib/modules/${_kernver}/modules.symbols.bin
-	/usr/lib/modules/${_kernver}/modules.alias
-	/usr/lib/modules/${_kernver}/modules.alias.bin
-	/usr/lib/modules/${_kernver}/modules.devname"
-
-_arch=
-case "$XBPS_TARGET_MACHINE" in
-	arm*) _arch=arm ;;
-	aarch64*) _arch=arm64 ;;
-esac
-_cross=
-if [ "$CROSS_BUILD" ]; then
-	_cross="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
-fi
-
-pre_configure() {
-	# Remove .git directory, otherwise scripts/setkernelversion.sh
-	# modifies KERNELRELEASE and appends + to it.
-	rm -rf .git
-}
-do_configure() {
-	local target defconfig
-
-	# Use upstream's default configuration, no need to maintain ours.
-	case "$XBPS_TARGET_MACHINE" in
-		aarch64*)
-			target=bcm2711_defconfig
-			;;
-	esac
-
-	defconfig="arch/${_arch}/configs/${target}"
-	echo "CONFIG_CONNECTOR=y" >> "$defconfig"
-	echo "CONFIG_PROC_EVENTS=y" >> "$defconfig"
-	echo "CONFIG_F2FS_FS_SECURITY=y" >> "$defconfig"
-	echo "CONFIG_CGROUP_PIDS=y" >> "$defconfig"
-
-	# IR Remote Support
-	echo "CONFIG_RC_CORE=y" >> "$defconfig"
-	echo "CONFIG_LIRC=y" >> "$defconfig"
-	echo "CONFIG_RC_DECODERS=y" >> "$defconfig"
-	echo "CONFIG_RC_DEVICES=y" >> "$defconfig"
-	echo "CONFIG_IR_RC6_DECODER=m" >> "$defconfig"
-	echo "CONFIG_IR_MCEUSB=m" >> "$defconfig"
-
-	# HID Controllers
-	echo "CONFIG_HID_STEAM=y" >> "$defconfig"
-
-	# LXD 4.2+ support
-	echo "CONFIG_BRIDGE_VLAN_FILTERING=y" >> "$defconfig"
-
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-
-	# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
-	vsed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
-}
-do_build() {
-	local target
-
-	case "$XBPS_TARGET_MACHINE" in
-		arm*)
-			target="zImage modules dtbs"
-			;;
-		aarch64*)
-			target="Image modules dtbs"
-			;;
-	esac
-
-	make ${makejobs} ${_cross} ARCH=${_arch} prepare
-	make ${makejobs} ${_cross} ARCH=${_arch} ${target}
-}
-do_install() {
-	local hdrdest
-
-	# Run depmod after compressing modules.
-	sed -i '2iexit 0' scripts/depmod.sh
-
-	# Install kernel, firmware and modules
-	make ${makejobs} ARCH=${_arch} INSTALL_MOD_PATH=${DESTDIR} modules_install
-
-	# Install device tree blobs
-	make ${makejobs} ARCH=${_arch} INSTALL_DTBS_PATH=${DESTDIR}/boot dtbs_install
-
-	# move dtb that ended up in /boot/broadcom
-	mv ${DESTDIR}/boot/broadcom/*dtb ${DESTDIR}/boot
-
-	# Generate kernel.img and install it to destdir.
-	vmkdir boot
-	cp arch/arm64/boot/Image ${DESTDIR}/boot/kernel8.img
-
-	hdrdest=${DESTDIR}/usr/src/${sourcepkg}-headers-${_kernver}
-
-	# Switch to /usr.
-	vmkdir usr
-	mv ${DESTDIR}/lib ${DESTDIR}/usr
-
-	cd ${DESTDIR}/usr/lib/modules/${_kernver}
-	rm -f source build
-	ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build
-
-	cd ${wrksrc}
-	# Install required headers to build external modules
-	install -Dm644 Makefile ${hdrdest}/Makefile
-	install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
-	install -Dm644 .config ${hdrdest}/.config
-	for file in $(find . -name Kconfig\*); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	for file in $(find arch/${_arch} scripts -name module.lds -o -name Kbuild.platforms -o -name Platform); do
-		mkdir -p ${hdrdest}/$(dirname $file)
-		install -Dm644 $file ${hdrdest}/${file}
-	done
-	mkdir -p ${hdrdest}/include
-
-	# Remove firmware stuff provided by the "linux-firmware" pkg.
-	rm -rf ${DESTDIR}/usr/lib/firmware
-
-	for i in acpi asm-generic clocksource config crypto drm generated linux \
-		math-emu media net pcmcia scsi sound trace uapi vdso video xen; do
-		[ -d include/$i ] && cp -a include/$i ${hdrdest}/include
-	done
-
-	cd ${wrksrc}
-	# Remove helper binaries built for host,
-	# if generated files from the scripts/ directory need to be included,
-	# they need to be copied to ${hdrdest} before this step
-	if [ "$CROSS_BUILD" ]; then
-		make ${makejobs} ARCH=${_arch} _mrproper_scripts
-		# remove host specific objects as well
-		find scripts -name '*.o' -delete
-	fi
-
-	# Copy files necessary for later builds.
-	cp Module.symvers ${hdrdest}
-	cp -a scripts ${hdrdest}
-	mkdir -p ${hdrdest}/security/selinux
-	cp -a security/selinux/include ${hdrdest}/security/selinux
-	mkdir -p ${hdrdest}/tools/include
-	cp -a tools/include/tools ${hdrdest}/tools/include
-	if [ -d "arch/${_arch}/tools" ]; then
-		cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch}
-	fi
-
-	# copy arch includes for external modules
-	mkdir -p ${hdrdest}/arch/${_arch}
-	cp -a arch/${_arch}/include ${hdrdest}/arch/${_arch}
-
-	mkdir -p ${hdrdest}/arch/${_arch}/kernel
-	cp arch/${_arch}/Makefile ${hdrdest}/arch/${_arch}
-	cp arch/${_arch}/kernel/asm-offsets.s ${hdrdest}/arch/${_arch}/kernel
-	if [ "$_arch" = "arm64" ] ; then
-		cp -a arch/${_arch}/kernel/vdso ${hdrdest}/arch/${_arch}/kernel/
-	fi
-
-	# Add md headers
-	mkdir -p ${hdrdest}/drivers/md
-	cp drivers/md/*.h ${hdrdest}/drivers/md
-
-	# Add inotify.h
-	mkdir -p ${hdrdest}/include/linux
-	cp include/linux/inotify.h ${hdrdest}/include/linux
-
-	# Add wireless headers
-	mkdir -p ${hdrdest}/net/mac80211/
-	cp net/mac80211/*.h ${hdrdest}/net/mac80211
-
-	# Remove unneeded architectures
-	# (save the correct one + Kconfig and delete all others)
-	mkdir -p arch-backup
-	cp -r ${hdrdest}/arch/${_arch} ${hdrdest}/arch/Kconfig arch-backup/
-	rm -rf ${hdrdest}/arch
-	mv arch-backup ${hdrdest}/arch
-	# Keep arch/x86/ras/Kconfig as it is needed by drivers/ras/Kconfig
-	mkdir -p ${hdrdest}/arch/x86/ras
-	cp -a arch/x86/ras/Kconfig ${hdrdest}/arch/x86/ras/Kconfig
-
-	# Compress all modules with xz to save a few MBs.
-	msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n"
-	find ${DESTDIR} -name '*.ko' | xargs -n1 -P0 gzip -9
-
-	# ... and run depmod again.
-	depmod -b ${DESTDIR}/usr -F System.map ${_kernver}
-}
-
-rpi4-kernel-headers_package() {
-	nostrip=yes
-	noverifyrdeps=yes
-	noshlibprovides=yes
-	short_desc="${short_desc/kernel/kernel headers}"
-	pkg_install() {
-		vmove usr/src
-		vmove usr/lib/modules/${_kernver}/build
-	}
-}

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PR PATCH] [Merged]: rpi*-kernel: update to 5.15.68, merge templates
  2022-09-24  9:42 [PR PATCH] rpi*-kernel: update to 5.15.68, merge templates classabbyamp
                   ` (7 preceding siblings ...)
  2022-09-30  7:33 ` classabbyamp
@ 2022-10-01  5:36 ` classabbyamp
  8 siblings, 0 replies; 10+ messages in thread
From: classabbyamp @ 2022-10-01  5:36 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1104 bytes --]

There's a merged pull request on the void-packages repository

rpi*-kernel: update to 5.15.68, merge templates
https://github.com/void-linux/void-packages/pull/39442

Description:
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

### TODO
- [x] test if `zImage` works for `aarch64*` (it might, according to [the note here](https://www.raspberrypi.com/documentation/computers/config_txt.html#arm_64bit))
    - the correct target is `Image.gz`
- [x] test upgrade on all platforms
     - [x] rpi1 (armv6l)
     - [x] rpi0 (armv6l)
     - [x] rpi2 (armv7l)
     - [x] rpi3 (aarch64)
     - [x] rpi02 (aarch64)
     - [x] rpi4 (aarch64)
 - [x] matching changes to documentation - void-linux/void-docs#710
 - [x] matching changes to mklive - void-linux/void-mklive#283
 - [x] matching changes to website - void-linux/void-linux.github.io#183

pre-built packages can be found here: https://devspace.voidlinux.org/abby/rpi-merge, just add as a repo and update

closes #39174
closes #39129

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2022-10-01  5:36 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-24  9:42 [PR PATCH] rpi*-kernel: update to 5.15.68, merge templates classabbyamp
2022-09-24 23:51 ` [PR PATCH] [Updated] " classabbyamp
2022-09-25  6:59 ` classabbyamp
2022-09-25  9:08 ` classabbyamp
2022-09-25  9:19 ` classabbyamp
2022-09-25  9:55 ` classabbyamp
2022-09-25 10:19 ` classabbyamp
2022-09-28 19:53 ` classabbyamp
2022-09-30  7:33 ` classabbyamp
2022-10-01  5:36 ` [PR PATCH] [Merged]: " classabbyamp

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).