prime-select nvidia tries to use nonexisting folder lib32 causing failure to switch graphics card

Bug #1591979 reported by Rovanion
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
nvidia-prime (Ubuntu)
New
Undecided
Unassigned

Bug Description

When running prime-select nvidia on 32-bit Ubuntu 16.04, the following is the output:

```
$ LC_ALL=C sudo prime-select nvidia
Info: the current GL alternatives in use are: ['nvidia-361-prime', None]
Info: the current EGL alternatives in use are: ['nvidia-361-prime', None]
Info: selecting nvidia-361 for the nvidia profile
update-alternatives: using /usr/lib/nvidia-361/ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in manual mode
update-alternatives: warning: skip creation of /usr/lib32/vdpau/libvdpau_nvidia.so.1 because associated file /usr/lib32/nvidia-361/vdpau/libvdpau_nvidia.so.1 (of link group i386-linux-gnu_gl_conf) doesn't exist
update-alternatives: warning: skip creation of /usr/lib32/libvdpau_nvidia.so because associated file /usr/lib32/nvidia-361/vdpau/libvdpau_nvidia.so (of link group i386-linux-gnu_gl_conf) doesn't exist
update-alternatives: using /usr/lib/nvidia-361/ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_EGL.conf (i386-linux-gnu_egl_conf) in manual mode
```

The important part is "file /usr/lib32/nvidia-361/vdpau/libvdpau_nvidia.so.1 doesn't exist" which is entirely true since there is no folder /usr/lib32 on my system. I figure that /usr/lib32 exists on 64-bit systems with ia32-libs installed and that this program has simply never been tested on a 32-bit machine.

The machine in question has nvidia-prime 0.8.2 installed. What I expected to happen when I ran prime-select nvidia was of course that the proprietary nvidia driver would be used as the display driver on my next reboot - something which doesn't happen. Instead the open source Intel driver is used.

ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: nvidia-prime 0.8.2
Uname: Linux 4.5.0-040500-generic i686
NonfreeKernelModules: ctr ccm msr cdc_mbim cdc_ncm cdc_acm cdc_wdm usbnet mii uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_core videodev media btusb btrtl btbcm btintel bluetooth binfmt_misc drbg ansi_cprng dm_crypt arc4 iwldvm intel_rapl x86_pkg_temp_thermal snd_hda_codec_conexant snd_hda_codec_generic intel_powerclamp mac80211 crc32_pclmul snd_hda_intel aesni_intel aes_i586 xts snd_hda_codec lrw gf128mul snd_hda_core ablk_helper cryptd joydev snd_hwdep input_leds iwlwifi snd_seq_midi snd_seq_midi_event serio_raw snd_pcm thinkpad_acpi snd_rawmidi nvram cfg80211 snd_seq lpc_ich snd_seq_device snd_timer mei_me snd mei soundcore wmi shpchp mac_hid kvm_intel kvm irqbypass cuse coretemp parport_pc ppdev lp parport autofs4 hid_generic usbhid hid i915 i2c_algo_bit drm_kms_helper syscopyarea sysfillrect psmouse sysimgblt ahci fb_sys_fops e1000e libahci drm ptp pps_core fjes video
ApportVersion: 2.20.1-0ubuntu2.1
Architecture: i386
Date: Mon Jun 13 14:43:28 2016
EcryptfsInUse: Yes
InstallationDate: Installed on 2013-08-07 (1040 days ago)
InstallationMedia: Ubuntu 12.04.2 LTS "Precise Pangolin" - Release i386 (20130213)
SourcePackage: nvidia-prime
UpgradeStatus: Upgraded to xenial on 2016-03-17 (87 days ago)

Revision history for this message
Rovanion (rovanion-luckey) wrote :
Revision history for this message
Rovanion (rovanion-luckey) wrote :

Addendum:

apt-file search /usr/lib32/vdpau/libvdpau_nvidia.so.1

returns nothing. But

apt-file find libvdpau_nvidia.so.1

returns

nvidia-304: /usr/lib/nvidia-304/vdpau/libvdpau_nvidia.so.1
nvidia-304-updates: /usr/lib/nvidia-304-updates/vdpau/libvdpau_nvidia.so.1
nvidia-340: /usr/lib/nvidia-340/vdpau/libvdpau_nvidia.so.1
nvidia-340-updates: /usr/lib/nvidia-340-updates/vdpau/libvdpau_nvidia.so.1
nvidia-361: /usr/lib/nvidia-361/vdpau/libvdpau_nvidia.so.1
nvidia-361-updates: /usr/lib/nvidia-361-updates/vdpau/libvdpau_nvidia.so.1

where nvidia-361 is installed on my system. In other words: The path prime-select uses should read "/usr/lib/nvidia-361/vdpau/libvdpau_nvidia.so.1" and not " /usr/lib32/nvidia-361/vdpau/libvdpau_nvidia.so.1".

Revision history for this message
Rovanion (rovanion-luckey) wrote :

So I tried debugging the issue by inserting some print statements into the script on every call to update-alternatives --set, but I seem to be missing the crucial calls in some way:

$ LC_ALL=C sudo prime-select nvidia
Info: the current GL alternatives in use are: ['nvidia-361-prime', None]
Info: the current EGL alternatives in use are: ['nvidia-361-prime', None]
Info: selecting nvidia-361 for the nvidia profile
('gl_alternative:', '/usr/lib/nvidia-361/ld.so.conf')
('In set_alternatives, path is:', '/usr/lib/nvidia-361/ld.so.conf')
update-alternatives: using /usr/lib/nvidia-361/ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in manual mode
update-alternatives: warning: skip creation of /usr/lib32/vdpau/libvdpau_nvidia.so.1 because associated file /usr/lib32/nvidia-361/vdpau/libvdpau_nvidia.so.1 (of link group i386-linux-gnu_gl_conf) doesn't exist
update-alternatives: warning: skip creation of /usr/lib32/libvdpau_nvidia.so because associated file /usr/lib32/nvidia-361/vdpau/libvdpau_nvidia.so (of link group i386-linux-gnu_gl_conf) doesn't exist
('egl_alternative:', '/usr/lib/nvidia-361/ld.so.conf')
('In set_alternatives, path is:', '/usr/lib/nvidia-361/ld.so.conf')
update-alternatives: using /usr/lib/nvidia-361/ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_EGL.conf (i386-linux-gnu_egl_conf) in manual mode

Could it be that the issue isn't at all what I believe it to be. That the warnings update-alternatives give are not related to the issue?

Revision history for this message
Rovanion (rovanion-luckey) wrote :
Revision history for this message
Rovanion (rovanion-luckey) wrote :
Revision history for this message
Rovanion (rovanion-luckey) wrote :

As you can see none of the three above logs contain any mention of nvidia. It doesn't seem like there is any attempt at all to load the nvidia module.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.