Недетерминированные графические карты имен устройств

8

Моя система содержит три видеокарты, одну Radeon и две NVIDIA.

Я пытаюсь настроить многосетевую настройку, но «имя устройства» графических карт нестабильно, оно меняется от одной загрузки к другой.

Exemple

  • ботинок 1

    Карта радеон /sys/devices/pci0000:00/0000:00:03.0/0000:01:00.0/drm/card1

    Nvidia 1 карта /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/drm/card0

    Карта nvidia 2 /sys/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/drm/card2

  • boot 2

    Карта радеон /sys/devices/pci0000:00/0000:00:03.0/0000:01:00.0/drm/card0

    Nvidia 1 карта /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/drm/card1

    Карта nvidia 2 /sys/devices/pci0000:00/0000:00:1c.4/0000:04:00.0/drm/card2

так далее...

Эта проблема делает любую многосетевую конфигурацию нестабильной (я использую loginctl), потому что назначение устройства на место основано на этих именах устройств. Другая реальная проблема заключается в том, что это изменяет имена разъемов графических карт (т. Е. VGA-1 становится VGA-2 и т. Д.) Как на уровне ядра, так и на уровне Xorg, поэтому я не могу ни сконфигурировать монитор через xorg.conf, ни использовать " video = "опция ядра, которая необходима в моей настройке, чтобы принудительно включить старый монитор crt без EDID.

Это нормально, что это "card0" "card1" .. является недетерминированным, это ошибка или что-то, что можно настроить (udev или что-то в этом роде)?

РЕДАКТИРОВАТЬ :

Как сказал пользователь @dirkt в комментариях, на уровне systemd он недетерминирован, и на самом деле конфигурация с несколькими местами сама по себе в порядке. Моя главная проблема заключается в ненадежности выходных имен. Они нужны мне на уровне ядра, чтобы указать «video = VGA-1: e», чтобы принудительно включить вывод. И мне нужно на уровне Xorg использовать Option "Monitor-VGA-1" "Monitor-x".

SGT-Хартман
источник
Для Xorg вы должны быть в состоянии использовать BusID, что является стабильным ... не уверен ни в каком другом, хотя ...
Дероберт
Привет @derobert, да, но это делает директиву "Option" Monitor-VGA-1 "" Monitor1 "непригодной для использования, потому что имя соединителя включено в ключ опции.
sgt-hartman
Под systemd, в значительной степени все недетерминировано. Если основной проблемой являются выходные имена, я бы отправил сообщение об ошибке в Xorg и посмотрел, есть ли у них какая-то идея. По крайней мере, им следует рассказать о проблеме.
Диркт
@dirkt да, это моя проблема. Я отредактировал свой вопрос, чтобы добавить некоторые пояснения. Я думаю, что проблема не на уровне Xorg, а в ядре
sgt-hartman
Вы можете найти эту ссылку уместной: devtalk.nvidia.com/default/topic/773204/…
Якуб Клинковский

Ответы:

1

Мне не удалось решить проблему, но я нашел обходной путь для выходных имен:

  • В параметрах загрузки ядра я активирую оба VGA-разъема:

    video=VGA-1:e video=VGA-2:e video=VGA-3:e
    
  • В разделе устройства xorg.confя определяю опцию монитора для всех возможных выходов, несущественные из них просто игнорируются:

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

Это хакерство, но оно решает мои основные проблемы.

Я до сих пор не принимаю этот ответ, потому что меня интересует лучшее, более чистое решение.

SGT-Хартман
источник