- PKGBUILD
# Maintainer: Bernhard Landauer <bernhard@manjaro.org>
# Maintainer: Philip Müller <philm[at]manjaro[dot]org>
# Archlinux maintainers:
# Tobias Powalowski <tpowa@archlinux.org>
# Thomas Baechler <thomas@archlinux.org>
_basekernel=6.3
_basever=${_basekernel//.}
_kernelname=-MANJARO
pkgbase=linux${_basever}
pkgname=("$pkgbase" "$pkgbase-headers")
pkgver=6.3.13
pkgrel=2
arch=('x86_64' 'aarch64')
url="https://www.kernel.org/"
license=('GPL2')
makedepends=(bc docbook-xsl libelf "pahole>=1:1.25-1" python-sphinx git inetutils kmod xmlto cpio perl tar xz)
options=('!strip')
install="$pkgbase.install"
source=("https://git.kernel.org/torvalds/t/linux-${_basekernel}.tar.gz"
"https://www.kernel.org/pub/linux/kernel/v6.x/patch-${pkgver}.xz"
'config'
# ARCH Patches
'0101-ZEN_Add_sysctl_and_CONFIG_to_disallow_unprivileged_CLONE_NEWUSER.patch'
# Upstream
# MANJARO Patches
'Revert-drm-amd-display-edp-do-not-add-non-edid-timings.patch'
'mt7921e_Perform_FLR_to_recovery_the_device.patch'
'rog_ally_sound.patch'
'hid-asus-rog-ally.patch'
'rog-ally-bluetooth.patch'
# Wi-Fi patches and backports for ROG ALLY
'0001-wifi-mt76-mt7921-introduce-mt7921_get_mac80211_ops-u.patch'
'0002-wifi-mt76-move-irq_tasklet-in-mt76_dev-struct.patch'
'0003-wifi-mt76-add-mt76_connac_irq_enable-utility-routine.patch'
'0004-wifi-mt76-get-rid-of-unused-sta_ps-callbacks.patch'
'0005-wifi-mt76-add-mt76_connac_gen_ppe_thresh-utility-rou.patch'
'0006-wifi-mt76-mt7921-get-rid-of-eeprom.h.patch'
'0007-wifi-mt76-move-shared-mac-definitions-in-mt76_connac.patch'
'0008-wifi-mt76-Replace-zero-length-array-with-flexible-ar.patch'
'0009-wifi-mt76-mt7921-Replace-fake-flex-arrays-with-flexi.patch'
'0010-wifi-mt76-mt7921-enable-p2p-support.patch'
'0011-wifi-mt76-mt7921e-fix-init-command-fail-with-enabled-device.patch'
# Bootsplash
'0301-revert-fbcon-remove-now-unusued-softback_lines-cursor-argument.patch'
'0302-revert-fbcon-remove-no-op-fbcon_set_origin.patch'
'0303-revert-fbcon-remove-soft-scrollback-code.patch'
'0401-bootsplash.patch'
'0402-bootsplash.patch'
'0403-bootsplash.patch'
'0404-bootsplash.patch'
'0405-bootsplash.patch'
'0406-bootsplash.patch'
'0407-bootsplash.patch'
'0408-bootsplash.patch'
'0409-bootsplash.patch'
'0410-bootsplash.patch'
'0411-bootsplash.patch'
'0412-bootsplash.patch'
'0413-bootsplash.gitpatch'
)
sha256sums=('c512b13a5fbbf6cf7c0bd3eb44a3d54660623feddbbbf1e754626fdc3b944e71'
'd9e38c2a933805b0bf5be6f242c9b0d2e3efd01f8f103accb462f0ceecce9f8c'
'0d56edc61dc3bcbad08b0b2c8c7e1de4ec9419ac2d47b10e83c8cf7de3a735a2'
'05f04019d4a2ee072238c32860fa80d673687d84d78ef436ae9332b6fb788467'
'd17937d69876020c91a43a743cf6de550cffbf1978d40e4fb40bf54a96706719'
'd673d034fbcd80426fd8d9c6af56537c5fe5b55fe49d74e313474d7fc285ecc1'
'2b64a6f677e3b1278f7ae0080b3e58383e097c28e63672a800272ff66d435976'
'a38b50b8c73332d3d16950bf8adcae7ead34391a60f74d05a58935cd3dc8a12d'
'b6806954a43ca362d80ea9ff4253a185eefb6afee5803749c7c1598bbcd86f6d'
'057fd4d452cab2674fa38835d5082b3645d8b40e907088d287bea267e7aceae9'
'0086aea357218373b0f885aa09cb19fa257b2a1c35b3922d70fff6c1ad179122'
'4e0d93bae8037373637fb001859eb594757a9c1cb36b6e770787eb4f2bead31b'
'6e1029d3a119afb942a054b00109f66d35f70785f38fd1cc3ce433cec3cf57a3'
'1f390378c476f5c16bb4146ab1a83cc83f9a61d1c0a0cc3707be0a430a234192'
'cba33234f7040c0f675fa80af51d8f1e922437bcd4413a3e02550a53e254c561'
'ba8ee76384b31e1c61e74969b210d90e82b542c074219d477c6f8ee9c242bffb'
'203cf76d34cc7766dcab62fa335fdfef56dbbffffaa30117989673b7cd13fc5d'
'4b944fc1c78188c39632cf82ee59b0770cfe4b4473cd9fde0942df9d6243a1c8'
'f11b8b69e5c93b70ffac510769e103e8415b891b4bfb3ea079a6e0260f33778c'
'91c32cf6ad1afbbe5ad1051f1d5c371800fe5feb7693d3e05356313d03725003'
'2b11905b63b05b25807dd64757c779da74dd4c37e36d3f7a46485b1ee5a9d326'
'94a8538251ad148f1025cc3de446ce64f73dc32b01815426fb159c722e8fa5bc'
'50f4ccc4aeb0ffb8ec648b90a84ff188dbfed5364075cf0c6045c5696caf6ca9'
'e95c4f988cb9337f6c1e3d8affbfe170bea18843f839a3334a38e0ec44ed9000'
'a26b3abaec1cd5731bc8431fecb8b3eb0ba47c1992e614643320df14ff859556'
'8c1c880f2caa9c7ae43281a35410203887ea8eae750fe8d360d0c8bf80fcc6e0'
'1144d51e5eb980fceeec16004f3645ed04a60fac9e0c7cf88a15c5c1e7a4b89e'
'dd4b69def2efacf4a6c442202ad5cb93d492c03886d7c61de87696e5a83e2846'
'028b07f0c954f70ca37237b62e04103e81f7c658bb8bd65d7d3c2ace301297dc'
'a0c548c5703d25ae34b57931f1162de8b18937e676e5791a0f039922090881e7'
'8dbb5ab3cb99e48d97d4e2f2e3df5d0de66f3721b4f7fd94a708089f53245c77'
'a7aefeacf22c600fafd9e040a985a913643095db7272c296b77a0a651c6a140a'
'cf06d959a53eff6d3c287327f1cb2a68346d725cfd1370bc7482a0edc75692fc'
'27471eee564ca3149dd271b0817719b5565a9594dc4d884fe3dc51a5f03832bc'
'b6e695edbe349505a89c98054a54443acd90830a312cd035393c5c0a624e45c0'
'035ea4b2a7621054f4560471f45336b981538a40172d8f17285910d4e0e0b3ef')
prepare() {
cd "linux-${_basekernel}"
# add upstream patch
msg "add upstream patch"
patch -p1 -i "../patch-${pkgver}"
local src
for src in "${source[@]}"; do
src="${src%%::*}"
src="${src##*/}"
[[ $src = *.patch ]] || continue
msg2 "Applying patch: $src..."
patch -Np1 < "../$src"
done
msg2 "add config"
cat "../config" > ./.config
if [ "${_kernelname}" != "" ]; then
sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
sed -i "s|CONFIG_LOCALVERSION_AUTO=.*|CONFIG_LOCALVERSION_AUTO=n|" ./.config
fi
msg "set extraversion to pkgrel"
sed -ri "s|^(EXTRAVERSION =).*|\1 -${pkgrel}|" Makefile
msg "don't run depmod on 'make install'"
# We'll do this ourselves in packaging
sed -i '2iexit 0' scripts/depmod.sh
msg "get kernel version"
make prepare
msg "rewrite configuration"
yes "" | make config >/dev/null
}
build() {
cd "linux-${_basekernel}"
msg "build"
make ${MAKEFLAGS} LOCALVERSION= bzImage modules
}
package_linux63() {
pkgdesc="The ${pkgbase/linux/Linux} kernel and modules"
depends=('coreutils' 'linux-firmware' 'kmod' 'initramfs')
optdepends=('wireless-regdb: to set the correct wireless channels of your country')
provides=("linux=${pkgver}" VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE KSMBD-MODULE)
cd "linux-${_basekernel}"
# get kernel version
_kernver="$(make LOCALVERSION= kernelrelease)"
mkdir -p "${pkgdir}"/{boot,usr/lib/modules}
make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}/usr" INSTALL_MOD_STRIP=1 modules_install
# systemd expects to find the kernel here to allow hibernation
# https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344
cp arch/x86/boot/bzImage "${pkgdir}/usr/lib/modules/${_kernver}/vmlinuz"
# Used by mkinitcpio to name the kernel
echo "${pkgbase}" | install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modules/${_kernver}/pkgbase"
echo "${_basekernel}-${CARCH}" | install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modules/${_kernver}/kernelbase"
# add kernel version
echo "${pkgver}-${pkgrel}-MANJARO x64" > "${pkgdir}/boot/${pkgbase}-${CARCH}.kver"
# make room for external modules
local _extramodules="extramodules-${_basekernel}${_kernelname:--MANJARO}"
ln -s "../${_extramodules}" "${pkgdir}/usr/lib/modules/${_kernver}/extramodules"
# add real version for building modules and running depmod from hook
echo "${_kernver}" |
install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modules/${_extramodules}/version"
# remove build and source links
rm "${pkgdir}"/usr/lib/modules/${_kernver}/{source,build}
# now we call depmod...
depmod -b "${pkgdir}/usr" -F System.map "${_kernver}"
}
package_linux63-headers() {
pkgdesc="Header files and scripts for building modules for ${pkgbase/linux/Linux} kernel"
depends=('gawk' 'python' 'libelf' 'pahole')
provides=("linux-headers=$pkgver")
cd "linux-${_basekernel}"
local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build"
install -Dt "${_builddir}" -m644 Makefile .config Module.symvers
install -Dt "${_builddir}/kernel" -m644 kernel/Makefile
install -Dt "${_builddir}" -m644 vmlinux
mkdir "${_builddir}/.tmp_versions"
cp -t "${_builddir}" -a include scripts
install -Dt "${_builddir}/arch/x86" -m644 "arch/x86/Makefile"
install -Dt "${_builddir}/arch/x86/kernel" -m644 "arch/x86/kernel/asm-offsets.s"
cp -t "${_builddir}/arch/x86" -a "arch/x86/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
# add xfs and shmem for aufs building
mkdir -p "${_builddir}"/{fs/xfs,mm}
# copy in Kconfig files
find . -name Kconfig\* -exec install -Dm644 {} "${_builddir}/{}" \;
# add objtool for external module building and enabled VALIDATION_STACK option
install -Dt "${_builddir}/tools/objtool" tools/objtool/objtool
# https://forum.manjaro.org/t/90629/39
install -Dt "${_builddir}/tools/bpf/resolve_btfids" tools/bpf/resolve_btfids/resolve_btfids
# remove unneeded architectures
local _arch
for _arch in "${_builddir}"/arch/*/; do
[[ ${_arch} == */x86/ ]] && continue
rm -r "${_arch}"
done
# remove documentation files
rm -r "${_builddir}/Documentation"
# strip scripts directory
local file
while read -rd '' file; do
case "$(file -bi "$file")" in
application/x-sharedlib\;*) # Libraries (.so)
strip $STRIP_SHARED "$file" ;;
application/x-archive\;*) # Libraries (.a)
strip $STRIP_STATIC "$file" ;;
application/x-executable\;*) # Binaries
strip $STRIP_BINARIES "$file" ;;
application/x-pie-executable\;*) # Relocatable binaries
strip $STRIP_SHARED "$file" ;;
esac
done < <(find "${_builddir}" -type f -perm -u+x ! -name vmlinux -print0 2>/dev/null)
strip $STRIP_STATIC "${_builddir}/vmlinux"
# remove unwanted files
find ${_builddir} -name '*.orig' -delete
}
$ makepkg --build ... .config:749:warning: symbol value 'm' invalid for KVM *
- Restart config...
- Platform selection
.config:749:warning: symbol value 'm' invalid for KVM *
- Restart config...
- Platform selection
Actions Semi Platforms (ARCH_ACTIONS) [N/y/?] (NEW)
For a odroid-hc4 platform `Actions Semi Platforms (ARCH_ACTIONS) [N/y/?] (NEW)` what answer should be?