LINUX.ORG.RU

Настроить дефолтный выход у видеокарты

 , ,


0

1

Всем привет!

Раньше стояла видюха GT650(точно не помню), у нее было два выхода DVI и HDMI. И все было хорошо. В DVI включен монитор, в HDMI телек. Все нормально, все работает.

Потом я зохотел НовыйДУУУМ и купил 1050ti. А у нее DisplayPort и HDMI. Также расключил моник в DP, телек в HDMI. И тоже все работает.

Но есть проблема. Когда иксы запущены и работают, они знают где примари экран, и xfce выводит куда надо, и приложения, и игрушки. Все ок. Но когда машину перегружаешь, то биос и все что за ним считают порт HDMI (если в него включен кабель) - первым/главным и весь вывод идет туда. Стартует Slim - и окошко логина в порте HDMI (на телеке).

Если включить автологин в Slim - после загрузки xfce все нормализуется. Если выдернуть кабель из HDMI - тоже все прекрасно.

Но все время дергать кабель лениво, да и порт бомбить не хочется. Хочется видеть логин (нужно) и иногда BIOS. Логика подсказывает что хорошо бы какой-то утилитой переключить дефолтный вход в самой видюхе, но как это сделать (и возможно ли?) незнаю. Нагуглить ничего вменяемого не смог.

Подскажите плз куда копать?

Ответ на: комментарий от anonymous

Одновременная работа возможна лишь при одинаковом драйвере нвидии. То есть 390 в данном случае или нуво.

невероятно, но факт.

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

почему?

vollemar
() автор топика
Ответ на: комментарий от vollemar

Я не знаю какой у тебя дистрибутив и система инициализации. Тебе нужно просто воткнуть команду modprobe nouveau после того как загрузился модуль nvidia, но до того как стартовали иксы и DM.

imul ★★★★★
()
Ответ на: комментарий от vollemar

см.лог.

Иксовый модуль обламывается потому что не загружен ядерный модуль?
lsmod показывает только модуль nvidia?

я так и делаю, но не работает.

Как именно?

imul ★★★★★
()
Ответ на: комментарий от imul

нашел:

Jan 04 21:35:04 jess systemd-modules-load[277]: Module ‘nouveau’ is deny-listed

ща попробую понять кто так делает :)

vollemar
() автор топика
Ответ на: комментарий от imul

Короче, блок стоит в загрузке модуля nvidia.
Если его убрать, то nouveau грузится первым и ниче не работает.
Всунуть загрузку модуля по-нормальному куда-то в systemd я ниасилил. После привычной init.d никак с ней совладать не могу. :(
Поэтому просто принудительно гружу его при старте slim.

Вот теперь все работает как надо.

Огромное спасибо, что помог разобраться!

vollemar
() автор топика
Ответ на: комментарий от vollemar

На самом деле я тебе не помог, ты сам разобрался.

ща попробую понять кто так делает :)

Это делает /lib/systemd/system/systemd-modules-load.service

Всунуть загрузку модуля по-нормальному куда-то в systemd я ниасилил.

В файле указаны каталоги в которых в файлах .conf есть информация о модулях для загрузки:
grep ConditionDirectoryNotEmpty /lib/systemd/system/systemd-modules-load.service
ConditionDirectoryNotEmpty=|/lib/modules-load.d
ConditionDirectoryNotEmpty=|/usr/lib/modules-load.d
ConditionDirectoryNotEmpty=|/usr/local/lib/modules-load.d
ConditionDirectoryNotEmpty=|/etc/modules-load.d
ConditionDirectoryNotEmpty=|/run/modules-load.d
Посмотри каталоги, которые будут перечислены у тебя.
В каком порядке грузятся модули из этих каталогов я понятия не имею — надо код смотреть.
Но, можно поэкспериментировать.
Если загрузка в алфавитном порядке файлов .conf внутри одного каталога, то нужно сделать например в /etc/modules-load.d файлы 01-nvidia.conf и 02-nouveau.conf в которые вписать название ядерных модулей. А потом посмотреть в логах в какой последовательности модули грузились. Хотя, по результату итак должно быть понятно. Но, может быть последовательность загрузки сортируется как-то более изощрённо. В код не смотрел.

