czwartek, 31 października 2013

W obudowie kurz kudłaty, a w konsoli rosną kwiaty...


Nadchodzi listopad ponury. W sklepach dziki szał na znicze i kwiatki. Linux też jest nudny i brzydki, konsola straszy ponurą czernią, więc posadzimy sobie dzisiaj kwiatki na ekranie. Jeśli mamy dużo urządzeń z migającymi lampkami, to możemy sobie zrobić nastrojowe wnętrze. Ja już takie mam. Sami zobaczcie.




Idź być GRUBy gdzie indziej

Gentoo niedawno oficjalnie przeszło z Gruba 0.97 (Legacy) na 2. Zmiana dokonała się sama, wystarczyło zrobić aktualizację. Potem trzeba było jeszcze tego Gruba skonfigurować. To przecież Gentoo, więc nie spodziewajmy się, że coś się zrobi samo od początku do końca. Na szczęście twórcy napisali ładnego manuala, w którym wszystko jest wyjaśnione. No, prawie. Piszą, że Migration to GRUB2 is fairly straightforward: it will be pulled in as part of your regular upgrade process by your package manager. Może to oznaczać, że wszystko jednak zrobi się samo lub, że wszystkie wymienione instrukcje nas nie dotyczą. Jak już wiecie, w Gentoo nic się samo nie robi, więc zostaje tylko ta druga możliwość. Tylko nie wiadomo za bardzo, od którego momentu zacząć. Dla tych, którzy nie wiedzą: jeśli Portage ściągnęło nam Gruba, zaczynamy od Installing and Configuring GRUB2 (druga część punktu 2). Jeśli postępujemy zgodnie z instrukcją, wszystko powinno pójść dobrze.


Łańcuchy węglowe

Mój poprzedni Grub wyglądał paskudnie, żywcem z lat 90. Można go trochę zmienić, ale nie chciało mi się w ogóle go oglądać.


Obrazek nie pochodzi z mojego kompa, ale wyglądało to dokładnie tak samo.

Nowy Grub jest ładniejszy, więc go sobie przyozdobiłam jeszcze bardziej. Ustawiłam sobie tło ze wzorkiem przypominającym łańcuchy węglowe. Wygląda to tak:


Jeżeli też chcecie coć takiego mieć, to jest to bardzo proste. Najpierw trzeba znaleźć sobie odpowiedni obrazek. Jest to kwestia gustu, ale polecam jednolite tło i wzorek w części, gdzie nie wyświetlają się napisy.

