You are not logged in.

#1 2025-05-04 16:33:57

khalid
Member
Registered: 2025-05-04
Posts: 3

[SOLVED] How to force nouveau to load on boot for host GPU

TL:DR; How do I configure my machine to load the `nouveau` driver for GT710 (host GPU) during boot?

I have an Nvidia GT710 I will use as my host GPU and an Nvidia 1660Ti as my guest GPU. Currently, only the 1660Ti is providing output of the host machine on the dedicated guest monitor. Before I can move on to isolation of the guest GPU, I need to make sure the host GPU is displaying the host machine properly on my dedicated host monitor.

After host machine boots, `lspci -nnk` indicates no kernel drivers in use for host GPU (the 710) and I see NO output on my dedicated host monitor.

When I run `sudo modprobe nouveau` , the GT710 then loads the driver, `lspci -nnk` indicates `Kernel driver in use: nouveau`, and I see GOOD output on my dedicated host monitor.

How do I configure my machine to load the `nouveau` driver for the GT710 during boot?

Once this is done, I should be able to isolate my guest GPU using vfio and still have the host machine display on the dedicated host monitor.

What I've already attempted
  • Added `nouveau` as a line to `/etc/modules-load.d/noueveau.conf`

    nouveau
  • Created a `udev` rule in `/etc/udev/rules.d/99-nouveau-gt710.rules`

    SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{device}=="0x128b", DRIVER=="", ATTR{driver_override}="nouveau"

    Then, reloaded `udev`

    sudo udevadm control --reload
    sudo udevadm trigger
  • Added `noueveau` to modules in `/etc/mkinitcpio.conf`

    MODULES=(nouveau)

    Then, reloaded.

    sudo mkinitcpio -P

My kernel parameters are as follows:

GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet intel_iommu=on"

With all these configs set, on reboot, I still have to manually run

sudo modprobe nouveau

for the GT710 to start using the driver.

What I'm thinking to try next...

New to Arch and Linux, I don't really understand how all the aforementioned configs are read and used in boot. I don't want extra unused configs bloating my system so will probably try to read up and understand what each thing does, perhaps one or more are not needed.

Also, since the command that fixes things is `modprobe`, and I've seen `/etc/modprobe.d/` referenced in guides, perhaps I'll create a

/etc/modprobe.d/nouveau.conf

and see if that works?

What am I asking right now?
  1. Best way to get the results of `sudo modprobe nouveau` automatically during boot?

  2. How NOT to do it? i.e. which configs changes that I've mentioned above should I revert?

Additional Information

Guest GPU: Nvidia 1660Ti
Output of `lspci -nnk`

01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU116 [GeForce GTX 1660 Ti] [10de:2182] (rev a1)
        Subsystem: eVga.com. Corp. Device [3842:1263]
        Kernel driver in use: nvidia
        Kernel modules: nouveau, nvidia_drm, nvidia
01:00.1 Audio device [0403]: NVIDIA Corporation TU116 High Definition Audio Controller [10de:1aeb] (rev a1)
        Subsystem: eVga.com. Corp. Device [3842:1263]
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel
01:00.2 USB controller [0c03]: NVIDIA Corporation TU116 USB 3.1 Host Controller [10de:1aec] (rev a1)
        Subsystem: eVga.com. Corp. Device [3842:1263]
        Kernel driver in use: xhci_hcd
01:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU116 USB Type-C UCSI Controller [10de:1aed] (rev a1)
        Subsystem: eVga.com. Corp. Device [3842:1263]
        Kernel driver in use: nvidia-gpu
        Kernel modules: i2c_nvidia_gpu

NOTE: I know, it should be using `vfio` to do passthrough. I'm not there yet, as I need to make sure my host GPU is working as expected displaying my host machine after boot.

Output of IOMMU group script for this card:

