c464f96004
This new version brings in support for egl-wayland, the EGL extensions aimed at making it possible to implement Wayland servers and clients. As such, nvidia-driver becomes the second EGL implementation in Buildroot that can act as a libegl provider with egl-wayland extensions. In this version, it becomes possible to use our kernel-module infra, with just a little few minor tricks: we need just specify the Linux source and build trees (they are the same for us) and the list of modules to build. We still need a little patch against the Kbuild files. We also get rid of the LIBS_NO_VERSION trick and always use complete filenames, as more libs are now packaged with different version in their filenames, and even some with no version at all. When installing libs, we switch from a shell loop to a make foreach loop, which is easier to handle. It has the side-effect (and advantage) of displaying the install commands for each library, rather than a single biggish one, so it is easier to see what goes wrong. This also means that an error in each phase of the install (the copy of the files then each symlink) can be caught more easily (it was not previously): each sequence is now its own make command; we need not use "|| exit 1" after each command, even in a if block, because the if blocks returns with the exit code of the last command in it; e.g. if an ln fails, the if-block in which it is enclosed will return the exit code of ln, and make will catch it. Similarly for the X driver modules and each of the programs installed: we now can catch any failure in the isntall of those. All of this somewhat simplifies the .mk. It is a little bit longer, but the structure is saner and more explicit. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
89 lines
2.5 KiB
Plaintext
89 lines
2.5 KiB
Plaintext
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 # runtime
|
|
select BR2_PACKAGE_XLIB_LIBXEXT # runtime
|
|
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"
|
|
|
|
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
|