diff options
Diffstat (limited to 'x11-drivers/nvidia-drivers')
-rw-r--r-- | x11-drivers/nvidia-drivers/Manifest | 2 | ||||
-rw-r--r-- | x11-drivers/nvidia-drivers/files/nouveau.conf | 3 | ||||
-rw-r--r-- | x11-drivers/nvidia-drivers/files/nvidia-drivers-455.45.01-dkms-kmalloc.patch (renamed from x11-drivers/nvidia-drivers/files/nvidia-drivers-440.82-conf.patch) | 20 | ||||
-rw-r--r-- | x11-drivers/nvidia-drivers/files/nvidia.conf | 23 | ||||
-rw-r--r-- | x11-drivers/nvidia-drivers/nvidia-drivers-455.45.01.ebuild (renamed from x11-drivers/nvidia-drivers/nvidia-drivers-440.82.ebuild) | 133 |
5 files changed, 104 insertions, 77 deletions
diff --git a/x11-drivers/nvidia-drivers/Manifest b/x11-drivers/nvidia-drivers/Manifest index 7ae853da..a5f2344d 100644 --- a/x11-drivers/nvidia-drivers/Manifest +++ b/x11-drivers/nvidia-drivers/Manifest @@ -1 +1 @@ -DIST NVIDIA-Linux-x86_64-440.82.run 142872609 BLAKE2B 3ebef17002a788f145b61fb8c921f120324eac036ff4c7b972913e30ed830339fc971fd352f5e59ee3bb1b4a7a159dcf3e35d2f33ee37357c3f177aa605307ea SHA512 d86ed2cd715c5a9aebdd11ee562cfa454dbafdb1b468004cbb93d37ee258623f11144cf30b8b14996a4e093cb3119edc36d13152893d735e3536f49c45e2cca3 +DIST NVIDIA-Linux-x86_64-455.45.01.run 183481072 BLAKE2B 5756c788cff136692f0d6de4b33d74ad698fcc75cf2fb6f0adc6381a0377bea18eae0f728151ac8b2efb5508c7420c2df3be3fd7d0035b4477e3e3c97e85ab5c SHA512 dd2743cd2304d7f3afc0c3761cf6c848561bcaabcbdc27157d091a89974aff81bcd28aa3e204d33d406abdbafd14e9162f3cbabc950309e06e6cad7b6fa8df69 diff --git a/x11-drivers/nvidia-drivers/files/nouveau.conf b/x11-drivers/nvidia-drivers/files/nouveau.conf new file mode 100644 index 00000000..00c6f588 --- /dev/null +++ b/x11-drivers/nvidia-drivers/files/nouveau.conf @@ -0,0 +1,3 @@ +blacklist nouveau +options nouveau modeset=0 +alias nouveau off diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-440.82-conf.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-455.45.01-dkms-kmalloc.patch index 048c3cb7..c3e9fbfb 100644 --- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-440.82-conf.patch +++ b/x11-drivers/nvidia-drivers/files/nvidia-drivers-455.45.01-dkms-kmalloc.patch @@ -1,11 +1,10 @@ -diff -Nur a/kernel/dkms.conf b/kernel/dkms.conf ---- a/kernel/dkms.conf 2019-05-09 19:10:50.000000000 +0100 -+++ b/kernel/dkms.conf 2019-06-22 16:04:07.646270011 +0100 +--- a/kernel/dkms.conf 2020-11-05 22:50:01.000000000 +0000 ++++ b/kernel/dkms.conf 2020-12-31 22:26:00.878993419 +0000 @@ -1,12 +1,20 @@ -PACKAGE_NAME="nvidia" -PACKAGE_VERSION="__VERSION_STRING" +PACKAGE_NAME="nvidia-drivers-dkms" -+PACKAGE_VERSION="440.64" ++PACKAGE_VERSION="455.45.01" AUTOINSTALL="yes" # By default, DKMS will add KERNELRELEASE to the make command line; however, @@ -26,3 +25,16 @@ diff -Nur a/kernel/dkms.conf b/kernel/dkms.conf +BUILT_MODULE_NAME[3]="nvidia-drm" +DEST_MODULE_LOCATION[3]="/extra/dkms" + +--- a/kernel/nvidia-modeset/nvidia-modeset-linux.c 2020-11-05 23:19:28.000000000 +0000 ++++ b/kernel/nvidia-modeset/nvidia-modeset-linux.c 2020-12-31 22:27:16.878028504 +0000 +@@ -282,8 +282,8 @@ + * are called while nvkms_lock is held. + *************************************************************************/ + +-/* Don't use kmalloc for allocations larger than 128k */ +-#define KMALLOC_LIMIT (128 * 1024) ++/* Don't use kmalloc for allocations larger than one page */ ++#define KMALLOC_LIMIT PAGE_SIZE + + void* NVKMS_API_CALL nvkms_alloc(size_t size, NvBool zero) + { diff --git a/x11-drivers/nvidia-drivers/files/nvidia.conf b/x11-drivers/nvidia-drivers/files/nvidia.conf index 00c6f588..17351377 100644 --- a/x11-drivers/nvidia-drivers/files/nvidia.conf +++ b/x11-drivers/nvidia-drivers/files/nvidia.conf @@ -1,3 +1,20 @@ -blacklist nouveau -options nouveau modeset=0 -alias nouveau off +# Nvidia drivers support +alias char-major-195 nvidia +alias /dev/nvidiactl char-major-195 + +# To tweak the driver the following options can be used, note that +# you should be careful, as it could cause instability!! For more +# options see /usr/share/doc/PACKAGE/README +# +# !!! SECURITY WARNING !!! +# DO NOT MODIFY OR REMOVE THE DEVICE FILE RELATED OPTIONS UNLESS YOU KNOW +# WHAT YOU ARE DOING. +# ONLY ADD TRUSTED USERS TO THE VIDEO GROUP, THESE USERS MAY BE ABLE TO CRASH, +# COMPROMISE, OR IRREPARABLY DAMAGE THE MACHINE. +options nvidia \ + NVreg_DeviceFileGID=VIDEOGID \ + NVreg_DeviceFileMode=432 \ + NVreg_DeviceFileUID=0 \ + NVreg_ModifyDeviceFiles=1 \ + NVreg_PreserveVideoMemoryAllocations=1 \ + NVreg_TemporaryFilePath=/tmp diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-440.82.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-455.45.01.ebuild index c68b6a2f..006b31cb 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-440.82.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-455.45.01.ebuild @@ -1,38 +1,38 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 -inherit eutils flag-o-matic multilib-minimal portability toolchain-funcs unpacker +inherit flag-o-matic multilib-minimal portability toolchain-funcs unpacker NV_URI="https://us.download.nvidia.com/XFree86/" AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}" -DESCRIPTION="NVIDIA Accelerated Graphics Driver" -HOMEPAGE="https://www.nvidia.com/ http://www.nvidia.com/Download/Find.aspx" SRC_URI="amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )" -LICENSE="GPL-2 NVIDIA-r2" -SLOT="0" -KEYWORDS="-* ~amd64" -RESTRICT="bindist mirror" EMULTILIB_PKG="true" +KEYWORDS="-* ~amd64" +LICENSE="GPL-2 NVIDIA-r2" +SLOT="0/455" -IUSE="acpi compat +dkms libglvnd multilib +tools wayland +X" +IUSE="acpi compat +dkms +libglvnd multilib +tools wayland +X" +REQUIRED_USE="tools? ( X )" COMMON=" + acct-group/video + >=sys-libs/glibc-2.6.1 + tools? ( ~x11-misc/nvidia-settings-${PV}:${SLOT} ) X? ( - !libglvnd? ( >=app-eselect/eselect-opengl-1.0.9 ) - libglvnd? ( - media-libs/libglvnd[${MULTILIB_USEDEP}] - !app-eselect/eselect-opengl - ) + >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}] app-misc/pax-utils - )" + libglvnd? ( media-libs/libglvnd[X,${MULTILIB_USEDEP}] ) + ) +" + DEPEND="${COMMON}" -PDEPEND=" - tools? ( ~x11-misc/nvidia-settings-${PV}:${SLOT} )" + RDEPEND=" ${COMMON} + >=virtual/opencl-3 !!x11-drivers/nvidia-drivers-legacy acpi? ( sys-power/acpid ) dkms? ( ~sys-kernel/${PN}-dkms-${PV}:${SLOT} ) @@ -41,21 +41,21 @@ RDEPEND=" <x11-base/xorg-server-1.20.99:= >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] - >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}] sys-libs/zlib[${MULTILIB_USEDEP}] ) + net-libs/libtirpc " QA_PREBUILT="opt/* usr/lib*" - +S=${WORKDIR}/ PATCHES=( - "${FILESDIR}"/"${P}"-conf.patch - "${FILESDIR}"/"${PN}"-440.26-locale.patch + "${FILESDIR}"/${P}-dkms-kmalloc.patch + "${FILESDIR}"/${PN}-440.26-locale.patch ) -S=${WORKDIR}/ - pkg_setup() { + + # try to turn off distcc and ccache for people that have a problem with it export DISTCC_DISABLE=1 export CCACHE_DISABLE=1 @@ -118,6 +118,11 @@ donvidia() { } src_install() { + # NVIDIA kernel aliases && blacklist nouveau + insinto /etc/modprobe.d + doins "${FILESDIR}"/nvidia.conf + doins "${FILESDIR}"/nouveau.conf + # NVIDIA kernel <-> userspace driver config lib donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER} @@ -140,14 +145,11 @@ src_install() { # Xorg nvidia.conf if has_version '>=x11-base/xorg-server-1.16'; then insinto /usr/share/X11/xorg.conf.d - newins "${FILESDIR}"/nvidia-drm-outputclass.conf 50-nvidia-drm-outputclass.conf + newins ${FILESDIR}/nvidia-drm-outputclass.conf 50-nvidia-drm-outputclass.conf fi insinto /usr/share/glvnd/egl_vendor.d doins ${NV_X11}/10_nvidia.json - - insinto /etc/vulkan/icd.d - doins ${NV_X11}/nvidia_icd.json fi if use wayland; then @@ -155,8 +157,11 @@ src_install() { doins ${NV_X11}/10_nvidia_wayland.json fi - insinto /lib/modprobe.d - doins "${FILESDIR}"/nvidia.conf + insinto /etc/vulkan/icd.d + doins nvidia_icd.json + + insinto /etc/vulkan/implicit_layer.d + doins nvidia_layers.json # OpenCL ICD for NVIDIA insinto /etc/OpenCL/vendors @@ -184,15 +189,15 @@ src_install() { doman nvidia-cuda-mps-control.1 doman nvidia-modprobe.1 doman nvidia-persistenced.1 - - #init newinitd "${FILESDIR}/nvidia-smi.init" nvidia-smi newconfd "${FILESDIR}/nvidia-persistenced.conf" nvidia-persistenced newinitd "${FILESDIR}/nvidia-persistenced.init" nvidia-persistenced + dobin ${NV_OBJ}/nvidia-bug-report.sh + if has_multilib_profile && use multilib; then local OABI=${ABI} - for ABI in $(get_install_abis); do + for ABI in $(multilib_get_enabled_abis); do src_install-libs done ABI=${OABI} @@ -202,6 +207,20 @@ src_install() { fi is_final_abi || die "failed to iterate through all ABIs" + + # Docs + newdoc "${NV_DOC}/README.txt" README + dodoc "${NV_DOC}/NVIDIA_Changelog" + doman "${NV_MAN}"/nvidia-smi.1 + use X && doman "${NV_MAN}"/nvidia-xconfig.1 + doman "${NV_MAN}"/nvidia-cuda-mps-control.1 + + readme.gentoo_create_doc + + dodoc supported-gpus.json + + docinto html + dodoc -r ${NV_DOC}/html/* } src_install-libs() { @@ -230,7 +249,6 @@ src_install-libs() { "libnvidia-compiler.so.${NV_SOVER}" "libnvidia-eglcore.so.${NV_SOVER}" "libnvidia-encode.so.${NV_SOVER}" - "libnvidia-fatbinaryloader.so.${NV_SOVER}" "libnvidia-fbc.so.${NV_SOVER}" "libnvidia-glcore.so.${NV_SOVER}" "libnvidia-glsi.so.${NV_SOVER}" @@ -242,30 +260,28 @@ src_install-libs() { "libnvidia-ml.so.${NV_SOVER}" "libnvidia-tls.so.${NV_SOVER}" ) - if ! use libglvnd; then - NV_GLX_LIBRARIES+=( - "libEGL.so.$( [[ ${ABI} == "amd64" ]] && usex compat ${NV_SOVER} 1.1.0 || echo 1.1.0) ${GL_ROOT}" - "libGL.so.1.7.0 ${GL_ROOT}" - "libGLESv1_CM.so.1.2.0 ${GL_ROOT}" - "libGLESv2.so.2.1.0 ${GL_ROOT}" - "libGLX.so.0 ${GL_ROOT}" - "libGLdispatch.so.0 ${GL_ROOT}" - "libOpenGL.so.0 ${GL_ROOT}" - ) + NV_GLX_LIBRARIES+=( + "libEGL.so.$( [[ ${ABI} == "amd64" ]] && usex compat ${NV_SOVER} 1.1.0 || echo 1.1.0) ${GL_ROOT}" + "libGL.so.1.7.0 ${GL_ROOT}" + "libGLESv1_CM.so.1.2.0 ${GL_ROOT}" + "libGLESv2.so.2.1.0 ${GL_ROOT}" + "libGLX.so.0 ${GL_ROOT}" + "libGLdispatch.so.0 ${GL_ROOT}" + "libOpenGL.so.0 ${GL_ROOT}" + ) fi - if use wayland && has_multilib_profile && [[ ${ABI} == "amd64" ]]; - then + if use wayland && [[ ${ABI} == "amd64" ]]; then NV_GLX_LIBRARIES+=( - "libnvidia-egl-wayland.so.1.1.4" + "libnvidia-egl-wayland.so.1.1.5" ) fi - if has_multilib_profile && [[ ${ABI} == "amd64" ]]; - then + if has_multilib_profile && [[ ${ABI} == "amd64" ]]; then NV_GLX_LIBRARIES+=( "libnvidia-cbl.so.${NV_SOVER}" + "libnvidia-ngx.so.${NV_SOVER}" "libnvidia-rtcore.so.${NV_SOVER}" "libnvoptix.so.${NV_SOVER}" ) @@ -294,33 +310,12 @@ pkg_preinst() { } pkg_postinst() { - if ! use libglvnd; then - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old nvidia - fi - if ! use X; then - elog "You have elected to not install the X.org driver. Along with" - elog "this the OpenGL libraries and VDPAU libraries were not" - elog "installed. Additionally, once the driver is loaded your card" - elog "and fan will run at max speed which may not be desirable." - elog "Use the 'nvidia-smi' init script to have your card and fan" - elog "speed scale appropriately." - elog - fi if [ $(stat -c %d:%i /) == $(stat -c %d:%i /proc/1/root/.) ]; then _dracut_initramfs_regen fi } -pkg_prerm() { - if ! use libglvnd; then - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11 - fi -} - pkg_postrm() { - if ! use libglvnd; then - use X && "${ROOT}"/usr/bin/eselect opengl set --use-old xorg-x11 - fi if [ $(stat -c %d:%i /) == $(stat -c %d:%i /proc/1/root/.) ]; then _dracut_initramfs_regen fi |