IOMMU Group 14 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU116 [GeForce GTX 1660 Ti] [10de:2182] (rev a1)
IOMMU Group 14 01:00.1 Audio device [0403]: NVIDIA Corporation TU116 High Definition Audio Controller [10de:1aeb] (rev a1)
IOMMU Group 14 01:00.2 USB controller [0c03]: NVIDIA Corporation TU116 USB 3.1 Host Controller [10de:1aec] (rev a1)
IOMMU Group 14 01:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU116 USB Type-C UCSI Controller [10de:1aed] (rev a1)

Host GPU: Nvidia GT710
Output of `lspci -nnk` AFTER boot, BEFORE running `sudo modprobe nouveau`, when there is NO display on the dedicated host monitor.

05:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK208B [GeForce GT 710] [10de:128b] (rev a1)
        Subsystem: Gigabyte Technology Co., Ltd Device [1458:36f7]
        Kernel modules: nouveau, nvidia_drm, nvidia
05:00.1 Audio device [0403]: NVIDIA Corporation GK208 HDMI/DP Audio Controller [10de:0e0f] (rev a1)
        Subsystem: Gigabyte Technology Co., Ltd Device [1458:36f7]
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel

Output of `lspci -nnk` AFTER running `sudo modprobe nouveau`, when there is GOOD display on the dedicated host monitor.

05:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK208B [GeForce GT 710] [10de:128b] (rev a1)
        Subsystem: Gigabyte Technology Co., Ltd Device [1458:36f7]
        Kernel driver in use: nouveau
        Kernel modules: nouveau, nvidia_drm, nvidia
05:00.1 Audio device [0403]: NVIDIA Corporation GK208 HDMI/DP Audio Controller [10de:0e0f] (rev a1)
        Subsystem: Gigabyte Technology Co., Ltd Device [1458:36f7]
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel

Obviously, `Kernel driver in use: nouveau` is the difference, and what I'm trying to get to happen during boot.

Output of IOMMU group script for this card:

IOMMU Group 16 05:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK208B [GeForce GT 710] [10de:128b] (rev a1)
IOMMU Group 16 05:00.1 Audio device [0403]: NVIDIA Corporation GK208 HDMI/DP Audio Controller [10de:0e0f] (rev a1)
Resources

I'm following these guides:
Arch Wiki - PCI Passthrough via OVMF
Guide to GPU Passthrough (Arch-based)

Last edited by khalid (2025-05-04 17:45:24)

Offline

#2 2025-05-04 16:43:56

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 25,156

Re: [SOLVED] How to force nouveau to load on boot for host GPU

The nvidia-utils package blacklists nouveau. If you intend to just use the 1660Ti for the guest you can just remove all of the nvidia packages on the host.

If you want to retain the nvidia package for some reason remove /usr/lib/modprobe.d/nvidia-utils.conf and add usr/lib/modprobe.d/nvidia-utils.conf to your pacman.conf NoExtract directive, to remove the blacklist. If you want to use the nvidia driver for the host GPU since this will be Kepler you'll need https://aur.archlinux.org/packages/nvidia-470xx-dkms -- however this will of course be suboptimal for the 1660Ti since that one can actually use the more modern nvidia-utils driver. If you want to load nouveau only for the 710Ti you can do an alias in modprobe.d but I'd have to check the syntax for that as well.

Last edited by V1del (2025-05-04 16:53:00)

Offline

#3 2025-05-04 17:40:13

khalid
Member
Registered: 2025-05-04
Posts: 3

Re: [SOLVED] How to force nouveau to load on boot for host GPU

Aha!

sudo pacman -R nvidia nvidia-utils

Now both are running nouveau after boot, and I'm ready to isolate the guest GPU. Thank you!

Will take a moment to revert my actions and reboot to see if they matter or not.

Offline

#4 2025-05-04 17:44:50

khalid
Member
Registered: 2025-05-04
Posts: 3

Re: [SOLVED] How to force nouveau to load on boot for host GPU

Reverted everything. Still defaults to nouveau after boot on both GPUs. Thanks!

Solved!

Offline

Board footer

Powered by FluxBB