LINUX.ORG.RU

NVIDIA, EDID и ttyX, как избавиться от «Вход не поддерживается»?

 , ,


0

1

После установки драйверов nvidia-driver:525, после запуска Xorg, если переключиться в tty монитор писал «Вход не поддерживается», переключение обратно в xorg tty не помогало. После добавления в xorg.conf

Section "Screen"
  Option "UseEDID" "False"
EndSection
Переключение обратно в xorg начало приводить к тому, что xorg нормально отображается. Но в tty все равно «Вход не поддерживается», его я никак после запуска xorg увидеть не могу.

Как я понял, проблема в том что переключение на tty пытается ввести монитор в какой то неправильный режим, но как его сделать правильным?

Пробовал ставить по отдельности и вместе nomodeset, nvidia-drm.modeset=1, nvidia-drm.modeset=0, drm.edid_firmware=edid/custom_edid.bin где custom_edid.bin это то что я сгенерировал находясь в графической сессии с помощью nvidia-settings, но ничего не помогло.

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

Debian 12, Linux 6.1.0, NVIDIA 525.105.17, RTX 3060 LHR

Монитор https://www.dns-shop.ru/product/483fcc72d53b3332/238-monitor-acer-ka242ybi-ce...

Видеокарта https://www.dns-shop.ru/product/49b77a8077562eb0/videokarta-kfa2-geforce-rtx-...

★★★

Последнее исправление: MOPKOBKA (всего исправлений: 6)

Ты хотя бы какой дистрибутив используешь написал. Ну и версию ядра например. Читал что nvidia-drivers имеют какие то проблемы с ядерным simple framebuffer, но прекрасно работают с efi framebuffer. У меня так и настроено, simple framebuffer отключён, efi framebuffer включён, но у меня генту и ядро самосборное. С переключением в консоль и с графическим разрешением в ней проблем нет. Вот фрагмент dmesg

efifb: probing for efifb
efifb: No BGRT, not showing boot graphics
efifb: framebuffer at 0xb0000000, using 8640k, total 8640k
efifb: mode is 1920x1080x32, linelength=8192, pages=1
efifb: scrolling: redraw
efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
fbcon: Deferring console take-over
fb0: EFI VGA frame buffer device
fbcon: Taking over console
Jameson ★★★★★
()
Ответ на: комментарий от Jameson

Вход не поддерживается, попробовал так:

# dmesg | grep efifb
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.1.0-9-amd64 root=UUID=6da958f2-446b-4fff-b01b-6007387c23eb ro quiet video=efifb nvidia-drm.modeset=1 drm.edid_firmware=edid/edid_custom.bin
[    0.023363] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.1.0-9-amd64 root=UUID=6da958f2-446b-4fff-b01b-6007387c23eb ro quiet video=efifb nvidia-drm.modeset=1 drm.edid_firmware=edid/edid_custom.bin
[    0.272864] pci 0000:01:00.0: BAR 1: assigned to efifb
[    0.655350] efifb: probing for efifb
[    0.655355] efifb: framebuffer at 0x90000000, using 3072k, total 3072k
[    0.655356] efifb: mode is 1024x768x32, linelength=4096, pages=1
[    0.655357] efifb: scrolling: redraw
[    0.655357] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0

# dmesg | grep fb0
[    0.014563] ACPI: Reserving FACP table memory at [mem 0x8dbfb000-0x8dbfb113]
[    0.655827] fb0: EFI VGA frame buffer device

# dmesg | grep fbcon
MOPKOBKA ★★★
() автор топика
Последнее исправление: MOPKOBKA (всего исправлений: 2)

Ну и вообще логика такая, по идее вся эта ядрёная тряхомудия, в том числе и nvidia с разными modeset не должны сами что то там читать и выставлять до взлёта иксовых дров, в пропиетарных дровах nvidia фреймбуфер отсутствует, и они полагаются на то что им ядро предоставит.

Здесь есть две засады: первая в том что nouveau как раз ИМЕЕТ ядерный framebuffer, и он конфликтует с пропиетарными дровами. Поэтому модуль nouveau должен быть в чёрном списке и не загружаться при использовании пропиетарных дров. Обычно оно само как надо настраивается (в смысле модуль nouveau прописывается в чёрный список) если пропиетарные дрова ставятся штатным для дистрибутива способом.

