Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 507098

Summary: x11-drivers/nvidia-drivers-334.21-r3
Product: Gentoo Linux Reporter: bjorn <megaflow>
Component: [OLD] Core systemAssignee: Gentoo Linux bug wranglers <bug-wranglers>
Status: RESOLVED DUPLICATE    
Severity: normal CC: alex.wabik, amonakov+bugs.gentoo
Priority: Normal    
Version: unspecified   
Hardware: AMD64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description bjorn 2014-04-08 04:35:27 UTC
last nvidia-drivers force load nvidia module. on my optimus laptop

Reproducible: Always

Steps to Reproduce:
1.install bumblebee
2. install nvidia-drivers
3. boot the system
Actual Results:  
[  768.666679] nvidia: probe of 0000:01:00.0 failed with error -1
[  768.667033] NVRM: The NVIDIA probe routine failed for 1 device(s).
[  768.667037] NVRM: None of the NVIDIA graphics adapters were initialized!
[  768.667039] [drm] Module unloaded
[  768.667149] NVRM: NVIDIA init module failed!


Expected Results:  
nvidia-smi not load the nvidia-modules.
bumblebee wil load the module

black listing the modules wont work. nvidia.ko stil get load on boot
nvidia-smi keep spamming this message . And my proccesor on full speed

emerge --info

Portage 2.2.8-r1 (default/linux/amd64/13.0/desktop, gcc-4.7.3, glibc-2.17, 3.13.9-gentoo x86_64)
=================================================================
System uname: Linux-3.13.9-gentoo-x86_64-Intel-R-_Core-TM-_i7-2720QM_CPU_@_2.20GHz-with-gentoo-2.2
KiB Mem:     3942048 total,   3093748 free
KiB Swap:    2097148 total,   2097148 free
Timestamp of tree: Mon, 07 Apr 2014 18:00:01 +0000
ld GNU ld (GNU Binutils) 2.23.2
app-shells/bash:          4.2_p45
dev-lang/python:          2.7.5-r3, 3.3.3
dev-util/cmake:           2.8.12.2
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.6, 1.13.4
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.7.3-r1
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.9 (virtual/os-headers)
sys-libs/glibc:           2.17
Repositories: gentoo megaflow
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-pipe -march=native -O3"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-pipe -march=native -O3"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps=y --complete-graph=y --jobs=4 --keep-going=y"
FCFLAGS="-pipe -march=native -O3"
FEATURES="assume-digests binpkg-logs candy cgroup config-protect-if-modified distlocks ebuild-locks fail-clean fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-backup unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-pipe -march=native -O3"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
INSTALL_MASK="INSTALL.gz TODO.gz"
LANG="nl_BE.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j8"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
USE="X a52 aac acl acpi aes alsa amd64 avx bash-completion berkdb bluetooth branding bzip2 cairo cdda cdr cli consolekit cracklib crypt curl cxx dbus dri dts dvd dvdr emboss encode exif fam ffmpeg firefox flac fontconfig fortran gbm gdbm gif glib gpm gtk gtk3 gtkstyle iconv icu infinality introspection ipv6 jit jpeg kmod lcms ldap libnotify libsamplerate lua lzma mad mmx mmxext mng modules mp3 mp4 mpeg mtp multilib ncurses nls nptl ogg opengl openmp openrc openssl pae pam pango pcre pdf perl png policykit ppds python readline sdl sep session spell spidermonkey sqlite sse sse2 sse3 sse4_1 sse4_2 ssl ssse3 startup-notification svg tcpd threads tiff truetype udev udisks unicode upower usb vaapi vdpau vorbis wifi wxwidgets x264 xcb xml xscreensaver xv xvid xvmc zlib" ABI_X86="64" ALSA_CARDS="hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="synaptics evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="nl" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="intel nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, SYNC, USE_PYTHON
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2014-04-08 12:51:07 UTC