Wpisujemy w konsoli nano /etc/default/grub (czy w czym tam edytujecie). Otwiera się plik. Trzeba znaleźć część:
# Background image used on graphical terminal.
# Can be in various bitmap formats.
GRUB_BACKGROUND="/ścieżka/twojego/pliku.jpg"
Zapisujemy zmiany (pamiętajcie, żeby usunąć # z ostatniej linijki) i wpisujemy grub2-mkconfig -o /boot/grub/grub.cfg. Gotowe.

Możemy też sobie zmodyfikować czcionkę, kolor, ułożenie elementów. W tym celu należy skasować # z ostatniej linijki tej części:

# Path to theme spec txt file.
# The starfield is by default provided with use truetype.
# NOTE: when enabling custom theme, ensure you have required font/etc.
#GRUB_THEME="/boot/grub/themes/starfield/theme.txt"

Edytujemy plik z ostatniej linijki (przypomina to nieco CSS), zatwierdzamy zmianę konfiga tym samym poleceniem, co przy ustawianiu obrazka i cieszymy się ładnym Grubem.


W obudowie kurz kudłaty...

...więc polecam zdjąć obudowę i przeczyścić wnętrze kompa. Nie będę jednak na ten temat pisać. Zajmę się kwiatami w konsoli. Konsola jest nudna i brzydka, więc dlaczego nie mogą rosnąć w niej kwiaty?


Tu nie trzeba grzebać w żadnych konfigach. Odpalamy konsolę, klikamy kolejno Ustawienia -> Edytuj bieżący profil -> Wygląd -> Edytuj -> Obraz tła. Gotowe. Jedyne, o czym warto pamiętać to to, żeby umieścić obrazek po prawej stronie, żeby dało się odczytać napisy.

W systemie FreeBSD da się ustawić, żeby tło przeskalowywało się w zależności od rozmiaru okna. Nie udało mi się niestety znaleźć tego na Linuksie, więc po zmniejszeniu okna nie widać kwiatków.

 



środa, 30 października 2013

Jak jeszcze bardziej zepsuć Gentoo, czyli nie chwal dnia przed zachodem słońca

Nie chwal dnia przed zachodem słońca.
przysłowie polskie
(1.1) nie ciesz się z pozytywnych efektów zbyt wcześnie, bo możesz zapeszyć
(z Wiktionary


Pamiętacie, jak mówiłam, że nie jestem taka zdolna, żeby jeszcze bardziej zepsuć Gentoo? Okazało się, że jestem. W sumie nic takiego nie musiałam zrobić. Wystarczyło puścić zwykłą aktualizację. A potem reboot i omg... tylko mały, biały kursor miga mi w lewym górnym rogu. A powinno załadować się KDE. I co ja teraz zrobię?

Na szczęście skrót Ctrl+Alt+F5 zadziałał i udało mi się dostać do konsoli. Nawet nie wiecie, jak wielką sprawiło mi to radość. Sprawdziłam, co usunęłam poleceniem genlop -l -u --date mm/dd/yyyy... i niczego sensownego się nie dowiedziałam. Na liście nie było niczego istotnego z punktu działania systemu. Same edytorowe pierdółki. Sprawdziłam, co się zaktualizowało za pomocą genlop -l --date mm/dd/yyyy (swoją drogą, strasznie mnie wkurza ten format daty) i wszystko wyglądało w porządku. Co tu się zatem dzieje? Do tego było już sporo po północy, a rano wstać trzeba.



Kto pyta, nie błądzi

Za to może zrobić z siebie debila i n00ba. Pod ręką miałam wyłącznie komórkę, więc zalogowałam się na oficjalny ircowy kanał #gentoo. Przy okazji polecam aplikację AndChat na Androida. Siedzi tam mnóstwo miłych ludzi, którzy chętnie pomagają potrzebującym. Za pomocą polecenia cat /var/log/Xorg.0.log | tail -n 100 | wgetpaste mogłam przekleić swoje logi nie mając możliwości wstawienia ich samodzielnie na Pastebina. Polecenie to wysyła treść pliku na serwer i zwraca linka, którego da się już wpisać na telefonie. Dzięki temu bardziej doświadczeni użytkownicy Gentoo mogli mi pomóc zdiagnozować problem. Wykazali się przy tym anielską cierpliwością, bo spać chciało mi się niemiłosiernie, przez co robiłam z siebie wspomnianego debila. Do tego co chwila zrywało się połączenie. Ale na szczęście koło 3:00 udało się ustalić prawdopodobną przyczynę problemu. Walkę z systemem zostawiłam sobie jednak na późniejszą porę.



Nie śpię, bo kompiluję

I do tego znowu jądro! Musiałam wyłączyć moduł Vesa i włączyć i915 oraz wszystkie inne, od którego był on zależny, czyli DRM i KMS. Ogólnie chodziło o to, żeby wszystkie były wgrane w jądro [*], a nie były jako moduł [M]. Trochę się nagrzebałam, zwłaszcza że wypatrywałam DRM. A tu się okazało, że napisali jego pełną nazwę (Direct Rendering Manager) i nie widziałam go, chociaż miałam go przed oczami. Cóż, bywa. W każdym razie z pomocą / (ukośnika, slasha) udało mi się wszystko znaleźć i ustawić jak należy. Skompilowałam jądro, zrestartowałam system... uffff, DZIAŁA!

Prawdopodobną przyczyną awarii była zmiana wymagań przez nowe wersje aktualizowanych pakietów.


Właśnie spaliła mi się farelka. Mam nadzieję, że już nic więcej się nie zepsuje.


sobota, 26 października 2013

Jak zepsuć Gentoo, czyli wywal sobie GCC jednym kliknięciem

Tak naprawdę to nie zepsułam sobie Gentoo na dobre. W sumie nic drastycznego nie zrobiłam. Aż tak zdolna nie jestem.


Jesienne porządki

Zacznijmy od tego, że zapchało mi się Portage. Aktualizacje nie chciały się przeprowadzać, bo nie było miejsca. Zajrzałam do /usr/ i /var/ i faktycznie - były równo pozapychane. Pogrzebałam w internetach na ten temat i na oficjalnym forum Gentoo wyczytałam, że pomaga na to wyczyszczenie katalogów /usr/portage/distfiles oraz /var/tmp/portage. Nie ma to żadnego wpływu na funkcjonowanie systemu, najwyżej aktualizacja potrwa nieco dłużej, bo Portage będzie musiało ściągnąć sobie źródełka, które wywaliłam. No spoko, czyścimy. Szybkie komendy rm -r /usr/portage/distfiles/* oraz rm -r /var/tmp/portage/* - parę sekund i gotowe. Miejsca od razu mnóstwo się zrobiło. Super!

Jednak nie do końca tak super. Miejsca było mnóstwo, ale aktualizacje nie chciały lecieć. Podobno miałam za stary kompilator GCC, starszy niż 4.6. Sprawdziłam wersję poleceniem eix gcc i pokazało się, że mam wersję... 4.7.3. Wtf? No to spróbuję sobie przekompilować GCC. Nie ma tak dobrze. Okazało się, że wersja jest w porządku, za to profil jest wyłączony. Musiałam więc go jakoś włączyć. Na szczęście jest polecenie gcc-config -l, które potwierdza, że profil faktycznie jest wyłączony i pokazuje dostępne wersje. Wygląda to tak: * gcc-config: Active gcc profile is invalid! [1] x86_64-pc-linux-gnu-4.7.3. Jak widać, miałam tylko jeden do wyboru, przez co na pewno wybrałam właściwy. Żeby ustawić sobie profil, trzeba wpisać gcc-config 1, tym razem bez set, co jest trochę dziwne, bo zwykle jest set. No ale jak tam chcą. Potem jeszcze musiałam dopisać polecenia . /etc/profile (ze spacją), a następnie fix_libtool_files.sh 4.6.3 (poprzednia wersja, którą można sobie sprawdzić genlop -l | grep sys-devel/gcc, jeśli jej nie pamiętacie). Wpisałam i pomogło. Jeden problem z głowy.


Emake Failed!

Skoro jeden z głowy, to domyślacie się zapewne, że to jeszcze nie koniec. Aktualizacje dalej nie chciały iść, bo pakiet Systemtap, od którego zależy między innymi Icedtea wywalał mi emake failed. Moja wersja Systemtapa to ostatnia stabilna, czyli 1.6. Co ciekawe, już dawno nie było jakiejś nowszej stabilnej, wszystkie mają tyldę i to się nie zmienia.


Miałam do wyboru - albo zmienić sobie w kompilacji j2 na j1, albo wgrać sobie wersję niestabilną. Próbowałam z 1.7, ale dupa blada - dalej emake failed. Usunęłam więc wybór wersji, niech sobie bierze, co chce. Wzięło 2.2 i już się nie posypało. Wszystkie aktualizacje, a było ich trochę, poleciały bez problemów.

Dla przypomnienia: kiedy wybierałam konkretną niestabilną wersję, czyli 1.7, to wpisywałam w /etc/portage/package.keywords info o tej wersji, czyli =dev-util/systemtap-1.7 ~amd64 - ze znakiem równości i ~amd64 na końcu, bo mam architekturę amd64. Natomiast kiedy pozwalam systemowi wybrać sobie najwyższą dostępną wersję, bez zastrzeżenia, którą konkretnie, to zmieniam wpis na dev-util/systemtap ~amd64 i wtedy leci 2.2.


Jądro kompiluję, bo czemu nie

Systemtap po ostatecznym skompilowaniu powiedział mi, że chciałby 3 zmiany w jądrze do poprawnego funkcjonowania. Były to:
  • (KPROBES) - this can be enabled in 'Instrumentation Support -> Kprobes' - u mnie było pod General Settings, więc jeśli nie możecie tego znaleźć, to się nie martwcie,
  • (RELAY) - this can be enabled in 'General setup -> Kernel->user space relay support (formerly relayfs)' - było na swoim miejscu,
  • (DEBUG_FS) - this can be enabled in 'Kernel hacking -> Debug Filesystem' -  to też.
Tak w ogóle, to korzystam z genkernela, ale jestem n00bkiem i mi wolno. Wolę powoli obcinać niepotrzebne elementy, niż użerać się z tym, żeby w ogóle system odpalił.


W przygotowaniu

Napiszę niebawem o aktualizacji Gruba z 0.97 na 2 (i co można z tym zrobić), o problemach z Eclipse i konieczności grzebania w overlayach oraz o tym, dlaczego Netbeans się głupio aktualizuje.