Вторая засада вот в чём. Из универсальных framebuffer «общего назначения» у нас есть efifb и simplefb, оба два они работают очень просто, они получают свои параметры из EFI BIOS видеокарты и изменять их не могут, просто рисуют в то что им дали. Недавно какой то гений добавил в ядро DRM версию simplefb драйвера, simpledrm, и он конфиликтует с nvidia.

На текущий момент ситуация такова — пропиетарные драйверы гарантированно работают с efifb, есть нарекания на глюки при работе с simplefb и гарантированно глючат с simpledrm.

Попробуй в параметрах загрузки ядра сказать video=simplefb:off, по идее должен произойти fallback на efifb.

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

efifb у тебя используется, но вряд ли монитор у тебя 1024x768x32.

У тебя случаем в биос не включен legacy support или как то так для VGA? Потому что по непонятной причине твой BIOS не вычитывает «правильное» разрешение твоего монитора из GOP видеокарты и соответственно не передаёт его efifb. Такое может быть если в BIOS включены какие нибудь legacy VGA и GOP не используется при загрузке и инициализации.

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

Совершенно нормальный фреймбуфер. Проснись, nvidia работает с efifb и simplefb уже сто лет как. Щас ты мне рассказывать будешь про nvidia и текстовый режим, ага. Дай угадаю, ты амдшник который последний раз nvidia лет двенадцать назад видел, да?

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

Ну значит дело в битых настройках видеорежима для этих fb. Можно либо возиться исправлять (и так чтобы не задеть при этом нвидию, либо просто выключить фреймбуферы).

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

Там нет никаких настроек видеорежима. Simple фраймбуферы потому и simple что тупо рисуют в то что им EFI BIOS матери отдал. A EFI BIOS матери узнаёт про разрешения читая GOP из прошивки видеокарты. Карта у ТС свежая, модная, комухтер тоже (на несвежем такое не заведётся), GOP обязан быть и обязан использоваться. Не работать это всё может только по причине кривых legacy включённых в настройках BIOS на матери. Ну или по причине наголову отбитого монитора, с которым видеокарта почему то не может общаться, хотя обязана это делать. Ну ещё может быть что ТС что то нахеровертил в GRUB, и он портит или сбрасывает видеорежим.

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

Так? Сделал, не вышло. Опции ядра оставил пустыми.

cat /etc/modprobe.d/nvidia-blacklists-nouveau.conf 
# You need to run "update-initramfs -u" after editing this file.

# see #580894
blacklist nouveau

blacklist cfb
blacklist ofb
blacklist hgafb
blacklist vt8623fb
blacklist matroxfb_accel
blacklist matroxfb_DAC1064
blacklist matroxfb_base
blacklist matroxfb_Ti3026
blacklist matroxfb_crtc2
blacklist matroxfb_g450
blacklist i2c-matroxfb
blacklist matroxfb_misc
blacklist matroxfb_maven
blacklist vfb
blacklist arcfb
blacklist cirrusfb
blacklist uvesafb
blacklist kyrofb
blacklist savagefb
blacklist sisfb
blacklist neofb
blacklist hecubafb
blacklist radeonfb
blacklist aty128fb
blacklist atyfb
blacklist arkfb
blacklist udlfb
blacklist sstfb
blacklist tridentfb
blacklist pm3fb
blacklist fb_ddc
blacklist mb862xxfb
blacklist viafb
blacklist vga16fb
blacklist tdfxfb
blacklist vmlfb
blacklist cyber2000fb
blacklist s3fb
blacklist pm2fb
blacklist ivtvfb
blacklist ifb
blacklist sch_sfb

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

Я думаю что виноват монитор, или связка Nvidia+MSI+Acer, не знаю даже. Выключил VGA Detect в BIOS, остальное вроде и так нормально, загрузка UEFI, видеокарта выбрана на использование не встроенная.

На AMD была другая проблема, до загрузки системы писало «Нет сигнала», и нужно было вытаскивать видеокарту, что бы что то настроить в UEFI. На встройке Intel все ок.

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

