LINUX.ORG.RU

grub2 BIOS НЕ UEFI nvidia 1920x1080 странный глюк vbeinfo videoinfo

 , ,


1

1

Поскольку я люблю ИГЫ111 и блоб Нвидии, грузился я себе в иксы в текстовой консольке 80x24, и grub2 у меня тоже был чорный, текстовый. Но оказалось я слоу, и в nvidia-drivers завезли nvidia-drm.modeset=1. И стала у меня vesa консолька красивая, с мелкими буковками, 1920x1080x32. И решил я по этому поводу в grub2 тоже красоту навести, но не тут то было...

Ловлю удивительный глюк. При загрузке с GRUB_TERMINAL=«gfxterm» никакие GRUB_GFXMODE не применяются, да и на gfxterm идёт ругань, и всё сваливается в textmode. Но я умею читать документацию, консоли груба не боюсь, колочу в ней vbeinfo - никаких режимов нет. Второй раз vbeinfo, не перезагружаясь - режимы есть. videoinfo ведёт себя аналогично, показывает режимы только со второго раза. vbetest 1920x1080x32, videotest 1920x1080x32 отрабатывают нормально, но аналогичным образом, только со второго захода. Не сказать чтобы мне эта красота была особенно нужна, но хочется же разобраться и как то пофиксить или закостылить какой нибудь костыль, пинающий vbe два раза, и потом уже выставлять всякие красоты с бэкграундами. Есть идеи как это реализовать?

Конфиг grub.cfg меня пугает, он полон нечеловеческого кода сгенерённого скриптами и шаблонами. Я пытался туда вписать vbeinfo два раза перед тем местом где инициализация графического режима начинается, и чего то они у меня вообще не отработали.

★★★★★

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

Не мучайся купи Radeon fixed for you

anonymous
()

судя по

GRUB_TERMINAL=

ты воюешь не туда, тебе редактировать grub.cfg нужно, а не конфиги дистрибутива, которые к grub2 не имеют никакого отношения. они напридумывали скриптов, чтобы пользователю было удобнее, якобы, по факту же получается, они прячут от пользователя саму суть настройки приложений, в итоге пользователь не знает как настроить программу, а знает как настроить конфиг в дистрибутиве _подставь название_.

так вот. открываешь /boot/grub/grub.cfg и пишешь свой конфиг.

function load_video {
	if [ x$feature_all_video_module = xy ]; then
		insmod all_video
	else
		insmod efi_gop
		insmod efi_uga
		insmod vbe
		insmod vga
	fi
}

if loadfont /boot/grub/unicode.pf2; then
	set gfxmode=auto
	load_video
	insmod gfxterm
	terminal_output gfxterm
	set gfxpayload=keep
	insmod png
	set theme="/boot/grub/themes/starfield/theme.txt"
fi

set color_normal=cyan/blue
set menu_color_normal=black/light-gray
set menu_color_highlight=white/cyan
set timeout=3

menuentry "GNU/Linux" {
	linux	/boot/vmlinuz-5.7.2 root=/dev/sda2
	initrd	/boot/initrd.img-5.7.2
}

прежде всего, не бойся чего-то сломать. grub2 с пустым конфигом выдаст тебе консоль, такую, как если нажать «c» во время выбора ОС. если ты не можешь загрузиться, то в этой консоли просто пишешь: linux /boot/vmlinuz-5.7.2 root=/dev/sda2, затем boot. прежде чем начинать «ломать», рекоменду потренероваться чтобы уметь грузиться из консоли grub2.

во-вторых, в конфиге самое главное это menuentry, всё остальные параметры без которых можно жить, редактируй их и не стесняйся.

посмотри, есть ли у тебя /boot/grub/unicode.pf2, если нет, то выкини это условие, оно тебе не нужно, пусть сразу графику включает. есть ли у тебя тема starfield (идёт из коробки с grub2), если нет, то set theme тоже выкидывай, я их просто у себя использую.

а всё остальные параметры включают графику. конкретно, включает графику terminal_output gfxterm, а переменная set gfxmode определяет разрешение, можешь установить set gfxmode=1920x1080x32.

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

спрашивай чё непонятно.

Spoofing ★★★★★
()

nvidia-drm.modeset=1

врубил у себя такое, проверяю

sudo cat /sys/module/nvidia_drm/parameters/modeset
Y

ага работает, но профитов не вижу - буковки в консольки крупные да и вообще на глаз никаких изменений не видно…

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

Дружище, я это знаю, я достаточно продвинутый пользователь. Я понимаю как генерится конфиг груб, и я понимаю как работают скрипты его генерящие. И с рукопашным конфигом я тоже попытался уже. Проблема в том, что, после загрузки vbe, видеокарта как то криво инициализируется и отдаёт список vesa режимов только со второго пинка. А с первого раза ничего графического не взлетает, например vbetest пишет что нет доступных видеорежимов. А со второго раза они уже есть. Вот собсно это я и хочу побороть. Точнее уже наверное не хочу, всё равно машину скоро поменяю, и в новой уже будет UEFI и не будет GRUB. За попытку помочь благодарю.

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

Блоб nvidia не имеет фреймбуфера как такового, в ядре должна быть включена поддержка simplefb для kms или vesafb если kms не используется. Также ядру при загрузке нужно передать видеорежим из GRUB через GRUB_GFXPAYLOAD_LINUX. Или через параметр загрузки ядра video=. Если у тебя UEFI можно efi_fb попробовать.

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

Да, ты прав. Так и есть. Я ими правда не пользуюсь, но заранее подготовился к грядущему переходу, собрал ядро с drm и использую simplefb вместо vesafb, который я впрочем до этого так и не использовал, ибо мне было плевать на разрешение в консоли. Если что ломалось я и в олдскульной текстовой 80x24 консоли всё прекрасно чинил.

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