*** This bug has been marked as a duplicate of bug 506168 ***
Comment 2 Alexander Monakov 2014-04-08 13:11:00 UTC
(In reply to Jeroen Roovers from comment #1)
> 
> *** This bug has been marked as a duplicate of bug 506168 ***

Hm, it doesn't really look like a duplicate to me.  Any comment on why it's closed as such?

I guess what happens is that bjorn has some package in boot sequence that tries to load the module and succeeds, now that nvidia-modprobe is suid and available on standart path; but the module cannot initialize the GPU after bbswitch has turned it off.

Not many applications try to load the module.  It's usually either nvidia-smi, Xorg configured to load the nvidia driver, or CUDA applications.

For now the recommendation is to disable auto-start of such applications and start them with "optirun --no-xorg" as needed.
Comment 3 bjorn 2014-04-08 18:08:42 UTC
I remove bumblebee and xdm from rc-update. And start /etc/init.d/xdm, 
xorg seem to autoload the nvidia module


after i log in on xfce .top is showing upowerd is using 70% %CPU

dmesg show this 
[ 1411.810259] NVRM: The NVIDIA probe routine failed for 1 device(s).
[ 1411.810261] NVRM: None of the NVIDIA graphics adapters were initialized!
[ 1411.810350] NVRM: NVIDIA init module failed!
[ 1411.831985] NVRM: The NVIDIA GPU 0000:01:00.0 (PCI ID: 10de:0dcd)
NVRM: installed in this system is not supported by the 334.21
NVRM: NVIDIA Linux driver release.  Please see 'Appendix
NVRM: A - Supported NVIDIA GPU Products' in this release's
NVRM: README, available on the Linux driver download page
NVRM: at www.nvidia.com.

if i start bumblebee . and run optirun bash. All is normal, but if i exit bash
dmesg spam the previous message again.

i have build x11-drivers/nvidia-drivers-334.21-r3 with the follow USE flags 
X acpi multilib tools -pax_kernel -uvm

i dont have the problem with x11-drivers/nvidia-drivers-334.21
i also use sys-fs/eudev-1.5.3-r1 

i can try the sys-fs/udev package. Or remove acpi from nvidia-drivers
Comment 4 Alexander Monakov 2014-04-08 18:42:34 UTC
You probably didn't have this problem with earlier revision because nvidia-modprobe wasn't available for whatever is loading nvidia driver now.

From the symptoms it looks like bbswitch was loaded before loading nvidia; see dmesg to check.

If you want to use bumblebee, you will have to find out what is causing the nvidia module to be loaded.
Comment 5 bjorn 2014-04-08 18:55:33 UTC
looks like udev is loading the module /var/log/Xorg.0.log


[    93.330] (II) config/udev: Adding drm device (/dev/dri/card1)
[    93.330] (II) xfree86: Adding drm device (/dev/dri/card1)
[    93.332] removing GPU device /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card1 /dev/dri/card1

but i have blacklist the nvidia module in /etc/modprobe.d/blacklist

i downgrade back to x11-drivers/nvidia-drivers-334.21 for now 

i'm i the only 1 with this problem ?
Comment 6 Aleksander Wabik 2014-04-17 19:06:09 UTC
I have the problem too.

Everything was fine with nvidia-drivers-334.21 and older. When I updated to nvidia-drivers-334.21-r3, my indicator started to show that nvidia card becomes active in random moments.

If I run anything that triggers bbswitch, eg:

$ optirun ls

then, after the optirun command exits, the nvidia card becomes switched off... until some time passes, 10-15 minutes, when it suddenly powers on again out of nowhere.

Please investigate it. I was going to have package.mask on nvidia drivers, but nvidia-drivers-334.21 was removed today, and I do not want to downgrade to older driver.

Please ask me for any other additional information.
Comment 7 Alexander Monakov 2014-04-17 19:27:27 UTC
Does the problem go away if you temporarily remove nvidia-modprobe or make it non-suid?

If so, can you find out what's triggering it?  For instance make nvidia-modprobe a bash script:

#!/bin/bash
p=$$
while [ $p -ne 1 ]; do
  tr \\0 \ </proc/$p/cmdline; echo; p=`cut -d\  -f4</proc/$p/stat`
done > /tmp/zzz


and then 'tail -F /tmp/zzz' and wait until something is there.
Comment 8 Aleksander Wabik 2014-04-17 19:31:49 UTC
This is a good idea. I will use such a script for getting some info.
Comment 9 Aleksander Wabik 2014-04-17 21:56:55 UTC
Here it comes:

$ tail -F /tmp/zzz
/bin/bash /usr/bin/nvidia-modprobe 
/usr/lib64/chromium-browser/chrome --type=plugin --plugin-path=/usr/lib64/nsbrowser/plugins/libflashplayer.so --lang=pl --channel=4943.13.1687998501
chromium-browser --extra-plugin-dir=/usr/lib64/nsbrowser/plugins 

And this repeats a lot of times. Why would chromium call nvidia-modprobe?

And, BTW, when nvidia-modprobe is a script which only logs the process hierarchy, the nvidia card does not power on... but optirun still works! Looks like bumblebee does not use nvidia-modprobe.
Comment 10 Alexander Monakov 2014-04-18 07:28:54 UTC
It's not chromium itself, it's the Flash video player; most likely nVidia VDPAU library triggers (perhaps indirectly, through libnvidia-cfg) nvidia-modprobe.

So yeah, nvidia-modprobe is at conflict with Bumblebee's mode of operation.  On some hardware, implicitly loading the module and using the card like that won't work after bbswitch turned off the card, as the nvidia kernel module won't be able to bring up the gpu correctly.
Comment 11 Aleksander Wabik 2014-04-18 18:18:58 UTC
So this is a bug in the flash plugin? I guess that unless whole plugin process is run in the optirun context (like running whole chromium browser with optirun), it should have absolutely no possibility of doing anything with nvidia drivers.

How this issue should be solved? For me, as I run applications using nvidia only explicitly via optirun, whole nvidia-modprobe script could be deleted.

> So yeah, nvidia-modprobe is at conflict with Bumblebee's mode of operation.

Maybe add USE=bumblebee, which disables nvidia-modprobe in nvidia-drivers, and make bumblebee depend on nvidia-drivers USE=bumblebee, so it's not possible to install bumblebee if nvidia-drivers have no USE=bumblebee?
Comment 12 bjorn 2014-04-18 18:41:08 UTC
My problem comes from nvidia-smi . I had a script to probe the temp off my gpu, and the last drivers autoload nvidia.ko 
but not with the x11-drivers/nvidia-drivers-334.21. although i downgrade to 
331.49-r3 because i had hard crashe with te 334.21 series
Comment 13 Alexander Monakov 2014-04-18 19:14:49 UTC
(In reply to Aleksander Wabik from comment #11)
> So this is a bug in the flash plugin? I guess that unless whole plugin
> process is run in the optirun context (like running whole chromium browser
> with optirun), it should have absolutely no possibility of doing anything
> with nvidia drivers.

No, it's not a bug (and certainly not in the flash player), it's all working as intended: flash plugin loads the vdpau library, vdpau library loads vendor-specific library libvdpau-nvidia.so, which in turn loads libnvidia-cfg.so, which in turn tries to load the module via nvidia-modprobe and succeeds, since nvidia-modprobe is suid (note that I did not verify that each step takes place exactly like that, but it's all plausible).  It's just the end result that's not intended on bumblebee-using hardware, where you're supposed to run anything on nvidia with a wrapper that talks to the daemon.  One could say it's a bug or a shortcoming in how Bumblebee is designed to work.

> How this issue should be solved? For me, as I run applications using nvidia
> only explicitly via optirun, whole nvidia-modprobe script could be deleted.

"INSTALL_MASK=nvidia-modprobe emerge -1 nvidia-drivers" should do it.  For a permanent effect the variable could be set via /etc/portage/package.env.

> > So yeah, nvidia-modprobe is at conflict with Bumblebee's mode of operation.
> 
> Maybe add USE=bumblebee, which disables nvidia-modprobe in nvidia-drivers,
> and make bumblebee depend on nvidia-drivers USE=bumblebee, so it's not
> possible to install bumblebee if nvidia-drivers have no USE=bumblebee?

Hm.  What would make sense and potentially be desirable to more than just Bumblebee users is to have a USE flag for installing nvidia-modprobe suid (right now it's installed suid unconditionally), and then have bumblebee depend on nvidia-drivers with that flag disabled.  People who would want "USE=uvm -suid" would be able to arrange nvidia-uvm.ko loaded automatically with nvidia.ko via modprobe.d softdep.