Потому что у тебя не в этом проблема. Она у тебя вот тут:

[    0.655356] efifb: mode is 1024x768x32, linelength=4096, pages=1

Вместо 1024x768x32 должно быть нативное разрешение матрицы твоего монитора. И это не настраивается в linux, ядре, фреймбуфере и т.п., это всё должно быть УЖЕ согласовано и настроено в момент инициализации, даже до GRUB. Раз оно поломано — одно из двух, у тебя в BIOS включено какое то legacy и инициализация видеокарты происходит в legacy VESA режиме, либо у тебя кривой монитор\неправильный шнур (что вряд ли, так как после загрузки иксов я так понимаю устанавливается правильный видеорежим). Моё мнение — рой настройки BIOS.

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

Поставил в GRUB

GRUB_GFXMODE=1920x1080x32
GRUB_GFXPAYLOAD_LINUX=keep
Теперь dmesg
[    0.652237] efifb: probing for efifb
[    0.652242] efifb: framebuffer at 0x4000000000, using 8640k, total 8640k
[    0.652243] efifb: mode is 1920x1080x32, linelength=8192, pages=1
[    0.652243] efifb: scrolling: redraw
[    0.652244] efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
Но тоже самое.

Я думаю герцовка не та?

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

Представим что я установил чистую систему, и поставил драйвера NVIDIA 530, вот как будет:

  • UEFI отображается, GRUB отображается
  • TTY отображается, загрузка бежит, systemd виден
  • После systemctl start gdm будет все ок
  • Переключение на TTY без Xorg - Вход не поддерживается
  • Переключение на TTY с Xorg - Если его не трогать и сидеть в нем то все ок. Если переключение из TTY без Xorg то будет вход не поддерживается, если сделать logout в gdm то тоже самое

Если добавить UseEdid False в xorg.conf, то:

  • UEFI отображается, GRUB отображается
  • TTY отображается, загрузка бежит, systemd виден
  • После systemctl start gdm будет Xorg, все отображается норм
  • Переключение на TTY без Xorg - Вход не поддерживается
  • Переключение на TTY с Xorg - Экран загорается, все окей, даже если перед этим я переключился на TTY без Xorg
MOPKOBKA ★★★
() автор топика
Последнее исправление: MOPKOBKA (всего исправлений: 4)
Ответ на: комментарий от MOPKOBKA

Да, похоже на какие то проблемы с EDID. Попробуй кастомный EDID не в параметрах ядра прописывать, я видел багрепорт что nvidia его игнорирует и не уверен что они это исправили, а в xorg.conf, как это советуют вот тут https://wiki.archlinux.org/title/NVIDIA/Tips_and_tricks#X_with_a_TV_(DFP)_as_...

А ещё скажи какие входы имеет твой монитор, какие выходы имеет твоя видеокарта и какой кабель ты используешь

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

А ещё скажи какие входы имеет твой монитор, какие выходы имеет твоя видеокарта и какой кабель ты используешь

Монитор имеет входы VGA и HDMI, на видеокарте есть HDMI и DisplayPort. Подключаюсь по HDMI.

Вопрос. В nvidia-settings в пункте GPU 0 - (NVIDIA GeForce), мой подпункт называется HDMI-0 - (DFP-0), мне в конфиге:

Option "ConnectedMonitor" "DFP"
Option "CustomEDID" "DFP-0:/etc/X11/dfp0.edid"
Так и указывать DFP-0 или у меня HDMI-0? А то я не понял.

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

Посмотри в /var/log/Xorg.0.log, как там написано. И выложи его на pastebin, вместе с dmesg, дабы разговор стал ещё более конкретным. Кстати, а HDMI дырок на карте сколько? И кабель какого поколения используется? У самого монитора нет никакого сервисного меню с настройками на тему портов и EDID?

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

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

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

Кстати, а HDMI дырок на карте сколько?

1

https://www.dns-shop.ru/product/49b77a8077562eb0/videokarta-kfa2-geforce-rtx-...

И кабель какого поколения используется?

Без понятия, мне его отдали, но тот кто его использовал не жаловался, можно как то проверить?

У самого монитора нет никакого сервисного меню с настройками на тему портов и EDID?

