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).

Re:Změna rozlišení při bootu
« Odpověď #2 kdy: Dnes v 01:13:02 »
moc děkuju za dobré informace

i když měním všechny parametry a používám všechny utility , monitor mi asi 4x nebo 5x při startu blikne a mění rolišení

1 = bios logo

2 = grafický syslinux

3 = boot kernelu

4 = během bootu to přepne text konzoly na drobnější

5 = po spuštění xorg

6 = konečně spustím xrandr na 1280x720

u bliknutí 12345 vidím vždy HDMI-1 1080 tak je to asi monitorem, používám normální televizi na vysílání programů televize jenom jsem do HDMI-1 zapojil počítač , je to HYUNDAI Android TV, nejde nic měnit jako rozlišení, dokonce ani hlasitost, vždy po zapnutí skočí na volume 10

jestli se mi to tím blikáním nijak teda nezničí tak je to jedno

ještě jednou děkuji , věřím že to pomohlo vysvětlení i dalším uživatelům


RDa

  • *****
  • 2 777
    • Zobrazit profil
    • E-mail
Re:Změna rozlišení při bootu
« Odpověď #3 kdy: Dnes v 02:04:41 »
Kdyz ten BIOS ma logo v 1080p, tak by bylo lepsi premigrovat na UEFI boot, a pouzivat EFI framebuffer na vsechno.
(vim ze to neni uplne perfektni, protoze ani zaboha jsem tam nedosahnul early console v grafice, takze vypisy z kernelu zacinaji nekde.. na muj vkus zbytecne pozde)

Re:Změna rozlišení při bootu
« Odpověď #4 kdy: Dnes v 07:59:01 »
Jinak tenhle "bezešvý boot" je v Linuxu téma tak 10-15 let staré. Dost do toho tehdy šlapalo ubuntu. Docela dobré klíčové slovo při hledání je zřejmě Plymouth - protože ten musí převzít od bootloaderu (zřejmě docela užitečný je k tomuhle Grub) a musí předat "display manageru" (patrně lightdm nebo gdm - mentální příbuzný winlogonu). Taky se řešilo, že je potřeba pokud možno potlačit rolující textové hlášky kernelu (cmdline parametr quiet) a v pozdější fázi bootu potlačit konzolu user-space bootu (tuším loglevel=3). Aby během bootu byl vidět fakt jenom grafický Plymouth.

Taky jsem zaznamenal zmínku, že není špatné převzít grafický režim v grubu od UEFI, následně potlačit KMS (load DRM driveru v kernelu?) při bootu kernelu, takže plymouth převezme grafický režim z Grubu (který ho převzal od UEFI) a případný první mode-switch proběhne ve chvíli, kdy plymouth předává otěže startujícím Xwindows. Zřejmě o tomhle mluví @RDa.

A nezmínil jste, co máte za grafický čipset...

https://askubuntu.com/questions/1133622/overcoming-black-text-and-blank-screens-between-plymouth-and-gdm-login-boot-stag

https://superuser.com/questions/162768/reducing-video-mode-switching-during-linux-boot

https://bbs.archlinux.org/viewtopic.php?id=117637

BTW ta televize, Hyundai, by mohla pocházet od skutečného výrobce Vestel, dovozce HP-Tronic. Ohledně toho, že se resetuje hlasitost HDMI audia pokaždé na konstantu, zkuste se poohlédnout po aktualizaci firmwaru. Pokud má TV konektivitu do internetu, tak se nejspíš umí mrknout i sama, zda není nějaký oficiální veřejný update, případně mám zkušenost, že HP-Tronic má funkční lidskou technickou podporu, která má taky nějaké ozkoušené verze firmwaru v rukávu, poskytnou link na download a nacpat do TV to jde obvykle přes USB flašku.
« Poslední změna: Dnes v 08:03:18 od František Ryšánek »