From 505a9354803a0f426d19610e039a0d29929fd9e8 Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Wed, 20 Sep 2023 02:37:51 -0400 Subject: [PATCH 1/4] rpi-kernel: update to 6.1.54. --- srcpkgs/rpi-kernel/template | 111 ++++++++++++++++++++++++------------ 1 file changed, 76 insertions(+), 35 deletions(-) diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template index c49612b7c510a..5b3a3bfcbed6d 100644 --- a/srcpkgs/rpi-kernel/template +++ b/srcpkgs/rpi-kernel/template @@ -1,30 +1,29 @@ # Template file for 'rpi-kernel' # # We track the latest Raspberry Pi LTS kernel as that is what is used in the -# official Raspberry Pi OS distribution. This is currently 5.15: +# official Raspberry Pi OS distribution. This is currently 6.1: # -# https://forums.raspberrypi.com/viewtopic.php?t=322879 +# https://forums.raspberrypi.com/viewtopic.php?t=344246 # # Commit hash is picked from latest tag [1], if appropriate, or from latest -# "Merge remote-tracking branch 'stable/linux-5.x.y' into rpi-5.x.y" commit. +# "Merge remote-tracking branch 'stable/linux-6.x.y' into rpi-6.x.y" commit. # # [1] https://github.com/raspberrypi/linux/tags # # Upstream documentation: https://www.raspberrypi.com/documentation/computers/linux_kernel.html - pkgname=rpi-kernel -version=5.15.72 +version=6.1.54 revision=1 -_githash="3b98eb7a4aeaecd5274108dc1be7a5df94253500" +_githash=fad58933544bb2a7b7db92847c25c79a83171fa6 archs="armv6l* armv7l* aarch64*" hostmakedepends="perl kmod uboot-mkimage openssl-devel bc bison flex xz" makedepends="ncurses-devel" +short_desc="Linux kernel for Raspberry Pi (${version%.*} series)" maintainer="Piraty " -homepage="http://www.kernel.org" license="GPL-2.0-only" -short_desc="Linux kernel for Raspberry Pi (${version%.*} series [git ${_githash:0:7}])" +homepage="http://www.kernel.org" distfiles="https://github.com/raspberrypi/linux/archive/${_githash}.tar.gz" -checksum=5cad1fd22f309ddd7b996df748aa21ced72f88d47fdbb8d4bfd9ef3a8a9b6ce9 +checksum=1bd02902fae49351fb16ac0d5ccc3bf4d67aa0640006dbbf8846963519b01ab8 python_version=3 _kernver="${version}_${revision}" @@ -72,22 +71,74 @@ do_configure() { esac defconfig="arch/${_arch}/configs/${target}" - echo "CONFIG_CONNECTOR=y" >> "$defconfig" - echo "CONFIG_PROC_EVENTS=y" >> "$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" - - 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 + cp "$defconfig" .config + + cat <<-! > "foo" + CONFIG_CONNECTOR=y + CONFIG_HID_STEAM=y + CONFIG_PROC_EVENTS=y + CONFIG_GCC_PLUGINS=n + CONFIG_BRIDGE_VLAN_FILTERING=y + CONFIG_FUNCTION_TRACER=n + CONFIG_STACK_TRACER=n + CONFIG_ATM=n + CONFIG_SLAB_FREELIST_RANDOM=y + CONFIG_CGROUP_PIDS=y + CONFIG_SLAB_FREELIST_HARDENED=y + CONFIG_PACKET=m + CONFIG_NF_CT_PROTO_DCCP=y + CONFIG_NF_CT_PROTO_SCTP=y + CONFIG_NF_CT_PROTO_UDPLITE=y + CONFIG_BATMAN_ADV=n + CONFIG_INPUT_LEDS=m + CONFIG_SQUASHFS_LZ4=y + CONFIG_STRICT_DEVMEM=y + CONFIG_IO_STRICT_DEVMEM=y + CONFIG_ENCRYPTED_KEYS=m + CONFIG_KEY_DH_OPERATIONS=y + CONFIG_HARDENED_USERCOPY=y + CONFIG_LOCALVERSION="_${revision}" + CONFIG_IP_PNP=n + CONFIG_USB_DWC2=m + CONFIG_USB_ETH=m + CONFIG_RTC_HCTOSYS=y + CONFIG_RTC_HCTOSYS_DEVICE="rtc0" + CONFIG_RTC_DRV_DS1307=y + CONFIG_I2C_BCM2835=y + CONFIG_MEMCG=y + CONFIG_CGROUP_PIDS=y + CONFIG_CGROUP_DEVICE=y + CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y + CONFIG_PSI=y + CONFIG_ZSTD_COMPRESS=y + CONFIG_LZ4_COMPRESS=y + CONFIG_CRYPTO_RNG=y + CONFIG_CRYPTO_RNG_DEFAULT=y + ! + + while read -r line; do + # skip comments + case "$line" in + "#"*) continue;; + esac + local option=${line%%=*} str= + local cmd=$(echo $line | cut -d= -f2) + case "$cmd" in + y) cmd="enable";; + n) cmd="disable";; + m) cmd="module";; + '"'*) cmd="set-str"; str="${line#*=}";; + [0-9]*) cmd="set-val"; str="${line#*=}";; + '') continue ;; + *) msg_error "Command $cmd not accepted\n" ;; + esac + msg_normal "config: $cmd: $option $str\n" + ./scripts/config \ + --file .config \ + "--$cmd" "$option" "${str//\"/}" + done < foo + + make ${makejobs} ${_cross} ARCH=${_arch} olddefconfig } do_build() { @@ -190,16 +241,6 @@ do_install() { 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 From 1cb774d5bb09be8f22a3d4e92a23424bb0f802b7 Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Wed, 20 Sep 2023 02:37:53 -0400 Subject: [PATCH 2/4] rpi-firmware: update to 20230920. --- srcpkgs/rpi-firmware/template | 118 ++++++++++++++++------------------ 1 file changed, 57 insertions(+), 61 deletions(-) diff --git a/srcpkgs/rpi-firmware/template b/srcpkgs/rpi-firmware/template index 5086abfa19fec..fd2c1c3ca679c 100644 --- a/srcpkgs/rpi-firmware/template +++ b/srcpkgs/rpi-firmware/template @@ -1,82 +1,78 @@ # Template file for 'rpi-firmware' -_githash="62efc6a69d4e717bf2833c649d622c8298a37e9c" -_gitshort="${_githash:0:7}" - pkgname=rpi-firmware -version=20220823 -revision=2 +version=20230920 +revision=1 +_rpi_fw=de26b2d7f77404dbe0598d8c52b7ae14a78877b1 +_rpi_bt=9556b08ace2a1735127894642cc8ea6529c04c90 +_rpi_brcm=2c3a8701193ba23d0ef85cdf0d0c9e47baf03dfc +create_wrksrc=yes archs="armv6l* armv7l* aarch64*" -provides="linux-firmware-broadcom-${version}_${revision}" -replaces="linux-firmware-broadcom>=0" -short_desc="Firmware files for the Raspberry Pi (git ${_gitshort})" +short_desc="Firmware files for the Raspberry Pi" maintainer="Piraty " license="BSD-3-Clause, custom:Cypress" homepage="https://github.com/raspberrypi/firmware" -distfiles="https://github.com/raspberrypi/firmware/archive/${_githash}.tar.gz" -checksum=3fc5ab7155bde7221245f439971217558300dcbc988ade861cfef4e737de9909 +distfiles=" + https://github.com/raspberrypi/firmware/archive/${_rpi_fw}.tar.gz + https://github.com/RPi-Distro/firmware-nonfree/archive/${_rpi_brcm}.tar.gz + https://github.com/RPi-Distro/bluez-firmware/raw/${_rpi_bt}/broadcom/BCM43430A1.hcd + https://github.com/RPi-Distro/bluez-firmware/raw/${_rpi_bt}/broadcom/BCM4345C0.hcd + https://github.com/RPi-Distro/bluez-firmware/raw/${_rpi_bt}/broadcom/BCM43430B0.hcd + https://github.com/RPi-Distro/bluez-firmware/raw/${_rpi_bt}/broadcom/BCM4345C5.hcd + https://github.com/RPi-Distro/bluez-firmware/raw/${_rpi_bt}/synaptics/SYN43430A1.hcd>BCM43430A1.raspberrypi,model-zero-2-w.hcd + https://github.com/RPi-Distro/bluez-firmware/raw/${_rpi_bt}/synaptics/SYN43430B0.hcd>BCM43430B0.raspberrypi,model-zero-2-w.hcd + https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/LICENCE.cypress>LICENCE.cypress" +checksum="6d929aa677e6d71485093786877e0bdd3a9a579f55562ac8fca8d33280426d12 + 9156d90116b921d2e7938b52fad84fbe1d96df622a66c5db09569c735832387a + c096ad4a5c3f06ed7d69eba246bf89ada9acba64a5b6f51b1e9c12f99bb1e1a7 + 51c45e77ddad91a19e96dc8fb75295b2087c279940df2634b23baf71b6dea42c + 338c2c6631131f516bfc7e64ef0872bd0402e1f98ef9d0c900eef0c814d90a25 + fb9f4ec2df5301bd35f416384e103c012c5983024c49aa72fbbaf90177512caa + 55071227c94d86369d04f9aff3bbfd4197a78a53dc350295123e1a8b048bba8f + 338c2c6631131f516bfc7e64ef0872bd0402e1f98ef9d0c900eef0c814d90a25 + ae0db6cc4db33941148df0f67de53e76a77b1b5a46b3165edb7040aa2750015f" + +skip_extraction="BCM43430A1.hcd BCM4345C0.hcd BCM43430B0.hcd BCM4345C5.hcd + BCM43430A1.raspberrypi,model-zero-2-w.hcd BCM43430B0.raspberrypi,model-zero-2-w.hcd + LICENCE.cypress" + +provides="linux-firmware-broadcom-${version}_${revision}" +replaces="linux-firmware-broadcom>=0" conf_files="/boot/cmdline.txt /boot/config.txt" nostrip=yes do_install() { - rm -f boot/*.img - rm -rf boot/overlays - rm -f boot/*.dtb - rm -f boot/COPYING.linux - - vlicense boot/LICENCE.broadcom - rm -f boot/LICENCE.broadcom + # bootloader + vlicense "firmware-${_rpi_fw}/boot/LICENCE.broadcom" + rm -rf "firmware-${_rpi_fw}/boot/"*.img \ + "firmware-${_rpi_fw}/boot/overlays" \ + "firmware-${_rpi_fw}/boot/"*.dtb \ + "firmware-${_rpi_fw}/boot/COPYING.linux" \ + "firmware-${_rpi_fw}/boot/LICENCE.broadcom" vmkdir boot - cp -R boot/* ${DESTDIR}/boot + vcopy "firmware-${_rpi_fw}/boot/*" boot # Install configuration files. - vinstall ${FILESDIR}/cmdline.txt 644 boot - vinstall ${FILESDIR}/config.txt 644 boot + vinstall "${FILESDIR}/cmdline.txt" 644 boot + vinstall "${FILESDIR}/config.txt" 644 boot - $XBPS_FETCH_CMD https://raw.githubusercontent.com/RPi-Distro/firmware-nonfree/buster/LICENCE.cypress - vlicense LICENCE.cypress + # firmware + # we can use either the -standard or -minimal 43455 file so use standard by default + ln -sfv cyfmac43455-sdio-standard.bin "firmware-nonfree-${_rpi_brcm}/debian/config/brcm80211/cypress/cyfmac43455-sdio.bin" + vlicense "${XBPS_SRCDISTDIR}/${pkgname}-${version}/LICENCE.cypress" - # Firmware for rpi3 b and zero wifi chip - for f in bin txt; do - $XBPS_FETCH_CMD https://raw.githubusercontent.com/RPi-Distro/firmware-nonfree/buster/brcm/brcmfmac43430-sdio.${f} - vinstall brcmfmac43430-sdio.${f} 0644 usr/lib/firmware/brcm - done + # add original Pi Foundation firmware files + # install deref's symlinks and copies a whole file, which makes rpi use duplicated variants specifically from downstream firmware + install -Dm644 \ + "firmware-nonfree-${_rpi_brcm}/debian/config/brcm80211/brcm/"brcmfmac*raspberrypi* \ + -t "${DESTDIR}/usr/lib/firmware/brcm" - # Firmware for rpi3 b and zero bluetooth chip - $XBPS_FETCH_CMD https://raw.githubusercontent.com/RPi-Distro/bluez-firmware/master/broadcom/BCM43430A1.hcd - vinstall BCM43430A1.hcd 0644 usr/lib/firmware/brcm + # but 43436/43436s/43456 is not in linux-firmware, so copy it normally + vcopy "firmware-nonfree-${_rpi_brcm}/debian/config/brcm80211/brcm/brcmfmac43456"* usr/lib/firmware/brcm + vcopy "firmware-nonfree-${_rpi_brcm}/debian/config/brcm80211/brcm/brcmfmac43436"* usr/lib/firmware/brcm - # Firmware for rpi3 b+ wifi chip - for f in bin txt clm_blob; do - $XBPS_FETCH_CMD https://raw.githubusercontent.com/RPi-Distro/firmware-nonfree/buster/brcm/brcmfmac43455-sdio.${f} - vinstall brcmfmac43455-sdio.${f} 0644 usr/lib/firmware/brcm + for file in "${XBPS_SRCDISTDIR}/${pkgname}-${version}/"*.hcd; do + vinstall "$file" 0644 usr/lib/firmware/brcm done - - # Firmware for rpi3 b+ bluetooth chip - $XBPS_FETCH_CMD https://raw.githubusercontent.com/RPi-Distro/bluez-firmware/master/broadcom/BCM4345C0.hcd - vinstall BCM4345C0.hcd 0644 usr/lib/firmware/brcm - - # Firmware for rpi zero 2w wifi chip - for f in bin txt clm_blob; do - $XBPS_FETCH_CMD https://raw.githubusercontent.com/RPi-Distro/firmware-nonfree/buster/brcm/brcmfmac43436-sdio.${f} - vinstall brcmfmac43436-sdio.${f} 0644 usr/lib/firmware/brcm - done - for f in bin txt; do - $XBPS_FETCH_CMD https://raw.githubusercontent.com/RPi-Distro/firmware-nonfree/buster/brcm/brcmfmac43436s-sdio.${f} - vinstall brcmfmac43436s-sdio.${f} 0644 usr/lib/firmware/brcm - done - - # Firmware for rpi4/rpi400 wifi chip - for f in bin txt clm_blob; do - $XBPS_FETCH_CMD https://raw.githubusercontent.com/RPi-Distro/firmware-nonfree/buster/brcm/brcmfmac43456-sdio.${f} - vinstall brcmfmac43456-sdio.${f} 0644 usr/lib/firmware/brcm - done - - # Firmware for rpi4/rpi400 bluetooth chip - $XBPS_FETCH_CMD https://raw.githubusercontent.com/RPi-Distro/bluez-firmware/master/broadcom/BCM4345C5.hcd - vinstall BCM4345C5.hcd 0644 usr/lib/firmware/brcm - - $XBPS_FETCH_CMD https://raw.githubusercontent.com/RPi-Distro/bluez-firmware/master/broadcom/BCM43430B0.hcd - vinstall BCM43430B0.hcd 0644 usr/lib/firmware/brcm } From 9661239d699c9937b95ca209926c17bba95f3239 Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Wed, 20 Sep 2023 02:37:54 -0400 Subject: [PATCH 3/4] rpi-userland: update to 20230920. --- srcpkgs/rpi-userland/template | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/srcpkgs/rpi-userland/template b/srcpkgs/rpi-userland/template index 4f1ea38c9e3a6..25fc587bfb55d 100644 --- a/srcpkgs/rpi-userland/template +++ b/srcpkgs/rpi-userland/template @@ -1,19 +1,17 @@ # Template file for 'rpi-userland' -_githash="97bc8180ad682b004ea224d1db7b8e108eda4397" -_gitshort="${_githash:0:7}" - pkgname=rpi-userland -version=20210623 +version=20230920 revision=1 +_githash="44a3953fd13d5f0b9b0cd120b904aa7db370244e" build_style=cmake -hostmakedepends="pkg-config" configure_args="-DCMAKE_INSTALL_RPATH=\$ORIGIN/../lib" -short_desc="Raspberry Pi GPU userland libraries and utilities (git ${_gitshort})" +hostmakedepends="pkg-config" +short_desc="Raspberry Pi GPU userland libraries and utilities" maintainer="Orphaned " license="BSD-3-Clause" homepage="https://github.com/raspberrypi/userland" distfiles="https://github.com/raspberrypi/userland/archive/${_githash}.tar.gz" -checksum=d67def03931215f41b741aed5a3a1bc2bd62fa33f5cc14692e9a4d65f2e0ea27 +checksum=981c376a110f78fe579a72e218888646ccd5d71ab82d04bb1a8d7be1487b45f0 LDFLAGS="-Wl,--no-as-needed" archs="armv6l* armv7l* aarch64*" From fe5db64f751747de03496161e8c501bc9f82a363 Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Sat, 23 Sep 2023 19:11:45 -0400 Subject: [PATCH 4/4] fixup! rpi-kernel: update to 6.1.54. --- srcpkgs/rpi-kernel/template | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/srcpkgs/rpi-kernel/template b/srcpkgs/rpi-kernel/template index 5b3a3bfcbed6d..25bc455082785 100644 --- a/srcpkgs/rpi-kernel/template +++ b/srcpkgs/rpi-kernel/template @@ -177,6 +177,7 @@ do_install() { cd ${wrksrc} # Install required headers to build external modules install -Dm644 Makefile ${hdrdest}/Makefile + install -Dm644 Kbuild ${hdrdest}/Kbuild install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile install -Dm644 .config ${hdrdest}/.config for file in $(find . -name Kconfig\*); do @@ -217,6 +218,10 @@ do_install() { if [ -d "arch/${_arch}/tools" ]; then cp -a arch/${_arch}/tools ${hdrdest}/arch/${_arch} fi + cp -a kernel/time/timeconst.bc "${hdrdest}/kernel/time" + cp -a kernel/bounds.c "${hdrdest}/kernel" + mkdir -p "${hdrdest}/arch/x86/entry/syscalls" + cp -a arch/x86/entry/syscalls/syscall_32.tbl "${hdrdest}/arch/x86/entry/syscalls" # copy arch includes for external modules mkdir -p ${hdrdest}/arch/${_arch}