Можно выбрать VGA / HDMI на этом все.

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

Мне тут гугль говорит что у твоего монитора два HDMI входа, ты их оба пробовал? А на кабеле обычно маркировка есть, на самом кабеле или на разъёмах. Но я просто для полноты информации спросил, вряд ли это кабель виноват. Хотя кто знает, если есть возможность попробовать более другой кабель — имеет смысл попробовать.

Jameson ★★★★★
()

Только хотел сказать, что у меня нечто похожее происходит (Debian 12, ядро 6.1.27, драйвера NVIDIA 525.105.17), но нет, не совсем такое.

У меня при загрузке изображение на виртуальной консоли фризится в какой-то момент при загрузке. На клавиатуру при этом реагирует, но на экране ничего не происходит. Если вслепую войти и ввести startx (так уж я запускаю иксы, исторически сложилось), то иксы запускаются и все работает. Переключение во вторую виртуальную консоль тоже работает (и там фриза нет).

Из похожего в сети нашел вот это: https://forums.developer.nvidia.com/t/framebuffer-output-stops-since-linux-kernel-6/244467 и техническое обсуждение https://patchwork.freedesktop.org/patch/517921/?series=112679 Но проверять пока поленился (пересобирать ядро с патчем неохота).

Чтобы подтвердить, действительно ли дело в регрессии в шестом ядре, можно попробовать установить ядро 5.18.16 или ранее (например, отсюда https://snapshot.debian.org/package/linux/5.18.16-1/ ). Будет время, я попробую, это быстрее, чем патчить и пересобирать ядро.

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

Я выключил все лишние настройки, залогинился в lightdm, получил экран xfce4 сделал ctrl+alt+fX пару раз, и reboot (уже вслепую).

Как я понимаю мой конфиг с предыдущего сеанса это Xorg.0.log.old https://pastebin.com/xg8d8M7w

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

Не, не AMD FreeSync в мониторе, а G-Sync в панели nvidia-settings. Я вкурсе что AMD FreeSync в твоём мониторе работает только через DP подключение, но монитор может рапортовать через EDID что он g-sync совместимый и драйвер может его включить. Ну или может быть ты сам насильно его форсировал случайно, вот это я и предлагаю проверить.

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

Вычитал что это похоже на ядрёный баг который с 5.18 появился — после активации DRM дохнут все legacy фреймбуферные консоли, потому что типа должно происходить переключение на новомодный simpledrmfb, но поскольку nvidia c ним глючит разработчики дистрибутивов с ним ядро не собирают. Кроме федоровцев, которые собирали, поели говна от nvidiaвладельцев и перестали так делать. Странно что у тебя с 5.10 ядром всё точно так же. Попробуй c nvidia_drm.modeset=0 загрузиться и попереключаться?

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

Кстати я сейчас сам аналогичный баг словил, тоже потерял фреймбуферную консоль после ctrl+alt+F1. До этого как часы работало, похоже действительно что то в драйвере сломали, или в ядре. Так что пока я ХЗ как чинить, сам ушёл в дебаг бага. Нарою чего — отпишусь, а пока я сам уже ничего не понимаю. Сейчас попробую ядро 6.3.2 собрать и с ним потестить.

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

Странно что у тебя с 5.10 ядром всё точно так же. Попробуй c nvidia_drm.modeset=0 загрузиться и попереключаться?

Я уже почти все сочетания пробовал, эффекта это не дает, сейчас попробовал оставить только nvidia-drm.modeset=0, и все та же проблема.

MOPKOBKA ★★★
() автор топика

Linux 6.1.0

6.1.27 у тебя на самом деле, судя по логам. Это у Дебиана в репах своя странная нумерация версий ядра.

NVIDIA 525.105.17

Значит, я правильно делаю, что сижу на блобе 525.116.04 с сайта Нвидии, он просто работает.

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

Значит, я правильно делаю, что сижу на блобе 525.116.04 с сайта Нвидии, он просто работает.

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

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

Попробуй nvidia-drivers обновить до той же версии что у меня, а так вообще мои полномочия всё. У меня не воспроизводится и идей больше нет.

В Линукс всегда что нибудь не работает, причём только у тебя.
(кто то с LOR)
Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 1)