August 9, 2007

No Comments

[HowTo] eJabberd on PLD + MSN + IRC + GG Transports

Własny serwer jabbera – jak to poważnie brzmi. Postaram się w maksymalnym skrócie opisać (krok po kroku) jak zainstalować i skonfigurować eJabberda na PLD i dodać do niego parę transportów. Zaczynamy.

1. Najważniejsza rzecz to oczywiście zainstalować serwer jabbera.


# poldek -ivh ejabberd

2. Konfiguracja (od razu weźmiemy pod uwagę, że chcemy mieć trzy transporty GG, IRC i MSN).

Edytujemy naszym ulubionym edytorem plik /etc/jabber/ejabberd.cfg

{acl, admin, {user, "admin"}}.
% user z prawami administratora, dowolny login
{acl, local, {user_regexp, ""}}.
{access, pubsub_createnode, [{allow, all}]}.
{access, configure, [{allow, admin}]}.
{access, register, [{deny, all}]}.
{welcome_message,
 {"Welcome!",
  "Welcome to Jabber.",
  "For information about Jabber visit http://jabber.org"}}.
{registration_watchers, ["user@localhost"]}.
% user, który będzie powiadamiany o rejestracjach do serwera jabbera
{access, announce, [{allow, admin}]}.
{access, c2s, [{deny, blocked},
               {allow, all}]}.
{shaper, normal, {maxrate, 1000}}.
{shaper, fast, {maxrate, 50000}}.
{access, c2s_shaper, [{none, admin},
                      {normal, all}]}.
{access, s2s_shaper, [{fast, all}]}.
{access, muc_admin, [{allow, admin}]}.
{access, muc, [{allow, all}]}.
{access, local, [{allow, local}]}.
{auth_method, internal}.
{hosts, ["localhost", "jabber.nasza_domena.pl"]}.
% nasze hosty, które będziemy używać (zewnętrzne domeny muszą istnieć)
{max_user_sessions, 10}.
{language, "en"}.
{listen,
[{5222, ejabberd_c2s, [{access, c2s}, {shaper, c2s_shaper}, {max_stanza_size, 65536}, starttls, {certfile, "/etc/jabber/jabber.pem"} ]}, {5223, ejabberd_c2s, [{access, c2s}, {max_stanza_size, 65536}, tls, {certfile, "/etc/jabber/jabber.pem"}]}, {5269, ejabberd_s2s_in, [{shaper, s2s_shaper}, {max_stanza_size, 131072} ]}, {5348, ejabberd_service, [{access, all}, {host, "msn.jabber.nasza_domena.pl", [{password, "hasło z /etc/jabber/secret"}]}]}, {5349, ejabberd_service, [{access, all}, {host, "gg.jabber.nasza_domena.pl", [{password, "hasło z /etc/jabber/secret"}]}]}, {5347, ejabberd_service, [{access, all}, {hosts, ["ircnet.jabber.nasza_domena.pl", "freenode.jabber.nasza_domena.pl"], [{password, "hasło z /etc/jabber/secret"}]}]}, {5280, ejabberd_http, [http_poll, web_admin]} ]}. {s2s_use_starttls, true}. {s2s_certfile, "/etc/jabber/jabber.pem"}. {domain_certfile, "jabber.nasza_domena.pl", "/etc/jabber/jabber.pem"}. {outgoing_s2s_port, 5269}. {modules, [ {mod_register, [{access, register}]}, {mod_roster, []}, {mod_privacy, []}, {mod_adhoc, []}, {mod_configure2, []}, {mod_disco, []}, {mod_stats, []}, {mod_vcard, []}, {mod_offline, []}, {mod_echo, [{host, "echo.nasza_domena.pl"}]}, {mod_private, []}, {mod_irc, []}, {mod_muc, [{access, muc}, {access_create, muc}, {access_admin, muc_admin}]}, {mod_pubsub, [{access_createnode, pubsub_createnode}]}, {mod_time, []}, {mod_last, []}, {mod_version, []} ]}.

3. Wygenerowanie certyfikatów dla połączeń SSL/TLS

