Dear Andreas,

I checked modprobe behaviors by using its "-vv" option as you suggested.

I ran the following commands:
$ sudo /sbin/rmmod nvidia-uvm
$ /usr/bin/nvidia-modprobe -u  > without_sudo.log 2>&1
$ sudo /usr/bin/nvidia-modprobe -u  > with_sudo.log 2>&1

Please check the attached files for the details?

In both cases, modprobe runs with root privilege, and
executes "insmod nvidia-current.ko" internally.
However, when sudo is not used, insmod fails with "Operation not permitted."
After that, modprobe will skip "insmod nvidia-current-uvm.ko"

I use kmod-25-1, nvidia-modprobe-384.111-1 on sid/x86_64.

Could you try the following steps with kmod-25-1 ?

$ sudo /sbin/modprobe nvidia_current
$ sudo /sbin/modprobe -r nvidia_uvm
$ nvidia-modprobe -u
$ lsmod | grep nvidia_uvm

Best,
Hiromasa YOSHIMOTO


On 2018年02月05日 20:41, Andreas Beckmann wrote:
On 2018-02-05 10:37, Hiromasa YOSHIMOTO wrote:
Dear Andreas,

Thank you for your small program.
I have no problem with setuid binaries on my system.

I’ve checked also the source code of nvidia-modprobe,
and modified it to show the error messages. The diff is as follows.

Thanks for checking :-)

With this modification, nvidia-modprobe -u will output the following message
when it fails.
———-
modprobe_path: /sbin/modprobe
module_name: nvidia-uvm
eeuid() 0
modprobe: ERROR: could not insert 'nvidia_current_uvm': Operation not permitted

the failing command here is (from nvidia.conf)
     modprobe -i nvidia-current-uvm

you could make all the commands very verbose in nvidia.conf by using
always
     modprobe -vv

can you reproduce the failure with
$ lsmod | grep nvidia
$ sudo modprobe -vv -i nvidia-current-uvm

modprobe: ERROR: ../libkmod/libkmod-module.c:979 command_do() Error running 
install command for nvidia_uvm
modprobe: ERROR: could not insert ‘nvidia_uvm': Operation not permitted

and these are the followup-errors from the initial modprobe command done
by nvidia-modprobe


 From this output, I think this issue occurs
when we have any wrong configuration in /etc/modprobe.d/.
But everything is as it is intended ...

In my case, /etc/modprobe.d/nvidia.conf has the following lines.
———
install nvidia modprobe -i nvidia-current $CMDLINE_OPTS
install nvidia-modeset modprobe nvidia ; modprobe -i nvidia-current-modeset 
$CMDLINE_OPTS
install nvidia-drm modprobe nvidia-current-modeset ; modprobe -i 
nvidia-current-drm $CMDLINE_OPTS
install nvidia-uvm modprobe nvidia ; modprobe -i nvidia-current-uvm 
$CMDLINE_OPTS
remove nvidia modprobe -r -i nvidia-drm nvidia-modeset nvidia-uvm nvidia
——-

I’m bit confusing between nvidia_uvm and nvidia-uvm. However,

'-' and '_' are treated as equivalent by the kernel.
(probably because the module names need to be mapped to valid C
identifiers and '-' is not valid there, but in filenames)

adding a line below, nvidia-modprobe -u now works fine as expected.
———
alias nvidia-uvm  nvidia-current-uvm
——-

aliases add extreme madness to the renamed nvidia module madness :-)
the alias probably breaks
   modprobe -r nvidia-uvm
because there is no nvidia-current-uvm module loaded that could be unloaded


Andreas

modprobe_path: /sbin/modprobe
module_name: nvidia-uvm
eeuid() 0
modprobe: INFO: ../libkmod/libkmod.c:364 kmod_set_log_fn() custom logging function 0x5623cfae2b90 registered
modprobe: INFO: ../libkmod/libkmod.c:364 kmod_set_log_fn() custom logging function 0x5642d2e14b90 registered
modprobe: INFO: ../libkmod/libkmod.c:331 kmod_unref() context 0x5642d37403f0 released
modprobe: INFO: ../libkmod/libkmod.c:364 kmod_set_log_fn() custom logging function 0x559425f77b90 registered
modprobe: INFO: ../libkmod/libkmod-module.c:886 kmod_module_insert_module() Failed to insert module '/lib/modules/4.14.8-custom/updates/dkms/nvidia-current.ko': Operation not permitted
modprobe: ERROR: could not insert 'nvidia_current_uvm': Operation not permitted
modprobe: INFO: ../libkmod/libkmod.c:331 kmod_unref() context 0x5594264a8400 released
insmod /lib/modules/4.14.8-custom/updates/dkms/nvidia-current.ko 
modprobe: ERROR: ../libkmod/libkmod-module.c:979 command_do() Error running install command for nvidia_uvm
modprobe: ERROR: could not insert 'nvidia_uvm': Operation not permitted
modprobe: INFO: ../libkmod/libkmod.c:331 kmod_unref() context 0x5623d1130390 released
install modprobe nvidia ; modprobe -i nvidia-current-uvm $CMDLINE_OPTS 
modprobe_path: /sbin/modprobe
module_name: nvidia-uvm
eeuid() 0
modprobe: INFO: ../libkmod/libkmod.c:364 kmod_set_log_fn() custom logging function 0x55b781a39b90 registered
modprobe: INFO: ../libkmod/libkmod.c:364 kmod_set_log_fn() custom logging function 0x55a6268c4b90 registered
modprobe: INFO: ../libkmod/libkmod.c:331 kmod_unref() context 0x55a62817f3f0 released
modprobe: INFO: ../libkmod/libkmod.c:364 kmod_set_log_fn() custom logging function 0x55a9397c8b90 registered
modprobe: INFO: ../libkmod/libkmod-module.c:886 kmod_module_insert_module() Failed to insert module '/lib/modules/4.14.8-custom/updates/dkms/nvidia-current.ko': File exists
modprobe: INFO: ../libkmod/libkmod.c:331 kmod_unref() context 0x55a93a317400 released
insmod /lib/modules/4.14.8-custom/updates/dkms/nvidia-current.ko 
insmod /lib/modules/4.14.8-custom/updates/dkms/nvidia-current-uvm.ko 
modprobe: INFO: ../libkmod/libkmod.c:331 kmod_unref() context 0x55b782cbd390 released
install modprobe nvidia ; modprobe -i nvidia-current-uvm $CMDLINE_OPTS 

Reply via email to