Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 561706 - x11-drivers/nvidia-drivers should install CUDA/OpenCL libraries separately from USE=X
Summary: x11-drivers/nvidia-drivers should install CUDA/OpenCL libraries separately fr...
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal with 4 votes (vote)
Assignee: David Seifert
URL:
Whiteboard:
Keywords:
: 592984 600182 663830 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-09-28 08:32 UTC by Mirko Guenther
Modified: 2021-03-02 23:44 UTC (History)
11 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
system.info (system.info,10.00 KB, text/plain)
2016-03-19 18:10 UTC, Sabayonino
Details
debug-nvidia-drivers.log.tbz2 (debug-nvidia-drivers.log.tbz2,146 bytes, application/x-bzip-compressed-tar)
2016-03-20 22:59 UTC, Sabayonino
Details
nvidia-drivers-361.28.ebuild patch (nv.diff,685 bytes, patch)
2016-06-28 11:04 UTC, frank
Details | Diff
nvidia-drivers-361.28.ebuild.patch (file_561706.txt,2.15 KB, patch)
2016-08-26 15:10 UTC, frank
Details | Diff
nvidia-drivers-381.22.ebuild.patch (nvidia-drivers-381.22.ebuild.patch,3.28 KB, patch)
2017-06-06 21:21 UTC, Tommie
Details | Diff
nvidia-drivers-430.40.ebuild (nvidia-drivers-430.40.ebuild.patch,3.64 KB, patch)
2019-08-06 18:17 UTC, Liam Shepherd
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Mirko Guenther 2015-09-28 08:32:29 UTC
with older driver versions it was possible to install and use CUDA/OpenCL without need of install the X system using use flag 'x'.

Now the logic in the new ebuild was rewritten which enforces to enable 'x' use flag to get CUDA/OpenCL support.

Reproducible: Always
Comment 1 Sabayonino 2016-03-19 18:10:31 UTC
Created attachment 428604 [details]
system.info
Comment 2 Sabayonino 2016-03-19 18:12:45 UTC
Same issue with 4 pc without X server 
 OpenCL stop to work with nvidia-drivers >252.xx

Only one pc run openCl fine with latest nvidia-drivers and X-server running

regards
Comment 3 Sabayonino 2016-03-20 22:59:41 UTC
Created attachment 428686 [details]
debug-nvidia-drivers.log.tbz2
Comment 4 Sabayonino 2016-03-20 23:00:35 UTC
try new nvidia-drivers install (361.18 , 358.15 , 355.11)

drivers seem successfuly installed but   :

"* Adding module to moduledb.
!!! Error: Unrecognized option: nvidia
exiting"

#########


>>> Installing (1 of 1) x11-drivers/nvidia-drivers-358.16-r1::gentoo
 * Removing /usr/share/doc
 * >>> SetUID: [chmod go-r] /opt/bin/nvidia-modprobe ...                                                                                                                                           [ ok ]
 * Removing x11-drivers/nvidia-drivers-352.63 from moduledb.
 * Updating module dependencies for 4.1.15-gentoo-r1 ...                                                                                                                                           [ ok ]
 * Adding module to moduledb.
!!! Error: Unrecognized option: nvidia
exiting
 * You have elected to not install the X.org driver. Along with
 * this the OpenGL libraries and VDPAU libraries were not
 * installed. Additionally, once the driver is loaded your card
 * and fan will run at max speed which may not be desirable.
 * Use the 'nvidia-smi' init script to have your card and fan
 * speed scale appropriately.
 * 
 * USE=tools controls whether the nvidia-settings application
 * is installed. If you would like to use it, enable that
 * flag and re-emerge this ebuild. Optionally you can install
 * media-video/nvidia-settings
 * 

 * Messages for package x11-drivers/nvidia-drivers-358.16-r1:

 * You have elected to not install the X.org driver. Along with
 * this the OpenGL libraries and VDPAU libraries were not
 * installed. Additionally, once the driver is loaded your card
 * and fan will run at max speed which may not be desirable.
 * Use the 'nvidia-smi' init script to have your card and fan
 * speed scale appropriately.
 * 
 * USE=tools controls whether the nvidia-settings application
 * is installed. If you would like to use it, enable that
 * flag and re-emerge this ebuild. Optionally you can install
 * media-video/nvidia-settings
 * 
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.


No nvidia opencl available

eselect opencl list
Available OpenCL implementations:
  [1]   mesa


