From 83907f392decb94561d63b48cefa4dcb461337dc Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Sat, 5 Oct 2013 10:53:06 +0200 Subject: Add nvidia-custom --- nvidia-custom/.gitignore | 1 + nvidia-custom/PKGBUILD | 48 +++++++++++++++++++++++++++++++++++ nvidia-custom/nvidia-linux-3.11.patch | 25 ++++++++++++++++++ nvidia-custom/nvidia.install | 18 +++++++++++++ 4 files changed, 92 insertions(+) create mode 100644 nvidia-custom/.gitignore create mode 100644 nvidia-custom/PKGBUILD create mode 100644 nvidia-custom/nvidia-linux-3.11.patch create mode 100644 nvidia-custom/nvidia.install (limited to 'nvidia-custom') diff --git a/nvidia-custom/.gitignore b/nvidia-custom/.gitignore new file mode 100644 index 0000000..9857323 --- /dev/null +++ b/nvidia-custom/.gitignore @@ -0,0 +1 @@ +*.run diff --git a/nvidia-custom/PKGBUILD b/nvidia-custom/PKGBUILD new file mode 100644 index 0000000..650fe63 --- /dev/null +++ b/nvidia-custom/PKGBUILD @@ -0,0 +1,48 @@ +# $Id: PKGBUILD 194514 2013-09-17 06:52:19Z tpowa $ +# Maintainer : Thomas Baechler + +pkgname=nvidia-custom +pkgver=325.15 +_extramodules=extramodules-3.11-custom +pkgrel=7 +pkgdesc="NVIDIA drivers for linux" +arch=('i686' 'x86_64') +url="http://www.nvidia.com/" +depends=('linux-custom>=3.11' 'linux-custom<3.12' "nvidia-libgl" "nvidia-utils=${pkgver}") +makedepends=('linux-custom-headers>=3.11' 'linux-custom-headers<3.12') +conflicts=('nvidia-96xx' 'nvidia-173xx') +license=('custom') +install=nvidia.install +options=(!strip) +source=('nvidia-linux-3.11.patch') +md5sums=('5c962760de069ed4ad34e64d5988686a') + +if [ "$CARCH" = "i686" ]; then + _arch='x86' + _pkg="NVIDIA-Linux-${_arch}-${pkgver}" + source+=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run") + md5sums+=('528fc538584de6446384b9cec3099d6c') +elif [ "$CARCH" = "x86_64" ]; then + _arch='x86_64' + _pkg="NVIDIA-Linux-${_arch}-${pkgver}-no-compat32" + source+=("ftp://download.nvidia.com/XFree86/Linux-${_arch}/${pkgver}/${_pkg}.run") + md5sums+=('63b2caa0cb128efa1a7808d7bddb2074') +fi + +build() { + _kernver="$(cat /usr/lib/modules/${_extramodules}/version)" + cd "${srcdir}" + sh "${_pkg}.run" --extract-only + cd "${_pkg}/kernel" + patch -Np2 -i ${srcdir}/nvidia-linux-3.11.patch + make SYSSRC=/usr/lib/modules/"${_kernver}/build" module +} + +package() { + install -D -m644 "${srcdir}/${_pkg}/kernel/nvidia.ko" \ + "${pkgdir}/usr/lib/modules/${_extramodules}/nvidia.ko" + install -d -m755 "${pkgdir}/usr/lib/modprobe.d" + echo "blacklist nouveau" >> "${pkgdir}/usr/lib/modprobe.d/nvidia-custom.conf" + sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" "${startdir}/nvidia.install" + gzip "${pkgdir}/usr/lib/modules/${_extramodules}/nvidia.ko" +} diff --git a/nvidia-custom/nvidia-linux-3.11.patch b/nvidia-custom/nvidia-linux-3.11.patch new file mode 100644 index 0000000..bb6fad9 --- /dev/null +++ b/nvidia-custom/nvidia-linux-3.11.patch @@ -0,0 +1,25 @@ +From 8a8647ad942c8ac5161e1335f7f3e9dbb34dbf9e Mon Sep 17 00:00:00 2001 +From: Lukas Elsner +Date: Wed, 17 Jul 2013 01:16:04 +0200 +Subject: [PATCH] replace num_physpages with totalram_pages + +--- + kernel/nv-linux.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/kernel/nv-linux.h b/kernel/nv-linux.h +index 4e5ed89..46c51ec 100644 +--- a/kernel/nv-linux.h ++++ b/kernel/nv-linux.h +@@ -957,7 +957,7 @@ static inline int nv_execute_on_all_cpus(void (*func)(void *info), void *info) + #endif + + #if !defined(NV_VMWARE) +-#define NV_NUM_PHYSPAGES num_physpages ++#define NV_NUM_PHYSPAGES totalram_pages + #define NV_GET_CURRENT_PROCESS() current->tgid + #define NV_IN_ATOMIC() in_atomic() + #define NV_LOCAL_BH_DISABLE() local_bh_disable() +-- +1.8.3.2 + diff --git a/nvidia-custom/nvidia.install b/nvidia-custom/nvidia.install new file mode 100644 index 0000000..28ea071 --- /dev/null +++ b/nvidia-custom/nvidia.install @@ -0,0 +1,18 @@ +post_install() { + EXTRAMODULES='extramodules-3.11-custom' + depmod $(cat /usr/lib/modules/$EXTRAMODULES/version) + echo 'In order to use nvidia module, reboot the system.' +} + +post_upgrade() { + EXTRAMODULES='extramodules-3.11-custom' + depmod $(cat /usr/lib/modules/$EXTRAMODULES/version) + if [ "$(vercmp $2 310.19-2)" -lt 0 ]; then + echo 'If your card is from the 7xxx series or earlier, install nvidia-304xx' + fi +} + +post_remove() { + EXTRAMODULES='extramodules-3.11-custom' + depmod $(cat /usr/lib/modules/$EXTRAMODULES/version) +} -- cgit v1.2.3-54-g00ecf