90-nvidia-utils.hook

Hi Y’all!

Just installed a new kernel, and got an error somewhere in there about a dependency failure. So I dug a lil’ deeper and it turns out the dependency was mkinicpio for 90-nvidia-utils.hook, which I don’t have. I use dcracut, so there’s no mkinitcpio.

Well, I changed the hook’s Depends to dracut and changed the executable to execute /usr/share/libalpm/scripts/dracut-install, which I found in the /usr/share/libalpm/hooks/90-dracut-install.hook file provided by the dracut-hook package.

I haven’t tested it yet, but I think it’ll do the job. Please correct me if I’m wrong.

The new 90-nvidia-utils.hook:

[Trigger]
Type = Path
Operation = Install
Operation = Upgrade
Operation = Remove
Target = usr/lib/modules/*/nvidia-drm*
Target = usr/lib/modules/*/vmlinuz

[Action]
Description = Updating Kernel initcpios for Nvidia-DRM...
Depends = dracut
When = PostTransaction
NeedsTargets
Exec = /bin/sh -c 'while read -r trg; do case $trg in usr/lib/modules/*/vmlinuz) exit 0; esac; done; /usr/share/libalpm/scripts/dracut-install'

I’m a little bit confusted by your error. I also use dracut, and I thought I’d try and see if I also get an errror like you. So I just installed 6.13rc7, and no such error like yours occurred.

Summary
The following packages will be installed:
linux613
linux613-virtualbox-host-modules
linux613-nvidia

Starting
resolving dependencies...
looking for conflicting packages...
Packages (3) linux613-6.13.0rc7-1  linux613-nvidia-565.77-0.7  linux613-virtualbox-host-modules-7.1.4-0.11
Total Download Size:   206.77 MiB
Total Installed Size:  211.93 MiB
:: Proceed with installation? [Y/n]
:: Retrieving packages...
linux613-6.13.0rc7-1-x86_64 downloading...
 linux613-nvidia-565.77-0.7-x86_64 downloading...
 linux613-virtualbox-host-modules-7.1.4-0.11-x86_64 downloading...
checking keyring...
checking package integrity...
loading package files...
checking for file conflicts...
checking available disk space...
:: Processing package changes...
installing linux613...
Optional dependencies for linux613
    wireless-regdb: to set the correct wireless channels of your country [installed]
    linux-firmware: firmware images needed for some devices [installed]
installing linux613-virtualbox-host-modules...
installing linux613-nvidia...
:: Running post-transaction hooks...
(1/4) Arming ConditionNeedsUpdate...
(2/4) Updating module dependencies...
(3/4) Updating initramfs...
:: Building initramfs for linux613 (6.13.0-rc7-1-MANJARO)
dracut[I]: Executing: /usr/bin/dracut --force --hostonly --no-hostonly-cmdline /usr/lib/modules/6.13.0-rc7-1-MANJARO/initrd 6.13.0-rc7-1-MANJARO
dracut[I]: *** Including module: bash ***
dracut[I]: *** Including module: shell-interpreter ***
dracut[I]: *** Including module: systemd ***
dracut[I]: *** Including module: systemd-ask-password ***
dracut[I]: *** Including module: systemd-initrd ***
dracut[I]: *** Including module: systemd-journald ***
dracut[I]: *** Including module: systemd-modules-load ***
dracut[I]: *** Including module: systemd-sysctl ***
dracut[I]: *** Including module: systemd-sysusers ***
dracut[I]: *** Including module: systemd-tmpfiles ***
dracut[I]: *** Including module: systemd-udevd ***
dracut[I]: *** Including module: i18n ***
dracut[I]: *** Including module: kernel-modules ***
dracut[I]: *** Including module: kernel-modules-extra ***
dracut[I]: *** Including module: hwdb ***
dracut[I]: *** Including module: rootfs-block ***
dracut[I]: *** Including module: terminfo ***
dracut[I]: *** Including module: udev-rules ***
dracut[I]: *** Including module: dracut-systemd ***
dracut[I]: *** Including module: usrmount ***
dracut[I]: *** Including module: base ***
dracut[I]: *** Including module: fs-lib ***
dracut[I]: *** Including module: shutdown ***
dracut[I]: *** Including modules done ***
dracut[I]: *** Installing kernel module dependencies ***
dracut[I]: *** Installing kernel module dependencies done ***
dracut[I]: *** Resolving executable dependencies ***
dracut[I]: *** Resolving executable dependencies done ***
dracut[I]: *** Hardlinking files ***
dracut[I]: *** Hardlinking files done ***
dracut[I]: *** Generating early-microcode cpio image ***
dracut[I]: *** Constructing AuthenticAMD.bin ***
dracut[I]: *** Using microcode found in '/boot/amd-ucode.img' ***
dracut[I]: *** Store current command line parameters ***
dracut[I]: *** Stripping files ***
dracut[I]: *** Stripping files done ***
dracut[I]: *** Creating image file '/usr/lib/modules/6.13.0-rc7-1-MANJARO/initrd' ***
dracut[I]: Using auto-determined compression method 'zstd'
dracut[I]: *** Creating initramfs image file '/usr/lib/modules/6.13.0-rc7-1-MANJARO/initrd' done ***
(4/4) Updating Grub-Bootmenu
Generating grub configuration file ...
Found theme: /usr/share/grub/themes/manjaro/theme.txt
Found linux image: /boot/vmlinuz-6.13.0-rc7-1-MANJARO
Found initrd image: /boot/amd-ucode.img /boot/initramfs-6.13.0-rc7-1-MANJARO.img
Found linux image: /boot/vmlinuz-6.12.10-1-MANJARO
Found initrd image: /boot/amd-ucode.img /boot/initramfs-6.12.10-1-MANJARO.img
Found linux image: /boot/vmlinuz-6.6.72-1-MANJARO
Found initrd image: /boot/amd-ucode.img /boot/initramfs-6.6.72-1-MANJARO.img
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Found Windows Boot Manager on /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for UEFI Firmware Settings ...
Found memtest86+ image: /boot/memtest86+/memtest.bin
Found memtest86+ EFI image: /boot/memtest86+/memtest.efi
done