# openssl genrsa -out /etc/jabber/jabber.key 1024
# openssl req -new -x509 -days 365 -key /etc/jabber/jabber.key -out /etc/jabber/jabber.crt
# cat /etc/jabber/jabber.crt >> /etc/jabber/jabber.key
# mv /etc/jabber/jabber.key /etc/jabber/jabber.pem
# rm -f /etc/jabber/jabber.crt

4. Transport Gadu-Gadu


# poldek -ivh jggtrans

Ustawiamy najważniejsze opcje w /etc/jabber/jggtrans.xml

<service jid="gg.jabber.nasza_domena.pl"/>
<connect id="gglinker">
    <ip>127.0.0.1</ip>
    <port>5349</port>
    <secret>hasło z /etc/jabber/secret</secret>
</connect>
<spool>/var/spool/jabber/gg.jabber.atwa.us/</spool>
<admin>admin@jabber.nasz_domena.pl</admin>
<acl>
        <allow who="admin@jabber.nasza_domena.pl" what="iq/query?xmlns=http://jabber.org/protocol/stats"/>
        <deny who="*" what="iq/query?xmlns=http://jabber.org/protocol/stats"/>
        <allow who="*"/>
        <deny what="iq/query?xmlns=jabber:x:register"/>
        <allow what="presence"/>
        <deny/>
 </acl>

Następnie tworzymy katalog, w którym będą trzymane dane userów używających transportu

# mkdir -p /var/spool/jabber/gg.jabber.nasza_domena.pl
# chown -R root:jabber /var/spool/jabber/
# chmod -R g+w /var/spool/jabber/

5. Transport MSN

Instalujemy najważniejsze rzeczy:


# poldek -ivh python-Twisted python-Twisted-ssl python-TwistedWords python-TwistedWeb python-TwistedXish python-Imaging python-pyOpenSSL

Teraz trzeba już ręcznie ściągnąć transport stąd. Wypakowujemy go i ustawiamy config.
W src/config.py:

jid = "msn.jabber.nasza_domena.pl"
host = "127.0.0.1"
compjid = ""
spooldir = "/var/lib/ejabberd/"
discoName = "MSN Transport"

mainServer = "127.0.0.1"
website = ""
port = "5348"
secret = "hasło z /etc/jabber/secret"

Natomiast w config.xml (jeśli nie ma to tworzymy z templatu) ustawiamy te same opcje tylko w formacie XMLowym.
Musimy niestety utworzyć jeszcze 2 symlinki bo PyMSNt źle szuka naszych zainstalowanych rozszerzeń pythona:

# ln -s /usr/share/python2.4/site-packages/twisted/words /usr/lib[64]/python2.4/site-packages/twisted/words
#  ln -s /usr/share/python2.4/site-packages/twisted/xish /usr/lib[64]/python2.4/site-packages/twisted/xish

Odpalamy PyMSNt:


# ./PyMSNt &

6. Uruchamiamy eJabberda i tworzymy konto administratora

# service ejabberd start
# ejabberdctl ejabberd@localhost register admin jabber.nasza_domena.pl hasło_do_konta_admina
# service jggtrans start

I to praktycznie cała filozofia. Pod adresem http://server:5280/admin/ zastaniemy ładnego web admina dzięki któremu możemy trochę monitorować nasz serwer, dodawać i usuwać userów, zmieniać im hasła itd. Sam user ma oczywiście możliwość zmiany hasła przez swojego klienta jabbera. Czy ja czasem nie zapomniałem o transporcie ircowym? Nie, eJabberd ma wbudowany transport IRCa i stąd wystarczyło tylko odblokować odpowiedni port i usługę w ejabberd.cfg i transport od razu działa.
Jakbym o czymś zapomniał albo coś jednak nie działało to “bijcie!” i piszcie do mnie albo tutaj w komentarzach. Bijcie!

May 13, 2007

No Comments

STBR scripts published

Opublikowałem skrypty odpowiedzialne za komendę !stbr na IRC. Dostępne są na http://svn.pld-linux.org/cgi-bin/viewsvn/toys/stbr/. Dodatkowo bot ircowy obsługujący te skrypty połączył się również z siecią freenode – także teraz można korzystać z tego zarówno na IRCNecie jak i Freenodzie.

