Auflösung während des Boot-Vorgangs

berni51

Open-Net-FreeBSD user
Hall allerseits,

kann ich FreeBSD (12.2) irgendwie mitteilen, dass ich die VGA-Auflösung beim Booten ändern möchte? Die 640x480 px sehen derart mies aus, also nee. Natürlich wirds beim Laden der i915.ko sofort besser, aber die ersten Sekunden sind eine Qual. Gibts da eine Möglichkeit?

Berni
 
Wenn ich mich recht erinnere, hat der neue Loader in 13 eine höhere Auflösung.
13 steht in den Startlöchern, ggf. magst du dich bis dahin solange quälen gedulden. :)

Oder du frickelst:
 
@mr44er sagte es im Prinzip. Die etwas längere Version ist: Die Boot-Loader von FreeBSD 12.x können keine Auflösung umschalten, da alle Loader auf dem gleichen Code basieren und das alte BIOS sowas nicht kann. Mit FreeBSD 13.0 ist UEFI der bevorzugte Weg zu booten und der neue, grundüberarbeitete UEFI-Loader nutzt meist eine höher Auflösung. Meist, da das UEFI mitspielen muss und eine sinnvolle Auflösung mit der Grafikkarte und dem Monitor aushandeln muss.
 
Meine Versuche letztens auf dem Pi4 zeigten:
a) u-boot ist hier ein UEFI Client
b) In der loader.conf konnte ich dann die Auflösung umschalten. Das hat super funktioniert.

Code:
efi_max_resolution
             Specify the maximum desired resolution for    the EFI    con-
             sole.  The    following values are accepted:

             Value         Resolution
             480p         640x480
             720p         1280x720
             1080p         1920x1080
             2160p         3840x2160
             4k             3840x2160
             5k             5120x2880
             WidthxHeight    WidthxHeight
 
OK, danke für eure Hinweise. Hab seinerzeit ein BIOS-Boot aufgesetzt und da haben all die Tricks aus diversen Internetseiten nichts gebracht, ausser einer kernel panic bei einem der Versuche. Immerhin hab ich dabei erreicht, dass jetzt auf der Konsole der Bildschirm mit 1280x1024 komplett bis zum unteren Rand genutzt wird. :o
Nur die Auflösung beim Bootvorgang ist bei 640x480 geblieben.
Ich werds dann so machen wie empfohlen: Warten auf 13.0. Das muss ich dann aber wohl komplett neu installieren und EFI Boot einrichten.
Das ist übrigends mein erstes FreeBSD seit Version 5,xxx (weiss nicht mehr) und es läuft sehr, sehr gut.

Berni
 
Warten auf 13.0. Das muss ich dann aber wohl komplett neu installieren und EFI Boot einrichten.
diesmal konnte ich nicht abwarten und habe es vorab mit freebsd-update von 12.2 aus hochgezogen, also bis zur derzeit aktuellen RC5 (hatten wir schon jemals eine RC5?, naja, anderes Thema)
Also, das update mittels freebsd-update gelang mir auf drei PCs und alle mit EFI und bei einem wurde der neue EFI-Loader nicht installiert, warum auch immer. Dann gab es einen recht merkwürdigen Bootscreen und irgendwo hier einen Beitrag, wo genau das behandelt wurde (den ich aber auf die Schnelle nun nicht finden konnte). In diesem Fall kann das Script von @Kamikaze helfen oder man macht es eben manuell.
nur, falls man noch kein EFI hat, also die Partition fehlt, dann wird es vielleicht etwas spannender.
Ich habe das bei einem PC vorübergehend so gelöst, dass ich von einem USB-Stick boote und den als EFI-Partition nutze. Das funktioniert gut, gefällt mir aber nicht so gut und es ist eh ein Upgrade auf neue und größere SSDs geplant.
Das wäre dann vielleicht der Rat, um ein laufendes System nicht neu installieren zu müssen (was wiederum ja nicht schlimm ist). Einfach den aktuellen Snap umziehen, damit booten, die alte Platte neu einrichten (also dann mit EFI) und den Snap wieder zurück bringen.
 
Danke, @pit234a , so werd ich das wohl machen.
Was mich aber interessieren würde: Was macht 13.0 bei einer kompletten Neuinstallation, wenn man die Voreinstellungen belässt? Wird daraus dann ein EFI-Boot oder muss man selber entscheiden?