imul ★★★★★
()
Ответ на: комментарий от anonymous

У ТС нуво-модуль сейчас итак в блеклисте. Если его удалить из блеклиста, то он грузится первым. Возможно его получится загрузить вторым, манипулируя с именами файлов .conf в каталогах.
Проверить без перезагрузки можно с помощью
strace /usr/lib/systemd/systemd-modules-load 2>&1 | grep openat | grep module
Очень много интересного

У меня вот так:
(дополнительно в конце ещё грепнуто по 'conf')
openat(AT_FDCWD, «/usr/lib/modules-load.d/fwupd-msr.conf», O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, «/usr/lib/modules-load.d/fwupd-redfish.conf», O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, «/etc/modules-load.d/i2c-dev.conf», O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, «/etc/modules-load.d/lm_sensors.conf», O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, «/usr/lib/modules-load.d/virtualbox.conf», O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, «/etc/modules-load.d/zfs.conf», O_RDONLY|O_CLOEXEC) = 3

То есть наблюдается сортировка файлов по алфавиту, без учёта каталогов.

Ну и напоследок
strace /usr/lib/systemd/systemd-modules-load 2>&1 | grep openat | grep module | grep conf
openat(AT_FDCWD, «/etc/modules-load.d/01-nvidia.conf», O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, «/etc/modules-load.d/02-nouveau.conf», O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, «/usr/lib/modules-load.d/fwupd-msr.conf», O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, «/usr/lib/modules-load.d/fwupd-redfish.conf», O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, «/etc/modules-load.d/i2c-dev.conf», O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, «/etc/modules-load.d/lm_sensors.conf», O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, «/usr/lib/modules-load.d/virtualbox.conf», O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, «/etc/modules-load.d/zfs.conf», O_RDONLY|O_CLOEXEC) = 3

imul ★★★★★
()
Последнее исправление: imul (всего исправлений: 3)
Ответ на: комментарий от imul

При попытке добавить модуль в списки получаю:

Jan 05 08:45:34 jess systemd-modules-load[276]: Module ‘nouveau’ is deny-listed

Обойти это мне не удалось.

Нормально он грузится только если принудительно сделать

modprobe [-aq] nouveau

т.е. нужен сервис который стартует после systemd-modules-load, но перед запуском slim.

vollemar
() автор топика
Ответ на: комментарий от vollemar

Jan 05 08:45:34 jess systemd-modules-load[276]: Module ‘nouveau’ is deny-listed

Его же надо из блеклиста убрать. А чтобы он первым не грузился назвать файл .conf с ним так, чтобы он по алфавиту был после файла с модулем nvidia.
У меня просто негде и не с чем экспериментировать.
Но, если не получится, то ты как бы уже итак нашёл рабочий способ.
Хотя, конечно 610-ю использовать как затычку с фреймбуфером дороговато, в этом я с анонимом полностью солидарен.

imul ★★★★★
()
Ответ на: комментарий от imul

Его же надо из блеклиста убрать. А чтобы он первым не грузился назвать файл .conf с ним так, чтобы он по алфавиту был после файла с модулем nvidia.

ну не смог я так сделать. либо нуво грузится вперед, либо никак.

Хотя, конечно 610-ю использовать как затычку с фреймбуфером дороговато, в этом я с анонимом полностью солидарен.

А что не так? 610я это же дешевая бескулерная затычка. не?
Щас их не делают, вместо нее 730 теперь.
(посмотрел текущие цены. не такая уж и дешевая. но у меня 610я была куплена еще по старым ценам.)
К тому же она уже валялась в ящике, а переходник еще нужно купить :))

Еще раз спасибо за помощь :)

vollemar
() автор топика
Ответ на: комментарий от vollemar

либо нуво грузится вперед, либо никак

