diff options
Diffstat (limited to 'package/nvidia-driver')
-rw-r--r-- | package/nvidia-driver/0001-use-LDFLAGS.patch | 48 | ||||
-rw-r--r-- | package/nvidia-driver/Config.in | 93 | ||||
-rw-r--r-- | package/nvidia-driver/egl.pc | 10 | ||||
-rw-r--r-- | package/nvidia-driver/gl.pc | 11 | ||||
-rw-r--r-- | package/nvidia-driver/nvidia-driver.hash | 4 | ||||
-rw-r--r-- | package/nvidia-driver/nvidia-driver.mk | 198 |
6 files changed, 0 insertions, 364 deletions
diff --git a/package/nvidia-driver/0001-use-LDFLAGS.patch b/package/nvidia-driver/0001-use-LDFLAGS.patch deleted file mode 100644 index 7b7df80988..0000000000 --- a/package/nvidia-driver/0001-use-LDFLAGS.patch +++ /dev/null @@ -1,48 +0,0 @@ -kernel: use LDFLAGS when linking modules - -Currently, linking module objects is simply using $(LD), assuming that -the default emulation is correct for the current architecture. - -However, that might not be the case when the toolchain default is not -the same as the current arch. For example, if the toolchain defaults to -i386 and is capable of x86_64, and we're targetting x86_64 (or the -opposite), the link would fail because the ld emulation is incorrect: - - .../i686-pc-linux-gnu-ld: Relocatable linking with relocations from - format elf64-x86-64 (.../nvidia-driver-370.23/kernel/nvidia/nv-frontend.o) - to format elf32-i386 (.../nvidia-driver-370.23/kernel/nvidia/nv-interface.o) - is not supported - -Add use of $(LDFLAGS) when doing the link, as the kernel provides the -proper emulation in those. - -Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> - ---- -Issue reported upstream: - https://devtalk.nvidia.com/default/topic/958653/ - -diff -durN nvidia-driver-370.23.orig/kernel/nvidia/nvidia.Kbuild nvidia-driver-370.23/kernel/nvidia/nvidia.Kbuild ---- nvidia-driver-370.23.orig/kernel/nvidia/nvidia.Kbuild 2016-08-09 01:57:50.000000000 +0200 -+++ nvidia-driver-370.23/kernel/nvidia/nvidia.Kbuild 2016-08-20 12:25:02.780233423 +0200 -@@ -87,7 +87,7 @@ - always += $(NVIDIA_INTERFACE) - - $(obj)/$(NVIDIA_INTERFACE): $(addprefix $(obj)/,$(NVIDIA_OBJECTS)) -- $(LD) -r -o $@ $^ -+ $(LD) $(LDFLAGS) -r -o $@ $^ - - - # -diff -durN nvidia-driver-370.23.orig/kernel/nvidia-modeset/nvidia-modeset.Kbuild nvidia-driver-370.23/kernel/nvidia-modeset/nvidia-modeset.Kbuild ---- nvidia-driver-370.23.orig/kernel/nvidia-modeset/nvidia-modeset.Kbuild 2016-08-09 01:43:19.000000000 +0200 -+++ nvidia-driver-370.23/kernel/nvidia-modeset/nvidia-modeset.Kbuild 2016-08-20 12:25:39.596772662 +0200 -@@ -70,7 +70,7 @@ - always += $(NVIDIA_MODESET_INTERFACE) - - $(obj)/$(NVIDIA_MODESET_INTERFACE): $(addprefix $(obj)/,$(NVIDIA_MODESET_OBJECTS)) -- $(LD) -r -o $@ $^ -+ $(LD) $(LDFLAGS) -r -o $@ $^ - - # - # Register the conftests needed by nvidia-modeset.ko diff --git a/package/nvidia-driver/Config.in b/package/nvidia-driver/Config.in deleted file mode 100644 index 9631b3e70c..0000000000 --- a/package/nvidia-driver/Config.in +++ /dev/null @@ -1,93 +0,0 @@ -comment "nvidia-driver needs a glibc toolchain" - depends on BR2_i386 || BR2_x86_64 - depends on !BR2_TOOLCHAIN_USES_GLIBC - -config BR2_PACKAGE_NVIDIA_DRIVER - bool "nvidia-driver" - depends on BR2_i386 || BR2_x86_64 - depends on BR2_TOOLCHAIN_USES_GLIBC - help - The binary-only driver blob for NVidia cards. - This is the userland part only. - - http://www.nvidia.com/ - -if BR2_PACKAGE_NVIDIA_DRIVER - -comment "nvidia-driver X.org drivers needs a modular Xorg server" - depends on !BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR - -config BR2_PACKAGE_NVIDIA_DRIVER_XORG - bool "X.org drivers" - default y - depends on BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR - select BR2_PACKAGE_MESA3D_HEADERS - select BR2_PACKAGE_XLIB_LIBX11 - select BR2_PACKAGE_XLIB_LIBXEXT - select BR2_PACKAGE_HAS_LIBGL - select BR2_PACKAGE_HAS_LIBEGL - select BR2_PACKAGE_HAS_LIBEGL_WAYLAND - select BR2_PACKAGE_HAS_LIBGLES - -if BR2_PACKAGE_NVIDIA_DRIVER_XORG - -config BR2_PACKAGE_PROVIDES_LIBGL - default "nvidia-driver" - -config BR2_PACKAGE_PROVIDES_LIBEGL - default "nvidia-driver" - -config BR2_PACKAGE_PROVIDES_LIBGLES - default "nvidia-driver" - -config BR2_PACKAGE_NVIDIA_DRIVER_PRIVATE_LIBS - bool "Install private libraries" - help - Two libraries require special agreement with NVidia to - develop code linking to those libraries: libnvidia-ifr.so - and libnvidia-fbc.so (to grab and encode an OpenGL buffer or - an X framebuffer.) - - Say 'y' here if you plan on running a program that uses - those private libraries. - -endif # BR2_PACKAGE_NVIDIA_DRIVER_XORG - -config BR2_PACKAGE_NVIDIA_DRIVER_CUDA - bool "CUDA support" - -if BR2_PACKAGE_NVIDIA_DRIVER_CUDA - -config BR2_PACKAGE_NVIDIA_DRIVER_OPENCL - bool "OpenCL support" - select BR2_PACKAGE_MESA3D_HEADERS - select BR2_PACKAGE_HAS_LIBOPENCL - -config BR2_PACKAGE_PROVIDES_LIBOPENCL - default "nvidia-driver" if BR2_PACKAGE_NVIDIA_DRIVER_OPENCL - -config BR2_PACKAGE_NVIDIA_DRIVER_CUDA_PROGS - bool "CUDA MPS server and control" - help - Say 'y' here if you need to run more than one program - doing CUDA at the same time. The MPS server will be - launched automatically when needed. - -endif # BR2_PACKAGE_NVIDIA_DRIVER_CUDA - -comment "nvidia kernel module needs a kernel to be built" - depends on !BR2_LINUX_KERNEL - -config BR2_PACKAGE_NVIDIA_DRIVER_MODULE - bool "nvidia kernel module" - depends on BR2_LINUX_KERNEL - select BR2_LINUX_NEEDS_MODULES # not using kernel-module infra - help - Build the nvidia.ko kernel module. - - If CUDA support (above) is set, and the target is x86_64, then - this will also build the nvidia-uvm.ko kernel module, which - provides Unified Memory access to the GPU and CPU memories for - CUDA programs. - -endif # BR2_PACKAGE_NVIDIA_DRIVER diff --git a/package/nvidia-driver/egl.pc b/package/nvidia-driver/egl.pc deleted file mode 100644 index a5aeace63c..0000000000 --- a/package/nvidia-driver/egl.pc +++ /dev/null @@ -1,10 +0,0 @@ -prefix=/usr -exec_prefix=${prefix} -libdir=${exec_prefix}/lib -includedir=${prefix}/include - -Name: egl -Description: Nvidia OpenGL library -Version: 1 -Cflags: -I${includedir} -Libs: -L${libdir} -lEGL diff --git a/package/nvidia-driver/gl.pc b/package/nvidia-driver/gl.pc deleted file mode 100644 index d822763f57..0000000000 --- a/package/nvidia-driver/gl.pc +++ /dev/null @@ -1,11 +0,0 @@ -prefix=/usr -exec_prefix=${prefix} -libdir=${exec_prefix}/lib -includedir=${prefix}/include - -Name: gl -Description: Nvidia OpenGL library -Version: 10.4.2 -Libs: -L${libdir} -lGL -lm -lXext -lX11 -ldl -Cflags: -I${includedir} -DMESA_EGL_NO_X11_HEADERS -glx_tls: no diff --git a/package/nvidia-driver/nvidia-driver.hash b/package/nvidia-driver/nvidia-driver.hash deleted file mode 100644 index 79ac052610..0000000000 --- a/package/nvidia-driver/nvidia-driver.hash +++ /dev/null @@ -1,4 +0,0 @@ -# Locally computed -sha256 6f4af70ee3d03ed31c497a5d555164c56057b53ecedfc0d2c8de4b0b90728805 NVIDIA-Linux-x86-390.67.run -sha256 6df2ca1a7420b6751bcaf257d321b14f4e5f7ca54d77a43514912a3792ece65a NVIDIA-Linux-x86_64-390.67.run -sha256 bd28b0c5aeeb00eb11d3ec6f6f3449d4b3a40100914258332734a53527997526 LICENSE diff --git a/package/nvidia-driver/nvidia-driver.mk b/package/nvidia-driver/nvidia-driver.mk deleted file mode 100644 index baf2ba2be5..0000000000 --- a/package/nvidia-driver/nvidia-driver.mk +++ /dev/null @@ -1,198 +0,0 @@ -################################################################################ -# -# nvidia-driver -# -################################################################################ - -NVIDIA_DRIVER_VERSION = 390.67 -NVIDIA_DRIVER_SUFFIX = $(if $(BR2_x86_64),_64) -NVIDIA_DRIVER_SITE = http://download.nvidia.com/XFree86/Linux-x86$(NVIDIA_DRIVER_SUFFIX)/$(NVIDIA_DRIVER_VERSION) -NVIDIA_DRIVER_SOURCE = NVIDIA-Linux-x86$(NVIDIA_DRIVER_SUFFIX)-$(NVIDIA_DRIVER_VERSION).run -NVIDIA_DRIVER_LICENSE = NVIDIA Software License -NVIDIA_DRIVER_LICENSE_FILES = LICENSE -NVIDIA_DRIVER_REDISTRIBUTE = NO -NVIDIA_DRIVER_INSTALL_STAGING = YES - -ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_XORG),y) - -# Since nvidia-driver are binary blobs, the below dependencies are not -# strictly speaking build dependencies of nvidia-driver. However, they -# are build dependencies of packages that depend on nvidia-driver, so -# they should be built prior to those packages, and the only simple -# way to do so is to make nvidia-driver depend on them. -NVIDIA_DRIVER_DEPENDENCIES += mesa3d-headers xlib_libX11 xlib_libXext -NVIDIA_DRIVER_PROVIDES += libgl libegl libgles - -# libGL.so.$(NVIDIA_DRIVER_VERSION) is the legacy libGL.so library; it -# has been replaced with libGL.so.1.0.0. Installing both is technically -# possible, but great care must be taken to ensure they do not conflict, -# so that EGL still works. The legacy library exposes an NVidia-specific -# API, so it should not be needed, except for legacy, binary-only -# applications (in other words: we don't care). -# -# libGL.so.1.0.0 is the new vendor-neutral library, aimed at replacing -# the old libGL.so.$(NVIDIA_DRIVER_VERSION) library. The latter contains -# NVidia extensions (which is deemed bad now), while the former follows -# the newly-introduced vendor-neutral "dispatching" API/ABI: -# https://github.com/aritger/linux-opengl-abi-proposal/blob/master/linux-opengl-abi-proposal.txt -# However, this is not very usefull to us, as we don't support multiple -# GL providers at the same time on the system, which this proposal is -# aimed at supporting. -# -# So we only install the legacy library for now. -NVIDIA_DRIVER_LIBS_GL = \ - libGLX.so.0 \ - libGL.so.$(NVIDIA_DRIVER_VERSION) \ - libGLX_nvidia.so.$(NVIDIA_DRIVER_VERSION) - -NVIDIA_DRIVER_LIBS_EGL = \ - libEGL.so.1.1.0 \ - libGLdispatch.so.0 \ - libEGL_nvidia.so.$(NVIDIA_DRIVER_VERSION) - -NVIDIA_DRIVER_LIBS_GLES = \ - libGLESv1_CM.so.1.2.0 \ - libGLESv2.so.2.1.0 \ - libGLESv1_CM_nvidia.so.$(NVIDIA_DRIVER_VERSION) \ - libGLESv2_nvidia.so.$(NVIDIA_DRIVER_VERSION) - -NVIDIA_DRIVER_LIBS_MISC = \ - libnvidia-eglcore.so.$(NVIDIA_DRIVER_VERSION) \ - libnvidia-egl-wayland.so.1.0.2 \ - libnvidia-glcore.so.$(NVIDIA_DRIVER_VERSION) \ - libnvidia-glsi.so.$(NVIDIA_DRIVER_VERSION) \ - tls/libnvidia-tls.so.$(NVIDIA_DRIVER_VERSION) \ - libvdpau_nvidia.so.$(NVIDIA_DRIVER_VERSION) \ - libnvidia-ml.so.$(NVIDIA_DRIVER_VERSION) - -NVIDIA_DRIVER_LIBS += \ - $(NVIDIA_DRIVER_LIBS_GL) \ - $(NVIDIA_DRIVER_LIBS_EGL) \ - $(NVIDIA_DRIVER_LIBS_GLES) \ - $(NVIDIA_DRIVER_LIBS_MISC) - -# Install the gl.pc file -define NVIDIA_DRIVER_INSTALL_GL_DEV - $(INSTALL) -D -m 0644 $(@D)/libGL.la $(STAGING_DIR)/usr/lib/libGL.la - $(SED) 's:__GENERATED_BY__:Buildroot:' $(STAGING_DIR)/usr/lib/libGL.la - $(SED) 's:__LIBGL_PATH__:/usr/lib:' $(STAGING_DIR)/usr/lib/libGL.la - $(SED) 's:-L[^[:space:]]\+::' $(STAGING_DIR)/usr/lib/libGL.la - $(INSTALL) -D -m 0644 package/nvidia-driver/gl.pc $(STAGING_DIR)/usr/lib/pkgconfig/gl.pc - $(INSTALL) -D -m 0644 package/nvidia-driver/egl.pc $(STAGING_DIR)/usr/lib/pkgconfig/egl.pc -endef - -# Those libraries are 'private' libraries requiring an agreement with -# NVidia to develop code for those libs. There seems to be no restriction -# on using those libraries (e.g. if the user has such an agreement, or -# wants to run a third-party program developped under such an agreement). -ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_PRIVATE_LIBS),y) -NVIDIA_DRIVER_LIBS += \ - libnvidia-ifr.so.$(NVIDIA_DRIVER_VERSION) \ - libnvidia-fbc.so.$(NVIDIA_DRIVER_VERSION) -endif - -# We refer to the destination path; the origin file has no directory component -NVIDIA_DRIVER_X_MODS = \ - drivers/nvidia_drv.so \ - extensions/libglx.so.$(NVIDIA_DRIVER_VERSION) \ - libnvidia-wfb.so.$(NVIDIA_DRIVER_VERSION) - -endif # X drivers - -ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_CUDA),y) -NVIDIA_DRIVER_LIBS += \ - libcuda.so.$(NVIDIA_DRIVER_VERSION) \ - libnvidia-compiler.so.$(NVIDIA_DRIVER_VERSION) \ - libnvcuvid.so.$(NVIDIA_DRIVER_VERSION) \ - libnvidia-fatbinaryloader.so.$(NVIDIA_DRIVER_VERSION) \ - libnvidia-ptxjitcompiler.so.$(NVIDIA_DRIVER_VERSION) \ - libnvidia-encode.so.$(NVIDIA_DRIVER_VERSION) -ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_CUDA_PROGS),y) -NVIDIA_DRIVER_PROGS = nvidia-cuda-mps-control nvidia-cuda-mps-server -endif -endif - -ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_OPENCL),y) -NVIDIA_DRIVER_LIBS += \ - libOpenCL.so.1.0.0 \ - libnvidia-opencl.so.$(NVIDIA_DRIVER_VERSION) -NVIDIA_DRIVER_DEPENDENCIES += mesa3d-headers -NVIDIA_DRIVER_PROVIDES += libopencl -endif - -# Build and install the kernel modules if needed -ifeq ($(BR2_PACKAGE_NVIDIA_DRIVER_MODULE),y) - -NVIDIA_DRIVER_MODULES = nvidia nvidia-modeset nvidia-drm -ifeq ($(BR2_x86_64),y) -NVIDIA_DRIVER_MODULES += nvidia-uvm -endif - -# They can't do everything like everyone. They need those variables, -# because they don't recognise the usual variables set by the kernel -# build system. We also need to tell them what modules to build. -NVIDIA_DRIVER_MODULE_MAKE_OPTS = \ - NV_KERNEL_SOURCES="$(LINUX_DIR)" \ - NV_KERNEL_OUTPUT="$(LINUX_DIR)" \ - NV_KERNEL_MODULES="$(NVIDIA_DRIVER_MODULES)" - -NVIDIA_DRIVER_MODULE_SUBDIRS = kernel - -$(eval $(kernel-module)) - -endif # BR2_PACKAGE_NVIDIA_DRIVER_MODULE == y - -# The downloaded archive is in fact an auto-extract script. So, it can run -# virtually everywhere, and it is fine enough to provide useful options. -# Except it can't extract into an existing (even empty) directory. -define NVIDIA_DRIVER_EXTRACT_CMDS - $(SHELL) $(NVIDIA_DRIVER_DL_DIR)/$(NVIDIA_DRIVER_SOURCE) --extract-only --target \ - $(@D)/tmp-extract - chmod u+w -R $(@D) - mv $(@D)/tmp-extract/* $(@D)/tmp-extract/.manifest $(@D) - rm -rf $(@D)/tmp-extract -endef - -# Helper to install libraries -# $1: destination directory (target or staging) -# -# For all libraries, we install them and create a symlink using -# their SONAME, so we can link to them at runtime; we also create -# the no-version symlink, so we can link to them at build time. -define NVIDIA_DRIVER_INSTALL_LIBS - $(foreach lib,$(NVIDIA_DRIVER_LIBS),\ - $(INSTALL) -D -m 0644 $(@D)/$(lib) $(1)/usr/lib/$(notdir $(lib)) - libsoname="$$( $(TARGET_READELF) -d "$(@D)/$(lib)" \ - |sed -r -e '/.*\(SONAME\).*\[(.*)\]$$/!d; s//\1/;' )"; \ - if [ -n "$${libsoname}" -a "$${libsoname}" != "$(notdir $(lib))" ]; then \ - ln -sf $(notdir $(lib)) \ - $(1)/usr/lib/$${libsoname}; \ - fi - baseso=$(firstword $(subst .,$(space),$(notdir $(lib)))).so; \ - if [ -n "$${baseso}" -a "$${baseso}" != "$(notdir $(lib))" ]; then \ - ln -sf $(notdir $(lib)) $(1)/usr/lib/$${baseso}; \ - fi - ) -endef - -# For staging, install libraries and development files -define NVIDIA_DRIVER_INSTALL_STAGING_CMDS - $(call NVIDIA_DRIVER_INSTALL_LIBS,$(STAGING_DIR)) - $(NVIDIA_DRIVER_INSTALL_GL_DEV) -endef - -# For target, install libraries and X.org modules -define NVIDIA_DRIVER_INSTALL_TARGET_CMDS - $(call NVIDIA_DRIVER_INSTALL_LIBS,$(TARGET_DIR)) - $(foreach m,$(NVIDIA_DRIVER_X_MODS), \ - $(INSTALL) -D -m 0644 $(@D)/$(notdir $(m)) \ - $(TARGET_DIR)/usr/lib/xorg/modules/$(m) - ) - $(foreach p,$(NVIDIA_DRIVER_PROGS), \ - $(INSTALL) -D -m 0755 $(@D)/$(p) \ - $(TARGET_DIR)/usr/bin/$(p) - ) - $(NVIDIA_DRIVER_INSTALL_KERNEL_MODULE) -endef - -$(eval $(generic-package)) |