Nomes de dispositivos de placas gráficas não determinísticos

8

Meu sistema contém três placas gráficas, uma radeon e duas nvidia.

Estou tentando definir uma configuração de vários lugares, mas o "nome do dispositivo" das placas gráficas não é estável, ele muda de uma inicialização para outra.

exemplo

  • bota 1

    Cartão Radeon /sys/devices/pci0000:00/0000:00:03.0/0000:01:00.0/drm/card1

    Placa Nvidia 1 /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/drm/card0

    Placa Nvidia 2 /sys/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/drm/card2

  • bota 2

    Cartão Radeon /sys/devices/pci0000:00/0000:00:03.0/0000:01:00.0/drm/card0

    Placa Nvidia 1 /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/drm/card1

    Placa Nvidia 2 /sys/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/drm/card2

etc ...

Esse problema torna instável qualquer configuração de vários assentos (eu uso o loginctl) porque a atribuição de um dispositivo a um assento é baseada nesses nomes. Outro problema real é que isso altera os nomes dos conectores das placas gráficas (ou seja, VGA-1 se torna VGA-2 etc.), tanto no nível do kernel quanto no do Xorg, para que eu não possa fazer nenhuma configuração de monitor através do xorg.conf nem usar o " video = "opção do kernel, necessária em minha instalação para forçar a ativação de um monitor CRT antigo sem EDID.

É normal que este "cartão0" "cartão1" .. seja não determinístico, é um bug ou algo que pode ser configurado (udev ou algo parecido)?

EDIT :

Como o usuário @dirkt disse nos comentários, no nível systemd não é determinístico e, de fato, a configuração de vários assentos por si só está OK. Minha principal questão é a falta de confiabilidade dos nomes de saída. Eu preciso deles no nível do kernel para especificar "video = VGA-1: e" para forçar a saída a ser ativada. E eu preciso no nível xorg para usar Option "Monitor-VGA-1" "Monitor-x".

sargento-hartman
fonte
Para Xorg você deve ser capaz de usar BusID, que é estável ... não tenho certeza sobre qualquer um dos outros, porém ...
derobert
Oi @derobert, sim, mas fazer a directiva "Option 'Monitor-VGA-1' 'Monitor1' inutilizável porque o nome do conector está incluído na tecla de opção.
sgt-Hartman
Sob systemd, praticamente tudo é não determinístico. Se o principal problema for nomes de saída, eu arquivaria um bug no Xorg e veria se eles têm alguma idéia. Pelo menos eles devem ser informados sobre o problema.
dirkt 11/05/19
@ Dirkt Sim, esse é o meu problema. Eu editei minha pergunta para adicionar alguns esclarecimentos. Eu acho que a questão não é a nível Xorg mas o kernel
sgt-Hartman
Você pode encontrar este link relevante: devtalk.nvidia.com/default/topic/773204/…
Jakub Klinkovský

Respostas:

1

Não consegui corrigir o problema, mas encontrei uma solução alternativa para nomes de saída:

  • Nas opções de inicialização do kernel, ativei os três conectores VGA:

    video=VGA-1:e video=VGA-2:e video=VGA-3:e
    
  • Na seção de dispositivo de xorg.confeu defino a opção de monitor para todas as saídas possíveis, as não relevantes são simplesmente ignoradas:

    Option "Monitor-VGA-1"  "my-monitor"
    Option "Monitor-VGA-2"  "my-monitor"
    Option "Monitor-VGA-3"  "my-monitor"
    

Isso é uma tolice, mas resolve meus principais problemas.

Ainda não aceito essa resposta agora porque estou interessado em uma solução melhor e mais limpa.

sargento-hartman
fonte