Меня как раз это и смущало. Что последовательностью загрузки модулей никак нельзя управлять.

Если не трудно будет, покажи напоследок, что выведет команда:

strace /usr/lib/systemd/systemd-modules-load 2>&1 | grep openat | grep module | grep conf

И я насовсем отстану.

imul ★★★★★
()
Ответ на: комментарий от vollemar

Просто она даже на вторичка 30 бакинских а переходник 5 и не надо лишних драйверов геморроя и потребления электричества. То что она у тебя в ящике валяется это просто твоя лень, Авито или подобная помойка и придут заберут, сейчас с майнерскими ценами на нормальные карты берут и затычки, я во пол года назад 560 за 35 продал и ещё доволен парень был.

anonymous
()
Ответ на: комментарий от imul

Крч. провозился изрядно, и получил такие результаты.

  • трейс systemd-modules-load смотреть смысла нет, потому что модули грузит не оно. я убирал его вообще, и модуль nouveau все равно грузился.
  • поэтому я затрейсил весь open по процессу (init:1) и его форкам, т.е. полагаю что вообще по всем процессам. и получил два процесса которые открывают (и видимо загружают) эти модули
    process_289: https://pastebin.com/5ydV8DrS
    process_330: https://pastebin.com/LARYJejS
  • кмк, выше по трейсу грузится модуль video, и он (либо его дочерний) грузит nouveau. понять что это за процессы не удалось (т.к. на момент рассмотрения их уже нет, а по трейсу этого не видно).
  • nouveau стоит выше по списку. пробовал переименовать его в znouveau. все равно выше по списку.
  • nouveau присутствует в /lib/modules/5.15.12-arch1-1/modules.dep. nvidia тоже. порядок роли не играет.
  • также nouveau присутствует в /lib/modules/5.15.12-arch1-1/modules.order. nvidia тут нет. удаление nouveau перестает грузить его, но и делает его загрузку невозможным вообще (так-то я считал что за это отвечает modules.dep).

В общем итог снова такой же: если убрать блеклист - нуво, сука, грузится первым.
Либо не грузится вообще.
modprobe решает.

vollemar
() автор топика
Ответ на: комментарий от anonymous

В принципе я согласен, что по текущим ценам она кой-чего стоит.
И про лень тоже.

Продавать смысла не вижу. Вдруг пригодится :)

vollemar
() автор топика

биос и все что за ним считают порт HDMI (если в него включен кабель) - первым/главным и весь вывод идет туда.

Да, у меня так же. На плате MSI z97 и AMD видеокартой. Там в EFI точно есть переключалка портов. Драйвер видео EFI умеет разговаривать с видеокартами, видимо. Сейчас не могу сказать точно - она в два приема включается: что-то вроде сначала включить «Совместимость с Windows 10» (сохранить, перезагрузить), потом появляется «настройки GOP». Как-то так примерно, по памяти. Но в итоге - точно там ставил DP-0 первым вручную.

Toxo2 ★★★★
()
Последнее исправление: Toxo2 (всего исправлений: 1)
Ответ на: комментарий от anonymous

softdep nouveau pre: nvidia

Блин, а че так можно было?
Встало сразу и без приседаний.
Вот что значит пришел человек который читает мануалы.

Спасибо, прописал. буду знать.

vollemar
() автор топика
Ответ на: комментарий от Toxo2

На плате MSI z97 и AMD видеокартой. Там в EFI точно есть переключалка портов. Драйвер видео EFI умеет разговаривать с видеокартами, видимо.

Может это работает для AMD? Выше говорили что «Ничего не поделаешь, это nvidia».

что-то вроде сначала включить «Совместимость с Windows 10»

Такого/похожего нет.
Нашел «Ultrafast boot», он включает настройку «Enable VGA: EFI».
Могу предположить что близко к теме.

потом появляется «настройки GOP».

Можно больше деталей про этот пункт?
Нужно как-то зайти в настройки EFI?

vollemar
() автор топика
Ответ на: комментарий от vollemar

