LINUX.ORG.RU

Как настроить видеовыход для ядерной консоли, желательно без ребута?

 , , ,


0

1

В иксах с помощью xrandr переключается на лету между VGA и HDMI, как сделать то же самое для ядерной консоли? Знаю про прописывание аргументов в grub, но там нужно ребутаться, другие варианты есть? И ещё, желателен режим чтобы на всех видеовыходах была одинаковая картинка (то есть чтобы сделать 1 раз и больше ничего не переключать) - такое можно настроить хоть как-нить?

★★★★★

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

Нету таких

$ ls -al /sys/class/drm
итого 0
drwxr-xr-x  2 root root    0 июн  2 17:45 .
drwxr-xr-x 61 root root    0 июн  2 07:30 ..
lrwxrwxrwx  1 root root    0 июн  2 17:45 card0 -> ../../devices/pci0000:00/0000:00:02.0/0000:01:00.0/drm/card0
lrwxrwxrwx  1 root root    0 июн  2 17:46 renderD128 -> ../../devices/pci0000:00/0000:00:02.0/0000:01:00.0/drm/renderD128
-r--r--r--  1 root root 4096 июн  2 17:46 version
внутри card0/ тоже ничего похожего.

find /sys -name '*VGA*' ничего не находит

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

мимокрокодил

на чем проверял? я для моноблока вижу такое

~$ ls /sys/class/drm/
card0  card0-DP-1  card0-HDMI-A-1  card0-VGA-1  renderD128  version
~$ cat /sys/class/drm/card0-VGA-1/status 
connected
~$ cat /sys/class/drm/card0-HDMI-A-1/status 
disconnected
~$ cat /sys/class/drm/card0-DP-1/status 
disconnected

(моя расшифровка:видеокарта имеет 3 выхода, используется VGA – я немного в шоке, разобрать его штоле…)

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

Сейчас у себя проверил с подключенным VGA:

❯ lspci|grep Graph
00:02.0 VGA compatible controller: Intel Corporation CoffeeLake-S GT2 [UHD Graphics 630]

❯ ls /sys/class/drm/
card1@  card1-DP-1@  card1-DP-2@  card1-DP-3@  card1-HDMI-A-1@  card1-HDMI-A-2@  card1-HDMI-A-3@  renderD128@  version

В этой конфигурации (3 монитора) card1-DP-3 почему-то как раз и отвечает за VGA

❯ xrandr|grep connected
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP3 connected 1024x768+0+0 (normal left inverted right x axis y axis) 1020mm x 570mm
HDMI1 connected primary 1920x1200+0+0 (normal left inverted right x axis y axis) 520mm x 330mm
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 connected 1920x1200+1920+0 (normal left inverted right x axis y axis) 520mm x 330mm
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
alx777 ★★
()
Ответ на: комментарий от alx777

Ну, видимо у нас что-то отличается (у меня ядро 5.10 и nvidia-390). Впрочем ls без -al не особо полезная команда.

card1-DP-3 почему-то как раз и отвечает за VGA

Видимо VGA-выход реализован как адаптер с DP.

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

Как определить?

А кстати я вспомнил - на не-nvidia видеокартах консоль в большом разрешении всегда, а на нвидии почему-то 80х25. Возможно это связано.

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

А, я думал это где-то в командной строке ядра итд. Ядро дефолтное дебиановское.

$ grep KMS /boot/config-`uname -r`
CONFIG_DRM_KMS_HELPER=m
CONFIG_DRM_KMS_FB_HELPER=y
# CONFIG_DRM_VKMS is not set
$ lsmod | grep kms
drm_kms_helper        278528  1 nvidia_drm
cec                    61440  1 drm_kms_helper
drm                   634880  4 drm_kms_helper,nvidia_drm
firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Впрочем ls без -al не особо полезная команда.

