GRUB2 i parametr vga = jądro


16

Zgodnie z dokumentacją użycie vga=parametru jądra jest przestarzałe od GRUB2. Fakt, że niektóre nowsze jądra nie obsługują go już na niektórych kartach, nie ma znaczenia, ponieważ posiadana karta graficzna ma od siedmiu do ośmiu lat.

Problem polega na tym, że chciałbym użyć trybu tekstowego o wyższej rozdzielczości, takiego jak 80 x 50 zamiast domyślnych znaków 80 x 25. Najwyraźniej wszystkie grafiki (VBE / VESA) Tryby są wykluczone dla tej karty graficznej (ATI Rage XL) - listy dostępnych trybów pokazuje tylko 0dzięki 6. 6jest 80x60, ale wygląda okropnie, więc chciałbym pójść z 1(80x50).

Widziałem, jak 80x50 i 80x60 działają po uzyskaniu listy dostępnych trybów, ilekroć domyślny tryb nie był obsługiwany (z domyślnym komentarzem GRUB_TERMINAL=console) i zostałem poproszony o wybór.

Jak mogę ustawić tryb, jeśli nie mam go ustawiać w wierszu poleceń jądra i przy każdym użyciu GRUB_GFXMODE(z vbemodułem wstępnego ładowania lub bez niego ) i GRUB_GFXPAYLOAD_LINUX=keepkończy się niepowodzeniem? Nie działa jak w: ekran pozostaje pusty, ponieważ jest to nieprawidłowy tryb graficzny karty, którą mam w tym urządzeniu?

Moim pomysłem byłoby przejście nomodesetdo jądra, ale moduł ładujący musiałby wtedy ustawić tryb graficzny. I nie widzę żadnych innych opcji poza vga=parametrem jądra.

Uwaga:vbetest i videotestpolecenia na Grub2 konsola będzie wygasić ekran, a następnie ekran przełącza się w tryb uśpienia po twierdząc, nie ma sygnału wideo. vbeinfoi videoinfopokaż kilka dostępnych trybów innych niż wyżej wymienione, ale nie ma wzmianki o tym, gdzie należy to ustawić. Ponadto, gdy przekazuję vga=1(bez nomodeset) w wierszu poleceń jądra, widzę bardzo krótkie ostrzeżenie o tym, że jest przestarzałe, ale jest zbyt długo, aby go całkowicie przeczytać - a wynik nie pojawia się w dmesg.



Ten vgaparametr dotyczy jądra, a nie grub2. Bez względu na to, jak grub2programista próbuje stworzyć prosty kompleks, nadal działa, dopóki jądra rozumieją ten parametr.
ajeh

Odpowiedzi:


9

Być może jest on przestarzały przez grub2, jednak powinien nadal działać i musi nadal działać. Działa dla mnie przy użyciu grub2 i debian wheezy oraz rhel7.3 (potwierdzone 01-2017). Również zgodnie z oficjalną dokumentacją nie jest przestarzałe:

https://www.kernel.org/doc/Documentation/x86/boot.txt

Jeśli użytkownik wprowadzi wiersz poleceń dostarczony przez moduł ładujący, użytkownik może spodziewać się następujących opcji wiersza polecenia. Zwykle nie powinny być usuwane z wiersza poleceń jądra, nawet jeśli nie wszystkie mają znaczenie dla jądra.

vga = tutaj jest liczbą całkowitą (w notacji C, dziesiętną, ósemkową lub szesnastkową) lub jednym z ciągów „normal” (co oznacza 0xFFFF), „ext” (co oznacza 0xFFFE) lub „ask” (co oznacza 0xFFFD). Tę wartość należy wprowadzić w polu vid_mode, ponieważ jest ona używana przez jądro przed parsowaniem wiersza poleceń.

I https://www.kernel.org/doc/Documentation/svga.txt powie ci wszystko, co musisz wiedzieć. Poniżej kilka przykładów rezolucji, których zwykle używam:

vga=0x31b --> 1280x1024x32
vga=0x34d --> 1600x900x32
vga=0x31e --> 1600x1200x32

Aby uzyskać listę obsługiwanych trybów, użyj:

vga=ask

Dla ekranu 1024 × 768x24, który znalazłem, działa na prawie wszystkich systemach i monitorach, których używam (tym razem w systemie dziesiętnym i szesnastkowym):

vga=792
vga=0x318

1
Działa to dla mnie, gdy /etc/default/grubedytuję, dołączając vga=792do istniejącej wartościGRUB_CMDLINE_LINUX
Shashank Vyas

Aktualizacja Ubuntu zainstalowała dziś nowy pakiet startowy grub UEFI i zaproponowała zmianę wiersza poleceń do dodania vga=currentwraz z zrzutem awaryjnym. Odrzuciłem zmiany, ale przyszedłem tutaj, zastanawiając się, co to vga=currentznaczy.
WinEunuuchs2Unix

2

Parametr vga jest nadal obsługiwany przez komendy linux16 i initrd16, więc jeśli zmienisz „linux” na „linux16” lub „initrd” na „initrd16”, możesz uzyskać stare zachowanie. Nie jestem pewien, jakie inne zmiany powodują, ale działało to dla mnie wystarczająco dobrze. :-)


1
To świetna rada! Po prostu naciśnij e, aby edytować w grub2, a następnie przejdź w dół do linux i umieść 16 na końcu. Następnie możesz umieścić vga = ask na końcu wiersza. Jeśli bufor jądra jest nadal włączony w jądrze, prawdopodobnie prawdopodobnie wkrótce przełączy się z szybkiego tekstu VGA do tego trybu.
Alex Cannon
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.