merging nvidia-drivers with --debug option get :
+ //usr/bin/eselect opencl set --use-old nvidia
!!! Error: Unrecognized option: nvidia
exiting
 see full attachment
Comment 5 Zoltan Puskas 2016-03-30 09:41:29 UTC
Same with nvidia-drivers-364.12-r1. Any particular reason for this? Why the need to install a full X server system?
Comment 6 Jeroen Roovers (RETIRED) gentoo-dev 2016-04-16 11:08:53 UTC
Comment on attachment 428686 [details]
debug-nvidia-drivers.log.tbz2

I have no idea what this is.
Comment 7 frank 2016-06-28 11:04:36 UTC
Created attachment 439072 [details, diff]
nvidia-drivers-361.28.ebuild patch

an easy workaround for installing (opencl) libraries without enabling the X use flag and it's dependencies...
Comment 8 Sabayonino 2016-07-08 22:41:12 UTC
Hi Frank, thanks for this but opencl still not works

nvidia-drivers-361.28 installed and loaded

lsmod  | grep nvidia
nvidia               9305080  0


but no opencl available for nvidia

eselect opencl list
Available OpenCL implementations:
  [1]   intel



 equery u nvidia-drivers
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for x11-drivers/nvidia-drivers-361.28:
 U I
 - - X           : Install the X.org driver, OpenGL libraries, XvMC libraries, and VDPAU libraries
 + + acpi        : Add support for Advanced Configuration and Power Interface
 - - compat      : Install non-GLVND libGL for backwards compatibility
 + - driver      : Install the kernel driver module
 - - gtk3        : Install nvidia-settings with support for GTK+ 3
 + - kms         : Enable support for kernel mode setting (KMS)
 + + multilib    : On 64bit systems, if you want to be able to compile 32bit and 64bit binaries
 - - pax_kernel  : PaX patches from the PaX project
 - - static-libs : Build static versions of dynamic libraries as well
 - - tools       : Install additional tools such as nvidia-settings
 + - uvm         : Install the Unified Memory kernel module (nvidia-uvm) for sharing memory between CPU and GPU in CUDA programs

any suggestions ?
:)
cheers
Comment 9 frank 2016-07-08 22:56:25 UTC
(In reply to Sabayonino from comment #8)
> Hi Frank, thanks for this but opencl still not works
> 
> nvidia-drivers-361.28 installed and loaded
> 
> lsmod  | grep nvidia
> nvidia               9305080  0
> 
> 
> but no opencl available for nvidia
> 
> eselect opencl list
> Available OpenCL implementations:
>   [1]   intel
> 
> 
> 
>  equery u nvidia-drivers
> [ Legend : U - final flag setting for installation]
> [        : I - package is installed with flag     ]
> [ Colors : set, unset                             ]
>  * Found these USE flags for x11-drivers/nvidia-drivers-361.28:
>  U I
>  - - X           : Install the X.org driver, OpenGL libraries, XvMC
> libraries, and VDPAU libraries
>  + + acpi        : Add support for Advanced Configuration and Power Interface
>  - - compat      : Install non-GLVND libGL for backwards compatibility
>  + - driver      : Install the kernel driver module
>  - - gtk3        : Install nvidia-settings with support for GTK+ 3
>  + - kms         : Enable support for kernel mode setting (KMS)
>  + + multilib    : On 64bit systems, if you want to be able to compile 32bit
> and 64bit binaries
>  - - pax_kernel  : PaX patches from the PaX project
>  - - static-libs : Build static versions of dynamic libraries as well
>  - - tools       : Install additional tools such as nvidia-settings
>  + - uvm         : Install the Unified Memory kernel module (nvidia-uvm) for
> sharing memory between CPU and GPU in CUDA programs
> 
> any suggestions ?
> :)
> cheers

you should apply the above attached patch to the ebuild and then emerge it with the opencl use flag enabled.
Comment 10 Jeroen Roovers (RETIRED) gentoo-dev 2016-07-09 06:40:13 UTC
Comment on attachment 439072 [details, diff]
nvidia-drivers-361.28.ebuild patch

1. Inverted patch.
2. Looks like a hack: why would you want all of the GLX libraries without USE=X?