❯ ll /sys/class/drm/
lrwxrwxrwx    0 root root  3 Jun 10:46  card1 -> ../../devices/pci0000:00/0000:00:02.0/drm/card1/
lrwxrwxrwx    0 root root  3 Jun 10:46  card1-DP-1 -> ../../devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-1/
lrwxrwxrwx    0 root root  3 Jun 10:46  card1-DP-2 -> ../../devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-2/
lrwxrwxrwx    0 root root  3 Jun 10:46  card1-DP-3 -> ../../devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-3/
lrwxrwxrwx    0 root root  3 Jun 10:46  card1-HDMI-A-1 -> ../../devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-1/
lrwxrwxrwx    0 root root  3 Jun 10:46  card1-HDMI-A-2 -> ../../devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-2/
lrwxrwxrwx    0 root root  3 Jun 10:46  card1-HDMI-A-3 -> ../../devices/pci0000:00/0000:00:02.0/drm/card1/card1-HDMI-A-3/
lrwxrwxrwx    0 root root  3 Jun 10:46  renderD128 -> ../../devices/pci0000:00/0000:00:02.0/drm/renderD128/
.r--r--r-- 4,1k root root  3 Jun 10:46  version
alx777 ★★
()
Ответ на: комментарий от iliyap

Появились. Только почему-то xrandr называет выходы VGA-0 и HDMI-0 а тут HDMI-A-1 и VGA-1

cat /sys/class/drm/card0-HDMI-A-1/status
connected
cat /sys/class/drm/card0-VGA-1/status
connected
А ещё есть DVI-I-1 который одинаково называется и DVI-I-0 который есть только в xrandr.

Консоль через VGA всё равно не показывается.

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

Подключил второй монитор (старый, VGA FHD) к своей GT 730 (драйвер nvidia-470). Такая же история: консоль efifb только на HDMI мониторе, X11 сессия на обоих мониторах.

dmesg говорит efifb: mode 800x600, шрифт 8x16, т.е. в консоли 100x37 знакомест.

Говорят в nvidia-545 появился параметр nvidia_drm.fbdev=1, который делает хороший DRM фреймбуфер. Но мне проверить не на чем.

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

Так там не fb, там текстовый режим 80x25. modeset только добавил видеовыходы в sysfs а на видеорежим никак не повлиял.

И мне кажется что VGA-1 который в sysfs и VGA-0 который во всех остальных местах это возможно разные выходы.

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

Системная прошивка компьютера видимо не реализует UEFI. Либо загрузка идёт в режиме BIOS Legacy. fb консоль видимо будет у тебя только с nouveau.

Названия видеовыходов действительно разные. Ядерный DRM драйвер nvidia_drm.ko придумывает одни названия (и публикует их в подсистему DRM/KMS ядра), юзерспейсный DDX драйвер nvidia_drv.so придумывает другие названия (и публикует их в RANDR подсистему Xorg). Это и на интеловской встройке так (i915.ko и modesetting_drv.so).

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

Да, загрузка традиционная разумеется. Только я не пойму причём тут видеодрайвер, он должен самостоятельно без помощи биоса уметь режимы переключать.

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

DRM/KSM драйвер умеет переключать видеорежимы. Но он не делает это по своей инициативе. Ему нужен клиент. Генерик клиента в ядре нету. В i915.ko есть клиент i915drmfb. В radeon.ko есть клиент radeondrmfb. В amdgpu.ko есть клиент amdgpudrmfb. А в nvidia.ko нету такого клиента. Вроде в свежих версиях драйвера (которые для Maxwell плат и более поздних) его добавили.

Есть юзерспейсный клиент kmscon, я его не разу не пробовал.

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

Хм, ладно, дело то вобщем-то не в видеорежиме. Я не писал что хочу 80х25 менять на что-то другое, я писал что хочу чтоб он показывался на всех выходах.

Сейчас ребутаться ещё раз не хочу чтобы проверить (проверю может позже), но вроде бы биосовские заставки и груб показываются на всех выходах, а потом уже линуксовый драйвер отключает VGA. То есть портит исправную работу всех видеовыходов, заменяя её на «только один».

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

а потом уже линуксовый драйвер отключает VGA

Не исключено, у себя я наблюдаю например такое

❯ sudo dmesg |grep i915
[    4.139352] i915 0000:00:02.0: [drm] Found COFFEELAKE (device ID 3e92) display version 9.00 stepping N/A
[    4.153957] i915 0000:00:02.0: vgaarb: deactivate vga console
[    4.154918] i915 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=io+mem:owns=io+mem
alx777 ★★
()
Ответ на: комментарий от firkax

А это ноут, или десктоп? А то на ноутах бывает, что картинки не будет на внешние мониторы, пока не загрузится ОС. У меня так, по крайней мере. Раньше, на ранних EFI и многих, если не всех, BIOS машинах работали как минимум внешние VGA мониторы вместе с основным дисплеем. И после инициализации видеоадаптеров у меня работают и внешний, и основной мониторы, только разрешение выставляется неправильное.

yars068 ★★★★★
()