From eea27e4efc877bdcfad961d4c8339e7b5a3effc7 Mon Sep 17 00:00:00 2001 From: classabbyamp 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 " 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 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 " 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 " -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 " -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 " -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 - } -}