February 6, 2007

11 Comments

PLD – pomysł na meta-paczki

Pomysł ten na pewno nie jest świeży i innowacyjny. Ba, z pewnością nie jest to nawet mój pomysł, ale jako że ostatnio nie czytuję czyichś wypocin i nie śledzę trendu w PLD, postanowiłem przyjrzeć się bliżej takiemu rozwiązaniu, szczególnie że jest wg mnie bardzo ciekawe.

Czym są meta-packages (meta-paczki) ?
Wyobraźmy sobie, że wyjechaliśmy do innego kraju, nie znamy języka, jesteśmy w bardzo dużym mieście, nie mamy pojęcia o gotowaniu i jakie składniki są nam do tego potrzebne, a chcielibyśmy pójść na zakupy. Przydałby się nam asystent, który znałby język i przynajmniej wiedział co kupić by zrobić np. schabowego z ziemniaczkami i surówką z kapusty pekińskiej i majonezem.
Takim jakby asystentem są meta-paczki. A może lepiej asystentem nazwać ‘poldka’ a meta-paczka to taki spis pakietów potrzebnych by otrzymać smacznego schabowego.
Innymi słowy, są to pakiety, które same w sobie nie zawierają nic innego jak suche informacje jakie ‘zwykłe’ paczki dociągnąć by mieć zainstalowane to co opisuje dana meta-paczka. Clear ?

Praktyczne zastosowanie meta-paczek
Nie znam zupełnie stanu naszego instalatora i płytek .iso. Wiem natomiast, że bardzo wielu nowych użytkowników PLD właśnie w taki sposób chce instalować tą dystrybucje. Przeraża ich instalacja ręczna przy pomocy chroot’a i rescue-cd – mnie to nie dziwi. Wiem również, że na dzień dzisiejszy pakiety opisane w instalatorze jako wchodzące w skład tzw. instalacji -base, -basic, -games czy -serwer są wpisane na stałe w źródła instalatora, co jest złym pomysłem. Sam pomysł “podziału systemu” na takie kategorie już zły nie jest – występuje jednak jedynie przy instalacji prowadzonej przez instalator.
Załóżmy teraz, że istnieją już meta-paczki które właśnie tak podzieliły system – tylko teoretycznie, bo faktycznie istnienie takich meta-paczek niczego nie dzieli, a dodaje tylko funkcjonalność. W ten sposób można odciążyć instalator by po prostu tylko daną meta-paczkę instalował, a jej zależności załatwią resztę sprawy.

Jakie korzyści płyną z meta-paczek przy już zainstalowanym systemie ?
To proste. Załóżmy, że zainstalowaliśmy system w wersji base. Są tam naprawde podstawowe programy, brak X-Window, brak nakładek etc. Poldkowi mówimy, że chcielibyśmy zainstalować KDE. W PLD KDE jest podzielone na dziesiątki paczek i tak naprawdę ciężko laikowi połapać się w tym co naprawdę potrzebuje, a co jest opcjonalne. Instalacja meta-paczki dla KDE:

poldek:/all-avail> install metapackage-kde

dociągnęła by wszystkie niezbędne do uruchomienia KDE paczki, w tym pld-basic, pld-xwindow etc. Pomysł o tyle fajny, że zaawansowanemu użytkownikowi w ogóle nie przeszkadza – w końcu nie musi on korzystać z meta-paczek, a struktura paczek w PLD przez to się nie zmienia.

Konkluzja
Zastanowić należałoby się nad tym, jak wiele paczek miałaby w zależnościach meta-paczka od np. KDE. Czy powinna istnieć jedna meta-paczka zawierająca całe KDE, czy powinno być to znowu podzielone na np. kde-base, kde-biuro, kde-gry etc. Przy coraz to większym zróżnicowaniu i rozdrobnieniu meta-paczek cały pomysł traciłby jednak sens, bo tak naprawdę niczego by nie zmieniał i początkujący użytkownik znowu miałby problem co instalować i jak to się w ogóle nazywa…
Meta-paczki to mocne narzędzie i jeżeli zaczynamy w PLD myśleć o ludziach zaczynających dopiero zabawę z Linuksem to na pewno nie ominie nas głębokie przemyślenie tematu meta. Samo PLD w ten sposób jednak niczego nie traci i dla bardziej obytych w ogóle się nie zmieni – co na pewno jest wielkim plusem.

