Manjaro 0.8.7 – kilka pomysłów na przetrwanie
W ramach łamaniach skostniałych przyzwyczajeń i uwiązania do dystrybucji debianopochodnych, na mojej partycji wylądowało ponownie Manjaro 0.8.7. Nieważne czy to efekt nudy czy ciekawości, faktem jest, że w oczekiwaniu na Minta 16 postanowiłem przeprowadzić test na żywym użytkowniku – w tej roli ja sam. Kilka dni intensywnej pracy tylko z użyciem Manjaro dowodzi jednego – nie jest istotna dystrybucja, istotna jest wiedza o narzędziach, które pozwolą nam sprawnie się po niej poruszać. Z Manjaro jest podobnie – choć wybitnie upraszcza pracę w oparciu o Archa (z którego się wywodzi), warto znać kilka sztuczek, aby przynajmniej początkowe prace regulujące system przeprowadzić w z góry ustalonym porządku.
Kernel 3.12
Świeżo po zainstalowaniu Manjaro 0.8.7 orientujemy się, że użytkujemy kernel w wersji 3.10.X. Nie jest to staroć, jednak na kanwie doniesień o mitycznej sprawności kernela 3.12.X, wiele osób zapewne zechce być bardziej na bieżąco. Pierwszy plus dla Manjaro – najnowszy kernel znajdziemy w repozytorium. Wymiana kernela to też bułka z masłem, o ile wybierzemy masło dietetyczne. A do tego konieczne jest zapoznanie się z pierwszym z niuansów Manjaro – poleceniem mhwd – Manjaro Hardware Detection. Ten tekstowy program wykona dla nas rozpoznanie naszego sprzętu, wyświetli dostępne sterowniki, itp. O tym za chwilę, bo dla bezbolesnej instalacji kernela będzie potrzebowali wariantu tego polecenia – mhwd-kernel. Co nim osiągniemy?
Aby otrzymać listę dostępnych wersji kerneli:
sudo mhwd-kernel -l
Aby zainstalować wybrany:
sudo mhwd-kernel -i linux312
Jeżeli wszystko przebiegło sprawnie i nie otrzymaliśmy komunikatu o błędzie, jesteśmy gotowi do przełączenia się na nasz nowy nabytek – restartujemy zatem komputer i w GRUBie upewniamy się, że mamy wybrany wariant Manjaro z kernelem 3.12. Po poprawny uruchomieniu systemu i utwierdzeniu się w przekonaniu o pracy na 3.12 (polecenie uname -r), możemy usunąć zbędny poprzedni kernel:
sudo mhwd-kernel -r linux310
Jak do tej pory, wszystko ładnie, przewidywalnie i przyjemnie…
Sterowniki karty graficznej
Czym jest system operacyjny bez wydajnej pracy karty graficznej. Dla wielu użytkowników kompromis wydajności i wolności oferowany przez otwarte sterowniki np. nouveau nie jest szczególnie atrakcyjny, dlatego większość z nas i tak kończy z zamkniętym sterownikiem od producenta. W Manjaro roztoczymy w pełnej krasie kontrolę nad zainstalowanymi i używanymi sterownikiami posiłkując się wspomnianym mhwd.
Dostępne sterowniki graficzne otrzymamy w wyniku:
sudo mhwd -l
Otwarte, zamknięte, do wyboru. Zainstalowanie wybranego jest banalnie przewidywalne – jeżeli chcemy zdać się na automatykę, to wpisujemy:
sudo mhwd -a pci nonfree 0300
Ręcznie:
sudo mhwd -i pci nazwa_sterownika
Słowo wyjaśnienia – pci oznacza urządzenie dostępne na konkretnym złączu (obecnie mhwd i tak obsługuje tylko pci), nonfree wybierze dla nas sterownik zamknięty najlepiej odpowiadający naszej karcie graficznej, a 0300 to ID oznaczające kartę graficzną (mhwd ma ambicje w przyszłości obsługiwać też wymianę sterowników dla innych urządzeń i stąd spory zapas puli ID).
Niestety, po restarcie ta skądinąd sympatyczna automatyka rozczarowała mnie boleśnie. Tryb graficzny najzwyczajniej nie wystartował. Szybkie dochodzenie wykazało, że w ferworze wszystkiego, jakimś cudem mhwd zapominał zablokować uprzednio używany przez system sterownik nouveau i co oczywiste, próba obsługi karty graficznej jednocześnie przez zamknięty i otwarty sterownik musiała się tak skończyć. Tu była już potrzebna pewna sekwencja czynności – po zalogowaniu się w konsoli.
Wyrzucamy sterowniki nouveau zaszyte w podręcznym initrd:
sudo nano /etc/mkinitcpio.conf
… i z liniki MODULES=”nouveau” kasujemy nouveau:
MODULES=””
Zapisujemy i regenerujemy obraz initrd (linuxXXX w zależności od używanego kernela):
sudo mkinitcpio -p linux312
Uruchamiamy ponownie komputer i cieszymy się trybem graficznym i zniewoleniem w postaci zamkniętych sterowników.
Compton – estetyka pod publikę
Coś za coś – użytkując Xfce lub LXDE i mając zamknięte sterowniki, w większości wypadków nie posłużymy się usprawnieniami w menadżerach okien Xfwm4 i Openbox, służących poprawieniu estetyki wyświetlania zawartości ekranu w zgodzie i pod dyktando synchronizacji pionowej (czyli bez zarywania zawartości okien, plików wideo, itp.). Wprowadzona niedawno w ustawieniach Xfwm4 opcja synchronizacji pionowej po prostu nie zadziała i nadal będziemy cierpieli z powodu niuansów estetycznych. Rozwiązaniem na to jest użycie/zastąpienie kompozytora, który odpowiednio zsynchronizuje nam zawartość ekranu. I tym kompozytorem jest minimalistyczny Compton.
Wystarczy zainstalować go za pomocą Menadżera Pakietów, by następnie skupić swoją uwagę na jego konfiguracji – a jakże, w pliku tekstowym. Do tego celu tworzymy sobie plik ~/.compton.conf i wklejamy doń:
backend = "glx"; paint-on-overlay = true; glx-no-stencil = true; glx-no-rebind-pixmap = true; #vsync = "opengl-swc"; # These are important. The first one enables the opengl backend. The last one is the vsync # method. Depending on the driver you might need to use a different method. # The other options are smaller performance tweaks that work well in most cases. # You can find the rest of the options here: https://github.com/chjj/compton/wiki/perf-guide, # and here: https://github.com/chjj/compton/wiki/vsync-guide # Shadow shadow = true; # Enabled client-side shadows on windows. no-dock-shadow = true; # Avoid drawing shadows on dock/panel windows. no-dnd-shadow = true; # Don't draw shadows on DND windows. clear-shadow = true; # Zero the part of the shadow's mask behind the window(experimental). shadow-radius = 7; # The blur radius for shadows. (default 12) shadow-offset-x = -7; # The left offset for shadows. (default -15) shadow-offset-y = -7; # The top offset for shadows. (default -15) shadow-exclude = [ "! name~=''", "n:e:Notification", "n:e:Plank", "n:e:Docky", "g:e:Synapse", "g:e:Kupfer", "g:e:Conky", "n:w:*Firefox*", "n:w:*Chrome*", "n:w:*Chromium*", "class_g ?= 'Notify-osd'", "class_g ?= 'Cairo-dock'", "class_g ?= 'Xfce4-notifyd'", "class_g ?= 'Xfce4-power-manager'" ]; # The shadow exclude options are helpful if you have shadows enabled. Due to the way compton # draws its shadows, certain applications will have visual glitches # (most applications are fine, only apps that do weird things with xshapes or argb are # affected). # This list includes all the affected apps I found in my testing. The "! name~=''" part # excludes shadows on any "Unknown" windows, this prevents a visual glitch with the XFWM alt # tab switcher. # Fading fading = true; # Fade windows during opacity changes. fade-delta = 4; # The time between steps in a fade in milliseconds. (default 10). fade-in-step = 0.03; # Opacity change between steps while fading in. (default 0.028). fade-out-step = 0.03; # Opacity change between steps while fading out. (default 0.03). #no-fading-openclose = true; # Fade windows in/out when opening/closing detect-client-opacity = true; # This prevents opacity being ignored for some apps. For example without this enabled my xfce4-notifyd is 100% opacity no matter what. # Window type settings wintypes: { tooltip = { fade = true; shadow = false; }; };
Słowo wyjaśnienia – w powyższym konfigu korzystamy z GLX (openGL – Compton potrafi również obsłużyć XRender), a to automatycznie aktywuje naszą synchronizację włączoną domyślnie w sterownikach graficznych (nvidia-settings). Jeżeli jednak chcemy wymusić swoją własną metodę synchronizacji, odkomentowujemy linijkę z ‘vsync = “opengl-swc”;’. Generalnie warto się zapoznać np. z tym opisem.
Aby aktywować naszego kompozytora, musimy udać się do (dla Xfce) Ustawień systemu -> Ulepszenia menadżer okien -> Kompozycja i ją wyłączyć. Teraz wydajemy polecenie:
compton -b
Powinno mrugnąć, błysnąć i gotowe. Aby uruchamiać Comptona podczas startu systemu, dopisujemy powyższe polecenie w Ustawienia Systemu -> Sesja i uruchamianie -> Automatyczne uruchamianie. Aby sprawdzić, czy to działa, wystarczy poruszać oknami lub odpalić plik wideo – jeżeli nie widzimy żadnego zrywania i wszystko stanowi całość, jest ok.
Pakiety – aktualnie i jeszcze więcej
sudo yaourt pamac
Czy to wszystko?
Sterowniki, kernel, estetyka, obsługa pakietów. W zasadzie i na szybko, to pierwsze rzeczy które mogą niektórych uwierać i przeszkadzać w sprawnym posługiwaniu się systemem. Wymienianie domyślnych programów z Manjaro i zastępowanie ich swoimi ulubionymi to oczywista oczywistość, a cały system oczekuje u mnie pierwszej próby ognia, czyli podbicia przez deweloperów wersji.
Polecenie sudo mhwd-kernel -li pokaże wszystkie zainstalowane kernele
Podczas instalacji systemu można wybrać od razu, by instalator uruchomił się z zamkniętymi sterownikami. Następnie zamiast używać polecenia sudo mhwd-kernel -i linux312 można użyć pamaca (lub pacmana) do instalacji pakietu linux312, który automatycznie pobierze także sterowniki pod to jądro. Wystarczy potem zrestartować komputer i usunąć pakiet linux310.