mhwd only knows about pre-compiled modules per kernel. Dkms needs the header packages additionally installed. You don’t need mhwd to manage drivers if you install the kernel and its matching headers when you use dkms. mhwd doesn’t install headers, hence dkms can’t compile the modules for the new kernel.
I din’t messed with dkms. All I have done is changed from 6.17(all modules installed and loaded) to 6.18(all DKMS modules missing).
This def. worked before (changing form EOL kernel to a more recent one).
I was never forced to deal with dkms manually(forget about the ryzen one).
So..I don’t get it. This mhwd tool seems to be more “in the way” then being helpful at all.
As we have seen during the current NV 580 mess, people have to de-install packages (not AUR), just to be able to roll back the NV driver. Now kernel-switching is not working as before.
I have seen plenty of missing headers during the kernel switch/install in mhwd.
Again…I don’t get it, why should one still use mhwd ?
And…what is the official way (at least for now) to upgrade the EOL’ed kernel including it’s dkms-modules, like i.e. NV an VIRTUALBOX in Manjaro ?
I removed the linux617 kernel and headers from Setting>Manjaro Settings Manager . Then I install linux618 from the same place. I have a wireless RTL88121CE card, which uses the dkms package and it was installed with the linux618 kernel and headers and it was configured here.
Then, I run install-grub and update-grub before reboot. After the reboot, the grub menu showed me the linux617 as installed, but I booted in the linux618 kernel without problem.
When I tried to remove the linux617 kernel with the option mhwd-kernel -r I found that linux617 was removed but linux617-headers cannot be remove because depends on the linux-meta package. So I removed both.
mhwd-kernel -r linux617 linux-meta
At last, I run
sudo install-grub
sudo update-grub
And after the reboot the linux617 kernel was not presented in the grub menu.
Here I include the lines from the pacman.log:
[2025-12-23T17:48:01-0300] [ALPM] installed linux618 (6.18.2-1)
[2025-12-23T17:48:03-0300] [ALPM] installed linux618-headers (6.18.2-1)
[2025-12-23T17:48:04-0300] [ALPM] transaction completed
[2025-12-23T17:48:05-0300] [ALPM] running ‘30-systemd-update.hook’…
[2025-12-23T17:48:05-0300] [ALPM] running ‘60-depmod.hook’…
[2025-12-23T17:48:08-0300] [ALPM] running ‘70-dkms-install.hook’…
[2025-12-23T17:48:08-0300] [ALPM-SCRIPTLET] ==> dkms install --no-depmod rtl8821ce/1.0.5.r188.g4e6b887 -k 6.18.2-1-MANJARO
[2025-12-23T17:48:08-0300] [ALPM-SCRIPTLET] Deprecated feature: CLEAN (/var/lib/dkms/rtl8821ce/1.0.5.r188.g4e6b887/source/dkms.conf)
[2025-12-23T17:50:19-0300] [ALPM-SCRIPTLET] ==> depmod 6.18.2-1-MANJARO
[2025-12-23T17:50:22-0300] [ALPM] running ‘90-mkinitcpio-install.hook’…
[2025-12-23T17:50:22-0300] [ALPM-SCRIPTLET] ==> Building image from preset: /etc/mkinitcpio.d/linux618.preset: ‘default’
[2025-12-23T17:50:22-0300] [ALPM-SCRIPTLET] ==> Using default configuration file: ‘/etc/mkinitcpio.conf’
[2025-12-23T17:50:22-0300] [ALPM-SCRIPTLET] → -k /boot/vmlinuz-6.18-x86_64 -g /boot/initramfs-6.18-x86_64.img
[2025-12-23T17:50:23-0300] [ALPM-SCRIPTLET] ==> Starting build: ‘6.18.2-1-MANJARO’
[2025-12-23T17:50:23-0300] [ALPM-SCRIPTLET] → Running build hook: [base]
[2025-12-23T17:50:23-0300] [ALPM-SCRIPTLET] → Running build hook: [udev]
[2025-12-23T17:50:23-0300] [ALPM-SCRIPTLET] → Running build hook: [autodetect]
[2025-12-23T17:50:23-0300] [ALPM-SCRIPTLET] → Running build hook: [microcode]
[2025-12-23T17:50:24-0300] [ALPM-SCRIPTLET] → Running build hook: [kms]
[2025-12-23T17:50:25-0300] [ALPM-SCRIPTLET] → Running build hook: [modconf]
[2025-12-23T17:50:25-0300] [ALPM-SCRIPTLET] → Running build hook: [block]
[2025-12-23T17:50:27-0300] [ALPM-SCRIPTLET] → Running build hook: [keyboard]
[2025-12-23T17:50:27-0300] [ALPM-SCRIPTLET] → Running build hook: [keymap]
[2025-12-23T17:50:27-0300] [ALPM-SCRIPTLET] → Running build hook: [consolefont]
[2025-12-23T17:50:27-0300] [ALPM-SCRIPTLET] ==> WARNING: consolefont: no font found in configuration
[2025-12-23T17:50:27-0300] [ALPM-SCRIPTLET] → Running build hook: [filesystems]
[2025-12-23T17:50:27-0300] [ALPM-SCRIPTLET] → Running build hook: [fsck]
[2025-12-23T17:50:27-0300] [ALPM-SCRIPTLET] ==> Generating module dependencies
[2025-12-23T17:50:27-0300] [ALPM-SCRIPTLET] ==> Creating zstd-compressed initcpio image: ‘/boot/initramfs-6.18-x86_64.img’
[2025-12-23T17:50:28-0300] [ALPM-SCRIPTLET] → Early uncompressed CPIO image generation successful
[2025-12-23T17:50:28-0300] [ALPM-SCRIPTLET] ==> Initcpio image generation successful
[2025-12-23T17:50:28-0300] [ALPM] running ‘99-update-grub.hook’…
[2025-12-23T17:50:28-0300] [ALPM-SCRIPTLET] Generating grub configuration file …
[2025-12-23T17:50:28-0300] [ALPM-SCRIPTLET] Found theme: /usr/share/grub/themes/manjaro/theme.txt
[2025-12-23T17:50:29-0300] [ALPM-SCRIPTLET] Found linux image: /boot/vmlinuz-6.18-x86_64
[2025-12-23T17:50:29-0300] [ALPM-SCRIPTLET] Found initrd image: /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-6.18-x86_64.img
[2025-12-23T17:50:29-0300] [ALPM-SCRIPTLET] Found linux image: /boot/vmlinuz-6.17-x86_64
[2025-12-23T17:50:29-0300] [ALPM-SCRIPTLET] Found initrd image: /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-6.17-x86_64.img
[2025-12-23T17:50:29-0300] [ALPM-SCRIPTLET] Found linux image: /boot/vmlinuz-6.12-x86_64
[2025-12-23T17:50:29-0300] [ALPM-SCRIPTLET] Found initrd image: /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-6.12-x86_64.img
[2025-12-23T17:50:29-0300] [ALPM-SCRIPTLET] Warning: os-prober will be executed to detect other bootable partitions.
[2025-12-23T17:50:29-0300] [ALPM-SCRIPTLET] Its output will be used to detect bootable binaries on them and create new boot entries.
[2025-12-23T17:50:30-0300] [ALPM-SCRIPTLET] Adding boot menu entry for UEFI Firmware Settings …
[2025-12-23T17:50:30-0300] [ALPM-SCRIPTLET] Root filesystem isn’t btrfs
[2025-12-23T17:50:30-0300] [ALPM-SCRIPTLET] If you think an error has occurred, please file a bug report at “https://github.com/Antynea/grub-btrfs”
[2025-12-23T17:50:30-0300] [ALPM-SCRIPTLET] Found memtest86+ image: /boot/memtest86+/memtest.bin
[2025-12-23T17:50:30-0300] [ALPM-SCRIPTLET] /usr/bin/grub-probe: warning: unknown device type nvme0n1.
[2025-12-23T17:50:30-0300] [ALPM-SCRIPTLET] Found memtest86+ EFI image: /boot/memtest86+/memtest.efi
[2025-12-23T17:50:30-0300] [ALPM-SCRIPTLET] /usr/bin/grub-probe: warning: unknown device type nvme0n1.
[2025-12-23T17:50:30-0300] [ALPM-SCRIPTLET] done
dkms can only works with the proper headers packages installed. In your case linux618-headers. mhwd only deals with pre-compiled modules like linux618-nvidia as example.
What is the output of:
pacman -Q | grep linux
Based on your pacman.log a dkms for the realtek card 8821ce module got compiled for 6.18
I have done, what I have allways done. I used mhwd to install the 6.18 kernel.
But as you can see, the virtualbox modules are missing, and no X-server start…just hangs without erros when trying to load the 6.18 kernle. I also don’t see any NV driver messages. Maybe 6.18 doesn’t like NV 575 ?
Using mhwd-kernel to sync a new kernel - usually pulls - the necessary extra packages like headers, virtualbox and nvidia (only if they exist for the current kernel) - and if you add the rmc argument then you can remove the running kernel in the same flow.
mhwd-kernel -i linux618 rmc
If this - for reasons unknown to me - fails now, the simple remedy is
If your issue relates to the linux-meta and linux-meta-nvidia package
sudo pacman -R linux-meta linux-meta-nvidia
I will check later today, I have pressing matters to attend - if I can reproduce your issue - and if I can I will try to investigate, are you OK with that.
EDIT: 2026-01-03T06:30:00Z
I have checked and I have verified - that if you have kernel related packages for the currently running kernel - those will be automagically included when you use mhwd-kernel to install a new kernel.
If you manually use pacman to install linux<kernel> linux-nvidia` then those extra packages you need will not be included automagically, those will need to be added to the package manager’s argument list.
Maybe confirming something on my side: I have a Realtek 8125 card. DKMS and headers installed for 6.12 and 6.18 kernels. R8125-dkms installed from AUR. When checking the output of lspci -v, kernel modules r8169 and r8125 are listed, but r8129 is used, for both 6.12 and 6.18 kernels.
You might want to or need to blacklist one module to force the use of the other
or to load it explicitly before the the wrong one is automatically chosen.
Just to close this up, issue seems to be resolved for now:
-before the last major update, I booted from (allready EOL’ed) 6.17 into 6.12.
-this time, I used (unrecomended) pamac to perform the big update
=pamac popped-up wit a message that additionaly the 6.18-headers and virtualbox-modules needs to be installed. So for whatever reason, this packages have been not installed(?) during the previous big update.
In short words, after the latest regular update, all seems to be working now:
-can still boot into 6.12 with all dkms-modules
-same for 6.18, which didn’t work before
However, but a separate NVIDIA issue (like with 580.x), I needed to disable the XFCE composer to avoid flickering issues when using a terminal.
Switching between the NV-divers 575.x and 590.x seems to be working now—-without any package-conflicts.