_extramodules=extramodules-6.12-next _kver=$(cat /lib/modules/${_extramodules}/version) pkgname=nvidia-390xx-next pkgver=390.157 pkgrel=126 pkgdesc="NVIDIA drivers for linux-next, 390xx legacy version." arch=('x86_64') url="https://www.nvidia.com/page/home.html" depends=('linux-next>=6.12' 'linux-next<6.13.0' "nvidia-390xx-utils=${pkgver}") makedepends=('linux-next-headers') options=('!strip') conflicts=('nvidia-next' 'nvidia-470xx-next') install=nvidia-next.install license=('custom') _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32" source=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/${_pkg}.run" 'linux-6.2.patch' 'linux-6.3.patch' 'linux-6.4.patch' 'linux-6.5.patch' 'linux-6.6.patch' 'linux-6.8.patch' 'linux-6.10.patch' 'linux-6.12.patch' 'gcc14.patch') md5sums=('405c2220d5d3711e9f298c871e8d66ee' '334d82cdc82c8172e9c21188c872523e' 'd54c6a018acf6c147847d2d1511bed8a' 'cd698c9fdb8fe9a1b776b1dcdac5064c' '0ea696144a7199536089664225775b47' '542666e201625eb18cb26c830373ed2e' '23be586e1177bf0fb3aa8236ad42f008' '8da97da4a024e23c3b0e8f6bd2c09579' '96b666ed713940189dbdb99a69d63066' 'ef4f76758ebd4559d3c6c7e50797d0fd') build() { cd ${srcdir} sh ${_pkg}.run --extract-only cd ${_pkg}/kernel # patches from https://gist.github.com/joanbm?direction=desc&sort=updated patch -p1 -i ${srcdir}/linux-6.2.patch patch -p1 -i ${srcdir}/linux-6.3.patch patch -p1 -i ${srcdir}/linux-6.4.patch patch -p1 -i ${srcdir}/linux-6.5.patch patch -p1 -i ${srcdir}/linux-6.6.patch patch -p1 -i ${srcdir}/linux-6.8.patch patch -p1 -i ${srcdir}/linux-6.10.patch patch -p1 -i ${srcdir}/linux-6.12.patch patch -p1 -i ${srcdir}/gcc14.patch # linux 4.20 needed #sed -i -e 's|ipmi_user_t p_user;|struct ipmi_user *p_user;|g' kernel/nvidia/os-interface.c export IGNORE_CC_MISMATCH=yes cd ${srcdir}/${_pkg}/kernel make SYSSRC=/lib/modules/${_kver}/build module } package() { cd ${srcdir} install -D -m644 ${srcdir}/${_pkg}/kernel/nvidia.ko ${pkgdir}/lib/modules/${_extramodules}/nvidia.ko install -D -m644 ${srcdir}/${_pkg}/kernel/nvidia-modeset.ko ${pkgdir}/lib/modules/${_extramodules}/nvidia-modeset.ko install -D -m644 ${srcdir}/${_pkg}/kernel/nvidia-uvm.ko ${pkgdir}/lib/modules/${_extramodules}/nvidia-uvm.ko install -D -m644 ${srcdir}/${_pkg}/kernel/nvidia-drm.ko ${pkgdir}/lib/modules/${_extramodules}/nvidia-drm.ko # sign the module _file=/usr/src/linux-${_kver}/scripts/sign-file _pem=/$HOME/signing_key.pem _key=/$HOME/signing_key.x509 ${_file} sha256 ${_pem} ${_key} ${pkgdir}/lib/modules/${_extramodules}/nvidia.ko ${_file} sha256 ${_pem} ${_key} ${pkgdir}/lib/modules/${_extramodules}/nvidia-modeset.ko ${_file} sha256 ${_pem} ${_key} ${pkgdir}/lib/modules/${_extramodules}/nvidia-uvm.ko ${_file} sha256 ${_pem} ${_key} ${pkgdir}/lib/modules/${_extramodules}/nvidia-drm.ko gzip ${pkgdir}/lib/modules/${_extramodules}/*.ko install -d -m755 ${pkgdir}/etc/modprobe.d echo "blacklist nouveau" >> ${pkgdir}/etc/modprobe.d/nouveau_blacklist.conf sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" ${startdir}/nvidia-next.install }