summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD157
1 files changed, 41 insertions, 116 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 16dc23f17636..7732bcc63e59 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,28 +2,29 @@
pkgbase=linux-amd-raven
_srcname=linux
-gitver=v5.2.21
-pkgver=5.2.v.21
+gitver=v6.8.8
+patchver=20240221.2
+patchname=more-uarches-for-kernel-6.8-rc4+.patch
+pkgver=6.8.v.8
pkgrel=1
arch=('x86_64')
url="https://www.kernel.org/"
license=('GPL2')
-makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc' 'git' 'libelf')
+makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc' 'git' 'libelf' 'lzop' 'gcc>=9.1')
options=('!strip')
-#https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/log/?h=linux-4.19.y
-
-#source=('git+https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux'
-source=('git+https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git'
+source=("git+https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git#tag=$gitver"
# the main kernel config files
'config.x86_64'
- # standard config files for mkinitcpio ramdisk
- "${pkgbase}.preset")
+ # linux package install directives for pacman
+ "https://raw.githubusercontent.com/graysky2/kernel_compiler_patch/$patchver/$patchname"
+)
sha256sums=('SKIP'
- #config.x86_64
- '32e4ffeebcf10e2a12e2c0375453244e32a4383cfca5de52246aa9ee0bfb8d31'
- #.preset file
- '0ac0cf410b0f3eeaa07d41505613e118ea59e01144e905f2dc0a808379f87e87')
+ #config.x86_64
+ 'ad4310f0da80a446f4ca3e664b21ca70c337b58f055a72309e4ddda17f62f196'
+ #grayskypatch file
+ 'd69232afd0dd6982ae941cf2d1f577f4be2011e3bb847d1db37952acf416b5d3'
+)
_kernelname=${pkgbase#linux}
@@ -33,8 +34,6 @@ pkgver() {
prepare() {
cd "${_srcname}"
- #We want to base this on the release
- git checkout tags/$gitver
if [ "${CARCH}" = "x86_64" ]; then
cat "${srcdir}/config.x86_64" > ./.config
else
@@ -42,13 +41,20 @@ prepare() {
exit 2
fi
- # don't run depmod on 'make install'. We'll do this ourselves in packaging
- sed -i '2iexit 0' scripts/depmod.sh
+ # Implement all packaged patches and reverts. Ignore errors.
+ msg2 "Implementing custom kernel patches/reverts"
+ while read patch; do
+ echo "Applying $patch"
+ git apply $patch || echo "ERROR: something went wrong with $patch. Advancing anyway."
+ done <<< $(ls ../*.patch)
# get kernel version
+ msg2 "Preparing kernel"
yes "" | make prepare
# load configuration
+ msg2 "Preparing config"
+
# Configure the kernel. Replace the line below with one of your choice.
#make menuconfig # CLI menu for configuration
#make nconfig # new CLI menu for configuration
@@ -61,19 +67,14 @@ prepare() {
build() {
cd "${_srcname}"
- #Force zenv1 architecture optimisation.
- export CFLAGS="-march=znver1 -mtune=znver1 -O2 -pipe -fstack-protector-strong"
- export CXXFLAGS="${CFLAGS}"
- make ${MAKEFLAGS} LOCALVERSION= bzImage modules
+ #Force zenv1 architecture optimisation and other optimisations.
+ make ${MAKEFLAGS} LOCALVERSION= bzImage modules KCFLAGS="-O2 -pipe -march=znver1 -mtune=znver1 -fstack-protector-strong"
}
_package() {
pkgdesc="Linux kernel with working amdgpu for Raven Ridge hardware"
- depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7')
+ depends=('coreutils' 'linux-firmware' 'kmod' 'lzop')
optdepends=('crda: to set the correct wireless channels of your country')
- provides=('linux')
- backup=("etc/mkinitcpio.d/${pkgbase}.preset")
- install=linux.install
cd "${_srcname}"
@@ -86,37 +87,11 @@ _package() {
mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install
- cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}"
-
- # set correct depmod command for install
- cp -f "${startdir}/${install}" "${startdir}/${install}.pkg"
- true && install=${install}.pkg
- sed \
- -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/" \
- -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/" \
- -i "${startdir}/${install}"
-
- # install mkinitcpio preset file for kernel
- install -D -m644 "${srcdir}/${pkgbase}.preset" "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
- sed \
- -e "1s|'linux.*'|'${pkgbase}'|" \
- -e "s|ALL_kver=.*|ALL_kver=\"/boot/vmlinuz-${pkgbase}\"|" \
- -e "s|default_image=.*|default_image=\"/boot/initramfs-${pkgbase}.img\"|" \
- -e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-${pkgbase}-fallback.img\"|" \
- -i "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
-
- # remove build and source links
- rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
+
+ # remove build link
+ rm -f "${pkgdir}"/lib/modules/${_kernver}/build
# remove the firmware
rm -rf "${pkgdir}/lib/firmware"
- # make room for external modules
- ln -s "../extramodules-${_basekernel}${_kernelname:--ARCH}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
- # add real version for building modules and running depmod from post_install/upgrade
- mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}"
- echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}/version"
-
- # Now we call depmod...
- depmod -b "${pkgdir}" -F System.map "${_kernver}"
# move module tree /lib -> /usr/lib
mkdir -p "${pkgdir}/usr"
@@ -125,13 +100,16 @@ _package() {
# add vmlinux
install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux"
+ # add vmlinuz in /usr/lib/modules/ and info for correct hook triggers
+ cp arch/$KARCH/boot/bzImage "${pkgdir}/usr/lib/modules/${_kernver}/vmlinuz"
+ echo ${pkgbase} > "${pkgdir}/usr/lib/modules/${_kernver}/pkgbase"
+
# add System.map
install -D -m644 System.map "${pkgdir}/boot/System.map-${_kernver}"
}
_package-headers() {
pkgdesc="Header files and scripts for building modules for Linux kerel with working amdgpu for Raven Ridge hardware"
- provides=('linux-headers')
install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"
@@ -145,8 +123,7 @@ _package-headers() {
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include"
- for i in acpi asm-generic config crypto drm generated keys linux math-emu \
- media net pcmcia scsi sound trace uapi video xen; do
+ for i in $(ls include/); do
cp -a include/${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/include/"
done
@@ -158,18 +135,12 @@ _package-headers() {
cp Module.symvers "${pkgdir}/usr/lib/modules/${_kernver}/build"
cp -a scripts "${pkgdir}/usr/lib/modules/${_kernver}/build"
- # fix permissions on scripts dir
- chmod og-w -R "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts"
+ # Make tmpdir for versions
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/.tmp_versions"
+ # add kernel files to headers
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel"
-
cp arch/${KARCH}/Makefile "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
-
- if [ "${CARCH}" = "i686" ]; then
- cp arch/${KARCH}/Makefile_32.cpu "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
- fi
-
cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/"
# add dm headers
@@ -184,44 +155,17 @@ _package-headers() {
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
cp net/mac80211/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
- # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
- # in reference to:
- # http://bugs.archlinux.org/task/13146
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
- cp drivers/media/dvb-frontends/lgdt330x.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
- cp drivers/media/i2c/msp3400-driver.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
-
- # add dvb headers
- # in reference to:
- # http://bugs.archlinux.org/task/20402
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb"
- cp drivers/media/usb/dvb-usb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb/"
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends"
- cp drivers/media/dvb-frontends/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners"
- cp drivers/media/tuners/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners/"
-
- # add xfs and shmem for aufs building
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs"
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/mm"
- # removed in 3.17 series
- # cp fs/xfs/xfs_sb.h "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs/xfs_sb.h"
-
# copy in Kconfig files
for i in $(find . -name "Kconfig*"); do
mkdir -p "${pkgdir}"/usr/lib/modules/${_kernver}/build/`echo ${i} | sed 's|/Kconfig.*||'`
cp ${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/${i}"
done
- # Fix file conflict with -doc package
- rm "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/kbuild"/Kconfig.*-*
-
# Add objtool for CONFIG_STACK_VALIDATION
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/tools"
cp -a tools/objtool "${pkgdir}/usr/lib/modules/${_kernver}/build/tools"
- chown -R root.root "${pkgdir}/usr/lib/modules/${_kernver}/build"
+ chown -R root:root "${pkgdir}/usr/lib/modules/${_kernver}/build"
find "${pkgdir}/usr/lib/modules/${_kernver}/build" -type d -exec chmod 755 {} \;
# strip scripts directory
@@ -237,31 +181,12 @@ _package-headers() {
done
# remove unneeded architectures
- rm -rf "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch/{alpha,arc,arm,arm26,arm64,avr32,blackfin,c6x,cris,frv,h8300,hexagon,ia64,m32r,m68k,m68knommu,metag,mips,microblaze,mn10300,openrisc,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,unicore32,um,v850,xtensa}
-
- #Fix build modules for dkms -- Seems to be fixed in this version!
- #cp "arch/x86/kernel/macros.s" "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86/kernel/."
- #mkdir -p ${pkgdir}/usr/src/
- #ln -s "../lib/modules/${_kernver}/build/" "${pkgdir}/usr/src/${_kernver}"
-}
-
-_package-docs() {
- pkgdesc="Kernel hackers manual - HTML documentation that comes with the Linux kernel"
- provides=('linux-docs')
-
- cd "${_srcname}"
-
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build"
- cp -al Documentation "${pkgdir}/usr/lib/modules/${_kernver}/build"
- find "${pkgdir}" -type f -exec chmod 444 {} \;
- find "${pkgdir}" -type d -exec chmod 755 {} \;
-
- # remove a file already in linux package
- rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
-
+ while read modarch; do
+ rm -rf $modarch
+ done <<< $(find "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch/ -maxdepth 1 -mindepth 1 -type d | grep -v /x86$)
}
-pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs")
+pkgname=("${pkgbase}" "${pkgbase}-headers")
for _p in ${pkgname[@]}; do
eval "package_${_p}() {
$(declare -f "_package${_p#${pkgbase}}")