After Manjaro Update (nvidia 470) black Screen when iGPU is activated in BIOS

Hello there!

I just wanted to ask if there is something I need to consider when using a Nvidia dGPU (with the Monitor attached to it) and an intel iGPU (trying to use it with passthrough on a Windows Guest) concurrently.

Before the last system update I had Nvidia 465 Drivers and I enabled the iGPU/MultiMonitor Support in the BIOS.

After enabling it the Computer booted still fine till the GRUB Screen and after that always showed a black Screen and neither the HDMI Port of the Motherboard nor the Nvidia Card was putting out a video signal, or better said: The Monitor was always black but was not going into Powersafe mode.

So I played with the /etc/X11/mhwd.d/nvidia.conf but didn’t get anything working. Only after deleting the /etc/X11/xorg.conf I was able to boot manjaro with enabled Intel iGPU and the Nvidia Card. “lspci” also showed that the intel HD 530 was recognized and I was able to use the PC without any issues. But after that I thought “Why not update manjare before I will go on with the whole KVM iGPU Passthrough Story?!” and I updated manjaro (and therefore also to the Nvidia 470 Driver).

After a restart I again had issues with the black Screen after grub where usually the SplashScreen shows up.

I thought, maybe with updating the Nvidia drivers there was a xorg.conf generated automatically. So I disabled the iGPU in the BIOS, booted up Manjaro, deleted/renamed the /etc/X11/xorg.conf and rebooted, enabled the iGPU in BIOS, and still I have the Problem with a black Screen after chosing manjaro in GRUB.

I need to reboot and disable the iGPU when I hit the Black Screen to be able to do anything on the PC because CTRL+ALT+F-Keys dosen’t give me a CLI/tty which I can work with.

Is there anything I have not considered or which I still need to do because of the update?
Are there any new X11 Conf files introduced which I don’t know of?

My goal is to get Manjaro boot again with enabled iGPU/Multi Monitor Support in the BIOS and use the intel iGPU only for a Windows Guest through Passthrough/Looking Glass.
How can I force Manjaro to only use the nvidia dGPU as its main Output Device and ignore the Intel iGPU of the i7-6700K?

Shouldn’t have updated after getting intel iGPU activated and Manjaro booting up propperly. ^^

Thank you in advance and have a nice day! :slight_smile:

$ uname -a
Linux pc 5.10.49-1-MANJARO #1
$ inxi -CGxx
CPU:       Info: Quad Core model: Intel Core i7-6700K bits: 64 type: MT MCP arch: Skylake-S rev: 3 cache: L2: 8 MiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 64026 
           Speed: 800 MHz min/max: 800/4200 MHz Core speeds (MHz): 1: 800 2: 800 3: 800 4: 800 5: 800 6: 800 7: 800 8: 800 
Graphics:  Device-1: NVIDIA GP104 [GeForce GTX 1070] vendor: Micro-Star MSI driver: nvidia v: 470.42.01 bus-ID: 01:00.0 
           chip-ID: 10de:1b81 
           Display: x11 server: X.Org 1.20.11 compositor: kwin_x11 driver: loaded: nvidia resolution: 2560x1440 s-dpi: 92 
           OpenGL: renderer: NVIDIA GeForce GTX 1070/PCIe/SSE2 v: 4.6.0 NVIDIA 470.42.01 direct render: Yes
$ cat /etc/modules-load.d/mhwd-gpu.conf

##
## Generated by mhwd - Manjaro Hardware Detection
##
 
nvidia

$ glxinfo | grep OpenGL

OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce GTX 1070/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 470.42.01
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6.0 NVIDIA 470.42.01
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 470.42.01
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
$ cat /etc/modprobe.d/mhwd-gpu.conf

##
## Generated by mhwd - Manjaro Hardware Detection
##
 
blacklist nouveau
blacklist ttm
blacklist drm_kms_helper
blacklist drm
$ sudo mhwd-gpu --status

:: status
  xorg configuration file: '/etc/X11/mhwd.d/nvidia.conf'