November 8, 2006

No Comments

Digital Tv @Mac

Wow. Od dawna do oglądania Tv używam komputera. Nie dlatego, że nie stać mnie na jakiś w miarę dobry telewizor, ale po prostu nie mam na niego miejsca, a oglądanie wiadomości w okienku na pulpicie sprawia, że można równocześnie odpisać na maila czy skompilować program. Wygodne to. Jednakże miało to swoje minusy – jakość często potworna (śnieżenie spowodowane kiepskim połączeniem do anteny) i w dodatku analogowa. Dodatkowo mogłem oglądać Tv tylko na jajku 2.6.14 i niższych, bo mutex w nowszych jest po prostu skopany. Miało to minusy, ale już nie ma. Oto prezentuję cudo pod Mac’a zwane Elgato EyeTv Hybrid.

Instalacja banalna, podłączenie intuicyjne. EyeTv Hybrid, jak sama nazwa wskazuje, jest hybrydą telewizyjną tzn. potrafi odtwarzać telewizję zarówno analogową jak i cyfrową w standardzie DVB-T (jeśli oczywiście taka jest dostępna). Na moje szczęście Berlin całkowicie pokryty jest siecia DVB i za darmo można z niej korzystać. Po prostu podłączasz, dostarczoną wraz z tunerem USB, antenę i plugujesz do Maca. Soft automatycznie wykryje rodzaj tunera i po kilku kliknięciach mamy zeskanowane wszystkie dostępne kanały gotowe do oglądania. Dodatkowo dodam, że w pakiecie jest również roczny abonament w serwisie TvTv, dzięki któremu dostępny jest program telewizyjny oraz możliwość oglądania filmów w czasie póżniejszym niż oficjalny w gazecie.
pic1

W czasie rozmowy na IRCu, można oglądać serial.
Jakie cuda toto oferuje? Krystalicznie czysty obraz w kazdej rozdzielczości. Aspect Ratio można dowolnie zmieniać lub ustawić na autmatic by EyeTv 2 automatycznie wykrywał czy program leci w 16:9, 4:3 a może w jeszcze innym (dodatkowo dostępne są 14:9 oraz tryb Wide) formacie.

pic2

Oprócz tego rozmiar okna jest (prawie) dowolnie konfigurowalny od mini po fullscreen:
pic3

Sterowanie może odbywać się w trojaki sposób: myszką, poprzez klawiaturę albo via apple remote (pilota). Można zmieniać program, intensywność dźwięku, tryb nagrywania lub live, opóźnienie itd.
pic4

Ładne menu przy zmianie programu pokazuje co aktualnie leci, co będzie w najbliższym czasie lecieć nazwę programu i numer kanału.
pic5

Dostępne jest również coś w rodzaju telegazety. Via TvTv pokazywany jest program dla wszystkich kanałów
pic6

oraz istnieje możliwość opóźnienia oglądania danego programu (o czym wspominałem wyżej) i nagrywanie go na dysk twardy/DVD/CD lub inny nośnik.
pic7

Biorąc pod uwagę wszystkie te opcje i w końcu bezstresowe oglądanie Tv (praktycznie) on_demand powodują, że EyeTv Hybrid to świetny produkt i stosunkowo niedrogi. Miłego oglądania !

April 10, 2006

5 Comments

It’s smoooooth !

Xgl na intelu w końcu jest płynny. Tak jak znamy to z kart nvidii/ati. No może nie dokońca tak płynny ale bez problemu można już pracować na swoim środowisku (w moim przypadku jest to kde-3.5.2) i nie narzekać, że Xgl jest za wolny. Szczegóły:

