Strona 1 z 2

[+] Grub2 zmiana rozdzielczości i obrazka

: 05 lutego 2011, 10:46
autor: Bastian
Witam,

Mam problem w moim Debianie Squeeze. Otóż, od dłuższego już czasu (prawdopodobnie od którejś aktualizacji systemu) nie mogę za nic, ustawić obrazka w grub2. Nie mogę też zmienić rozdzielczości. Przeinstalowałem grub2, jednak nic to nie dało. Nie wiem czy problem leży w grubie czy gdzieś indziej.

W /etc/default/grub mam takie wartości:

Kod: Zaznacz cały

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=1024x768

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_LINUX_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
Grub powinien wyświetlić się w rozdzielczości 1024x768 jednak tego nie robi. Oczywiście za każdą zmianą w tym pliku robię:

Kod: Zaznacz cały

update-grub
które zresztą przechodzi bezproblemowo. Kiedy z poziomu gruba odpalę polecenie:

Kod: Zaznacz cały

vbeinfo
to znajduje urządzenie VESA i całą resztę parametrów karty, natomiast jak wykonam:

Kod: Zaznacz cały

 vbetest
to mam artefakty (powinny się pokazywać jakieś sensowne obrazy). Czy u Was działa wszystko normalnie? Może to jakiś błąd gruba2? Nie doszukałem się jednak żadnego na bug trackerze...
Po uruchomieniu systemu nie mam też urządzenia bufor ramki (ang. framebuffer).

Kod: Zaznacz cały

ls /dev/fb*
ls: nie ma dostępu do /dev/fb*: Nie ma takiego pliku ani katalogu
ale to chyba nie ma w tym przypadku nic do rzeczy..

Proszę o pomoc.

: 05 lutego 2011, 13:14
autor: Yampress
Jest taka linijka w pliku konfiguracyjnym grub2 /boot/grub/grub.cfg

Kod: Zaznacz cały

### BEGIN /etc/grub.d/05_debian_theme ###
...
...
if background_image /usr/share/images/desktop-base/debian.png ; then
i albo pod tą lokalizację wstawiasz swój obraz albo zmieniasz ścieżkę do swojego obrazu.
Ta metoda ma jeden minus. Po każdej reinstalacji bezpieczeństwa pakietów gruba, konfiguracja gruba zostaje nadpisana na domyślną ścieżkę.

: 05 lutego 2011, 13:57
autor: Bastian
Jasne tylko że ja tam mam:

Kod: Zaznacz cały

if background_image /usr/share/images/desktop-base/moreblue-orbit-grub.png
i ten plik istnieje:

Kod: Zaznacz cały

ls /usr/share/images/desktop-base/moreblue-orbit-grub.png
/usr/share/images/desktop-base/moreblue-orbit-grub.png
Poza tym problem leży gdzieś indziej, bo tak jak napisałem nie mogę zmienić rozdzielczości, tak jakby grub nie chciał czytać informacji o buforze ramki.

Yampress, jak wejdziesz w CLI gruba (opcja C przy starcie gruba) i wykonasz polecenie

Kod: Zaznacz cały

vbetest
to wyświetla Ci się coś sensownego?

: 05 lutego 2011, 14:00
autor: Yampress
Rzeczywiście u mnie jest zmiana po mojemu a nie oryginalnie.
Rozdzielczości nie umiem zmienić. Jeszcze nie próbowałem bo mi nie potrzebna inna niż standardowa.

: 05 lutego 2011, 14:44
autor: Bastian
Mam. Problemem była zmienna w 00_header.

Kod: Zaznacz cały

${GRUB_VIDEO_BACKEND
która z tego co widzę nigdzie nie jest zadeklarowana. A powinien pod nią kryć się sterownik vbe. Skrypt robi po prostu

Kod: Zaznacz cały

insmod ${GRUB_VIDEO_BACKEND}
Tak więc w /etc/default/grub zadeklarowałem tą zmienną i przypisałem jej wartość

Kod: Zaznacz cały

GRUB_VIDEO_BACKEND="vbe"
I teraz gra i buczy. Moim zdaniem to błąd w Debianie testowym, że zapomnieli zrobić tej deklaracji. Pytanie, dlaczego nikt nie umiał pomóc skoro wszyscy powinni tego doświadczyć?

: 05 lutego 2011, 14:45
autor: fnmirk
http://debian.linux.pl/threads/1-Linki? ... post132737
&quot pisze:For more detailed customisation of grub-mkconfig's output, you may edit the scripts in /etc/grub.d directly. /etc/grub.d/40_custom is particularly useful for adding entire custom menu entries; simply type the menu entries you want to add at the end of that file, making sure to leave at least the first two lines intact.
http://wiki.debian.org/GrubTransition
http://www.gnu.org/software/grub/manual ... figuration
A tak myślałem, że ta informacja jest ogólnie dostępna i nie trzeba jej będzie powielać.

: 05 lutego 2011, 19:54
autor: Bastian
fnmirk: no fajnie, tylko gdzie to co podajesz dotyczy błędu którego doświadczyłem ?

: 05 lutego 2011, 20:50
autor: Yampress

: 05 lutego 2011, 21:53
autor: fnmirk
Bastian, o jakim błędzie wspominasz? Moim zdaniem to nie kwestia błędu tylko kwestia konfiguracji programu grub2. Za jego konfigurację odpowiedzialne są skrypty umieszczane w katalogu:

Kod: Zaznacz cały

 /etc/grub.d/
W dokumentacji i na Wiki Debiana o tym wspominają.
Przejrzyj temat, który podesłał Yampress.

: 05 lutego 2011, 22:31
autor: Bastian
To, że po totalnej reinstalacji gruba i rekonfiguracji w pliku /etc/default/grub nie ma ustawienia jednej zmiennej, albo ze w samym /etc/grub.d/00_header jest zmienna, która nie ma przypisanej zadnej wartości, właśnie nazywam błędem. No chyba, ze się mylę i w jakiś sposób występuje tylko u mnie. Jasne, dochodzenie co nie działa i poprawianie, można nazwać konfiguracją. Co do tematu Yampressa to znam ten wątek, zresztą nawet tam pisałem.