Berni
 
Das wird so sein wie bei allen Installationen: Nur wenn du den Installer im UEFI Mode bootest, kannst du das im UEFI Mode installieren. Ansonsten ist es BIOS Mode.
 
Moin .

Irgendwie versteh ich den thread nicht richtig , bin leicht verwirrt :ugly: !

Mein PC ist auf Uefi-"pur" eingestellt. Ist eine Radeon-Grafik-Karte drin !

Ich konnte unter FBSD 12.* und kann unter FBSD 13-Current mir am Boot-Prompt
mit " gop list " die unterstützten Modi auflisten lassen.

Bei mir ist " mode0=3840x1080 " .... Die Standard Auflösung !

Mit " gop set 0 " am Boot-Prompt wird die Auflösung übernommen !

Den Eintrag in die /boot/loader.conf " exec=gop set 0 "

Alles gut !
 
Dummerweise hab ich mein System als BIOS-Boot (also legacy) aufgesetzt, da klappt sowas nicht.
Ein Grund mehr, mit 13.0 ein völlig neues System zu installieren, auf jeden Fall mit EFI Boot.
Danke für die guten Antworten, hab einiges dabei gelernt.

Berni
 
Jetzt hab ich mal von meinem installierten FreeBSD 12.2 aus eine USB-SSD neu eingerichtet, um via EFI-Boot zu starten. Also 3 Partitionen erstellt: EFI, swap und /. Dann aus den Sourcen den installkernel, installworld und distribution gebaut und alles auf die neu Platte gepackt.
Obwohl der FreeBSD-Rechner (ein Thinkpad T410s) im BIOS die Option hat, Legacy zu booten. kommt er mit dem EFI-Boot nicht klar: Nur ein blinkender Cursor. Was ausser Legacy kann er denn?

Also die Platte an einen etwas moderneren Rechner gehängt (Asrock mit AMD CPU). Und tatsächlich: Der bootet die neue Platte im EFI-Modus und alles startet - fast so wie es soll.
Fast bedeutet, dass beim Booten , nach Keyboard und Maus gefunden sind, etwa 150 mal die Meldung
"Root mount waiting for: CAM" erscheint. Irgendwann ist aber Schluss damit und ich komm zum Login Prompt.

Laut dmesg hat das System wohl Probleme mit da0 - und das ist exakt seine eigene externe SSD. Trotzdem wird / dann gemountet, aber die swap Partition, die in der fstab steht, ist nicht aktiviert. Ein swapon bring die aber sofort ins Leben.

Mit dmesg finde ich noch eine vielleicht interessante Meldung:
"da0: quirks=0x2<NO_6_BYTE>

Könnte es sein, dass das System nicht mit USB3.x klar kommt? Sowas kenne ich vom Raspberry 4, wo ich unter NetBSD die vendor-id der externen SSD in die cmdline.txt eintragen muss, um die UAS-Features von USB-3.x zu deaktivieren.

Aber in einem amd64 System? Muss da eventuell was in die loader.conf?

Berni, ratlos

PS: Die Sache mit der miesen Auflösung hat sich durch das EFI-Boot quasi von selbst erledigt, das sieht jetzt sehr ordentlich aus.
 
Es scheint tatsächlich mit den UAS quirks zu tun zu haben: An einem USB 2 port läuft alles glatt durch - ausser dass auch hier der swap nicht aktiviert wird. Seltsam, sehr seltsam.
 
Weil ich gerade dabei war, hab ich meine EFI-Installation gleich auf 13.0.RC5 hochgezogen. Damit haben sich meine Problemchen nur ganz leicht verschoben:
  • Immer noch "Root mount waiting for: CAM" Meldungen, wenn die SSD am USB 3-Port hängt.
  • Swap partition wird aber immer aktiviert
  • Angenehme Schrift und Schriftgröße in allen Lebenslagen
  • Leider ein hässlicher Boot-Screen mit nettem Daemon, aber einer Umrahmung aus merkwürdigen Sonderzeichen.

Also fast alles OK. Die CAM Meldungen verzögern den Start um ca. 60 Sekunden und verschwinden völlig, wenn ich die SSD an einen USB2-Port hänge.
Iregndwie krieg ich den Rest auch noch hin.
 