Сейчас нет физического доступа к той машине. Скачал PDF к той мат.плате. Там такое в описании BIOS Setup:

▶▶Internal GOP Configuration
Manages the onboard Graphics Output Protocol (GOP). Press <Enter> to enter the sub-menu. This menu shows the iGFX Driver version for system information management. This sub-menu will appear when “Windows 8 Feature” is enabled.

В целом - почти не наврал. Только 8 вместо 10.

В вашей плате может и не быть этого, но попробуйте поискать что-нибудь похожее по смыслу. Только едва ли “Windows 8 Feature” == “Ultrafast boot“ мне кажется. У неё там этих FastBoot'ов аж два отдельных пункта. Я их все повыключал.

Toxo2 ★★★★
()
Ответ на: комментарий от Toxo2

Manages the onboard Graphics Output Protocol (GOP). Press to enter the sub-menu. This menu shows the iGFX Driver version for system information management.

Похоже на настройку для встроенной видяхи.

В вашей плате может и не быть этого, но попробуйте поискать что-нибудь похожее по смыслу.

Не удалось найти ничего похожего.

Впрочем, в любом случае, мой вопрос разрешился, хоть и не совсем так как планировалось изначально.

vollemar
() автор топика

Хочется видеть логин (нужно) и иногда BIOS

Вот ты взял, и ограничил себя организационным решением:) У меня похожая ситуация - джва монитора на встройке AMD (VGA+DVI). BIOS, и рабочий стол после логона зеркалятся, а вот экран с паролем (тоже SLIM) только на одном мониторе, на втором монике цвет фона. Тупо набираю вслепую две строки и не парюсь:) Не, конечно, возможно, может быть, когда нибудь и ввод пароля отзеркалю на оба монитора, а пока… :)))

anonymous
()
Ответ на: комментарий от anonymous

Тупо набираю вслепую две строки и не парюсь:)

Иногда логиниться нужно жене, когда меня дома нет.
А она так не может.

vollemar
() автор топика
Ответ на: комментарий от vollemar

Защиту от ребенка можно и в графическом DM логином делать. Они уже вполне могут настраиваться на показ на определенном дисплее. Так как уже грузят иксы

anonymous
()
Ответ на: комментарий от vollemar

А она так не может. Может, может - бабы не понимают, бабы ЗАПОМИНАЮТ, нужно только один раз показать:) Но, да, это значит показать свою слабость, ну такое.

Поэтому, еще вариант - slim тему запилить, в которой поле ввода прибито резиновыми гвоздями на нужной стороне «стола».

  1. Сделал (в devuan) копию папки с темой /usr/share/slim/themes/default/, назвал ее dual-default.
  2. У меня конфиг где новую тему указал тут /etc/slim.conf сделав предварительно резервную копию, в нем в current_theme прописал прямо так «dual-default» без путей. Проверил перезагрузкой (может и перевхода хватило бы, но это не точно:)
  3. В конфиге темы /usr/share/slim/themes/dual-default/slim.theme поменял ЕДИНСТВЕННЫЙ параметр input_panel_x вместо 25% написал 70% Проверил перелогоном - работает как надо все. Поле ввода переехало на второй монитор, имя вписывается в квадратик, пароль в виде звездочек туда же. Еще и перезагрузкой проверил, с тем же успешным результатом, пользуйтесь:) …
  4. profit

Хочется видеть [skip] и иногда BIOS Тут нипаняатна, биос обычно на все выходы отдается. Модить видеобиос нужно КМК.

ЗЫЖ Со СНГ! Добра ИРЛ в НГ:)

anonymous
()
Ответ на: комментарий от anonymous

Слим не может в два монитора, ssdm или lighdm могут в скрипт устанавливающий на какой монитор выводить

anonymous
()
13 мая 2023 г.

В общем, моя проблема решилась добавлением опции в /etc/X11/xorg.conf:

Section «Device»
Option «MetaModeOrientation» «DFP-1 LeftOf DFP-0»

Теперь slim показывает логин там где надо.

vollemar
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.