Cuda is not supported by legacy nvidia-driver-340.107
Don't set gfxcard-nvidia mix-ins with legacy driver as it adds cuda use flag to make.defaults
Cuda use flag is enabled on multiple packages on your system pulling in nvidia-cuda-toolkit which pulls in nvidia-driver-410.93
rj@funtoo ~ $ equery g nvidia-cuda-toolkit-9.2.88
* dependency graph for dev-util/nvidia-cuda-toolkit-9.2.88
`-- dev-util/nvidia-cuda-toolkit-9.2.88 NVIDIA-CUDA license(s)
`-- sys-devel/gcc-7.4.1-r6 (<sys-devel/gcc-8) unknown [cxx]
`-- x11-drivers/nvidia-drivers-410.93 (>=x11-drivers/nvidia-drivers-396.24) M[package.mask] [X uvm]
`-- sys-libs/libtermcap-compat-2.0.8-r4 (sys-libs/libtermcap-compat) ~amd64
`-- sys-libs/ncurses-5.9-r101 (sys-libs/ncurses) amd64 [tinfo]
`-- virtual/jre-1.8.0-r1 (>=virtual/jre-1.6) amd64
[ dev-util/nvidia-cuda-toolkit-9.2.88 stats: packages (6), max depth (1) ]
Disable cuda use flag from every package on your system.
Use this command to find the packages with cuda enabled:
USE="cuda"; for PKG in $(equery -q hasuse $USE); do echo $PKG: $(equery -q uses $PKG |grep $USE); done
At the minimum these 2 packages have cuda enabled:
# required by dev-cpp/eigen-3.3.5-r1::dev-kit[cuda]
[ebuild R ] media-libs/opencv-3.4.1-r4 USE="cuda* opencl*"
I run nvidia-8400GS with nvidia-driver-340.107 with >x11-drivers/nvidia-drivers-340.107 in package.mask
No issue with portage wanting to install nvidia-cuda-toolkit and upgrade nvidia-driver.
All packages with cuda use option on my system have it disabled "-cuda"
rj@funtoo ~ $ USE="cuda"; for PKG in $(equery -q hasuse $USE); do echo $PKG: $(equery -q uses $PKG |grep $USE); done
dev-cpp/eigen-3.3.5-r1: -cuda
media-libs/opencv-3.4.1-r4: -cuda
media-video/mpv-0.27.2: -cuda
Check and avoid user override configs made in /etc/portage/make.conf , /etc/portage/packages.{use,mask,unmask}.
The Block on your system is caused by having apulse installed with pulseaudio use enabled.
[blocks B ] media-plugins/alsa-plugins[pulseaudio] ("media-plugins/alsa-plugins[pulseaudio]" is hard blocking media-sound/apulse-0.1.12-r4)
Remove apulse and install pulseaudio.
If you configure pulseaudio as minimal unintrusive dumb pipe to alsa you don't need alsa-plugins or the pulseaudio use flag enabled.
Pulse auto-spawns when needed by pre-compiled firefox-bin or any other program with a pulseaudio driver.
Programs with alsa drivers work as well.