I've just installed Garuda on my laptop for the first time (looks amazing!) and while trying to see why my external HDMI monitor is not connecting, I've found that my nvidia drivers aren't loading.
I've had a look around the forums but other problems don't look the same as mine.
When executing any nvidia-related command like nvidia-settings they often work, however I get the following message:
ERROR: NVIDIA driver is not loaded
Attempting to load the module with modprobe hangs when inserting the module with insmod:
When you installed from the Live ISO, did you boot the Live ISO using OPEN SOURCE drivers or the PROPRIETARY drivers?
Second, can you post the output of
cat /etc/mkinitcpio.conf
nvidia modules should be in there so they get loaded on startup. It's also possible you need to blacklist some other modules too but let's start with the above 2 questions.
When you installed from the Live ISO, did you boot the Live ISO using OPEN SOURCE drivers or the PROPRIETARY drivers?
If I recall correctly, I did it with the proprietary drivers. At least I don’t see any nouveau packages installed.
Second, can you post the output of
cat /etc/mkinitcpio.conf
[🔴] × cat /etc/mkinitcpio.conf --paging=never
File: /etc/mkinitcpio.conf
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(crc32c-intel intel_agp i915 amdgpu radeon nouveau)
MODULES=(crc32c-intel intel_agp i915 amdgpu radeon nouveau)
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=""
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No raid, lvm2, or encrypted root is needed.
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS=(base udev autodetect block filesystems)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev block filesystems)
#
## This setup assembles a pata mdadm array with an encrypted root FS.
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
# HOOKS=(base udev block mdadm encrypt filesystems)
#
## This setup loads an lvm2 volume group on a usb device.
# HOOKS=(base udev block lvm2 filesystems)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr, fsck and shutdown hooks.
HOOKS="base udev autodetect modconf block keyboard keymap consolefont plymouth filesystems grub-btrfs-overlayfs"
# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()
@mrvictory: Ooof… would I be better off using LTS kernel and LTS drivers?
Well, I don't like the fact your initramfs is not built with nvidia drivers, as shown in your perfectly formated post (tnx for that!). But considering the 5.18 issue with nvidia, which I haven't followed at all, maybe it's part of the problem.
I will let someone who knows more about this explain what's best to do.
So only with Intel chips then? I know 5.18 broken some mdadm setups but I hadn't noticed anything with the drivers. I suspect something silly though and it's been suggested but a mkinitcpio -P to make the system rebuild the nvidia dkms. I don't recall anyone asking if he checked for the 5.18 headers. If they aren't installed the module won't build.
Kernel 5.18 has gained support for Intel Bridge Technology. IBT is supported on Gen11+ Intel CPUs. Nvidia drivers aren't compiled for IBT so when kernel attempts to use IBT Nvidia driver fails to load.
I totally agree but most people from Garuda Team will not recommend this (as seen in another post), as it’s probably not what Garuda wants to use (otherwise they would, right) and requires building drivers once in a while, which is not recmmended for most newbies.
Still haven’t sorted it out, so I’m listing what I’ve tried so far.
I’ve tried getting the LTS kernel working but Garuda doesn’t like that I try to install the nvidia LTS drivers. So abandoned that idea.
I moved on to trying to use ibt=off option on boot but then got an error related to Samba which couldn’t load.
I might try this later, but according to FGD it might not be an easy solution to maintain in the longterm…The FroggingFamily bit, not the AMD bit. Unfortunately I’m stuck with what this laptop’s got.
I’m going to see if I can sort out that samba issue (and also get the proper error message).
EDIT: The message was a simple daemon not starting error:
FAILED Failed to start Samba NMB Daemon
Disabled nmb.service, the system still won’t boot (I don’t know why I expected otherwise… Hope’s a funny thing)
I've not checked what the live usb is doing but I think it is using an earlier version of the kernel so it might not give me a lot of insight.
I've reinstalled my system last night too, wanted a 100% fresh start after some changes I made.
I checked the journalctl entry for a boot with ibt=off and while I'm not very used to reading boot output, but I think these are the lines that are relevant to the system not booting completely:
Jun 07 06:45:50 elune systemd[1]: Starting Samba SMB Daemon...
Jun 07 06:45:51 elune sddm[822]: Display server starting...
Jun 07 06:45:51 elune sddm[822]: Adding cookie to "/var/run/sddm/{f39b69c8-61ee-483d-b96a-e897e821922b}"
Jun 07 06:45:51 elune sddm[822]: Running: /usr/bin/X -nolisten tcp -background none -seat seat0 vt1 -auth /var/run/sddm/{f39b69c8-61ee-483d-b96a-e897e821922b} -noreset -displayfd 17
Jun 07 06:45:51 elune smbd[834]: [2022/06/07 06:45:51.101259, 0] ../../source3/smbd/server.c:1741(main)
Jun 07 06:45:51 elune smbd[834]: smbd version 4.16.1 started.
Jun 07 06:45:51 elune smbd[834]: Copyright Andrew Tridgell and the Samba Team 1992-2022
Jun 07 06:45:51 elune systemd[1]: Started Samba SMB Daemon.
Jun 07 06:45:51 elune audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=smb comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
Jun 07 06:45:51 elune systemd[1]: Reached target Multi-User System.
Jun 07 06:45:51 elune systemd[1]: Reached target Graphical Interface.
Jun 07 06:45:51 elune kernel: audit: type=1130 audit(1654580751.106:73): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=smb comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
Jun 07 06:45:51 elune systemd[1]: Startup finished in 7.041s (firmware) + 15.908s (loader) + 2.742s (kernel) + 8.812s (userspace) = 34.503s.
Jun 07 06:45:51 elune sddm[822]: Failed to read display number from pipe
Jun 07 06:45:51 elune sddm[822]: Display server stopping...
Jun 07 06:45:51 elune sddm[822]: Attempt 2 starting the Display server on vt 1 failed
Jun 07 06:45:53 elune sddm[822]: Display server starting...
Jun 07 06:45:53 elune sddm[822]: Adding cookie to "/var/run/sddm/{f39b69c8-61ee-483d-b96a-e897e821922b}"
Jun 07 06:45:53 elune sddm[822]: Running: /usr/bin/X -nolisten tcp -background none -seat seat0 vt1 -auth /var/run/sddm/{f39b69c8-61ee-483d-b96a-e897e821922b} -noreset -displayfd 17
Jun 07 06:45:53 elune sddm[822]: Failed to read display number from pipe
Jun 07 06:45:53 elune sddm[822]: Display server stopping...
Jun 07 06:45:53 elune sddm[822]: Attempt 3 starting the Display server on vt 1 failed
Jun 07 06:45:53 elune sddm[822]: Could not start Display server on vt 1
These lines seemed particularly suspicious:
Jun 07 06:45:42 elune systemd-modules-load[407]: Module 'nvidia_uvm' is deny-listed
Jun 07 06:45:42 elune audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-sysctl comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
Jun 07 06:45:42 elune systemd-modules-load[407]: Module 'nvidia_drm' is deny-listed
Jun 07 06:45:42 elune systemd-modules-load[407]: Module 'nvidia_uvm' is deny-listed
It seems to be trying to load nvidia stuff, but there's a bash bit that fails, not sure how relevant that is:
Jun 07 06:45:46 elune python3[620]: [2725] INFO: Loading module nvidia
Jun 07 06:45:46 elune kernel: nvidia: module license 'NVIDIA' taints kernel.
Jun 07 06:45:46 elune kernel: Disabling lock debugging due to kernel taint
Jun 07 06:45:46 elune kernel: nvidia-nvlink: Nvlink Core is being initialized, major device number 507
Jun 07 06:45:46 elune kernel:
Jun 07 06:45:46 elune kernel: nvidia 0000:01:00.0: enabling device (0006 -> 0007)
Jun 07 06:45:46 elune kernel: nvidia 0000:01:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
Jun 07 06:45:46 elune kernel: NVRM: loading NVIDIA UNIX x86_64 Kernel Module 515.48.07 Fri May 27 03:26:43 UTC 2022
Jun 07 06:45:46 elune python3[620]: [2908] INFO: Loading module nvidia_drm
Jun 07 06:45:46 elune systemd-udevd[429]: nvidia: Process '/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidiactl c $(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 255'' failed with exit code 1.
Jun 07 06:45:46 elune kernel: nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 515.48.07 Fri May 27 03:18:00 UTC 2022
Jun 07 06:45:46 elune kernel: [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
[...]
Jun 07 06:45:47 elune systemd-udevd[478]: nvidia: Process '/usr/bin/bash -c 'for i in $(cat /proc/driver/nvidia/gpus/*/information | grep Minor | cut -d \ -f 4); do /usr/bin/mknod -Z -m 666 /dev/nvidia${i} c $(grep nvidia-frontend /proc/devices | cut -d \ -f 1) ${i}; done'' failed with exit code 1.
[...]
Jun 07 06:45:48 elune kernel: [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:01:00.0 on minor 1
Jun 07 06:45:48 elune systemd[1]: Starting Load/Save Screen Backlight Brightness of backlight:nvidia_0...
Jun 07 06:45:48 elune systemd[1]: Starting autorandr execution hook...
Jun 07 06:45:48 elune systemd[1]: Finished Load/Save Screen Backlight Brightness of backlight:nvidia_0.
Jun 07 06:45:48 elune audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-backlight@backlight:nvidia_0 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
Jun 07 06:45:48 elune kernel: audit: type=1130 audit(1654580748.107:66): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-backlight@backlight:nvidia_0 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
Jun 07 06:45:48 elune systemd[1]: autorandr.service: Deactivated successfully.
Jun 07 06:45:48 elune systemd[1]: Finished autorandr execution hook.
It looks like something is failing from optimus-manager scripts. I cannot understand the actual problem, but I suppose optimus manager developers would be the best to understand from their own code logs.
I suggest you ask at their support web page, or try another nvidia configuration without optimus manager.