$ cat /etc/X11/mhwd.d/nvidia.conf and
cat /etc/X11/xorg.conf.d/90-mhwd.conf (it is a Symlink to /etc/X11/mhwd.d/nvidia.conf)

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 470.42.01

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "freetype"
    Load           "glx"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "MONITOR-MODEL"
    HorizSync       250.0 - 250.0
    VertRefresh     48.0 - 164.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA GeForce GTX 1070"
    BusID          "PCI:1:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-6"
    Option         "metamodes" "2560x1440_164 +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
$ pamac list --installed | grep nvidia | grep -v mhwd

lib32-nvidia-utils                   470.42.01-1                    multilib   119,9 MB
lib32-opencl-nvidia                  470.42.01-1                    multilib   76,9 MB
linux510-nvidia                      470.42.01-5                    extra      41,1 MB
linux54-nvidia                       470.42.01-5                    extra      39,9 MB
nvidia-utils                         470.42.01-2                    extra      464,2 MB
opencl-nvidia                        470.42.01-1                    extra      74,3 MB

Soory for not providing enough information. Thought it would be enough.
I deleted all information of the output which is not needed for this issue. I think there is some xorg.conf loaded at bootup which was created with the update.

$ inxi --admin --verbosity=7 --filter --no-host --width

System:
  Kernel: 5.10.49-1-MANJARO x86_64 bits: 64 compiler: gcc v: 11.1.0 
  parameters: BOOT_IMAGE=/boot/vmlinuz-5.10-x86_64 
  Desktop: KDE Plasma 5.22.3 tk: Qt 5.15.2 wm: kwin_x11 vt: 1 dm: SDDM 
  Distro: Manjaro Linux base: Arch Linux 
Machine:
  Type: Desktop Mobo: MSI model: Z270 GAMING PRO CARBON (MS-7A63) v: 1.0 
  serial: <filter> UEFI: American Megatrends v: 1.90 date: 07/03/2018 
Battery:
  Message: No system battery data found. Is one present? 
CPU:
  Info: Quad Core model: Intel Core i7-6700K bits: 64 type: MT MCP 
  arch: Skylake-S family: 6 model-id: 5E (94) stepping: 3 microcode: EA cache: 
  L2: 8 MiB bogomips: 64026 
  Speed: 3164 MHz min/max: 800/4200 MHz Core speeds (MHz): 1: 3164 2: 3250 
  3: 3116 4: 3146 5: 3101 6: 3186 7: 3272 8: 3163 
  Flags: 3dnowprefetch abm acpi adx aes aperfmperf apic arat arch_perfmon art 
  avx avx2 bmi1 bmi2 bts clflush clflushopt cmov constant_tsc cpuid 
  cpuid_fault cx16 cx8 de ds_cpl dtes64 dtherm dts ept ept_ad erms est f16c 
  flexpriority flush_l1d fma fpu fsgsbase fxsr hle ht hwp hwp_act_window 
  hwp_epp hwp_notify ibpb ibrs ida intel_pt invpcid invpcid_single lahf_lm lm 
  mca mce md_clear mmx monitor movbe mpx msr mtrr nonstop_tsc nopl nx pae pat 
  pbe pcid pclmulqdq pdcm pdpe1gb pebs pge pln pni popcnt pse pse36 pti pts 
  rdrand rdseed rdtscp rep_good rtm sdbg sep smap smep ss ssbd sse sse2 sse4_1 
  sse4_2 ssse3 stibp syscall tm tm2 tpr_shadow tsc tsc_adjust 
  tsc_deadline_timer vme vmx vnmi vpid x2apic xgetbv1 xsave xsavec xsaveopt 
  xsaves xtopology xtpr