xorg-xserver-xgl-0.0.20060409-2
xorg-xserver-xgl-libGL-0.0.20060409-2
compiz-gnome-decorator-0.0.9-1.20060409.1
compiz-gnome-settings-0.0.9-1.20060409.1
compiz-0.0.9-1.20060409.1
xorg-driver-video-i810-1.5.1.0-0.2
Mesa-utils-6.5-1
Mesa-dri-driver-intel-i915-6.5-1
Mesa-libGLU-6.5-1
Mesa-libGLw-6.5-1
Mesa-libGL-6.5-1
kernel-2.6.16

Dla ciekawskich oczu

March 22, 2006

8 Comments

PLD Ac, Xorg-7.0, Xgl, compiz, i810 i czy to w ogóle działa

Xgl jest ciągle tematem numer jeden u “efekciarzy” i “hobbystów nowinek” linuksowych. Do takich sam się zaliczam i niniejszym prezentuje krótki opis do Xgla w PLD-Linux Ac. Przy okazji zaznaczam, że opis nie powstałby pewnie bez pomocy Bartosza ‘wolf’ Taudula, który naprowadził mnie jak to cudo w ogóle uruchomić.

W PLD Ac standardowo nie ma modularnych xów, nie mówiąc już o Xgl czy innych compizach. Dlatego pierwszym krokiem jaki należy zrobić to dopisać do /etc/poldek/pld-source.conf moje prywatne repozytorium.

[source]
type  = %{_ac_idxtype}
name  = shadzik
path  = http://teksty.org/~shadzik/RPMS/
noauto  = yes

Następnie za pomocą poldka instalujemy nowe iksy, compiz, compiz-gnome-decorator, compiz-gnome-settings, xorg-xserver-xgl i jego libGL, mesę, gconftool2 (Ac), gconf-editor (Ac), kdelibs (z patchem dla Xgl) oraz glitz (opcjonalnie można gnome-panel z repo Ac). Dokładną listę paczek, które mam zainstalowane znajdziecie tutaj.

Po udanej instalacji najpierw należy sprawdzić czy nowe iksy się poprawnie uruchamiają i czy mamy włączone DRI.

[bartek@tosia ~]$ glxinfo |grep rendering
direct rendering: Yes

Xgl nie obsługuje na dzień dzisiejszy DRI, dlatego skorzystamy z Accel Indirect Rendering (jest wkompilowane w paczki Xgl z mojego repo, więc nie musicie zaprzątać sobie tym głowy). Następnie edytujemy (jeśli nie istnieje to go tworzymy) plik ~/.xinitrc i wstawiamy do niego

Xgl :1 -ac -br -accel xv -accel glx:pbuffer -fullscreen &
until DISPLAY=:1 xset q > /dev/null 2>&1 ; do done
LD_LIBRARY_PATH=/usr/lib/xgl DISPLAY=:1 compiz gconf place move decoration resize minimize wobbly fade cube rotate zoom scale switcher &
LD_LIBRARY_PATH=/usr/lib/xgl DISPLAY=:1 gnome-window-decorator &
#LD_LIBRARY_PATH=/usr/lib/xgl DISPLAY=:1 gnome-panel &
DISPLAY=:1 setxkbmap -model toshiba_s3000 -layout pl &
LD_LIBRARY_PATH=/usr/lib/xgl DISPLAY=:1 startkde

Teraz spokojnie możemy odpalić z usera startx i delektować się galarotowatymi oknami. Opcjonalnie można w ~/.xinitrc odhashować wpis dotyczący gnome-panela. Mimo, że kdelibs zostało spaczowane do obsługi xgla to i tak nie widać zminimalizowanych okienek w kickerze – w tym pomaga gnome-panel, ale jak dla mnie wygląda to tandetnie i jest widoczna znaczna obniżka wydajności.

W razie problemów odsyłam do http://gentoo-wiki.com/HOWTO_XGL. Jest tam opisany praktycznie każdy problem jaki może występować z iks-gie-elem.

P.S.
W repozytorium jest nowszy sterownik do i810 w wersji 1.5.1.0 ale odradzam jego używania – nie ma DRI w iksach i Xgl nie chce wystartować. Problem jest w Mesie i da się go rozwiązać, ale to już innym razem.