Zuletzt bearbeitet:
Klingt wie mein Problem beim Wechsel, dass der alter 12er Loader noch installiert war.
ja, genauso sah das bei einem PC bei mir auch aus und wie schon mal gesagt, da gibt es auch einen Beitrag hier, den ich nicht mehr finden konnte, der dieses Bild zeigt.
Es genügte, den korrekten EFI-Loader aus /boot rüber zu kopieren, man sieht da einen Größenunterschied. Der neue ist deutlich größer oder man kann das script von @Kamikaze nutzen. Das liegt hier auch irgendwo um die Ecke in einem Beitrag und dort gibt es auch einen Link.
 
Oder BIOS+UEFI bei der Installation auswählen. Ohne diese Option kommt bei mir auch nur die niedrige Auflösung, wenn ich nur UEFI nutze
 
Also die neue /boot/loader.efi auf die EFI-Partition? OK, das klingt sehr sinnvoll. Danke euch.

Jetzt hab die SSD an drei unterschiedliche, aber EFI-Boot-fähige PC gestöpselt und auf jedem ist die Interpretation von EFI-Boot wohl ein wenig anders. Jedenfalls siehts auf jedem PC etwas anders aus beim Booten. Und was @midnight schreibt, klappt bei mir überhaupt nicht bzw. hat keine Wirkung.
 
Also die neue /boot/loader.efi auf die EFI-Partition? OK, das klingt sehr sinnvoll.
so ganz einfach ist das alles halt wirklich auch nicht. Deshalb macht das @Kamikaze mit seinem script (innerhalb der bsda-tools) sehr viel umfassender und leider ist das noch nicht in den Ports angekommen, geschweige denn in den Paketen.
Aber grundsätzlich, wenn du eine EFI-hast (die am Besten auch schon mal funktioniert hatte), kannst du den loader darin einfach ersetzen.
Nur, den Namen muss der behalten, soweit ich das verstanden habe.
Ich mounte mal meine EFI nach /mnt/test:
Code:
pit@mileno ~:- > tree /mnt/test/
/mnt/test/
└── efi
    └── boot
        ├── BOOTx64.efi
        └── startup.nsh
Also /boot/loader.efi nach diesem BOOTx64.efi kopieren und das sollte helfen.
 
Danke @pit234a , hab ich verstanden. Meine EFI hab ich ja auch so erstellt und die funktioniert. Ich häng die SSD an ein laufendes FreeBSD, da kann ich mounten und kopieren. Geh ich gleich an.
 
Am meisten Erfolg wirst du haben, wenn du die SSD an einem SATA-Port betreibst und auch in dieser Konstellation installierst. SATA-USB Controller reichen ein Gerät selten sauber durch, sodass hier evtl. schon die Problematik reingestreut wird.

Erlebt hatte ich Bootprobleme auch schon mit USB3, liest man auch häufig als Notiz bei sonstigen für Sticks gedachten Bootimages. USB2 funktioniert meist, aber im Detail genau festnageln konnte ich das nie.
 
Normalerweise betreibe ich SSDs auch am SATA-Port, @mr44er. Aber für diese Aktion wollte ich keinen Rechner öffnen, das ganze ist lediglich ein Test, wie ich die Einrichtung von EFI-Boot vornehme und ob ich von FreeBSD 12.2 locker upgraden kann. So ist dann diese mobile SSD namens wanderer entstanden.
Jetzt, nach den Tipps von @pit234a und @Kamikaze, klappt der EFI-Boot perfekt. War natürlich auch blöd von mir, die EFI-Partition beim Upgrade auf 13.0(RC5) aussen vor zu lassen. Die richtige loader.efi bzw. BOOTX64.efi hats gebracht.
Macht richtig Spass, den wanderer booten zu sehen. ;)

Danke für die prima Hilfe.

Berni
 
