diff options
author | Ray Strode <halfline@gmail.com> | 2023-03-02 14:33:14 +0000 |
---|---|---|
committer | Ray Strode <halfline@gmail.com> | 2023-03-02 14:33:14 +0000 |
commit | 1fb8b7f4cd7a52d08cf4a4877fce91c0ffbffb8b (patch) | |
tree | e1aad31d738651318c3f4978413b69ab36edd9c3 | |
parent | 9865742ef969a447a9b5b2fd353f3815c7e98bf7 (diff) | |
parent | 72bde3b3f474135e792c6c4e40932d7c82f87985 (diff) | |
download | gdm-1fb8b7f4cd7a52d08cf4a4877fce91c0ffbffb8b.tar.gz |
Merge branch 'fix-udev-logic-with-simpledrm' into 'main'
udev: Try to detect virtual graphics and EFI better
Closes #832
See merge request GNOME/gdm!198
-rw-r--r-- | data/61-gdm.rules.in | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/data/61-gdm.rules.in b/data/61-gdm.rules.in index 5bc9941c..b829a46f 100644 --- a/data/61-gdm.rules.in +++ b/data/61-gdm.rules.in @@ -1,19 +1,15 @@ -# identify virtio graphics cards to find passthrough setups -SUBSYSTEM!="virtio", GOTO="gdm_virtio_device_end" -ACTION!="add", GOTO="gdm_virtio_device_end" -ATTR{vendor}=="0x1af4", ATTR{device}=="0x0010", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_virtio_device_end" -LABEL="gdm_virtio_device_end" - SUBSYSTEM!="pci", GOTO="gdm_pci_device_end" -ACTION!="bind", GOTO="gdm_pci_device_end" +ACTION!="bind", ACTION!="add", GOTO="gdm_pci_device_end" # identify virtio graphics cards to find passthrough setups # cirrus ATTR{vendor}=="0x1013", ATTR{device}=="0x00b8", ATTR{subsystem_vendor}=="0x1af4", ATTR{subsystem_device}=="0x1100", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_pci_device_end" +ATTR{vendor}=="0x1af4", ATTR{device}=="0x1050", ATTR{subsystem_vendor}=="0x1af4", ATTR{subsystem_device}=="0x1100", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_pci_device_end" # vga ATTR{vendor}=="0x1b36", ATTR{device}=="0x0100", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_pci_device_end" # qxl ATTR{vendor}=="0x1234", ATTR{device}=="0x1111", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_pci_device_end" +ATTR{vendor}=="0x1af4", ATTR{device}=="0x1050", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_pci_device_end" # disable Wayland on Hi1710 chipsets ATTR{vendor}=="0x19e5", ATTR{device}=="0x1711", GOTO="gdm_disable_wayland" @@ -36,11 +32,12 @@ LABEL="gdm_pci_device_end" # disable Wayland if modesetting is disabled KERNEL!="card[0-9]*", GOTO="gdm_nomodeset_end" +KERNEL=="card[0-9]-*", GOTO="gdm_nomodeset_end" SUBSYSTEM!="drm", GOTO="gdm_nomodeset_end" -IMPORT{parent}="GDM_MACHINE_HAS_VIRTUAL_GPU" -ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}!="1", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-hardware-gpu" # but keep it enabled for simple framebuffer drivers DRIVERS=="simple-framebuffer", GOTO="gdm_nomodeset_end" +IMPORT{parent}="GDM_MACHINE_HAS_VIRTUAL_GPU" +ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}!="1", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-hardware-gpu" IMPORT{cmdline}="nomodeset", GOTO="gdm_disable_wayland" LABEL="gdm_nomodeset_end" @@ -81,7 +78,9 @@ KERNEL!="card[1-9]*", GOTO="gdm_hybrid_graphics_check_end" KERNEL=="card[1-9]-*", GOTO="gdm_hybrid_graphics_check_end" SUBSYSTEM!="drm", GOTO="gdm_hybrid_graphics_check_end" ACTION!="add", GOTO="gdm_hybrid_graphics_check_end" -RUN+="/usr/bin/touch /run/udev/gdm-machine-has-hybrid-graphics" +IMPORT{program}="/bin/sh -c \"echo GDM_NUMBER_OF_GRAPHICS_CARDS=`ls -1d /sys/class/drm/card[0-9] | wc -l`\"" +ENV{GDM_NUMBER_OF_GRAPHICS_CARDS}=="1", RUN+="/usr/bin/rm -f /run/udev/gdm-machine-has-hybrid-graphics" +ENV{GDM_NUMBER_OF_GRAPHICS_CARDS}!="1", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-hybrid-graphics" LABEL="gdm_hybrid_graphics_check_end" # If this is a hybrid graphics laptop with vendor nvidia driver, disable wayland |