blog music artwork youtube channel contact
kategorie aktywność fizyczna
filozofia i nauka
informatyka
sztuka i twórczość
wszystkie wpisy
linki wpisy w rss
komentarze w rss
wirtualna biblioteka zajawki droga
aikido
ostre koło



tagi

Qingy na Ubuntu 7.04

Po ostatnim odchudzeniu systemu i przerzuceniu się na Fluxbox’a, postanowiłem poradzić coś także na manager logowania, ponieważ GDM nie grzeszy lekkością. Na pierwszy ogień poszedł XDM, jednak nie zadowalał mnie brakiem możliwości restartu, wyłączenia komputera, czy zmiany sesji. Znalazłem jednak dużo ciekawsze i co najważniejsze konsolowe rozwiązanie oparte o framebuffer z możliwością wymiany skórek o nazwie Qingy.

Na początek instalujemy potrzebne pakiety (zapewne nie wszystkie są potrzebne/jakichś może brakować z uwagi na to że mój Ubuntu już trochę przeszedł):

$ sudo apt-get install libcurses-perl libcurses-ruby libncurses5-dev x11proto-scrnsaver-dev xscreensaver-data-extra xscreensaver-gl-extra xscreensaver-data xscreensaver-data-extra xscreensaver-gl-extra xscreensaver-data libxext-dev libxxf86misc1 libxext6 libxss-dev directfb libdirectfb-dev libdirectfb-bin libdirectfb-0.9-25 libdirectfb-bin libdirectfb-0.9-25 libxss1

Teraz pora na ściągnięcie źródeł Qingy i skompilowanie ich:

$ wget http://heanet.dl.sourceforge.net/sourceforge/qingy/qingy-0.9.6.tar.bz2
$ tar -xjf ./qingy-0.9.6.tar.bz2
$ cd qingy-0.9.6.tar.bz2
$ ./configure –prefix=/usr
$ make
$ sudo make install

