MHWD failed to switch to nvidia-open

In the last update, I saw that the nvidia proprietary driver should be switched to nvidia-open on supported hardware:

Continuing the discussion from [Stable Update] 2025-03-24 - NVIDIA, PipeWire, Mesa, Firefox, Thunderbird, KDE Frameworks:

However, I noticed that my system still uses nvidia driver:

inxi -Gxxx                                                                                                                                                                                                                                 1 ✘ 
Graphics:
  Device-1: NVIDIA AD102 [GeForce RTX 4090] vendor: Micro-Star MSI
    driver: nvidia v: 570.133.07 arch: Lovelace pcie: speed: 2.5 GT/s lanes: 16
    ports: active: none off: DP-1 empty: DP-2,DP-3,HDMI-A-1 bus-ID: 0b:00.0
    chip-ID: 10de:2684 class-ID: 0300
  Device-2: Logitech Webcam C930e driver: snd-usb-audio,uvcvideo type: USB
    rev: 2.0 speed: 480 Mb/s lanes: 1 bus-ID: 5-4:2 chip-ID: 046d:0843
    class-ID: 0102 serial: 40D3157E
  Display: x11 server: X.Org v: 21.1.16 with: Xwayland v: 24.1.6
    compositor: kwin_x11 driver: X: loaded: nvidia unloaded: modesetting
    alternate: fbdev,nouveau,nv,vesa gpu: nvidia,nvidia-nvswitch
    display-ID: :0 screens: 1
  Screen-1: 0 s-res: 3840x2160 s-dpi: 159 s-size: 613x352mm (24.13x13.86")
    s-diag: 707mm (27.83")
  Monitor-1: DP-1 mapped: DP-0 note: disabled model: Samsung U28E590
    serial: HTPK600548 res: mode: 3840x2160 hz: 60 scale: 100% (1) dpi: 160
    size: 610x350mm (24.02x13.78") diag: 698mm (27.5") modes: max: 3840x2160
    min: 640x480
  API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia gbm:
    drv: nvidia surfaceless: drv: nvidia x11: drv: nvidia inactive: wayland
  API: OpenGL v: 4.6.0 vendor: nvidia v: 570.133.07 glx-v: 1.4
    direct-render: yes renderer: NVIDIA GeForce RTX 4090/PCIe/SSE2
  API: Vulkan v: 1.4.309 layers: 5 surfaces: xcb,xlib device: 0
    type: discrete-gpu driver: N/A device-ID: 10de:2684
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor gpu: nvidia-smi wl: wayland-info
    x11: xdpyinfo, xprop, xrandr

I tried to perform mhwd manually, but it failed to switch the driver because it can’t remove nvidia

LC_ALL=C sudo mhwd -a pci nonfree 0300                                                                                                                                                                                              1 ✘  4s  
> Using config 'video-nvidia' for device: 0000:0b:00.0 (0300:10de:2684) Display controller nVidia Corporation 
> Installing video-nvidia...
Using default
Has lib32 support: true
Sourcing /var/lib/mhwd/db/pci/graphic_drivers/nvidia/MHWDCONFIG
Processing classid: 0300
Sourcing /var/lib/mhwd/scripts/include/0300
Processing classid: 0302
:: Synchronizing package databases...
 core downloading...
 extra downloading...
 multilib downloading...
warning: nvidia-utils-570.133.07-2 is up to date -- skipping
warning: lib32-nvidia-utils-570.133.07-1 is up to date -- skipping
resolving dependencies...
looking for conflicting packages...
:: linux612-nvidia-open-570.133.07-3 and linux612-nvidia-570.133.07-3 are in conflict. Remove linux612-nvidia? [y/N] error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)

:: linux612-nvidia-open-570.133.07-3 and linux612-nvidia-570.133.07-3 are in conflict
Error: pacman failed!
Error: script failed!

Are there any instructions on how to perform the driver switch?
Cheers.

I had the same issue today. I was testing if my system issues would be resolved by switch to the nouveau drivers.
If you don’t get a better solution, this is what I got from Deepseek so take it for what it is :slight_smile: :

Since you have multiple Nvidia-related packages installed, we need to carefully remove them before switching to the open-source Nouveau drivers. Here’s how to proceed:
Step 1: Remove All Nvidia Packages

We’ll remove all Nvidia-related packages to avoid conflicts.

    List all installed Nvidia packages:
    bash
    Copy

    pacman -Qs nvidia

    (You already did this, so we’ll work with your output.)

    Remove the main Nvidia driver and dependencies:
    bash
    Copy

    sudo pacman -R linux612-nvidia nvidia-utils lib32-nvidia-utils nvidia-settings nvidia-prime

    Remove additional Nvidia helper packages:
    bash
    Copy

    sudo pacman -R gwe nvidia-driver-assistant mhwd-nvidia libxnvctrl

    Force remove any remaining dependencies:
    bash
    Copy

    sudo pacman -R $(pacman -Qdtq)  # Removes orphaned dependencies

Step 2: Remove the MHWD Nvidia Driver Config

Now, remove the hybrid driver that was causing issues earlier:
bash
Copy

sudo mhwd -r pci video-hybrid-intel-nvidia-prime

Step 3: Install Nouveau (Open-Source) Drivers

    Install the free driver (video-linux includes Nouveau):
    bash
    Copy

    sudo mhwd -a pci free 0300

    Regenerate initramfs:
    bash
    Copy

    sudo mkinitcpio -P

    Reboot:
    bash
    Copy

    reboot

Step 4: Verify Nouveau is Active

After rebooting, check:
bash
Copy

lsmod | grep nouveau

If Nouveau is loaded, you’ll see output like:
Copy

nouveau              1234567  0

Check the active GPU driver:
bash
Copy

glxinfo | grep "OpenGL renderer"

(Should show "Nouveau" instead of "NVIDIA.")
Troubleshooting

    If Xorg fails to start, try:
    bash
    Copy

    sudo mhwd -a pci free 0300 video-modesetting

    If you need to revert to Nvidia proprietary drivers later, run:
    bash
    Copy

    sudo mhwd -a pci nonfree 0300 video-nvidia

Final Notes

    Nouveau has limited performance (no Vulkan, poor gaming support).

    Power management may be worse (higher temps, worse battery life).

    If you need Optimus (hybrid Intel + Nvidia), consider reinstalling video-hybrid-intel-nvidia-prime later.

You should obviously take a snapshot of your system before this.
It worked for me, although I did a cascade remove so I did not have any orphans.

This did not resolve my issue, so I rolled back to the previous snapshot which is running the proprietary 550 driver.

Thanks for your suggestion. I took another simpler way: just remove linux612-nvidia with dd option:
sudo pacman -Rdd linux612-nvidia

Then I ran
sudo mhwd -a pci nonfree 0300

I rebooted the system and it seems working:

sudo pacman -Qs nvidia                                                                                                                                                        ✔ 
[sudo] o0331dobe 的密碼:
local/cuda 12.8.1-1
    NVIDIA's GPU programming toolkit
local/cudnn 9.8.0.87-1
    NVIDIA CUDA Deep Neural Network library
local/egl-gbm 1.1.2.1-1
    The GBM EGL external platform library
local/egl-wayland 4:1.1.18-1
    EGLStream-based Wayland external platform
local/egl-x11 1.0.0-1
    NVIDIA XLib and XCB EGL Platform Library
local/lib32-nvidia-utils 570.133.07-1
    NVIDIA drivers utilities (32-bit)
local/libva-nvidia-driver 0.0.13-1
    VA-API implementation that uses NVDEC as a backend
local/libvdpau 1.5-3
    Nvidia VDPAU library
local/libxnvctrl 570.133.07-1
    NVIDIA NV-CONTROL X extension
local/linux612-nvidia-open 570.133.07-3 (linux612-extramodules)
    NVIDIA open drivers for linux612
local/mhwd-nvidia 570.133.07-2
    MHWD module-ids for nvidia 570.133.07
local/mhwd-nvidia-390xx 390.157-19
    MHWD module-ids for nvidia 390.157
local/mhwd-nvidia-470xx 470.256.02-10
    MHWD module-ids for nvidia 470.256.02
local/nccl 2.26.2-1
    Library for NVIDIA multi-GPU and multi-node collective communication primitives
local/nvidia-driver-assistant 0.20.124.06-1
    Detect and install the best NVIDIA driver packages for the system
local/nvidia-settings 570.133.07-2.2
    Tool for configuring the NVIDIA graphics driver
local/nvidia-utils 570.133.07-2
    NVIDIA drivers utilities
local/opencl-nvidia 570.133.07-2
    OpenCL implemention for NVIDIA

inxi still shows nvidia though, but I guess it doesn’t really matter?

inxi -Gxxx                                                                                                                                                                    ✔ 
Graphics:
  Device-1: NVIDIA AD102 [GeForce RTX 4090] vendor: Micro-Star MSI
    driver: nvidia v: 570.133.07 arch: Lovelace pcie: speed: 2.5 GT/s lanes: 16
    ports: active: none off: DP-1 empty: DP-2,DP-3,HDMI-A-1 bus-ID: 0b:00.0
    chip-ID: 10de:2684 class-ID: 0300
  Device-2: Logitech Webcam C930e driver: snd-usb-audio,uvcvideo type: USB
    rev: 2.0 speed: 480 Mb/s lanes: 1 bus-ID: 5-4:2 chip-ID: 046d:0843
    class-ID: 0102 serial: 40D3157E
  Display: x11 server: X.Org v: 21.1.16 with: Xwayland v: 24.1.6
    compositor: kwin_x11 driver: X: loaded: nvidia gpu: nvidia,nvidia-nvswitch
    display-ID: :0 screens: 1
  Screen-1: 0 s-res: 3840x2160 s-dpi: 159 s-size: 613x352mm (24.13x13.86")
    s-diag: 707mm (27.83")
  Monitor-1: DP-1 mapped: DP-0 note: disabled model: Samsung U28E590
    serial: HTPK600548 res: mode: 3840x2160 hz: 60 scale: 100% (1) dpi: 161
    size: 607x345mm (23.9x13.58") diag: 698mm (27.5") modes: max: 3840x2160
    min: 640x480
  API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia gbm:
    drv: nvidia surfaceless: drv: nvidia x11: drv: nvidia inactive: wayland
  API: OpenGL v: 4.6.0 vendor: nvidia v: 570.133.07 glx-v: 1.4
    direct-render: yes renderer: NVIDIA GeForce RTX 4090/PCIe/SSE2
  API: Vulkan v: 1.4.309 layers: 5 surfaces: xcb,xlib device: 0
    type: discrete-gpu driver: N/A device-ID: 10de:2684
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor gpu: nvidia-settings,nvidia-smi
    wl: wayland-info x11: xdpyinfo, xprop, xrandr
2 Likes

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.