diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 157 |
1 files changed, 41 insertions, 116 deletions
@@ -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}}") |