Jeśli podczas wykonywania polecenia configure wyskoczyły jakieś błędy związane z brakiem jakiegoś pliku w systemie, czy biblioteki, oznaczać to może brak odpowiedniej paczki. Na stronie Debiana jest możliwość przeszukania zawartości pakietów w poszukiwaniu odpowiedniego pliku (nie bardzo kojarzę, żeby było coś takiego konkretnie dla Ubuntu. Kiedy już mamy nazwę pakietu można go spróbować zainstalować apt’em.

Kolejnym krokiem będzie zainstalowanie skórek, które upiększą nieco nasz manager logowania:

$ wget http://puzzle.dl.sourceforge.net/sourceforge/qingy/qingy_0.3_themepack_1.0.tar.bz2
$ tar -xjf ./qingy_0.3_themepack_1.0.tar.bz2
$ cd qingy_0.3_themepack_1.0
$ sudo cp -R ./* /usr/share/qingy/themes/

Teraz ustawiamy plik /usr/etc/qingy/settings (jako root) aby nie było żadnych problemów z logowaniem do trybu graficznego. Poniżej ustawienia które należy zmienić (pozostałe mogą zostać domyślnie):

x_sessions = „/etc/X11/Sessions/”
text_sessions = „/usr/etc/qingy/sessions/”
temp_files_dir = „/tmp”
x_server = „/usr/bin/X11/X”
xinit = „/usr/bin/xinit”
x_args = „-dpi 100 vt7 -nolisten tcp”
log_level = error
log_facilities = console, syslog
x_server_offset = 0
x_server_tty = unused_tty
theme = „casablanca” # nazwa motywu (random = losowo)

Teraz musimy sprawić aby przy startowaniu systemu, konsola była w trybie framebuffer. Edytujemy w tym celu jako root plik /boot/grub/menu.lst i przy pierwszym kernelu dopisujemy parametr vga określający rozdzielczość konsoli (w tym wypadku vga=790 to 1024x768x16M). [Nie kopiować całości kodu poniżej, ponieważ kernel może się różnić!]:

title Ubuntu, kernel 2.6.20-16-lowlatency
root (hd0,0)
kernel /boot/vmlinuz-2.6.20-16-lowlatency
root=UUID=233d19ef-17a5-4ee7-8afe-47cdb4f87b7b ro quiet splash locale=pl_PL vga=790
initrd /boot/initrd.img-2.6.20-16-lowlatency
quiet
savedefault

Aby zachować ustawienia GRUB’a po automagicznej instalacji kernela przy aktualizacji (zapobiega to wyłączeniu framebuffera po aktualizacji jądra), dopisz odpowiednie paramtery do pliku /boot/grub/menu.lst (linia musi pozostać zakomentowana!):

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
## kopt_2_6_8=root=/dev/hdc1 ro
## kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=UUID=233d19ef-17a5-4ee7-8afe-47cdb4f87b7b ro vga=790

Teraz aktualizujemy GRUB’a i tworzymy katalog w którym Qingy będzie zapisywał sesje X’ów:

$ sudo grub-install /dev/hda
$ sudo mkdir /etc/X11/Sessions

Edytujemy plik /etc/X11/Xwrapper.config aby zezwolić Quingy na uruchamianie X’ów poprzez ustawienie zmiennej allow_users:

allowed_users=anybody

Ostatnim krokiem będzie podpięcie Qingy zamiast getty pod konsolę tty1 (analogicznie można to zrobić dla pozostałych). Edytujemy w tym celu jako root plik /etc/event.d/tty1 według poniższego wzoru:

# tty1 – getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.

start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5

stop on runlevel 0
stop on runlevel 1
stop on runlevel 6

respawn
#exec /sbin/getty 38400 tty1
exec /usr/sbin/qingy tty1

Polecam pozostawić sobie przynajmniej jedną konsolę ze standardowym getty tak na wszelki wypadek. Jeśli wszystko przebiegło bez problemów, po zrestartowaniu systemu na konsoli tty1 powinniśmy zobaczyć logowanie Qingy.

W moim przypadku w X’ach pojawił się problem braku polskiej klawiatury, ale można to rozwiązać edytując plik ~/.xsession (tylda przed nazwą prowadzi do katalogu domowego aktualnego użytkownika). Powinien on mieć zawartość:

LANG=pl_PL.UTF-8
export LANG
LC_CTYPE=”pl_PL.UTF-8″
LC_NUMERIC=”pl_PL.UTF-8″
LC_TIME=”pl_PL.UTF-8″
LC_COLLATE=”pl_PL.UTF-8″
LC_MONETARY=”pl_PL.UTF-8″
LC_MESSAGES=”pl_PL.UTF-8″
LC_PAPER=”pl_PL.UTF-8″
LC_NAME=”pl_PL.UTF-8″
LC_ADDRESS=”pl_PL.UTF-8″
LC_TELEPHONE=”pl_PL.UTF-8″
LC_MEASUREMENT=”pl_PL.UTF-8″
LC_IDENTIFICATION=”pl_PL.UTF-8″
LC_ALL=

# poniżej dla Fluxboxa: startfluxbox , dla GNOME: gnome-session zależnie od naszego domyślnego managera
exec /usr/bin/startfluxbox

Teraz po wybraniu w Qingy startowania poprzez ~/.xsession z klawiaturą nie powinno być już problemu o ile taki zaistniał wcześniej.

7 komentarzy »

  1. poszło do delicji :) nice art.

    qrdupel — 31 maja 2007 @ 10:02

  2. dzięki :) jeżeli ktoś szuka jeszcze lżejszego rozwiązania to polecam slim’a :)

    marines — 31 maja 2007 @ 15:31

  3. To qingy nawet fajne, ale mało stabilne. Już zdarzyło mu się „zwiesić” — na zalogowanych tty zaśmiecał ostatnią linijkę, na niezalogowanych nie szło się zalogować (jakby nakładały się dwa ekrany logowania). Do tego powoli reaguje, nie da się ukryć.

    Michał Górny — 1 czerwca 2007 @ 06:22

  4. Hmm czy ja wiem, u mnie działa bez problemu tzn. nie zwiesił się jeszcze ani razu, nie ma jakichś problemów czy to po zalogowaniu do tekstowego czy graficznego. W tym drugim tylko czasami w lewym górnym rogu widać mrugający podkreślnik jak X’y wystartują ale nie zawsze i wystarczy przełączyć się na inną konsolę, wrócić i już jest ok. Co do czasu reakcji to nie zauważyłem żeby chodziło jakoś wolno – może to kwestia też systemu i skryptów startowych odpowiedzialnych za wyświetlanie logowania na konsolach. W każdym razie na Ubuntu działa :D

    dunDer — 1 czerwca 2007 @ 08:10

  5. Oboje kompilujemy przecież ze źródeł, prawdopodobnie tych samych. Co do czasu reakcji — miałem na myśli, ze bezpośrednio po wejściu na dane tty, następuje chociaż minimalny odstęp, celem przeskoku w DirectFB. Jeśli masz LCD, to możesz tego nie zauważać, ale na CRT męczące jest takie przełączanie rozdzielczości. Tym bardziej, jeśli przeskakuję z jednego qingy’ego na drugiego. A skrypty startowe raczej nie mogą tu mieć wiele do rzeczy.

    Z drugiej strony, takie rozwiązanie również mnie cieszy — dzięki temu bowiem qingy zużywa względnie mało pamięci (bo dopiero po wskoczeniu na dane tty ładuje się interfejs).

    Michał Górny — 1 czerwca 2007 @ 16:51

  6. U mnie mało zauważalne jest to zwolnienie, ale na pewno jakieś jest w porównaniu z konsolą bez framebuffera. Skrypty startowe wręcz przeciwnie – mają wiele do rzeczy, bo Ubuntu używa upstartu a Ty możesz mieć init ;) W każdym razie wiadomo że coś kosztem czegoś – jeśli chciałbyś przyspieszenia to zawsze możesz korzystać z tekstowego Quingy, bo i tak plusem jest to, że nie trzeba posiadać żadnego X’owego managera logowania przez co i tak jest to szybsze rozwiązanie niż XDM na przykład a lepiej zrobione (bo ma wybór sesji, reboot i shutdown). W każdym razie polecam dla kogoś kto X’ów używa i chce odchudzić nieco system.

    dunDer — 1 czerwca 2007 @ 17:02

  7. Nie miałem na myśli spowolnienie względem konsoli bez framebuffera (bo takie coś jest nieużytkowalne), ale spowolnienie związane z koniecznością przejścia ze zwykłego fb na DirectFB (tj. zmiany trybu karty).

    A sesję iksną i tak odpalam „ręcznie”, przez start-stop-daemona (tj. prostym skrypcikiem).

    Michał Górny — 1 czerwca 2007 @ 17:22

W trakcie dyskusji zakłada się, że dyskutant:
  • mówi prawdę;
  • dba o zrozumiałość swojej wypowiedzi;
  • jest w stanie porzucić swoje stanowisko gdy jego argumenty zostaną obalone;
  • zgadza się na przestrzeganie zasad dotyczących formy wypowiedzi;
Zasady dotyczące formy wypowiedzi:
  • prawo do swobodnego wyrażania swoich poglądów, jeśli nie naruszają one pozostałych zasad;
  • gotowość do merytorycznego uzasadnienia swojego stanowiska;
  • branie pod uwagę rzeczywistych poglądów oponenta (które wyraził explicite) oraz ich logicznych wniosków;
  • obrona poglądów za pomocą twierdzeń przemawiających za ich akceptacją;
  • rozwijanie argumentacji odwołującej się do założeń przyjętych przez oponenta (nie podpieramy się autorytetami, wartościami ani hierarchiami, których on nie uznaje dot. to szczególnie tematów poświęconych przekonaniom religijnym i etyce)

Od każdego wymagana jest także rzetelność, kultura słowa oraz szacunek do pozostałych dyskutantów. Nie akceptowane są próby manipulacji, uciekanie się do emocji, wulgarne wypowiedzi oraz argumentacja pozamerytoryczna. Jeśli nie jesteś w stanie zastosować się do powyższych zasad, Twój komentarz prawdopodobnie zostanie usunięty.

Opracowano na podstawie: "Etyka międzyludzkiej komunikacji", red. J. Puzynina, wyd. Semper, Warszawa 1993

Kanał RSS z komentarzami do tego wpisu. TrackBack URL

Dodaj komentarz