Plymouth dla mas
Każdy kto zachwycił się wysmakowanym graficznie startem świeżo zainstalowanego Ubuntu 10.04, na pewno był już mniej zachwycony po doinstalowaniu własnościowych sterowników graficznych. Zwykle skutkuje to rozjechaniem się rozdzielczości i liczby kolorów podczas startu systemu, przez co kojące logo Ubuntu (czyli uruchamiany podczas startu Plymouth) staje się estetyczną antyreklamą uruchamianego Ubuntu. Wbrew pozorom naprawienie tego problemu jest i trudne i łatwe. Łatwe, bo to kilka komend bądź opcji, trudne, bo trzeba wiedzieć gdzie i który guzik wcisnąć, bo nie jest to wszystko takie oczywiste.
Kiedyś, niedługo po premierze Ubuntu 10.04 naprawiłem ten problem u siebie i o nim zapomniałem. Fakt naprawy ekranu startowego wydawał mi się tak oczywisty, że oczekiwałem w niedługim czasie poprawek i aktualizacji w 10.04, które to ‘samoczynnie’ uzdrowią. Tymczasem Zdesperowany Znajomy zaskoczył mnie ostatnio pytaniem, jak naprawić tę pikselozę podczas startu systemu, bo pomimo świeżej instalacji 10.04.1 nadal wygląda to jak wyglądało. Problem z grubsza dotyczy rozdzielczości ekranu i głębi kolorów, jakie ustawia nasz GRUB2 i co z tego wynika dla reszty procesu bootowania. Tzn. po zainstalowaniu sterowników własnościowych, kernel nie jest w stanie ich użyć podczas rozruchu (bo nie wspierają KMS).
Spróbowałem grzebnąć w swojej pamięci, jak to leciało, co oczywiście nie było takim prostym wyczynem. Nowoczesny design plików konfiguracyjnych GRUB2 nie wspomaga takich podróży sentymentalnych, dlatego wspomogłem się siecią i co się okazało – wielu oczywistych rozwiązań tam nie znalazłem. Ale to pomogło mi odświeżyć zmurszałe wspomnienia.
Poprawek ekranu startowego można dokonać na dwa sposoby.
Przepis nr. 1
Jest niemal w całości wykonywalny za pomocą klikania.
1. Instalujemy startupmanager. Za pomocą Synaptica, lub …
sudo apt-get install startupmanager
2. Startup-manager posłuży nam do zmiany rozdzielczości i głębi kolorów w GRUB2:
Wybieramy wyższą rozdzielczość i głębię 24bity.
I to wszystko. Gdyby komuś ten sposób jednak nie zadziałał…
Przepis nr. 2
Drugi sposób jest ciekawszy, obfituje w częste zwroty akcji i ciekawe dialogi:
1. Na początku doinstalujemy paczkę v86d:
sudo apt-get install v86d
2. Teraz zmienimy rozdzielczość w /etc/default/grub
sudo gedit /etc/default/grub
… znajdując linijkę z:
GRUB_CMDLINE_LINUX_DEFAULT=""
… i zamieniając ją na:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1280x1024-24,mtrr=3,scroll=ywrap"
(uwaga, jeżeli na początku linii znajduje się #, usuwamy ten znak).
3. W tym samym pliku odnajdujemy:
GRUB_GFXMODE=640x480
… i zamieniamy na:
GRUB_GFXMODE=1280x1024
(podobnie jak wyżej, jeżeli występuje na początku linijki znak #, kasujemy go. Rozdzielczość należy ustawić taką, którą ‘uciągnie’ nasz monitor)
Zmiany zapisujemy.
4. Kolejnym plikiem do edycji jest /etc/initramfs-tools/modules:
sudo gedit /etc/initramfs-tools/modules
… do którego dopisujemy linijkę:
uvesafb mode_option=1280x1024-24 mtrr=3 scroll=ywrap
(rozdzielczość należy podać taką samą jak się ustawiło w /etc/default/grub)
Zapisujemy.
5. Teraz będzie jeszcze ciekawiej, gdyż wykonamy komendę:
echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash
6. Pozostało nam teraz wdrożyć:
sudo update-grub2
sudo update-initramfs -u
Jeżeli po tych zabiegach podczas startu systemu nadal nie mamy zadowalających rezultatów, to wynikiem może być błędna rozdzielczość dla naszego monitora. Sprawdzamy w ustawieniach rozdzielczości jaką możemy ustawić i dokonujemy poprawek. Sposób powyższy zadział u mnie dla karty NVIDII i ATI.
Bonus
A jeżeli komuś się ciśnie na usta pytanie ‘jak zmienić ten startowy motyw na jakiś ciekawszy’ – odpowiedź jest prosta. Wyszukujemy w Synapticu tematów Plymoutha (będą miały w nazwie plymouth-theme-*, o dziwo). Po zainstalowaniu wykonujemy komendę:
sudo update-alternatives --config default.plymouth
sudo update-initramfs -u
I wduszając konkretną liczbę, wybieramy interesujący nas motyw.
Proste, logiczne i jakże rozwijające, szczególnie w te nudne jesienne wieczory…