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 3 votes (vote)
Assignee: Jeroen Roovers
URL:
Whiteboard:
Keywords:
: 592984 663830 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-09-28 08:32 UTC by Mirko Guenther
Modified: 2019-08-06 18:18 UTC (History)
7 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 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 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