Změna rozlišení při bootu

Změna rozlišení při bootu
« kdy: 18. 12. 2024, 21:04:53 »
chtěl bych nastavit rozlišení v linuxu při bootování
když zapnu počítač připojený k HDMI monitoru , bios logo se objevuje v rozlišení 1080 , s tím se asi nic dělat nedá , v biosu takové nastavení nemám a monitor nastavit HDMI na pevné rozlišení neumožňuje
dál se objevuje grafický SYSLINUX a opět mám rozlišení 1080 , chtěl bych však už tady začít a nastavit 1280x720
dál jde boot kernelu , vidím tam vesafb 1024 text je větší a je všechno dobře vidět nicméně monitor se přepíná na 1080 , chtěl bych tam mít 1280x720
mám zadaný parametr vga=791 , nejbližší jsem našel 794 pro rozlišení 1280x1024 to však můj problém neřeší , vysvětlení přijde později
v určitém okamžiku se boot zastaví a blikne do rozlišení 1080 a text konzoly je drobně vidět to mi vadí
pak startuje xorg a tam přesto že jsem zadal modes v sekci screen pouze na "1280x720" , "1024x768" a "800x600" skočí tam 1080
xrandrem si nastavím konečně 1280x720 a to už mám připravené pro všechny aplikace
jde mi o to aby to desetkrát neblikalo celý čas , tuším že monitoru to neprospívá
chtěl bych začít už v syslinuxu hned za bios logem s rozlišením 1280x720 a to tam mít celý čas procesu bootu až do xorgu
našel jsem si pro syslinux parametr MENU RESOLUTION ale když jsem tam zadal 1280 720 zbortila se obrazovka do textových znaků
dál vga=791 vyšlo identicky jako vga=794 a číslo pro 1280x720 jsem nikde nenašel
objevil jsem parametr kernelu video=DP-1:1280x720@60 ale nedělalo to žádnou změnu
* :-)
potřeboval bych všechny správné rady a tipy ke kterékoliv části kdo co ví a pomůže
děkuji


Re:Změna rozlišení při bootu
« Odpověď #1 kdy: Dnes v 00:24:22 »
Mno... pozdější verze Syslinuxu mají možnost rozšiřujících modulů v binárním formátu COM32, zdrojáky Syslinuxu pár takových modulů obsahují (lze zkompilovat), jeden z těch modulů se ve zkompilovaném binárním stavu jmenuje vesamenu.c32. A podporuje příkaz "resolution".
Zkusil bych do syslinux.cfg na začátek vložit něco jako

UI vesamenu.c32
MENU RESOLUTION $WIDTH $HEIGHT

Možná i to vesamenu.c32 by mělo být velkými písmeny, nevím. Možná je to fuk, jestli to startuje z FAT FS.

https://edoceo.com/sys/syslinux-vesa
https://bbs.archlinux.org/viewtopic.php?id=195024
Viz též nápověda "or just use grub" :-)
On totiž Syslinux je už mrtvola. Nikdy nedostal pořádnou podporu UEFI.
Tolik k bootloaderu.

Pokud se týče kernelu:

Kdysi dávno se dalo páchat vga=ask , nebo vga= číslo režimu.
Vypsat režimy uměl taky DOSový nástroj vtest.exe, který byl přibalený tuším k balíku driverů UNIVBE.
https://www.vogons.org/viewtopic.php?t=517&start=20
Tohle se týká nastavování videorežimu skrz BIOS - a jsou k dispozici jenom režimy, které podporuje VESA BIOS option ROM. S tímhle pak kernel dokázal proběhnout prakticky celý boot, až do startu X.

Nověji pomocí sady driverů kms/drm , zadat parametr (např.)  video=1280x1024@60
On ten řetězec co se sype za video= může být ještě složitější - pár tipů/příkladů jsem našel ve svých šmírácích:

i915.modeset=1 video=1280x1024@60
drm.debug=0xe is your friend
video=HDMI-A-2:1920x1080@50D

Originální dokumentace:
https://www.kernel.org/doc/Documentation/fb/modedb.txt

Stručně: framework drm/dri/kms vyžaduje základní HW-specifický ovladač pro Vaši grafiku v kernelu. Pokud chcete, aby startoval co nejdřív, můžete ovladač grafiky nacpat jako modul do initial ramdisku (/etc/initramfs-tools/modules atd.), nebo zakompilovat monoliticky. Tenhle základní ovladač víceméně řeší nastavení rozlišení viditelného framebufferu a routování "signálu" do více výstupů (pokud máte). 3D věci už si tuším řeší user-space X-server (též HW-specifický). Nevím jak Wayland.

Společné vrstvy DRM v kernelu, ve spolupráci s HW-specifickým ovladačem, umí nastavit videorežim, nejlépe některý podporovaný podle DDC/EDID (co se zjistí postranním i2C kanálem ve VGA/DVI/HDMI kabelu mezi počítačem a displejem). Viz též utilita modetest, použitelná v nabootovaném distru.

https://wiki.st.com/stm32mpu/wiki/DRM_KMS_overview

Pokud dojdete k tomu, že byste rád vnutil vlastní modeline resp. EDID blok, tak se ještě ozvěte - spíš se ale domnívám, že tohle harakiri potřebovat nebudete.

V zásadě... pokud něco nefunguje, tak to holt nefunguje :-)

Tenhle bezešvý start bez blikání (změn videorežimu) byl svého času hodně nosné téma - kvůli estetice. Aby boot linuxu byl stejně cool jako boot Windows na značkovém hardwaru (nebo jako start jablíčka). Technicky dnešním displejům to myslím nijak nevadí. Vyloženě otravné to bylo u vakuových obrazovek (CRT), u LCDček s podsvícením trubicemi znamenal každý start podsvícení určitou zátěž, ale s LEDkami opravdu o nic nejde, jenom se enable vstupem povolí rozjezd měniče a LEDky se rozsvítí v momentě, kdy dostanou napětí, bez nějakých rozběhových kopanců v odběru - dokonce se jas LEDek obvykle řídí prostě PWMkou (obdélníkovým zhasínáním mnohokrát za sekundu).