diff options
| author | Yuval Adam <_@yuv.al> | 2023-04-20 21:31:36 +0300 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2023-04-20 21:31:36 +0300 |
| commit | d5b5a5e397f5d430439193869bd3dda5c674f34f (patch) | |
| tree | 7c457d568ac010c23d58f078dff578aa174d44fc | |
| parent | 68f1804266b92f24efee1d1f4a6b507119f647f2 (diff) | |
Import linux-aarch64 PKGBUILD as baseline
| -rw-r--r-- | linux-mnt-pocket-reform/PKGBUILD | 236 |
1 files changed, 236 insertions, 0 deletions
diff --git a/linux-mnt-pocket-reform/PKGBUILD b/linux-mnt-pocket-reform/PKGBUILD new file mode 100644 index 0000000..374820d --- /dev/null +++ b/linux-mnt-pocket-reform/PKGBUILD @@ -0,0 +1,236 @@ +# AArch64 multi-platform +# Maintainer: Kevin Mihelich <kevin@archlinuxarm.org> + +buildarch=8 + +pkgbase=linux-aarch64 +_srcname=linux-6.2 +_kernelname=${pkgbase#linux} +_desc="AArch64 multi-platform" +pkgver=6.2.10 +pkgrel=1 +arch=('aarch64') +url="http://www.kernel.org/" +license=('GPL2') +makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc' 'git' 'uboot-tools' 'vboot-utils' 'dtc') +options=('!strip') +source=("http://www.kernel.org/pub/linux/kernel/v6.x/${_srcname}.tar.xz" + "http://www.kernel.org/pub/linux/kernel/v6.x/patch-${pkgver}.xz" + '0001-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch' + '0002-arm64-dts-rockchip-disable-pwm0-on-rk3399-firefly.patch' + 'config' + 'generate_chromebook_its.sh' + 'kernel.keyblock' + 'kernel_data_key.vbprivk' + 'linux.preset' + '60-linux.hook' + '90-linux.hook') +md5sums=('787862593d7bf354cf1a5c37e21fc147' + 'e0221ea0e6eeb147c29d2fd72e987ed5' + '7b08a199a97e3e2288e5c03d8e8ded2d' + 'c9d4e392555b77034e24e9f87c5ff0b3' + 'f1379ae267804a7820963dd0527f11a8' + '7c97cf141750ad810235b1ad06eb9f75' + '61c5ff73c136ed07a7aadbf58db3d96a' + '584777ae88bce2c5659960151b64c7d8' + '41cb5fef62715ead2dd109dbea8413d6' + '0a5f16bfec6ad982a2f6782724cca8ba' + '3dc88030a8f2f5a5f97266d99b149f77') + +prepare() { + cd $_srcname + + echo "Setting version..." + scripts/setlocalversion --save-scmversion + echo "-$pkgrel" > localversion.10-pkgrel + echo "${pkgbase#linux}" > localversion.20-pkgname + + # add upstream patch + git apply --whitespace=nowarn ../patch-${pkgver} + + # ALARM patches + git apply ../0001-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch + git apply ../0002-arm64-dts-rockchip-disable-pwm0-on-rk3399-firefly.patch + + cat "${srcdir}/config" > ./.config +} + +build() { + cd ${_srcname} + + # get kernel version + make prepare + make -s kernelrelease > version + + # build! + unset LDFLAGS + make ${MAKEFLAGS} Image Image.gz modules + # Generate device tree blobs with symbols to support applying device tree overlays in U-Boot + make ${MAKEFLAGS} DTC_FLAGS="-@" dtbs +} + +_package() { + pkgdesc="The Linux Kernel and modules - ${_desc}" + depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7') + optdepends=('wireless-regdb: to set the correct wireless channels of your country') + provides=("linux=${pkgver}" "WIREGUARD-MODULE") + conflicts=('linux') + backup=("etc/mkinitcpio.d/${pkgbase}.preset") + install=${pkgname}.install + + cd $_srcname + local kernver="$(<version)" + local modulesdir="$pkgdir/usr/lib/modules/$kernver" + + echo "Installing boot image and dtbs..." + install -Dm644 arch/arm64/boot/Image{,.gz} -t "${pkgdir}/boot" + make INSTALL_DTBS_PATH="${pkgdir}/boot/dtbs" dtbs_install + + echo "Installing modules..." + make INSTALL_MOD_PATH="$pkgdir/usr" INSTALL_MOD_STRIP=1 modules_install + + # remove build and source links + rm "$modulesdir"/{source,build} + + # sed expression for following substitutions + local _subst=" + s|%PKGBASE%|${pkgbase}|g + s|%KERNVER%|${kernver}|g + " + + # install mkinitcpio preset file + sed "${_subst}" ../linux.preset | + install -Dm644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset" + + # install pacman hooks + sed "${_subst}" ../60-linux.hook | + install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/60-${pkgbase}.hook" + sed "${_subst}" ../90-linux.hook | + install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/90-${pkgbase}.hook" +} + +_package-headers() { + pkgdesc="Header files and scripts for building modules for linux kernel - ${_desc}" + provides=("linux-headers=${pkgver}") + conflicts=('linux-headers') + + cd $_srcname + local builddir="$pkgdir/usr/lib/modules/$(<version)/build" + + echo "Installing build files..." + install -Dt "$builddir" -m644 .config Makefile Module.symvers System.map \ + localversion.* version vmlinux + install -Dt "$builddir/kernel" -m644 kernel/Makefile + install -Dt "$builddir/arch/arm64" -m644 arch/arm64/Makefile + cp -t "$builddir" -a scripts + + # add xfs and shmem for aufs building + mkdir -p "$builddir"/{fs/xfs,mm} + + echo "Installing headers..." + cp -t "$builddir" -a include + cp -t "$builddir/arch/arm64" -a arch/arm64/include + install -Dt "$builddir/arch/arm64/kernel" -m644 arch/arm64/kernel/asm-offsets.s + mkdir -p "$builddir/arch/arm" + cp -t "$builddir/arch/arm" -a arch/arm/include + + install -Dt "$builddir/drivers/md" -m644 drivers/md/*.h + install -Dt "$builddir/net/mac80211" -m644 net/mac80211/*.h + + # https://bugs.archlinux.org/task/13146 + install -Dt "$builddir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h + + # https://bugs.archlinux.org/task/20402 + install -Dt "$builddir/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h + install -Dt "$builddir/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h + install -Dt "$builddir/drivers/media/tuners" -m644 drivers/media/tuners/*.h + + # https://bugs.archlinux.org/task/71392 + install -Dt "$builddir/drivers/iio/common/hid-sensors" -m644 drivers/iio/common/hid-sensors/*.h + + echo "Installing KConfig files..." + find . -name 'Kconfig*' -exec install -Dm644 {} "$builddir/{}" \; + + echo "Removing unneeded architectures..." + local arch + for arch in "$builddir"/arch/*/; do + [[ $arch = */arm64/ || $arch == */arm/ ]] && continue + echo "Removing $(basename "$arch")" + rm -r "$arch" + done + + echo "Removing documentation..." + rm -r "$builddir/Documentation" + + echo "Removing broken symlinks..." + find -L "$builddir" -type l -printf 'Removing %P\n' -delete + + echo "Removing loose objects..." + find "$builddir" -type f -name '*.o' -printf 'Removing %P\n' -delete + + echo "Stripping build tools..." + local file + while read -rd '' file; do + case "$(file -bi "$file")" in + application/x-sharedlib\;*) # Libraries (.so) + strip -v $STRIP_SHARED "$file" ;; + application/x-archive\;*) # Libraries (.a) + strip -v $STRIP_STATIC "$file" ;; + application/x-executable\;*) # Binaries + strip -v $STRIP_BINARIES "$file" ;; + application/x-pie-executable\;*) # Relocatable binaries + strip -v $STRIP_SHARED "$file" ;; + esac + done < <(find "$builddir" -type f -perm -u+x ! -name vmlinux -print0) + + echo "Adding symlink..." + mkdir -p "$pkgdir/usr/src" + ln -sr "$builddir" "$pkgdir/usr/src/$pkgbase" +} + +_package-chromebook() { + pkgdesc="The Linux Kernel - ${_desc} - Chromebooks" + depends=('linux-aarch64') + conflicts=('linux-aarch64-rc-chromebook') + install=${pkgname}.install + + cd ${_srcname} + + mkdir -p "${pkgdir}/boot" + + image=arch/arm64/boot/Image + + chromeos_boards=( + 'elm' + 'gru' + 'kukui' + 'trogdor' + 'asurada' + ) + chromebook_dtbs=($(for b in ${chromeos_boards[@]}; do find arch/arm64/boot -name "*${b}*.dtb" | LC_COLLATE=C sort; done)) + + lz4 -20 -z -f -m ${image} + echo ${chromebook_dtbs[@]} | ../generate_chromebook_its.sh ${image}.lz4 arm64 lz4 > kernel.its + + mkimage -D "-I dts -O dtb -p 2048" -f kernel.its vmlinux.uimg + dd if=/dev/zero of=bootloader.bin bs=512 count=1 + echo "console=tty0 console=ttyS2,115200n8 earlyprintk=ttyS2,115200n8 console=ttyMSM0,115200n8 init=/sbin/init root=PARTUUID=%U/PARTNROFF=1 rootwait rw noinitrd" > cmdline + vbutil_kernel \ + --pack vmlinux.kpart \ + --version 1 \ + --vmlinuz vmlinux.uimg \ + --arch aarch64 \ + --keyblock ../kernel.keyblock \ + --signprivate ../kernel_data_key.vbprivk \ + --config cmdline \ + --bootloader bootloader.bin + + cp vmlinux.kpart "${pkgdir}/boot" +} + +pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-chromebook") +for _p in ${pkgname[@]}; do + eval "package_${_p}() { + _package${_p#${pkgbase}} + }" +done |