nun bin ich allerdings nahezu verzweifelt, weil ich die Welt nicht so ganz verstehe, aber vielleicht schaue ich auch einfach gar nicht mehr genau hin.
Derzeit betreibe ich drei PCs mit FreeBSD.
Eigentlich ist das hierarchisch organisiert.
Es gibt
den Haupt-PC,
den ersten Laptop, der auch der ersten Failover-PC ist und dann
den zweiten Laptop, der als zweiter Failover-PC dient, aber auch der PC ist, der auf meinem Nachttisch steht.
Der zweite Laptop ist derzeit der PC, mit dem ich schnell mal meine privaten Mails checke und ins Forum schaue und die Corana-Zahlen sichte. Hauptsächliche schaue ich damit Filme oder höre Radio, Nachrichten oder so was.
Aber meist mache ich da nichts weiter, als die anstehenden Updates und das gilt leider derzeit auch für die beiden anderen PCs. Der letzte in der Reihe wird daher derzeit eher zum meist genutzten.

Das Problem mit dem "komischen Startbildschirm" hatte ich auf dem zweiten Laptop.
Ich sah, dass ein veralteter Loader genutzt wurde, aber um das zu beheben, machte ich die komplette EFI-SP platt, legte sie neu an und kopierte den neuen Loader an Ort und Platz.
Das funktionierte.
Dieser Rechner hat zwei SSDs drin und die dritten Partitionen sind zu einem Mirror mit ZFS verbunden und enthalten das System.
Die zweiten Partitionen sind zu einem geli-mirror als SWAP designed, aber ungenutzt.
Die ersten Partitionen sind/waren identische EFI-SP Partitionen, weil ich im Fehlerfall das System auch von der zweiten Platte booten können wollte.
Also, meine oben beschriebene Aktion machte ich zunächst nur auf der ersten SSD, logisch. Das war erfolgreich.
Wenn ich von der zweiten SSD bootete (über Auswahlmenü des BIOS), zeigte sich das "komische Bild".
Wenn ich nach Reparatur von der ersten SSD bootete, zeigte sich das neue und schöne Bild.
Danach kopierte ich einfach nur den neuen Loader wie oben (also ein vorhergehender Beitrag) beschrieben auf die EFIS-SP der zweiten Platte und siehe da: es funktionierte nun auch der Boot von hier (also über BIOS-Auswahl) mit dem neuen und schönen Bootscreen.
Ich hatte das zuvor getestet und dann zeigte der Boot von dieser SSD ebenfalls das komische Bild.

Dies schien mir Beweis genug, dass die Magie in dem neuen Bootloader schlummert und ohne den ein komisches Bild gezeigt wird.

Aber nun zurück zu meinem dritten PC.
Der zeigte nämlich, soweit ich das sagen kann, kein komisches Bild sondern sah so aus, als wenn alles gut gegangen sei.
Aber ich benutze halt derzeit diesen PC mehr, als meine anderen PCs, schrieb deshalb auch die letzten Beiträge damit und stolperte darüber, dass der noch den alten Efi-Loader verwendete (Anhand der Dateigröße).
Also nochmal.
Der dritte und letzte PC schien mir keine Probleme zu machen und das Boot-Bild sah gut aus (oder ich habe nicht gut hin-geschaut?, was ich nicht glaube).
Als ich aber genauer nachgesehen habe, zeigte sich, dass unmöglich der neue Bootloader genutzt werden kann.
Denn meine EFI war in FAT 5 oder so formatiert und erlaubte keine Dateien mit der Größe des neuen Loaders!
Wieso das so war? Ich hatte die EFI nicht von Hand von erstellt, sondern Formatierung und Füllung dem alten Mechanismus aus FreeBSD_12 oder auch FreeBSD_11 überlassen, der nun allerdings weg gefallen ist.

Jedenfalls habe ich nach meinem letzten Beitrag die EFI-SP in FAT 16 auf diesem System neu formatiert, die ...loader.efi nach dem passenden Ziel kopiert und neu gestartet und dann geht das auch!

Nun vermute ich mal, dass ich nicht alleine damit war, den alten FreeBSD-Mechanismus zu verwenden.
Deshalb kann das ein guter Tip sein, sich die EFI-Partition genauer zu betrachten und bei Bedarf einfach neu zu machen.
 
Ich konnte unter FBSD 12.* und kann unter FBSD 13-Current mir am Boot-Prompt
mit " gop list " die unterstützten Modi auflisten lassen.

Bei mir ist " mode0=3840x1080 " .... Die Standard Auflösung !

Mit " gop set 0 " am Boot-Prompt wird die Auflösung übernommen !

Den Eintrag in die /boot/loader.conf " exec=gop set 0 "
Oder Du setzt screen.height und screen.width.
 
Zurück
Oben