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.

Rozpakowywanie wielu archiwów

Każdemu zdarza się czasami posiadać wiele archiwów ZIP, czy RAR, które trzeba rozpakować, jednak robienie tego ręcznie na kilkudziesięciu, czy kilkuset plikach może być nieco męczące. Zadanie to ułatwić nam może bash.

Aby rozpakować wszystkie pliki z danego katalogu, wyświetlimy najpierw ich listę, za pomocą konsolowego polecenia ls, zapiszemy ją jako tablicę i na każdym z jej elementów wykonamy komendę, służącą do rozpakowywania z automatycznym nadpisywaniem (abyśmy nie musieli cały czas kontrolować ekranu). Poniżej prosty skrypt, który obrazuje powyższe założenia:

#!/bin/bash
IFS=’

PLIKI=`ls -1 *.zip *.zip` # listuje pliki zip i ZIP wyświetlając wyniki w osobnych liniach
for i in $PLIKI # pętla dla każdego elementu w tablicy
do
echo $i # wyświetlenie elementu
unzip -o ./$i # rozpakowanie pliku z nadpisaniem
done

1 metoda alternatywna (zasugerował Marcin & P. Hosowicz):

#!/bin/bash
for x in *.[zZ][iI][pP]
do
echo $x
unzip -o ./$x
done

2 metoda alternatywna (zasugerował P. Hosowicz):

ls -1 *.[zZ][iI][pP] | xargs -l unzip -o

3 metoda alternatywna (zasugerował M. Górny):

find -maxdepth 1 -name ‘*.[zZ][iI][pP]‘ -exec unzip -o ‘{}’ ‘;’

Klawiatura Midistart-2 Prokeys w Ubuntu

Klawiatura MIDI Midistart-2 Prokeys to doskonałe urządzenie dla osób które zaczynają swoją przygotę z MIDI. Zakupiłem ją po przeczytaniu recenzji na stronie magazynu Estrada i Studio i muszę przyznać że był to bardzo udany zakup.

Na wstępie krótki opis sprzętu. W pudełku dostajemy klawiaturę, kabel USB, krótką instrukcję oraz płytkę dla systemu Windows. Urządzenie może być zasilane za pomocą zasilacza, kiedy korzysta z portu MIDI, lub z portu USB jeśli używamy go do łączności ze sterownikiem. Klawiatura posiada 49 pełnowymiarowych klawiszy (29 białych i 20 czarnych) reagujących na siłę nacisku – przy lekkim uderzeniu otrzymamy ciepły cichy dźwięk, przy mocniejszym bardziej dynamiczny i głośniejszy. Po lewej stronie mamy dwa pokrętła – modulację oraz kontrolę wysokości dźwięku. Panel tylni zawiera od lewej: gniazdo na duży jack do podłączenia pedału, standardowy port MIDI, port USB, wejście na zasilacz 9V oraz włącznik on/off. Komforty gry jest bardzo wysoki, a obudowa i ogólny design bardzo ładny i estetyczny.

Przechodzimy do konfiguracji urządzenia w Ubuntu. Po podłączeniu pojawiło się ono w lsusb jako:

Bus 004 Device 005: ID 2702:2702

Pierwszym krokiem będzie uruchomienie serwera jack – możemy to zrobić za pomocą qjackctl. Uwaga – serwer ten uruchamiamy na urządzeniu naszej karty dźwiękowej a nie na urządzeniu sterownika MIDI który podłączyliśmy. Gdy jack już działa (jest potrzebny opcjonalnie, ale to dużo obecnie najlepszy serwer dźwięku dla linuksa) , instalujemy pakiety ffluidsynth i qsynth z repozytoriów. Uruchamiamy qsynth.

Kolejnym krokiem jest zaopatrznie się w banki dźwięków zwane soundfont, posiadające rozszerzenie .sf2. Mogę polecić stronę http://www.sf2midi.com zawierającą wiele plików do pobrania, jednak wymaga ona rejestracji (która jest darmowa). Możemy także pobrać cały pakiet z torrentów, po czym rozpakować wszystko do jakiegoś katalogu.

Gdy już mamy banki dźwięków, w QSynth wciskamy Setup, przechodzimy do zakładki Audio i ustawiamy serwer dźwięku z jakiego będziemy korzystać. Jako że opis ten dotyczy serwera jack zaznaczamy co trzeba i przechodzimy do zakładki Soundfonts. Wciskamy Open i ładujemy wszystkie nasze banki dźwięków z dysku, po czym możemy określić ich kolejność. Po zatwierdzeniu zmian, QSynth zapyta czy zrestartować silnik, na co odpowiadamy Yes.

Teraz pozostaje nam ustanowić połączenie pomiędzy naszą klawiaturą, a QSynth w jack’u. W QJackCtl klikamy Connections. W oknie po prawej zobaczymy 20:Hua Xing, rozwijamy tak aby pojawiło się 0:Hua Xing MIDI 1 – klikamy na niego. W oknie po lewej rozwijamy 129:FLUID Synth (8686) i zaznaczamy 0:Synth input port (8686:0) i klikamy Connect. Teraz musimy jeszcze ustawić z jakiego instrumentu będziemy korzystać. Aby to zrobić przechodzimy znowu do QSynth i wciskamy Channels. Po dwukrotnym kliknięciu na kanał 1, po prawej stronie wybieramy bank dźwięków a po lewej instrument. Po naciśnięciu OK możemy już zacząć grać.

Dzięki takiej konfiguracji wstarczy, że w dowolnym programie do edycji dźwięku (Ardour, MuSe) ustawimy port QSynth jako port wejścia i możemy zapisywać swoją twórczość.