Rozwiązane: Problem z restartem i wyłączaniem Gentoo

Ostatni przez podejrzanie długi czas nie pojawiły się w moim pięknym linuksie żadne problemy. Czasem jakieś drobne niedogodności po aktualizacji danego pakietu, ale nie było to nic specjalnie wyzywającego, ani tym bardziej pilnego.

Ostatnio jednak po aktualizacji „zepsuło” się wyłączanie systemu. Efekt był taki, że kiedy chciałem uruchomić ponownie, bądź wyłączyć komputer system wyłączał się w miarę normalnie, aż do pokazania komunikatu:

INIT: No more processes left in this runlevel.

Ten komunikat pojawia się zawsze i to nie jest problem. Problemem było to, że nie działo się nic później – normalnie powinno nastąpić uruchomienie ponowne/wyłączenie komputera. Jedyne co mi pozostawało to wyłączyć komputer „z palca” 😉

Jak się okazało – aktualizacja nic nie popsuła, ale nowa wersja oprogramowania wymagała specyficznych zapisów w odpowiednim pliku konfiguracyjnym i stąd wziął się problem.

Sprawa wyjaśniła się, gdy dzisiaj po raz kolejny zasiadłem aby pozbyć się tego denerwującego „błędu”. Rozwiązanie znalazłem zaledwie w kilka chwil,podczas gdy poprzednio przekopywałem tony stron.

Oczywiście nie byłem jedynym człowiekiem z tą dolegliwością więc nie powinno być dla nikogo zaskoczeniem, że instrukcje naprawy tego stanu rzeczy znalazłem tu: http://bugs.gentoo.org/show_bug.cgi?id=251024#c10.

Wychodzi na to, że brakowało mi po prostu dwóch linijek w /etc/inittab:

l0s:0:wait:/sbin/halt -dhip l6r:6:wait:/sbin/reboot -dk

Po ich dodaniu problem znikł i mam nadzieję, że już nigdy więcej nie wróci 🙂

Reklamy

Gentoo, Google Chrome i YouTube

Jako, że bardzo lubię Google Chrome od czasu kiedy zostało wypuszczone na Windowsie, bardzo ubolewałem, że nie ma odpowiednika na Linuxa.

Ostatnio jednak ukazała się wczesna wersja działająca w systemie Linux. Dopóki korzystałem z Ubuntu wszystko było dobrze ponieważ developerzy dali paczę DEB. Teraz zachciało mi się posiadać możliwość uruchomienia Chrome’a w systemie Gentoo.

Z pomocą przyszli niezawodni internauci, którzy mieli podobne zachcianki. Jeden z nich opisał proces instalacji przeglądarki z paczki DEB w systemie Gentoo na swoim blogu: http://blog.andreaolivato.net/open-source/google-chrome-natively-running-on-gentoo-linux.html.

A Flash?

No właśnie. Tutaj pojawiły się problemy.  W katalogu /usr/lib/nsbrowser/plugins znalazłem plugin którego potrzebowałem: libflashplayer.so. Jeśli go tam nie ma to pewnie trzeba go zainstalować poleceniem:

emerge www-plugns/adobe-flash

Jak już go tam mamy to flash będzie działał w przeglądarce Epiphany. To już nieźle ;). Kombinowałem z linkami do tego pliku w różnych miejscach aby chrome widział plugin jednak nic nie przynosiło efektu. W końcu wykorzystałem ostatnie drewno ratunku i postanowiłem udawać, że mam Firefoxa i tam zainstalować wtyczkę:

mkdir ~/.mozilla
ln -s /usr/lib/nsbrowser/plugins ~/.mozilla/plugins

W ten sposób utworzyłem katalog .mozilla w moim katalogu domowym (tam firefox trzyma swoje śmieci), a później w tym katalogu stworzyłem link do katalogu zawierającego wtyczki Epiphany. Link ten z punktu widzenia programów jest widziany jako zwykły katalog i nawet nie podejrzewają jak bardzo je oszukujemy 🙂

Tak czy inaczej teraz Google Chrome po uruchomieniu obsługuje już flasha.

Życzę miłego oglądania jutuba 😉

Gentoo – kompilacja jądra (kernel 2.6.30)

Info: To nie jest informacja jak kompilować kernel – to raczej informacja jak go nie kompilować 🙂

Największym problemem okazała się dla mnie kompilacja kernela 2.6.30. Początkowo podczas instalacji użyłem narzędzia genkernel ponieważ było wygodne. Jednak tak stworzone jądro trochę długo się uruchamiało (około 1 minuty 15 sek. od GRUBA do ekranu logowania). Wszystko dlatego, że na początku uruchamiany był obraz initrd i on ładował do dużo modułów których nawet nie potrzebowałem! Pomijam już fakt, że kompilacja takiego jądra z milionem modułów trwała około 20 minut.

Postanowiłem więc wziąć sprawy w swoje ręce i zmodyfikować nieco ustawienia jądra tak aby nie musiało korzystać z initrd. Dodatkowo chciałem aby jądro obsługiwało system plików ext4, abym mógł pracować na partycji gdzie zainstalowałem Ubuntu (bo ono też jeszcze jest 😉 ).

Zatem poszedłem do źródeł gentoo-sources które były już na dysku od czasu gdy instalowałem system:

cd /usr/src/linux

I rozpocząłem konfigurowanie:

make menuconfig

Początkowo ogrom opcji jakie się cisną do oczu jest porażający. Po kilku nieudanych kompilacjach (tzn takich, że jądro po uruchomieniu dawało KERNEL PANIC). Postanowiłem zacząć całkowicie od nowa. W katalogu /usr/src/linux wydałem polecenie:

rm .config

Co oznacza, że usunąłem starą konfigurację (jeszcze wygenerowaną przez genkernel – stąd pewnie były problemy). Po tej operacji program do konfiguracji jądra wczytał podstawowe ustawienia, które są bardzo minimalistyczne. Bałem się czy takie jądro w ogóle poradzi sobie w życiu codziennym, ale postanowiłem spróbować.

Jedyne rzeczy jakie zmieniłem to dodałem obsługę ext4 oraz zaznaczyłem kilka opcji graficznych dla kart NVIDIA i mojej karty bezprzewodowej.

Kompilacja nowego jądra trwała mniej niż 2 minuty. Wygenerowanych zostało zaledwie 12 modułów, z których łatwo było wybrać te interesujące 🙂

Jak się okazało jądro poradziło sobie i uruchomiło się w około 30 sekund (gdyby nie konfigurować sieci to nawet kilka sekund szybciej). Widać zatem, że w prosty sposób można znacznie przyspieszyć ładowanie systemu operacyjnego.

Teraz jeśli zauważę, że potrzebuję dodatkowej opcji w jądrze to dodanie jej zajmuje tylko kilka minut. Ma to ogromne zalety w stosunku do tego, ze w Ubuntu właściwie wszystko działo się samo i nawet nie wiedziałem skąd, po co i dlaczego 🙂 A ja lubię wiedzieć dlaczego.

Wniosek

Jeśli kompilowałeś jądro przy użyciu genkernela lub w jakiś inny automatyczny sposób to najlepiej usuń tę konfigurację i zacznij od nowa.

W internecie jest bardzo wiele przewodników dotyczących konfiguracji i kompilacji jądra Linux. TA STRONA jest jednym z przykładów. Najważniejszą rzeczą podczas szukania informacji jest wiedza o tym, że informacje te mogą być przestarzałe – dlatego należy ostrożnie podchodzić do znalezionych informacji.