You are not logged in.
Hey there!
So I broke the PRIME GPU setup and now my laptop will not work with any HW acceleration at all. I tried to follow the official PRIME setup, Optimus with NVIDIA graphics only, Optimus mixed and many more combinations.
In the end, the only way to access GUI is to boot [into black screen], switch to tty and do `startx`.
My setup: Dell G5 with a nvidia 2070.
I'm using lightdm with i3-gaps
Various outputs (while being `startx`ed into i3):
$ xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x46 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 4 associated providers: 1 name:modesetting
Provider 1: id: 0x1ef cap: 0x2, Sink Output crtcs: 4 outputs: 4 associated providers: 1 name:NVIDIA-G0 $ prime-run glxinfo | grep "OpenGL renderer" ✔ 23:05:48
OpenGL renderer string: NVIDIA GeForce RTX 2070 with Max-Q Design/PCIe/SSE2
$ glxinfo | grep "OpenGL renderer" ✔ 23:05:49
OpenGL renderer string: Mesa Intel(R) UHD Graphics 630 (CFL GT2)mkinitcpio.conf
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(piix ide_disk reiserfs)
MODULES=(i915 nvidia nvidia_modeset nvidia_uvm nvidia_drm)
#MODULES=()
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=()
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No raid, lvm2, or encrypted root is needed.
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS=(base udev autodetect block keyboard keymap filesystems)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev block keyboard keymap filesystems)
#
## This setup assembles a pata mdadm array with an encrypted root FS.
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
# HOOKS=(base udev block keyboard keymap mdadm encrypt filesystems)
#
## This setup loads an lvm2 volume group on a usb device.
# HOOKS=(base udev block keyboard keymap lvm2 filesystems)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr, fsck and shutdown hooks.
HOOKS=(base udev autodetect modconf block keyboard keymap encrypt lvm2 filesystems resume fsck)
# COMPRESSION
# Use this to compress the initramfs image. By default, gzip compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"/etc/optimus-manager/optimus-manager.conf
[intel]
DRI=3
accel=
driver=intel
modeset=yes
tearfree=
[nvidia]
DPI=96
PAT=yes
allow_external_gpus=no
dynamic_power_management=no
ignore_abi=no
modeset=yes
options=overclocking
[optimus]
auto_logout=yes
pci_power_control=no
pci_remove=no
pci_reset=no
startup_auto_battery_mode=nvidia
startup_auto_extpower_mode=nvidia
startup_mode=nvidia
switching=bbswitchhead -n 999 /etc/X11/xorg.conf.d/* /etc/X11/xorg.conf
==> /etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf <==
Section "OutputClass"
Identifier "intel"
MatchDriver "i915"
Driver "modesetting"
EndSection
Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowNVIDIAGPUScreens"
Option "AllowEmptyInitialConfiguration"
# Option "PrimaryGPU" "yes"
ModulePath "/usr/lib/nvidia/xorg"
ModulePath "/usr/lib/xorg/modules"
EndSection
==> /etc/X11/xorg.conf.d/10-optimus-manager.conf <==
Section "Files"
ModulePath "/usr/lib/nvidia"
ModulePath "/usr/lib32/nvidia"
ModulePath "/usr/lib32/nvidia/xorg/modules"
ModulePath "/usr/lib32/xorg/modules"
ModulePath "/usr/lib64/nvidia/xorg/modules"
ModulePath "/usr/lib64/nvidia/xorg"
ModulePath "/usr/lib64/xorg/modules"
EndSection
Section "ServerLayout"
Identifier "layout"
Screen 0 "nvidia"
Inactive "integrated"
EndSection
Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "PCI:1:0:0"
Option "Coolbits" "28"
EndSection
Section "Screen"
Identifier "nvidia"
Device "nvidia"
Option "AllowEmptyInitialConfiguration"
EndSection
Section "Device"
Identifier "integrated"
Driver "modesetting"
BusID "PCI:0:2:0"
EndSection
Section "Screen"
Identifier "integrated"
Device "integrated"
EndSection
==> /etc/X11/xorg.conf.d/10-optimus-manager.conf.bak <==
Section "Files"
ModulePath "/usr/lib/nvidia"
ModulePath "/usr/lib32/nvidia"
ModulePath "/usr/lib32/nvidia/xorg/modules"
ModulePath "/usr/lib32/xorg/modules"
ModulePath "/usr/lib64/nvidia/xorg/modules"
ModulePath "/usr/lib64/nvidia/xorg"
ModulePath "/usr/lib64/xorg/modules"
EndSection
Section "ServerLayout"
Identifier "layout"
Screen 0 "nvidia"
Inactive "integrated"
EndSection
Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "PCI:1:0:0"
Option "Coolbits" "28"
EndSection
Section "Screen"
Identifier "nvidia"
Device "nvidia"
Option "AllowEmptyInitialConfiguration"
EndSection
Section "Device"
Identifier "integrated"
Driver "modesetting"
BusID "PCI:0:2:0"
EndSection
Section "Screen"
Identifier "integrated"
Device "integrated"
EndSection
==> /etc/X11/xorg.conf.d/20-nvidia.conf.test <==
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 440.64
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
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"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
Option "ConnectedMonitor" "DP-1"
Option "CustomEDID" "DP-1:/etc/X11/dp1-edid.bin"
Option "IgnoreEDID" "false"
Option "UseEDID" "true"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Extensions"
Option "COMPOSITE" "Disable"
EndSection
==> /etc/X11/xorg.conf.d/30-touchpad.conf <==
Section "InputClass"
Identifier "touchpad"
Driver "libinput"
MatchIsTouchpad "on"
Option "Tapping" "on"
Option "TappingButtonMap" "on"
EndSection
==> /etc/X11/xorg.conf <==
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 460.39
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
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"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Coolbits" "28"
SubSection "Display"
Depth 24
EndSubSection
EndSectionsystemctl --failed
UNIT LOAD ACTIVE SUB DESCRIPTION
● user@974.service loaded failed failed User Manager for UID 974cat .xinitrc
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
exec i3
xrandr --dpi 96It would be great if I could at least properly use Nvidia GPU
Last edited by ashirviskas (2021-11-04 13:48:24)
Offline
In the end, the only way to access GUI is to boot [into black screen], switch to tty and do `startx`.
That doesn't suggest anything is broken here.
Let's start by creating a clean environment. Uninstall optimus-manager and remove all these files
==> /etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf <==
==> /etc/X11/xorg.conf.d/10-optimus-manager.conf <==
==> /etc/X11/xorg.conf.d/10-optimus-manager.conf.bak <==
==> /etc/X11/xorg.conf.d/20-nvidia.conf.test <==
==> /etc/X11/xorg.conf <==Hand yourself a little leeway, https://wiki.archlinux.org/title/LightD … TTY_output and reboot.
If you cannot get into lightdm, move to TTY1, *don't* startx but paste the xorg log, "cat /var/log/Xorg.0.log | curl -F 'f:1=<-' ix.io"
Online
Here it is:
And here's one after startx'ing:
http://ix.io/3Drk
Last edited by ashirviskas (2021-10-31 07:38:42)
Offline
[ 12.396] (EE) Screen 1 deleted because of no matching config section.[ 10.887] (==) ServerLayout "Layout0"
[ 10.887] (**) |-->Screen "iGPU" (0)
[ 10.887] (**) | |-->Monitor "<default monitor>"
[ 10.887] (**) | |-->Device "iGPU"
[ 10.887] (**) | |-->GPUDevice "dGPU"
[ 10.887] (==) No monitor specified for screen "iGPU".There's a bogus configlet around:
ls -R /{etc,usr/share}/X11/xorg.conf*
grep -i igpu /{etc,usr/share}/X11/xorg.conf*Edit: also
lsinitcpio /boot/initramfs-linux.img|grep nvidiaand see https://wiki.archlinux.org/title/NVIDIA … de_setting (the kernel parameter isn't there either)
Last edited by seth (2021-10-31 07:49:27)
Online
There's a bogus configlet around:
Seems like you're right
ls -R /{etc,usr/share}/X11/xorg.conf* ✔ 09:52:19
/etc/X11/xorg.conf_backup /etc/X11/xorg.conf.bak2021_10 /etc/X11/xorg.conf.bak3333 /etc/X11/xorg.conf.nvidia-xconfig-original
/etc/X11/xorg.conf.d:
30-touchpad.conf
/usr/share/X11/xorg.conf.d:
10-nvidia.conf 10-nvidia-drm-outputclass.conf 10-quirks.conf 40-libinput.confShould I delete `10-nvidia*`?
grep -i igpu /{etc,usr/share}/X11/xorg.conf* 1 ↵ 27s 09:53:53
grep: /etc/X11/xorg.conf.d: Is a directory
grep: /usr/share/X11/xorg.conf.d: Is a directorylsinitcpio /boot/initramfs-linux.img|grep nvidia 2 ↵ 09:54:18
etc/modprobe.d/nvidia-pm.conf
usr/lib/firmware/nvidia/
usr/lib/firmware/nvidia/470.74/
usr/lib/firmware/nvidia/470.74/gsp.bin
usr/lib/modprobe.d/nvidia.conf
usr/lib/modules/5.14.14-arch1-1/kernel/nvidia-drm.ko
usr/lib/modules/5.14.14-arch1-1/kernel/nvidia.ko
usr/lib/modules/5.14.14-arch1-1/kernel/nvidia-modeset.ko
usr/lib/modules/5.14.14-arch1-1/kernel/nvidia-uvm.koand see https://wiki.archlinux.org/title/NVIDIA … de_setting (the kernel parameter isn't there either)
You're right, I forgot to run `grub-mkconfig`, now it's there.
Offline
Please post it first, but
You're right, I forgot to run `grub-mkconfig`, now it's there.
This is probably far more important.
Online
I rebooted the system afterwards, but no change visually: http://ix.io/3DrD
Offline
head -n 999 /usr/share/X11/xorg.conf.d/* 1 ↵ 10:30:28
==> /usr/share/X11/xorg.conf.d/10-nvidia.conf <==
# Do not edit this file!
# It will be rewrite after the upgrade
Section "ServerLayout"
Identifier "Layout0"
Option "AllowNVIDIAGPUScreens"
Screen 0 "iGPU" 0 0
EndSection
# You may uncomment the following lines, if Xorg.log contains:
# (EE) NVIDIA: Use the -ignoreABI option to override this check
# Section "ServerFlags"
# Option "IgnoreABI" "1"
# EndSection
Section "Device"
Identifier "iGPU"
Driver "modesetting"
BusID "PCI:0:2:0"
EndSection
Section "Device"
Identifier "dGPU"
Driver "nvidia"
BusID "PCI:1:0:0"
EndSection
Section "Screen"
Identifier "iGPU"
Device "iGPU"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
EndSubSection
EndSection
Section "OutputClass"
Identifier "iGPU"
MatchDriver "i915"
Driver "modesetting"
EndSection
Section "OutputClass"
Identifier "dGPU"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
Option "PrimaryGPU" "yes"
ModulePath "/usr/lib/nvidia/xorg"
ModulePath "/usr/lib/xorg/modules"
EndSection
==> /usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf <==
Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
ModulePath "/usr/lib/nvidia/xorg"
ModulePath "/usr/lib/xorg/modules"
EndSection
==> /usr/share/X11/xorg.conf.d/10-quirks.conf <==
# Collection of quirks and blacklist/whitelists for specific devices.
# Accelerometer device, posts data through ABS_X/ABS_Y, making X unusable
# http://bugs.freedesktop.org/show_bug.cgi?id=22442
Section "InputClass"
Identifier "ThinkPad HDAPS accelerometer blacklist"
MatchProduct "ThinkPad HDAPS accelerometer data"
Option "Ignore" "on"
EndSection
# https://bugzilla.redhat.com/show_bug.cgi?id=523914
# Mouse does not move in PV Xen guest
# Explicitly tell evdev to not ignore the absolute axes.
Section "InputClass"
Identifier "Xen Virtual Pointer axis blacklist"
MatchProduct "Xen Virtual Pointer"
Option "IgnoreAbsoluteAxes" "off"
Option "IgnoreRelativeAxes" "off"
EndSection
# https://bugs.freedesktop.org/show_bug.cgi?id=55867
# Bug 55867 - Doesn't know how to tag XI_TRACKBALL
Section "InputClass"
Identifier "Tag trackballs as XI_TRACKBALL"
MatchProduct "trackball"
MatchDriver "evdev"
Option "TypeName" "TRACKBALL"
EndSection
# https://bugs.freedesktop.org/show_bug.cgi?id=62831
# Bug 62831 - Mionix Naos 5000 mouse detected incorrectly
Section "InputClass"
Identifier "Tag Mionix Naos 5000 mouse XI_MOUSE"
MatchProduct "La-VIEW Technology Naos 5000 Mouse"
MatchDriver "evdev"
Option "TypeName" "MOUSE"
EndSection
==> /usr/share/X11/xorg.conf.d/40-libinput.conf <==
# Match on all types of devices but joysticks
#
# If you want to configure your devices, do not copy this file.
# Instead, use a config snippet that contains something like this:
#
# Section "InputClass"
# Identifier "something or other"
# MatchDriver "libinput"
#
# MatchIsTouchpad "on"
# ... other Match directives ...
# Option "someoption" "value"
# EndSection
#
# This applies the option any libinput device also matched by the other
# directives. See the xorg.conf(5) man page for more info on
# matching devices.
Section "InputClass"
Identifier "libinput pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput tablet catchall"
MatchIsTablet "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSectionOffline
head -n 999
You can just "cat" them…
/usr/share/X11/xorg.conf.d/10-nvidia.conf looks like a (tampered with?) leftover from optimus-manager to use the nvidia chip as primary GPU while the server references the intel chip.
Get rid of that.
The output redirection in the xinitrc likely deals w/ this (and you probably don't have the same redirection triggered in your lightdm scripts)
If you always want to use the nvidia chip, we'll deal w/ that afterwards, but for now we want a stable baseline.
I rebooted the system afterwards, but no change visually
There's however a very significant change in the Xorg log - the nvidia chip is readily available now…
Online
You can just "cat" them…
Yup, but doing it this way includes the filenames
/usr/share/X11/xorg.conf.d/10-nvidia.conf looks like a (tampered with?) leftover from optimus-manager to use the nvidia chip as primary GPU while the server references the intel chip.
Get rid of that.
It works! Now I can successfully boot into lightdm greeter and everything seems to be working afterwards. Thank you!
If you always want to use the nvidia chip, we'll deal w/ that afterwards, but for now we want a stable baseline.
I'd prefer to have a proper setup, with intel being the primary GPU and using `prime-run` to run games etc., but I can try figuring it out on my own, you already helped me a lot!
Offline
I'd prefer to have a proper setup, with intel being the primary GPU and using `prime-run` to run games etc., but I can try figuring it out on my own, you already helped me a lot!
Thsi should be the status quo anyway - you can confirm it w/ "glxinfo -B" and "prime-run glxinfo -B" which should reveal the intel chip in the first and the nvidia one in the second instance.
Please always remember to mark resolved threads by editing your initial posts subject - so others will know that there's no task left, but maybe a solution to find.
Thanks.
Online
Thsi should be the status quo anyway - you can confirm it w/ "glxinfo -B" and "prime-run glxinfo -B" which should reveal the intel chip in the first and the nvidia one in the second instance.
I see that both still use Nvidia, what kind of method would you recommend to switch the cards? Not optimus I guess?
Please always remember to mark resolved threads by editing your initial posts subject - so others will know that there's no task left, but maybe a solution to find.
Thanks.
Will do!
Offline
I see that both still use Nvidia
Updated Xorg log?
Online
Here it is!
Offline
Yup, the nvidia chip is preferred and it's what has the output attached, so you'll need https://wiki.archlinux.org/title/PRIME#Reverse_PRIME (config and xrandr stanza, make sure to use the correct provider labels)
For lightdm you'll then need the display-setup-script to be set, https://wiki.archlinux.org/title/LightD … ng_monitor
Online
Yup, the nvidia chip is preferred and it's what has the output attached, so you'll need https://wiki.archlinux.org/title/PRIME#Reverse_PRIME (config and xrandr stanza, make sure to use the correct provider labels)
Any idea why
lspci | grep VGAwould only see the Nvidia GPU?
For lightdm you'll then need the display-setup-script to be set, https://wiki.archlinux.org/title/LightD … ng_monitor
Will do!
Offline
What's the unfiltered output of "lspci"? Xorg certainly detects two cards.
Online
Sorry for not getting back to you, I wasn't much at the PC.
What's the unfiltered output of "lspci"? Xorg certainly detects two cards.
My bad, `lspci` doesn't have `VGA` text in its output for Intel as it calls it "Display controller". Either way, for now my PC works good enough for me and I will consider this resolved. Thank you so much for your help!
Offline