to install the G06 NVIDIA drivers, and now when it reboots it doesn’t start X. It starts to load NVIDIA driver 550.78, which supports the RTX 3090, but then it gives
/usr/lib/gdm/gdm-x-session[1810]: (EE) NVIDIA: Failed to initialize the NVIDIA kernel module. Please see the
/usr/lib/gdm/gdm-x-session[1810]: (EE) NVIDIA: system’s kernel log for additional error messages and
/usr/lib/gdm/gdm-x-session[1810]: (EE) NVIDIA: consult the NVIDIA README for details.
There isn’t a kernel log other than the messages, and I’ve read things on NVIDIA’s site to and haven’t been able to figure this out. I also tried installing the hard way, but that fails because it can’t find version.h, even though the -devel package is installed.
If I take the RTX 3090 out, the system starts up fine using the Intel graphics on the motherboard.
I have now discovered that if I follow the instructions on
(which includes installing kernel modules not installed previously) upon reboot it still goes to a prompt, with the same errors in the messages file. However, if I login at the console, and manually do
modprobe nvidia
the kernel module loads, and then startx works! So, it would seem that the kernel module isn’t loading during boot, but I don’t know why.
on the current ramdisk and I get a whole list of files with “nvidia” in the name. However, having done nothing to it all weekend, and having been out of the office yesterday, I came in today, did nothing but a reboot, and everything is working just fine now.
Well, I spoke too soon. Thinking it was working, I shut it down, moved it, turned it back on, and now it’s back to
/usr/lib/gdm/gdm-x-session[1809]: (EE) NVIDIA: Failed to initialize the NVIDIA kernel module. Please see the
/usr/lib/gdm/gdm-x-session[1809]: (EE) NVIDIA: system’s kernel log for additional error messages and
/usr/lib/gdm/gdm-x-session[1809]: (EE) NVIDIA: consult the NVIDIA README for details.
again. This is after I manually ran ‘dracut -f’', which produced no change in the lsinitrd output, anyway.
@michael.vanhorn I would also suspect that suse-prime has been installed, remove that (and lock), reboot into the BIOS and disable the Intel GPU, then boot… Or just use the Nvidia gpu for Prime Render Offload?
@malcolmlewis Here is the output of ‘modprobe -c nvidia…’:
/sbin/modprobe -c nvidia | grep -E “nvidia”
blacklist nvidia
blacklist nvidia_drm
blacklist nvidia_modeset
install nvidia PATH=$PATH:/bin:/usr/bin; if /sbin/modprobe --ignore-install nvidia NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=$(getent group video | cut -d: -f3) NVreg_DeviceFileMode=0660 NVreg_PreserveVideoMemoryAllocations=1; then if /sbin/modprobe nvidia_uvm; then if [ ! -c /dev/nvidia-uvm ]; then mknod -m 660 /dev/nvidia-uvm c $(cat /proc/devices | while read major device; do if [ “$device” == “nvidia-uvm” ]; then echo $major; break; fi ; done) 0; chown :video /dev/nvidia-uvm; fi; if [ ! -c /dev/nvidia-uvm-tools ]; then mknod -m 660 /dev/nvidia-uvm-tools c $(cat /proc/devices | while read major device; do if [ “$device” == “nvidia-uvm” ]; then echo $major; break; fi ; done) 1; chown :video /dev/nvidia-uvm-tools; fi; fi; if [ ! -c /dev/nvidiactl ]; then mknod -m 660 /dev/nvidiactl c 195 255; chown :video /dev/nvidiactl; fi; devid=-1; for dev in $(ls -d /sys/bus/pci/devices/); do vendorid=$(cat $dev/vendor); if [ “$vendorid” == “0x10de” ]; then class=$(cat $dev/class); classid=${class%%00}; if [ “$classid” == “0x0300” -o “$classid” == “0x0302” ]; then devid=$((devid+1)); if [ ! -L /run/udev/static_node-tags/uaccess/nvidia${devid} ]; then ln -snf /dev/nvidia${devid} /run/udev/static_node-tags/uaccess/nvidia${devid}; fi; if [ ! -c /dev/nvidia${devid} ]; then mknod -m 660 /dev/nvidia${devid} c 195 ${devid}; chown :video /dev/nvidia${devid}; fi; fi; fi; done; /sbin/modprobe nvidia_drm; if [ ! -c /dev/nvidia-modeset ]; then mknod -m 660 /dev/nvidia-modeset c 195 254; chown :video /dev/nvidia-modeset; fi; fi
options nvidia_drm modeset=1
options nvidia NVreg_DynamicPowerManagement=0x01
options nvidia_drm modeset=1 fbdev=1
alias char_major_195_ nvidia
alias mbp_nvidia_bl apple_bl
alias pci:v000010DEdsvsdbc03sc00i00 nvidia_drm
alias pci:v000010DEdsvsdbc03sc00i00 nvidia
alias pci:v000010DEdsvsdbc03sc02i00 nvidia_drm
alias pci:v000010DEdsvsdbc03sc02i00 nvidia
alias pci:v000010DEdsvsdbc06sc80i00 nvidia_drm
alias pci:v000010DEdsvsdbc06sc80i00 nvidia
alias pci:v000010DEdsvsdbc0Csc80i i2c_nvidia_gpu
alias typec:id0955m* typec_nvidia
alias wmi:603E9613_EF25_4338_A3D0_C46177516DB7 nvidia_wmi_ec_backlight
alias symbol:nvKmsKapiGetFunctionsTable nvidia_modeset
alias symbol:nvUvmInterfaceAddressSpaceCreate nvidia
alias symbol:nvUvmInterfaceAddressSpaceDestroy nvidia
alias symbol:nvUvmInterfaceBindChannelResources nvidia
alias symbol:nvUvmInterfaceChannelAllocate nvidia
alias symbol:nvUvmInterfaceChannelDestroy nvidia
alias symbol:nvUvmInterfaceCslDecrypt nvidia
alias symbol:nvUvmInterfaceCslEncrypt nvidia
alias symbol:nvUvmInterfaceCslIncrementIv nvidia
alias symbol:nvUvmInterfaceCslInitContext nvidia
alias symbol:nvUvmInterfaceCslLogExternalEncryption nvidia
alias symbol:nvUvmInterfaceCslQueryMessagePool nvidia
alias symbol:nvUvmInterfaceCslRotateIv nvidia
alias symbol:nvUvmInterfaceCslSign nvidia
alias symbol:nvUvmInterfaceCslUpdateContext nvidia
alias symbol:nvUvmInterfaceDeRegisterUvmOps nvidia
alias symbol:nvUvmInterfaceDeinitCslContext nvidia
alias symbol:nvUvmInterfaceDestroyAccessCntrInfo nvidia
alias symbol:nvUvmInterfaceDestroyFaultInfo nvidia
alias symbol:nvUvmInterfaceDeviceCreate nvidia
alias symbol:nvUvmInterfaceDeviceDestroy nvidia
alias symbol:nvUvmInterfaceDisableAccessCntr nvidia
alias symbol:nvUvmInterfaceDupAddressSpace nvidia
alias symbol:nvUvmInterfaceDupAllocation nvidia
alias symbol:nvUvmInterfaceDupMemory nvidia
alias symbol:nvUvmInterfaceEnableAccessCntr nvidia
alias symbol:nvUvmInterfaceFlushReplayableFaultBuffer nvidia
alias symbol:nvUvmInterfaceFreeDupedHandle nvidia
alias symbol:nvUvmInterfaceGetChannelResourcePtes nvidia
alias symbol:nvUvmInterfaceGetEccInfo nvidia
alias symbol:nvUvmInterfaceGetExternalAllocPtes nvidia
alias symbol:nvUvmInterfaceGetFbInfo nvidia
alias symbol:nvUvmInterfaceGetGpuInfo nvidia
alias symbol:nvUvmInterfaceGetNonReplayableFaults nvidia
alias symbol:nvUvmInterfaceGetP2PCaps nvidia
alias symbol:nvUvmInterfaceGetPmaObject nvidia
alias symbol:nvUvmInterfaceHasPendingNonReplayableFaults nvidia
alias symbol:nvUvmInterfaceInitAccessCntrInfo nvidia
alias symbol:nvUvmInterfaceInitFaultInfo nvidia
alias symbol:nvUvmInterfaceMemoryAllocFB nvidia
alias symbol:nvUvmInterfaceMemoryAllocSys nvidia
alias symbol:nvUvmInterfaceMemoryCpuMap nvidia
alias symbol:nvUvmInterfaceMemoryCpuUnMap nvidia
alias symbol:nvUvmInterfaceMemoryFree nvidia
alias symbol:nvUvmInterfaceOwnPageFaultIntr nvidia
alias symbol:nvUvmInterfaceP2pObjectCreate nvidia
alias symbol:nvUvmInterfaceP2pObjectDestroy nvidia
alias symbol:nvUvmInterfacePagingChannelAllocate nvidia
alias symbol:nvUvmInterfacePagingChannelDestroy nvidia
alias symbol:nvUvmInterfacePagingChannelPushStream nvidia
alias symbol:nvUvmInterfacePagingChannelsMap nvidia
alias symbol:nvUvmInterfacePagingChannelsUnmap nvidia
alias symbol:nvUvmInterfacePmaAllocPages nvidia
alias symbol:nvUvmInterfacePmaFreePages nvidia
alias symbol:nvUvmInterfacePmaPinPages nvidia
alias symbol:nvUvmInterfacePmaRegisterEvictionCallbacks nvidia
alias symbol:nvUvmInterfacePmaUnregisterEvictionCallbacks nvidia
alias symbol:nvUvmInterfaceQueryCaps nvidia
alias symbol:nvUvmInterfaceQueryCopyEnginesCaps nvidia
alias symbol:nvUvmInterfaceRegisterGpu nvidia
alias symbol:nvUvmInterfaceRegisterUvmCallbacks nvidia
alias symbol:nvUvmInterfaceReleaseChannel nvidia
alias symbol:nvUvmInterfaceReportNonReplayableFault nvidia
alias symbol:nvUvmInterfaceRetainChannel nvidia
alias symbol:nvUvmInterfaceServiceDeviceInterruptsRM nvidia
alias symbol:nvUvmInterfaceSessionCreate nvidia
alias symbol:nvUvmInterfaceSessionDestroy nvidia
alias symbol:nvUvmInterfaceSetPageDirectory nvidia
alias symbol:nvUvmInterfaceStopChannel nvidia
alias symbol:nvUvmInterfaceTogglePrefetchFaults nvidia
alias symbol:nvUvmInterfaceTsgAllocate nvidia
alias symbol:nvUvmInterfaceTsgDestroy nvidia
alias symbol:nvUvmInterfaceUnregisterGpu nvidia
alias symbol:nvUvmInterfaceUnsetPageDirectory nvidia
alias symbol:nv_register_error_cb nvidia
alias symbol:nv_unregister_error_cb nvidia
alias symbol:nvidia_get_rm_ops nvidia
alias symbol:nvidia_p2p_destroy_mapping nvidia
alias symbol:nvidia_p2p_dma_map_pages nvidia
alias symbol:nvidia_p2p_dma_unmap_pages nvidia
alias symbol:nvidia_p2p_free_dma_mapping nvidia
alias symbol:nvidia_p2p_free_page_table nvidia
alias symbol:nvidia_p2p_get_pages nvidia
alias symbol:nvidia_p2p_get_pages_persistent nvidia
alias symbol:nvidia_p2p_get_rsync_registers nvidia
alias symbol:nvidia_p2p_init_mapping nvidia
alias symbol:nvidia_p2p_put_pages nvidia
alias symbol:nvidia_p2p_put_pages_persistent nvidia
alias symbol:nvidia_p2p_put_rsync_registers nvidia
alias symbol:nvidia_p2p_register_rsync_driver nvidia
alias symbol:nvidia_p2p_unregister_rsync_driver nvidia
After removing sues-prime, it seems to be right, finally. I wasn’t able to disable the Intel card in the BIOS. The most I can do is set the nvidia card to the primary. I left it set to “auto”, though, so I could finish rebooting so as to check the effect of removing suse-prime. And that seems to be working, and after multiple reboots, so I’m just going to leave it where it is.
Perhaps removing suse-prime should be including in the install instructions for the NVIDIA drivers?
@michael.vanhorn So the above was the issue… suse-prime is more for laptops, rather than desktops…
Do you need the Nvidia card all the time, you could look at using Prime Render Offload See: https://download.nvidia.com/XFree86/Linux-x86_64/550.78/README/primerenderoffload.html Your on GNOME, if so there is switcherooctl which has dbus integration in GNOME, can just right-click and launch an application with the discrete card (Nvidia,/AMD) it’s what I use here on GNOME.
If it was just me, I could probably use the switcher to only use it when needed, but it’s a lab full of people who wouldn’t understand what that meant, so, yes, we need it all the time.