December 6, 2005

5 Comments

Intel® Celeron® M 320 Processor a Cpufreq

Przez ponad rok, używając takiego właśnie procesora w swoim laptopie, byłem święcie przekonany, że zmiana częstotliwości taktowania nie jest możliwa. No cóż, grubo się myliłem. Jest to jak najbardziej możliwe. Nie jest to co prawda Centrino i nie można zmieniać napiecia procesora i przez to oszczędzać energię na baterii, ale zawsze to jakieś udogodnienia i wydłużenie pracy na baterii. Cały “witz” polega na tym, aby w jądrze serii 2.6.x w sekcji Power management options (ACPI, APM) —> CPU Frequency scaling zaznaczyć Intel Pentium 4 clock modulation. Najlepiej statycznie wkompilować to w jądro, nie będzie wtedy zabawy z ladowaniem modułu, a przydać to się praktycznie zawsze przydaje. Do tego odpowiednie governory i można się już cieszyć nowym ficzerem w laptopie. Zmiana polityki taktowania polega na wpisaniu np.:

echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

z konta superusera lub jeśli ktoś ma odpowiedni program (w KDE jest to KLaptopd) po prostu kliknąć odpowiednią opcję.

October 31, 2005

No Comments

PLD: {kdm,gdm,xdm} i nieładny obraz Xservera

Korzystając z okazji, że Jogger działa (i to nie wiadomo na jak długo) postanowiłem opisać mały problem w PLD występujący pewnie też w innych mniej komercyjnych dystrybucjach linuksa.

Nie wiem czy można to w ogóle nazwać problemem, ale na pewno jest to czymś niemiłym dla oka. Otóż przy starcie Xservera, a jeszcze przed uruchomieniem okienka logowania w {kdm,gdm,xdm} pojawia się kratkowany obraz z kursorem myszki. Obraz ten jest o tyle dziwny, że oczy (przynajmniej moje) przy nim wariują. Prostym rozwiązaniem jest dopisanie opcji -br do argumentów uruchamiania Xservera. W KDM trzeba zastąpić sekwencję ServerArgsLocal=-nolisten tcpsekwencją ServerArgsLocal=-nolisten tcp -br w pliku /etc/X11/kdm/kdmrc przy znaczniku [X-:*-Core]

To wszystko. Od tej pory zamiast tego “kratkowanego” oczopląsu dostaniemy czysto czarny obraz. Bijcie !

P.S.
Zdaję sobie sprawę z tego, że wielu z was zna tę opcję. Porada kierowana jest raczej dla mniej obeznanych użytkowników linuksa, którzy mają z tym problem.

October 22, 2005

7 Comments

SzLUUG i wykład o PLD

Byłem. Widziałem. Szczerze mówiąc nie podobało mi się. Wpadka. Co do treści nie mogę mieć żadnych obiekcji, była raczej dla nie-pldowców. W związku z tym nie dowiedziałem się niczego nowego. Natomiast co do samego prowadzącego i organizacji obiekcje występują. Laik by zauważył, że organizatorzy w ogólę sie nie przygotowali. Początkowe problemy z rzutnikiem to mały pikuś, ale żeby w prezentacji poldka nie było indexów, a z początku sam poldek się wywalał to już skandaliczne. Niestety Mariusz Mazur mimo, że na pewno jest ważnym człowiekiem w PLD i ma ogromną wiedzę na ten temat nie potrafił tej wiedzy przekazać, nie mówiąc już o ułożeniu ładnego, spójnego zdania w języku polskim. Może to trema, może brak przygotowania. Ciężko mi też powiedzieć dlaczego nerwowo skakał z wątku do wątku niedokańczając ani jednego w sposób zadowalający. Szkoda, bo miało być tak pięknie i tyle pieniędzy poszło w podróż. Być może innym razem będzie lepiej. Mam taką nadzieję.

July 5, 2005

No Comments

ALPS cd.

Obiecanki cacanki, a głupiemu radość. Ale nie tym razem ! Przekompilowałem jądro ze statycznym psmouse i opcja psmouse.proto=exps działa cudnie :) Bijcie !