Graphics:
  Device-1: NVIDIA GP104 [GeForce GTX 1070] vendor: Micro-Star MSI 
  driver: nvidia v: 470.42.01 alternate: nouveau,nvidia_drm bus-ID: 01:00.0 
  chip-ID: 10de:1b81 class-ID: 0300 
  Display: x11 server: X.Org 1.20.11 compositor: kwin_x11 driver: 
  loaded: nvidia display-ID: :0 screens: 1 
  Screen-1: 0 s-res: 2560x1440 s-dpi: 92 s-size: 707x402mm (27.8x15.8") 
  s-diag: 813mm (32") 
  Monitor-1: DP-4 res: 2560x1440 dpi: 93 size: 697x392mm (27.4x15.4") 
  diag: 800mm (31.5") 
  OpenGL: renderer: NVIDIA GeForce GTX 1070/PCIe/SSE2 
  v: 4.6.0 NVIDIA 470.42.01 direct render: Yes 

Thank you again for your help but sorry in advance to sound like a toxic asshole.!
Your answer is not correct. iGPU Passhrough on Desktops with an additional dGPU is possible. That has nothing to do with “Desktop” or “not Desktop”.
I think you didn’t read my Post entirely before posting your answer.

I just want to passthrough the Intel iGPU on Manjaro to a Windows10 Guest. Booting Manjaro prior to the last Manjaro Update with integrated iGPU enabled in Bios worked! And manjaro even recognized it.

After the Update it didn’t work again.

So besides that there are many people passing through their iGPU to a VM/QEMU/KVM Guest while using their dGPU for main Output to a monitor (see also LookingGlass ) I got Manjaro booting with integrated iGPU enabled and recognized before updating to newest Manjaro Version.

I appreciate your drive to help but such wrong (emoji-only) answers without understanding the Problem are not helpful.

Nevertheless I wish you a grat day!

This looks very much like the problem I have experienced with 470 driver. In my case, I see the following error messages in the journal (journalctl -b):

(EE) NVIDIA(GPU-0): Failed to initialize the NVIDIA GPU at PCI:35:0:0.  Please
(EE) NVIDIA(GPU-0):     check your system's kernel log for additional error
(EE) NVIDIA(GPU-0):     messages and refer to Chapter 8: Common Problems in the
(EE) NVIDIA(GPU-0):     README for additional information.
(EE) NVIDIA(GPU-0): Failed to initialize the NVIDIA graphics device!
(EE) NVIDIA(0): Failing initialization of X screen

when starting the xorg-server and prior to that I have found the following

kernel: NVRM: GPU 0000:23:00.0: RmInitAdapter failed! (0x26:0x56:1262)
kernel: NVRM: GPU 0000:23:00.0: rm_init_adapter failed, device minor number 0
kernel: resource sanity check: requesting [mem 0x000c0000-0x000fffff], which spans more than PCI Bus 0000:00 [mem 0x000c0000-0x000dffff window]
kernel: caller _nv000722rm+0x1ad/0x200 [nvidia] mapping multiple BARs
kernel: NVRM: GPU 0000:23:00.0: RmInitAdapter failed! (0x26:0x56:1262)
kernel: NVRM: GPU 0000:23:00.0: rm_init_adapter failed, device minor number 0

It almost looks like the nvidia driver requests more pci addresses than are available (or at least that is my interpretation of it).
I too have a gtx1070, but unlike you have have a Ryzen 5 1600 processor which do not have an integrated GPU so I need my nvidia gpu. I also have an MSI motherboard, a X370 SLI PLUS. I have browsed the nvidia help forums as well and found several posts concerning similar problems, without any posted solution. However, I have spotted a pattern, they all concerned MSI motherboards.

What I have done, which is not a solution, could cause problems with other packages and could be a potential security risk (so if you go down this route I do not take any responsibility), is to downgrade the nvidia-driver to 465, and keep the 5.10.42-1 kernel since later versions, provided through the Manjaro repositories expects the 470 driver (or rather the latest 465 driver I have access to and is provided through the Manjaro repositories is tagged for the 5.10.42-1 kernel). I have also added the following packages to IgnorePkg in pacman.conf:
mhwd-nvidia mhwd-nvidia-390xx linux510-nvidia nvidia-utils lib32-nvidia-utils linux510
to prevent the 470 driver from being installed. At least, I can use my GPU for now. I will test future updates to the 470 driver, but I do not expect the problem to go away until the next major version comes out.