Wouldn't it be better to separate out the OpenCL specific libraries using a new USE flag, and then change virtual/opencl to depend on x11-drivers/nvidia-drivers[opencl]?
Comment 11 frank 2016-07-09 10:35:36 UTC
of course, mine was just a quick workaround, not a proposal...
Comment 12 Sabayonino 2016-07-13 17:17:50 UTC
nvidia-352.63 are latest working drivers with OpenCL 
I can see /etc/OpenCL/* , /usr/lib{32,64}/OpenCL/* directories

I can't see /usr/lib32/OpenCL directories with >=nvidia-352.79
/usr/lib64/OpenCL directory exists.

there is a broken link in 
/usr/lib32/libOpenCL.so that point to OpenCL/vendors/nvidia/libOpenCL.so.1.0.0

forcing ABI_X86="32 64" doesn't solve.


get follow contents
*** nvidia-352.63 *** (OpenCL working)
/usr/lib32/OpenCL/vendors/nvidia

libOpenCL.so -> libOpenCL.so.1
libOpenCL.so.1 -> libOpenCL.so.1.0.0
libOpenCL.so.1.0.0

/usr/lib64/OpenCL/global/include/CL
cl_ext.h  cl_gl_ext.h  cl_gl.h  cl.h  cl.hpp  cl_platform.h  opencl.h



 *** nvidia 367.27 or lower ***

/usr/lib64/OpenCL/global/include/CL
cl_ext.h  cl_gl_ext.h  cl_gl.h  cl.h  cl.hpp  cl_platform.h  opencl.h

/usr/lib32 has no OpenCL directory.

:)
Comment 13 Sabayonino 2016-07-13 17:46:45 UTC
sorry for a new post

*** 352.63 ***
/usr/lib32 contents

ls | grep nvidia
libnvidia-compiler.so
libnvidia-compiler.so.1
libnvidia-compiler.so.352.63
libnvidia-ml.so
libnvidia-ml.so.1
libnvidia-ml.so.352.63
libnvidia-opencl.so
libnvidia-opencl.so.1
libnvidia-opencl.so.352.63

*** >252.63 ***
Missed


Does ABI_X86="32 64" or "multilib" useflag working bad ?

:) cheers
Comment 14 Zoltan Puskas 2016-07-24 01:50:05 UTC
The need for glx, opencl, cuda libraries without X usually arises on headless servers running (usually some form of scientific) computation on the GPU.
Comment 15 Sabayonino 2016-07-26 17:23:53 UTC
(In reply to Zoltan Puskas from comment #14)
> The need for glx, opencl, cuda libraries without X usually arises on
> headless servers running (usually some form of scientific) computation on
> the GPU.

I'm running BOINC (and only this) in several PCs without X-Server. I don't need "X".
I'm playing all boinc-clients remotely or by command line.
Comment 16 frank 2016-08-26 15:10:09 UTC
Created attachment 444198 [details, diff]
nvidia-drivers-361.28.ebuild.patch

(In reply to Jeroen Roovers from comment #10)
> Comment on attachment 439072 [details, diff] [details, diff]
> nvidia-drivers-361.28.ebuild patch
> 
> 1. Inverted patch.
> 2. Looks like a hack: why would you want all of the GLX libraries without
> USE=X?
> 
> Wouldn't it be better to separate out the OpenCL specific libraries using a
> new USE flag, and then change virtual/opencl to depend on
> x11-drivers/nvidia-drivers[opencl]?

here it goes again...
this ebuild patch adds an "opencl" use flag (enabled by default) which only installs needed opencl/cuda libraries (leaving out opengl and unneeded stuff).
again, this works for me and i don't have idea what i did
Comment 17 Brian Munro 2016-09-06 13:13:44 UTC
*** Bug 592984 has been marked as a duplicate of this bug. ***
Comment 18 Sabayonino 2016-10-05 10:44:13 UTC
(In reply to frank from comment #16)
> Created attachment 444198 [details, diff] [details, diff]
> nvidia-drivers-361.28.ebuild.patch
> 
> (In reply to Jeroen Roovers from comment #10)
> > Comment on attachment 439072 [details, diff] [details, diff] [details, diff]
> > nvidia-drivers-361.28.ebuild patch
> > 
> > 1. Inverted patch.
> > 2. Looks like a hack: why would you want all of the GLX libraries without
> > USE=X?
> > 
> > Wouldn't it be better to separate out the OpenCL specific libraries using a
> > new USE flag, and then change virtual/opencl to depend on
> > x11-drivers/nvidia-drivers[opencl]?
> 
> here it goes again...
> this ebuild patch adds an "opencl" use flag (enabled by default) which only
> installs needed opencl/cuda libraries (leaving out opengl and unneeded
> stuff).
> again, this works for me and i don't have idea what i did

Hi 
I've tried your patch but I've no OpenCL implemetations.

drivers are installed

Can't running OpenCL apps

# eselect opencl list
Available OpenCL implementations:
  [1]   mesa

[?] x11-drivers/nvidia-drivers (361.28-r100(0/361){tbz2}@10/05/2016 -> 361.28(0/361)^msd{tbz2}): NVIDIA Accelerated Graphics Driver


:(
Comment 19 Brian Munro 2016-10-05 10:59:59 UTC
For nvidia-drivers 367.44, I had to use the above patch plus include the following two files under NV_OPENCL_LIBRARIES

libnvidia-compiler.so
libnvidia-fatbinaryloader.so

Only then was I able to run the cuda 8 sdk samples without X.
Comment 20 Sabayonino 2016-10-05 11:11:54 UTC
your patch was applied

but I can't see opencl flag after drivers installation

Installed versions:  361.28-r100(0/361)^msd{tbz2}[1](01:07:32 PM 10/05/2016)(acpi driver kms multilib uvm -X -gtk3 -pax_kernel -static-libs -tools 

[1] "local" /usr/local/portage


and still can't run OpenCl

eselect opencl list
Available OpenCL implementations:
  [1]   mesa
Comment 21 Sabayonino 2016-10-05 11:13:23 UTC
(In reply to Brian Munro from comment #19)
> For nvidia-drivers 367.44, I had to use the above patch plus include the
> following two files under NV_OPENCL_LIBRARIES
> 
> libnvidia-compiler.so
> libnvidia-fatbinaryloader.so
> 
> Only then was I able to run the cuda 8 sdk samples without X.

I'll try asap

tnx
Comment 22 Marius Brehler 2017-02-24 14:23:47 UTC
Any news to this? I would like to drop the dependency on the X useflag in the nvidia-cuda-toolkit.
Comment 23 Tommie 2017-06-06 21:21:05 UTC
Created attachment 475426 [details, diff]
nvidia-drivers-381.22.ebuild.patch
Comment 24 Tommie 2017-06-06 21:24:03 UTC
Suggesting the 381.22 patch, from https://github.com/tommie/portage-overlay/blob/eae88761e1e22f17b7faffac3b46c299ff6773e7/x11-drivers/nvidia-drivers/nvidia-drivers-381.22-r1.ebuild

I didn't add the opencl USE flag (no regression). Tried to keep it a minimal patch. The library rearrangement is based on doing ldd to see what libraries depend on libX11 et al.
Comment 25 Tommie 2017-07-24 08:06:12 UTC
Bumped to 384.47 https://github.com/gentoo/gentoo/pull/5188
Comment 26 Marius Brehler 2018-08-17 07:52:25 UTC
*** Bug 663830 has been marked as a duplicate of this bug. ***
Comment 27 Nathaniel Lewis 2018-08-23 21:34:24 UTC
bumping this as well
Comment 28 Liam Shepherd 2019-08-06 18:17:53 UTC
Created attachment 585928 [details, diff]
nvidia-drivers-430.40.ebuild

Based on Tommie's patches but also fixes the modprobe config
Comment 29 Klemen Mihevc 2020-03-28 15:17:16 UTC
Why is this still a thing? CUDA/opencl librarys depended on X, also installing of libnvidia-ml.so is depended on X, so if you run nvidia-smi it complains that it cant find library... however if you remove all X dependency nvidia-smi and opencl seems to work... im using nvidia graphics card in a server without X, but i still want to have cuda/opencl librarys and basic access to temperatures....
Comment 30 Alex Orange 2020-11-20 19:07:13 UTC
Again, very much need this fix. The patch seems to work for me (with a slight tweak to drop fatbinary), is there anything more that we (or I) can do to push this along?

P.S. I'd really like to confirm this as both a. it's a problem and b. the patch seems to work for me.

P.P.S. In the mean time, does anyone have a solution to mask the nvidia::gentoo packages and still yell loudly when nvidia has been update so as to patch the new version?
Comment 31 Ionen Wolkens 2021-03-02 23:29:50 UTC
(In reply to Alex Orange from comment #30)
> Again, very much need this fix.
May still have to be patient but just to say this isn't forgotten and will get fixed (I know waiting sound unreasonable when the fix is simple, but there's some re-organization going on).
Comment 32 Ionen Wolkens 2021-03-02 23:44:33 UTC
*** Bug 600182 has been marked as a duplicate of this bug. ***