Done ...

I’ll add that I do have early kernel module loading enabled for nvidia as described: dracut - ArchWiki

I also searched my root drive for 90-nvidia-utils.hook and found nothing.

$ pamac search -f 90-nvidia-utils.hook
/usr/share/libalpm/hooks/90-nvidia-utils.hook is owned by nvidia-utils

Nope nothing there for me.

  pamac search -f 90-nvidia-utils.hook                                                                                                          ✔ 
No package owns 90-nvidia-utils.hook
List of all files in /usr/share/libalpm/hooks

   /usr/share/libalpm/hooks  tree  :heavy_check_mark:
.
├── 20-systemd-sysusers.hook
├── 30-systemd-binfmt.hook
├── 30-systemd-catalog.hook
├── 30-systemd-daemon-reload-system.hook
├── 30-systemd-daemon-reload-user.hook
├── 30-systemd-hwdb.hook
├── 30-systemd-restart-marked.hook
├── 30-systemd-sysctl.hook
├── 30-systemd-tmpfiles.hook
├── 30-systemd-udev-reload.hook
├── 30-systemd-update.hook
├── 30-update-mime-database.hook
├── 40-fontconfig-config.hook
├── 40-update-ca-trust.hook
├── 60-depmod.hook
├── 60-dracut-remove.hook
├── 70-mktexlsr.hook
├── 71-texlive-language.hook
├── 72-texlive-fmtutil.hook
├── 73-texlive-updmap.hook
├── 80-cronie.hook
├── 90-dracut-install.hook
├── 90-update-appstream-cache.hook
├── 98-install-grub.hook
├── 99-update-grub.hook
├── accounts-daemon-restart.hook
├── appimage-binfmt-remove.hook
├── dbus-reload.hook
├── dconf-update.hook
├── detect-old-perl-modules.hook
├── firefox-dev-post.hook
├── firefox-dev-pre.hook
├── firefox-kde-post.hook
├── firefox-kde-pre.hook
├── firefox-post.hook
├── firefox-pre.hook
├── fontconfig-32.hook
├── fontconfig.hook
├── gdk-pixbuf-query-loaders-32.hook
├── gdk-pixbuf-query-loaders.hook
├── gio-querymodules-32.hook
├── gio-querymodules.hook
├── glib-compile-schemas.hook
├── gtk4-querymodules.hook
├── gtk-query-immodules-2.0-32.hook
├── gtk-query-immodules-2.0.hook
├── gtk-query-immodules-3.0.hook
├── gtk-update-icon-cache.hook
├── networkmanager-connectivity.hook
├── pacman-mirrors-install.hook
├── pacman-mirrors-upgrade.hook
├── realtime-privileges.hook
├── texinfo-install.hook
├── texinfo-remove.hook
├── thunderbird-post.hook
├── thunderbird-pre.hook
├── update-desktop-database.hook
├── update-vlc-plugin-cache.hook
└── xorg-mkfontscale.hook

1 directory, 59 files

I also checked on my older system (which I had also switched over to dracut) and that file also does not exist.

Just noticed he’s on stable branch and I am on unstable, perhaps certain updates have removed that file causing him this issue.

I’m going to go ahead and guess yoiu either

  1. Do not have an Nvidia GPU; or
  2. you don’t use the proprietary drifvers.

Because:

$ pamac search -f 90-nvidia-utils.hook
/usr/share/libalpm/hooks/90-nvidia-utils.hook is owned by nvidia-utils

Edit:

OK, no:

GPU: nvidia GeForce RTX 4070 Ti SUPER
GPU Driver: proprietary

So I’m guessing the newer driver baked into the kernel…is different… :man_shrugging: