Professional Documents
Culture Documents
Radość z programowania!
T
Miesięcznik Linux+ (12 numerów w roku) worzenie oprogra- importu dokumentów do OpenOffice.org.
jest wydawany przez
mowania traktu- Warto spróbować programowania samo-
Software-Wydawnictwo Sp. z o. o.
ję jako hobby – nie dzielnie, nawet gdyby miała to być bardzo
Redaktor naczelny: Krzysztof Krawczyk, zajmuję się tym zawo- prosta aplikacja typu program do zmiany
krzysiek@lpmagazine.org dowo. Moją pierwszą rozdzielczości ekranu.
Redaktorzy: pasją było rozwijanie W tym numerze Linux+ skupiamy się
Piotr Truszkowski, Marek Bettman, Michał Niwicki
MUD-a (Multi User właśnie na fascynującym temacie tworze-
Kierownik produkcji: Marta Kurpiewska,
marta@software.com.pl Dungeon) Arkadia, czyli nia własnego oprogramowania, przez nie-
Opracowanie CD/DVD: Krzysztof Krawczyk, tekstowej gry siecio- których uważanym za trudny i dostępny
Piotr Truszkowski wej. Polegało to na tworzeniu świata i je- wyłącznie dla specjalistów. Okazuje się, że
Dział reklamy: Łukasz Łukaszewicz, go mieszkańców, przygotowywaniu gil- wystarczy poznać pewne podstawy i mieć
reklama@lpmagazine.org,
dii i klubów oraz późniejszym opiekowa- dobry pomysł, aby zacząć własny projekt
tel.: (22) 860 18 18
Prenumerata: Marzena Dmowska, niu się gotowym kodem (poprawianie błę- ciekawego narzędzia. Zachęcamy do pu-
pren@software.com.pl, dów, rozszerzanie funkcjonalności). Było blikowania swoich dzieł, oczywiście na li-
tel.: (22) 860 17 67 to fascynujące zajęcie, pokazujące, że moż- cencji typu Open Source.
Projekt graficzny okładki: na czerpać ogromną radość z programo- Na płycie DVD zamieściliśmy dystry-
Agnieszka Marchocka
wania. Aktualnie podobną sytuację mam bucję Linuksa ściśle powiązaną z tema-
Projekt graficzny pisma:
Marcin Ziółkowski, w przypadku tworzenia narzędzi dla swo- tem – Gentoo 2004.3. Gdyby ktoś jeszcze
marcin@software.com.pl jego Zaurusa. Fascynujące jest to, jaką sa- nie wiedział, tradycyjnie kompiluje się ją od
Skład: Marcin Ziółkowski, tysfakcję można osiągnąć z przygotowa- podstaw z pakietów źródłowych. My zrobi-
marcin@software.com.pl nia prostej aplikacji dla palmtopa – jej nie- liśmy krok w stronę bardziej niecierpliwych
Adres korespondencyjny: wielki rozmiar często budzi mój podziw. użytkowników, pozwalając im zainstalować
Software-Wydawnictwo Sp. z o. o., Jestem pewny, że podobną przyjemność system również z pakietów binarnych.
00-190 Warszawa, może czerpać twórca modułu jądra, jak Krzysztof Krawczyk
ul. Lewartowskiego 6
e-mail: redakcja@lpmagazine.org,
również deweloper tworzący mechanizmy Redaktor Naczelny Linux+
tel. (22) 860 18 18
prenumeraty.
automatycznego składu
Płyty dołączone do magazynu przetestowano
16 Debian
programem AntiVirenKit firmy G DATA Software Bartosz Feński, Tomasz Napierała
Sp. z o.o.
18 Mandrakelinux
Redakcja zabezpiecza swoje dane korzystając Daniel Koć
ze sprzętu firmy Tandberg Data udostępnionego 19 Aurox
przez Veracomp SA.
Michał Marchocki
Sprzedaż aktualnych lub archiwalnych numerów
newsy
2 luty 2005
Spis treści
Testy
50 Dominions II
– strategiczna gra fantasy
Multisync jest aplikacją, za pomocą której
zsynchronizujemy dane aplikacji typu PIM,
Michał Niwicki
Dominions II to strategiczna gra w klima-
76 IBM Thinkpad T41
Michał Niwicki
zapisane na komputerze, z danymi odpo- cie fantasy o świetnej oprawie graficznej
wiednich programów w naszych telefonach
komórkowych czy palmtopach.
i nastrojowej muzyce oraz – co najważniej-
sze – wysokiej grywalności.
77 Novell Linux Desktop 9
Michał Niwicki
www.lpmagazine.org 3
aktualności
opis CD CD A
4 luty 2005
opis CD CD B / DVD B
G
ames Knoppix to nie lada
gratka dla amatorów gier
komputerowych! Strategie,
przygodówki, gry planszo-
we i zręcznościowe – grubo ponad sto
programów rozrywkowych pojawiło
się w specjalnej wersji systemu, stwo-
rzonej z myślą o graczach.
Jak zainstalować?
Nie instalować! Games Knoppix jest
dystrybucją Linuksa uruchamianą bez-
pośrednio z płyty CD. System ten
nie zapisuje niczego na dysku, więc
nie ma obawy, że w jakikolwiek
sposób uszkodzi nam zapisane dane.
Wystarczy zatem włożenie nośnika
do napędu CD-ROM i ponowne uru-
chomienie komputera. Po chwili (czas
zależny jest od szybkości naszego
komputera) będziemy mieli w pełni
Games Knoppix – każdy lubi sobie pograć
sprawną, gotową do użytku maszy-
nę do grania. Wiele gier zamieszczo-
nych w Games Knoppix 3.7 wymaga • Boson – strategiczna gra wojen- • Ziemniaczany facet – edukacyjna
karty z akceleratorem 3D, więc pod- na, która polega na rozbudowywa- gra dla najmłodszych, polegająca
czas uruchamiania systemu zostanie- niu swojej armii i niszczeniu wojsk na ubieraniu kartofla;
my zapytani, czy jej obsługa ma zostać przeciwnika; • Frozen Bubble – jedna z popular-
włączona. • FooBillard – trójwymiarowy symula- niejszych gier na Linuksa; polega
Aby skorzystać z Games Knoppix, tor stołu bilardowego; można wybrać na rozbijaniu kolorowych kul;
po uruchomieniu komputera z płytki kilka najpopularniejszych rodzajów możliwe jest także rywalizowanie
DVD B, wpisz knoppix i wciśnij [Enter ]. bilarda oraz przeprowadzać turnieje w dwie osoby;
za pośrednictwem Internetu; • LBreakout2 – klon gry Arkano-
Co na płycie? • TuxRacer – zimowe zawody spor- did, polegający na rozbijaniu muru
Przede wszystkim gry. Dodatkowo, towe, polegające na jak najszyb- odbijaną przez gracza kulą; moż-
do dystrybucji dołączono kilkana- szym osiągnięciu linii mety; głów- liwe jest prowadzenie rozgrywek
ście użytkowych programów umoż- nym bohaterem gry jest... pingwin przez Internet;
liwiających pracę w sieci oraz konfi- ślizgający się na brzuchu; • Air Traffic Controller – program
gurację komputera. Wszyscy ci, którzy • Globulation2 – atrakcyjna strate- pozwalający wczuć się w kontro-
posiadają stare gry pracujące jesz- gia czasu rzeczywistego; polega lera ruchu lotniczego; sterujemy
cze pod kontrolą systemu operacyj- na rozwijaniu cywilizacji poprzez samolotami i nadajemy im odpo-
nego DOS, znajdą w dystrybucji emu- przydzielanie cudacznym stwor- wiedni kurs – tak, aby na siebie nie
lator DosBox, umożliwiający ich uru- kom mikro-zadań. powpadały.
chomienie.
Standardowo, Games Knoppix jest Zabijacze czasu i hipnotyzery Podsumowanie
uruchamiany z jądrem 2.4.27, ale Z grami jest jak z jedzeniem – możemy Każdy lubi sobie czasem pograć. Games
opcjonalnie można zdecydować się wybrać się do restauracji na eleganc- Konoppix będzie niewątpliwie stano-
na nowszą, mniej stabilną wersję 2.6.7. ką kolację, ale możemy również się- wić jedno z podstawowych źródeł roz-
Domyślnym środowiskiem graficznym gnąć po małe co nieco. Takie właśnie rywki podczas długich zimowych wie-
jest KDE w wersji 3.2.3. małe gry znajdziemy również w Games czorów.
Knoppix:
W co warto pograć? http://www.knoppix.net/
W dystrybucji znajdziemy wiele atrak- • Rafkill – zręcznościowa gra przy- http://knoppix.7thguard.net/
cyjnych, bardziej rozbudowanych gier, pominająca stare gry z automatów;
które wymagają większej ilości pamię- polega na strzelaniu do wszystkie-
ci operacyjnej, szybkiego procesora go co się rusza i nie wymaga od
i mocnej karty graficznej. Wśród nich gracza niczego poza wykazaniem
warto wymienić: się szczególnym refleksem;
6 luty 2005
opis DVD DVD A
G
entoo Linux to stosunkowo Gentoo Linux 2004.3 Linux+DVD Edi-
młoda dystrybucja Linuk- tion umożliwia skorzystanie z jądra 2.6.9
sa, która szturmem zdoby- (dostępne jest również 2.4.26) i popular-
wa coraz to nowych zwo- nych środowisk graficznych KDE 3.3.1
lenników. W zamierzeniach autorów ma i GNOME 2.8. Jeśli nie dysponuje-
ona dać użytkownikowi całkowitą wol- cie sprzętem będącym w stanie spro-
ność. System budujemy sami, tworząc stać wymaganiom tych środowisk gra-
go takim, jakim chcemy, aby był. Możli- ficznych, w systemie Portage znajdzie-
wość optymalizacji oznacza wykorzysta- cie również lekkie środowiska, takie jak
nie pakietów źródłowych. Pomogą nam XFCE4 czy Fluxbox.
w tym narzędzia stworzone do tego celu. Tak może wyglądać nasze Gentoo
Przygotowana przez naszą redakcję Instalacja Gentoo w 14 krokach
wersja Gentoo Linux nie wymaga dostę- Zakładamy, że wykorzystamy pakiety – ustawiamy strefę czasową
pu do Internetu. Specjalnie wydzielone źródłowe i na instalację Gentoo poświę- (ln -s /usr/share/zoneinfo/GMT
drzewo portów, ze starannie dobranym cimy cały dysk twardy: /etc/localtime);
oprogramowaniem, umożliwia bardzo – instalujemy jądro (emerge gentoo-
prostą i szybką instalację z zachowa- – uruchamiamy komputer z płytki DVD; dev-sources, emerge genkernel,
niem wszystkich niezbędnych zależności. – uruchamiamy program cfdisk i two- genkernel –install all), program
Z uwagi na to, że bieżący numer Linux+ rzymy tablicę partycji; uruchomieniowy (emerge grub),
jest poświęcony szeroko pojętemu pro- – za pomocą komend mkswap (mkswap dziennik systemowy (emerge syslog-
gramowaniu i narzędziom programi- /dev/hda1) oraz mkfs.ext3 (mkfs.ext3 ng, rc-update add syslog-ng default)
stycznym, w Gentoo Linux 2004.3 Linux+ /dev/hda2) tworzymy odpowied- i crond (emerge vixie-cron, rc-
DVD Edition znajdziecie ogromną ilość nio przestrzeń wymiany oraz system update add vixie-cron default)
wszelkiego rodzaju oprogramowania dla plików na partycji root (co najmniej oraz dodajemy coldplug do startu
programistów (ponad 1000 pakietów!): 10 GB); systemu (emerge coldplug, rc-update
– montujemy utworzoną partycję do add coldplug boot);
• Anjuta, katalogu /mnt/gentoo (mount /dev/ – konfigurujemy fstab (nano -w /etc/
• KDevelop, hda2 /mnt/gentoo); fstab) i program uruchomieniowy
• QtDesigner, – kopiujemy stage na podmontowany (grub, nano -w /boot/grub/grub.conf);
• Intel C++ Compiler, dysk (cp -vg /mnt/cdrom/stages/ – restartujemy system.
• GCC, stage1-x86-2004.3.tar.bz2 /mnt/
• Eclipse, gentoo) i rozpakowujemy Instalacja systemu
• Mono, (cd /mnt/gentoo, tar -xvjpf stage1- z pakietów binarnych w 3 krokach
• Perl, x86-2004.3.tar.bz2); Alternatywą dla pakietów źródłowych
• Python, – kopiujemy drzewo Portage (cp są pakiety binarne, z których również
• Tcl/Tk, -vg /mnt/cdrom/portage/portage- możemy zainstalować system (szybciej
• CrystalSpace, L+.tar.bz2 /mnt/gentoo/usr) i rozpa- i prościej, ale mniej wydajniej):
• Irrlicht. kowujemy (cd /mnt/gentoo/usr, tar
-xvjf portage-L+.tar.bz2); – zamiast pliku stage1-x86-2004.3.tar
Wszystkie te narzędzia są dostępne z róż- – tworzymy katalog distfiles (mkdir .bz2 kopiujemy i rozpakowujemy
nego rodzaju dodatkami. Ponieważ nie /mnt/gentoo/usr/portage/distfiles) plik stage3-L+.tar.bz2;
samym programowaniem człowiek żyje i kopiujemy do niego pakiety z płyty – po skopiowaniu pakietów z /mnt/
i czasem chciałby poświęcić się rozrywce, DVD (cp -vg /mnt/cdrom/distfiles/ cdrom/distfiles/full, kopiujemy rów-
nie zapomnieliśmy o grach. Pogracie m. full/* /mnt/gentoo/usr/portage/ nież plik /mnt/cdrom/distfiles/binary/
in. w następujące tytuły: distfiles/); packages-bin-L+.tar.bz2 do /mnt/
– montujemy system plików proc gentoo/usr/portage i rozpakowujemy
• Tuxracer, (mount -t proc none /mnt/gentoo/ go w ten sam sposób co Portage;
• Frozen-Bubble, proc) i wykonujemy chroot do środo- – pozostałe pakiety, wymienione
• Pingus, wiska (chroot /mnt/gentoo /bin/ w instalacji z pakietów źródłowych,
• Neverball, bash); np. grub czy syslog-ng, instaluje-
• Falconseye, – modyfikujemy plik /etc/make.conf my za pomocą polecenia emerge -k
• Planeshift; (nano -w /etc/make.conf); nazwa_pakietu.
• GL-117, – rozpoczynamy instalację podstawo-
• Simutrans, wych elementów systemu (sh /usr/ Szczegółowe etapy całej instalacji są opi-
• Foobilard, portage/scripts/bootstrap.sh), a po sane w dokumentach dostępnych na
• Torcs, nim budujemy sam system (emerge płytce DVD w katalogu docs/handbook
• Scorched3D. system); i docs/Linux+. Dobrej zabawy!
8 luty 2005
aktualności
opis DVD DVD B
FreeSBIE 1.1
Mandrakelinux 10.1
– aktualizacje
Nasza redakcja zamieściła
na płycie DVD ponad
N a początku grudnia 2004 roku
ukazała się nowa wersja systemu
FreeSBIE. Jest to uruchamiana bezpo-
dwieście pięćdziesiąt pakietów średnio z płyty CD dystrybucja oparta
rpm. Są to aktualizacje
programów przeznaczonych na FreeBSD w wersji 5.3. Powstała ona
dla dystrybucji Mandrakelinux 10.1 z myślą o tych, którzy potrzebują za-
Official. równo aplikacji niezbędnych do pracy
http://www.mandrakelinux.com/ w sieci, jak i szeregu programów mul-
Scratchbox timedialnych oraz gier. Dystrybucja za-
Najnowsza wersja zestawu wiera zatem popularną przeglądarkę
narzędzi dla programistów
wykorzystujących kompilację
internetową Firefox, komunikator GA- FreeSBIE 1.1 podczas pracy
skrośną. Na płycie DVD znajdują IM, analizatory ruchu i bezpieczeństwa
się pakiety typu rpm, deb, tgz, sieciowego, odtwarzacze filmów i pli- twardym. Niestety, aby cieszyć się kom-
przeznaczone na różne platformy ków dźwiękowych oraz wiele innych. fortową pracą w systemie w wersji Li-
sprzętowe (ARM, x86, PowerPC),
oraz dodatkowe narzędzia wraz
Do dyspozycji mamy również dwa po- ve, wymagane jest posiadanie mocnego
z pełną dokumentacją. pularne menedżery okien – XFCE oraz sprzętu, z co najmniej 256 megabajtami
http://www.scratchbox.org/ lekki Fluxbox. pamięci RAM.
Eclipse FreeSBIE, dzięki przyjaznemu in-
Najnowsza wersja platformy stalatorowi DragonFlyBSD, można bez http://www.freesbie.org/
deweloperskiej Eclipse, problemów zainstalować na dysku
przeznaczonej do tworzenia
aplikacji w Javie. Na płycie DVD
została zamieszczona wersja
SDK, zawierająca platformę Java,
Linux+ Live DVD
środowisko zintegrowanych
wtyczek oraz pełną dokumentację.
http://www.eclipse.org/
L inux+ Live to dystrybucja Linuk-
sa uruchamiana z płyty DVD. Aby
wystartować Linux+ Live, wystarczy
Abiword 2.2 w BIOS-ie komputera podać napęd
Wieloplatformowy edytor
tekstu, stanowiący część CD jako podstawowe urządzenie
projektu GNOME Office. Jest rozruchowe, włożyć płytkę z naszą
przeznaczony głównie dla osób dystrybucją do napędu i ponownie
przyzwyczajonych do korzystania uruchomić komputer. Po kilku chwi-
z programu MS Word. Na
płycie DVD znajdują się pakiety lach naszym oczom ukaże się plansza
instalacyjne polskich wersji powitalna. Po wciśnięciu klawisza [En-
językowych programu. ter ], Linux+ Live zacznie się urucha- Na pierwszym planie Eclipse, a w tle
http://www.abisource.com/ KDevelop
miać. System automatycznie wykry-
Dokumentacja HOWTO je nasz sprzęt i skonfiguruje środowi-
Ponad 2500 dokumentów sko graficzne; w czasie uruchamiania Wam – drodzy Czytelnicy – zapew-
opisujących, w jaki sposób
trzeba wybrać język obowiązujący w nić ogromną porcję twórczej zabawy.
rozwiązać niektóre problemy
związane z Linuksem. systemie. Na Linux+ Live składają się Jest to kompletne środowisko dla po-
http://www.tldp.org/ m.in.: czątkującego, jak i zaawansowanego
Firestarter 1.0 programisty. Jeśli myślisz o napisaniu
Narzędzie do filtrowania, • jądro Linux 2.6 z wieloma łatkami jakiegoś programu i zastanawiasz
monitorowania i udostępniania zwiększającymi jego funkcjonal- się, jak wygląda programowanie pod
połączenia internetowego.
ność; Linuksem, Linux+ Live jest wspaniałą
http://www.fs-security.com/
• graficzne środowisko pracy KDE okazją ku temu, aby spróbować swoich
Essays1743 3.2.1; sił. A po długim i przyjemnym progra-
Zestaw tradycyjnych angielskich
czcionek. • oprogramowanie programistyczne mowaniu będziecie mogli odprężyć
Anjuta, Eclipse, Glade, KDevelop, się przy dwóch grach: Battle of Wes-
Python 2.4
Gambas, kompilator GCC, środo- noth oraz Dominions II. Dobrej zaba-
Popularny język programowania,
zdobywający ostatnimi wisko Sun Java SDK oraz bibliote- wy!
czasy sympatię i uznanie ki programistyczne;
programistów. • przeglądarki internetowe Konqu- http://www.live.lpmagazine.org/
http://www.python.org/
eror i Mozilla.
10 luty 2005
aktualności
aktualności newsy
12 luty 2005
news@lpmagazine.org dział prowadzi: Witold Kieraś
www.lpmagazine.org 13
aktualności
aktualności jądro linux
14 luty 2005
kernel@lpmagazine.org dział prowadzi: Tomasz Torcz
News
między wersjami, wyłowienie ważnych widać, dogłębna znajomość struktur System Plików Pojedynczego Pliku
Etap rozterek projektowych ma już
zmian i wprowadzenie poprawek. Du- jądra nie jest potrzebna do prowadze- za sobą Bernard Hatt. Stworzył on
ża część zadań (np. sprawdzanie, któ- nia przez ponad rok projektu, z któ- system plików przeznaczony do
re pliki przestały się kompilować) da rego korzysta cała społeczność linuk- przechowywania pojedynczego
się rozwiązać odpowiednim skryptem, sowa. zbioru. Pomysł może wydawać się
bezsensowny, ale SFFS (Single File
ale są momenty, gdy jest potrzebna in- Prawdopodobnie, praca Mariu- File System) stanowi alternatywę
gerencja człowieka. W przypadku no- sza nie będzie już niedługo potrzeb- dla używania surowej partycji,
wych plików nagłówkowych potrze- na. Zaczyna się proces porządkowa- przeznaczonej pod bazę danych,
ba trochę zgadywania, czy reprezen- nia plików nagłówkowych. Sama idea obraz płyty DVD czy repozytorium
serwera NNTP. Alternatywę, która
tują one API, czy też stanowią opis nie jest skomplikowana i Al Viro za- daje korzyści typu informacja
wewnętrznych struktur jądra. Pierw- demonstrował na przykładzie nagłów- o długości pliku, uprawnienia,
sze należy oczyścić, a drugie odrzu- ków AmigaFS, że podział i oczyszcze- określenie właściciela itp. Pierwotna
cić. Ta żmudna praca jest rekompenso- nie plików zajmuje dziesięć minut ro- wersja SFFS nie jest wolniejsza od
systemu plików ext2, a wręcz potrafi
wana rozpowszechnieniem oczyszczo- boty dla programisty zaznajomionego osiągnąć rezultaty o 40% lepsze. Nie
nej przez Mariusza wersji nagłówków. z podsystemem. Do tej pory przeszko- jest to zaskoczeniem, zważywszy
Są one traktowane jako prawie-oficjal- dą był brak ustaleń związanych z po- na prostotę przechowywania
ne nagłówki i adres do nich często po- łożeniem i hierarchią katalogów z na- pojedynczego pliku na dysku. Warto
odnotować wcześniejsze próby
jawia się na LKML. główkami dla przestrzeni użytkownika. stworzenia systemów plików o takiej
Co ciekawsze, Mariusz Mazur przy- Na szczęście, Linus w końcu wyznaczył funkcjonalności – były to rawfs oraz
znaje się do tego, że nie zna się zbytnio katalogi, w których mają się one zna- smugfs.
na jądrze Linux. W pracy nad nagłów- leźć. Wyraził też otwartość na wszelkie http://www.arkady.demon.co.uk/sffs
kami wystarcza mu znajomość języka łatki robiące porządek w plikach na- Zabawy z EFI
C i umiejętności programistyczne. Jak główkowych jądra. Skrót EFI oznacza Extensible Firmware
Interface. Jest to sposób komunikacji
z BIOS-em lub jego odpowiednikiem,
promowany przez Intela i inne
Systemy plików przestrzeni użytkownika duże firmy. EFI jest powszechny na
platformie Itanium, ale pojawienie
L
się na komputerach biurkowych nie
inux jest jądrem monolitycznym. bibliotek i pisać w dowolnym języku.
nastąpi w najbliższe przyszłości.
W uproszczeniu oznacza to, że Znane są pseudosystemy plików, umoż- Pomimo tego, możemy zapoznać się
wszystkie ważne podsystemy są za- liwiające podmontowanie webmaila(!), z tym mechanizmem. Jest do tego
warte bezpośrednio w jądrze syste- napisane w Pythonie. Niestety, nie ma wymagana partycja typu VFAT, na
której znajdzie się program ładujący
mu. Dotyczy to również systemów pli- nic za darmo. Wystarczy wyobrazić so-
i jądro. Dysk może zostać podzielony
ków, które w alternatywnych rozwią- bie sytuację, w której duża część pa- na partycję w tradycyjny sposób lub
zaniach – mikrojądrach – działają ja- mięci jest wypełniona buforami prze- GUID Partition Type, specyficzny
ko procesy w przestrzeni użytkownika. znaczonymi do zapisu poprzez FUSE. dla EFI. GPT jest obsługiwany przez
program Parted. Kolejnym krokiem jest
Oczywiście, nic nie stoi na przeszko- W pewnym momencie system potrze-
nagranie na dyskietkę binarnej wersji
dzie, aby również w przypadku jąder buje pamięci, więc aby zrobić trochę oprogramowania EFI i uruchomienie
monolitycznych stworzyć interfejs, któ- miejsca, wymusza zapis tych buforów. z niej komputera. W ten sposób
ry umożliwi zaimplementowanie syste- Żądania są przekazywane poprzez FU- obchodzimy brak tego rozwiązania
w BIOS-ie. Pozostaje już tylko
mu plików jako procesu użytkownika. SE do demona implementującego dany
skorzystanie z programu ładującego
Jednym z takich projektów jest FUSE. system plików. Teraz wystarczy, aby de- ELILO i użycie jądra z obsługą
Rozwijany od dłuższego czasu został mon do zapisu potrzebował trochę pa- Extensible Firmware Interface.
niedawno zaproponowany jako kan- mięci – odwołuje się po nią do jądra. http://lkml.org/lkml/2004/12/1/83
dydat do włączenia do głównej linii A ponieważ zapis został zainicjowany XKE – pośrednik multimedialny
jądra. I o dziwo, Linus Torvalds, za- właśnie wcześniejszym brakiem prze- XKE to mały programik, którego
zwyczaj przeciwny takim rozwiąza- strzeni, sytuacja pogarsza się i cały sys- zadaniem jest informowanie systemu
X Window o niestandardowych,
niom, wstępnie wyraził zgodę pod wa- tem może ulec zawieszeniu. zwanych multimedialnymi,
runkiem wprowadzenia kilku zmian. Niestety, nie jest to problem łatwo klawiszach. Ze strony jądra jest
Część jego żądań była spowodowa- rozwiązywalny. Pewnym pocieszeniem używany podsystem wejścia,
na nieporozumieniem – swoją wiedzę może być fakt, że z podobnymi przy- komunikujący się za pomocą
zdarzeń (ang. events). Do systemu
o FUSE opierał na starszej wersji kodu, padłościami borykają się sieciowe sys- graficznego są one przekazywane
która zdążyła przejść w międzyczasie temy plików – NFS, Samba, CIFS. Sko- dzięki rozszerzeniu Xtest. Bez żadnych
sporą ewolucję. ro im zazwyczaj nie zdarza się zawie- zmian obsługiwane są przeróżne
Stworzenie systemu plików w prze- szać serwerów, to i FUSE może w koń- myszy, trackballe i tablety. XKE jest
połączeniem programów evdev,
strzeni użytkownika daje dużo większą cu okazać się bezpieczny. xkeymouse i tuntiko.
swobodę niż czynienie tego w jądrze. http://lkml.org/lkml/2004/12/1/23
Programista może korzystać z wielu http://fuse.sourceforge.net/
www.lpmagazine.org 15
aktualności
aktualności debian debian@lpmagazine.org dział prowadzi: B. Feński, T. Napierała
16 luty 2005
aktualności
aktualności mandrakelinux mandrakelinux@lpmagazine.org dział prowadzi: Daniel Koć
News
Monkey Bubble
Skype 0.92.0.12
Skype to stosunkowo młody
komunikator internetowy, którego
twórcy skupili się przede wszystkim
K to jeszcze nie zna znakomitej gry
Frozen Bubble ? Chyba tylko nie-
liczni nie mieli dotąd okazji przekonać
na rozmowach głosowych przez sieć się o tym, jak potrafi wciągnąć na długi
(tzw. VoIP), choć możliwa jest także
tradycyjna rozmowa w formie pisanej
czas. Monkey Bubble to jej bliska kuzyn-
oraz przesyłanie plików. Program potrafi ka, klon gry Bust'a'move. Zamiast sym-
działać nawet spoza zapór sieciowych patycznego pingwinka, mamy tu małpę,
(firewall), a protokół Skype korzysta a w tle przewijają się motywy rodem
z połączeń typu p2p, dzięki czemu
zapewnia bardzo dobrą jakość dźwięku
z dżungli, ale od wersji 0.3.2 największą
w swojej klasie. Program jest dostępny atrakcją gry jest możliwość zabawy przez W sieciowej rozgrywce może brać udział
między innymi w postaci pakietów sieć, nawet w cztery osoby. do 4 uczestników
RPM dla dystrybucji Mandrakelinux 9 Najnowsze drobne zmiany w pakiecie
i nowszych. Najnowsze wydanie beta
dla Linuksa nie ma jeszcze wszystkich
dla Mandrakelinux to łatka dla Gstreamera lub wybranie jej przez instalator graficzny,
funkcji dostępnych w wersji dla MS oraz ikonka aplikacji. Instalacja gry polega ale w tym celu należy mieć w systemie za-
Windows, ale działa stabilnie i nadaje na wydaniu w trybie wiersza poleceń admi- rejestrowane repozytorium Contrib.
się już do normalnego używania. nistratora komendy urpmi monkey-bubble http://home.gna.org/monkeybubble/
http://www.skype.com/products/skype/
linux/
Mandrakelinux 10.1 PPC
Kreatywny menedżer pakietów
Z pewnym opóźnieniem w stosunku do
najpopularniejszej wersji na procesory
z rodziny x86 pojawiło się także
wydanie Mandrakelinux 10.1 dla
P roblem różnych, niezgodnych ze so-
bą systemów pakietów dla Linuk-
sa powraca co pewien czas. Oprócz naj-
procesorów PowerPC. W skład
ważniejszych typów, takich jak RPM, DEB
dystrybucji wchodzi najnowsze
jądro 2.6.8.1, podsystem grafiki X11R6.7, czy TGZ, istnieje jeszcze kilka innych for-
OpenOffice.org 1.1.3, Mozilla 1.7.2, matów, ale nawet wśród tych głównych
GNOME 2.6 oraz KDE 3.2. Bardzo pakiety z tej samej rodziny, które zosta-
przydatną nowinką w tej wersji jest
ły przygotowane dla jednej dystrybucji,
możliwość instalowania i ładowania
systemu z zewnętrznych urządzeń nie zawsze udaje się bezboleśnie zaapli-
przyłączanych przez porty USB kować w innej.
i FireWire. Wydanie PPC nie jest Próbą rozwiązania tego problemu jest Interfejs Smart Package Managera nie
oficjalnie dystrybuowane przez przypadkiem jest podobny do Synaptica
Smart Package Manager. Oczywiście, za
Mandrakesoft, gdyż jego rozwój – oba mają tego samego autora
odbywa się siłami społeczności, jego pomocą nie uda się przykładowo
a jego głównym twórcą jest uregulować kwestii niepasujących do sie-
Christiaan Welvaart. bie wersji aplikacji i wymaganych przez bian i Fedora Core. Za jego pomocą są au-
http://qa.mandrakesoft.com/twiki/bin/
nią bibliotek, ale radzi sobie doskonale tomatycznie wybierane najlepsze dostęp-
view/Main/Mandrakelinux101PpcRele
aseNotes w sprawach związanych bezpośrednio ne rozwiązania dla dostępnych wersji pa-
z różnymi typami i wersjami pakietów. kietów, z którymi nie zawsze radzą sobie
Mandrakesoft wyraźnie na plusie
Mandrakesoft ogłosiło, że przyniosło Smart jest w zasadzie meta-menedże- apt-get/apt-rpm czy yum. Logika menedże-
zysk za rok fiskalny 2003-2004 rem, tzn. obsługuje trzy wymienione wy- ra pozwala wybierać do instalacji pakiety
w wysokości 5,18 mln euro. Jest żej najpopularniejsze rodzaje pakietów za o numerze mniejszym niż najnowsze, jeżeli
on wyższy o 33% w stosunku do pomocą odpowiednich programów (rpm, tylko pozwoli to spełnić wszystkie zależno-
poprzedniego roku i zarazem najwyższy
w historii firmy, co oznacza, że w dpkg czy pkgtool ). Z braku odpowiednich ści (plik README omawia dokładnie czte-
wyniku skutecznego przeprowadzenia reguł nie jest możliwe mieszanie zależno- ry takie przykłady), uwzględniając przy tym
planu uzdrowienia finansów problemy ści między pakietami różnego typu, ale zadane priorytety. Smart radzi sobie w sce-
Mandrakesoft są już tylko historią. umie obsługiwać całe ich repozytoria; są nariuszach z niespójnym systemem pakie-
Wzrost był widoczny szczególnie w
drugiej połowie roku i sięgnął aż 49% to obecnie następujące formaty: APT (dla tów, jak również umie go naprawiać.
w stosunku do analogicznego okresu .deb i .rpm), RPM-MetaData, używane Program jest modularny, więc oferuje
poprzedniego roku, podczas gdy przez yum, novellowskie kanały Red Car- do wyboru interfejs tekstowy w stylu apt-
w pierwszej połowie wyniósł 21%. pet, RPM Header List, znane z dysków in- get, interfejs graficzny oparty o bibliotekę
Głównymi źródłami zysku są sprzedaż
przez Internet, licencje oraz opłaty stalacyjnych Red Hata i Conectivy, katalo- GTK+ (za pośrednictwem pygtk, ponieważ
członków Klubu Mandrakelinux. Źródła gi RPM-ów bez indeksów, URPMI z Man- jest napisany głównie w Pythonie) oraz in-
te składają się w sumie na 77% zysków, drakelinuksa, repozytoria Slackware oraz teraktywną powłokę. Autorem SmartPM jest
gdyż pozostałe wpływy pochodzą m.in. dodatkowo, opisy repozytoriów zwiercia- Gustavo Niemeyer z brazylijskiej Conectivy,
ze szkoleń, konsultingu i sprzedaży
detalicznej. dlanych (mirror) w formatach up2date opiekun portu APT-RPM oraz graficznego
http://www.mandrakesoft.com/company/ i Conectivy. menedżera pakietów Synaptic. Smart jest
investors/newsletter/sn041109 Smart Package Manager był dotąd te- w tej chwili w fazie testów beta.
stowany na dystrybucjach Conectiva, De- http://smartpm.org/
18 luty 2005
aktualności
aktualności aurox aurox@lpmagazine.org dział prowadzi: Karol Kozimor
Uaktualnione PHP
News
Aurox w USA
www.lpmagazine.org 19
aktualności
aktualności gentoo gentoo@lpmagazine.org dział prowadzi: Witold Kieraś
20 luty 2005
aktualności
aktualności pld pld@lpmagazine.org dział prowadzi: Piotr Skwarna
www.lpmagazine.org 21
narzędzia deweloperskie
vrvfeavda adfvawsvd
KDevelop
– narzędzie do tworzenia
ghwhrt nf hgg mgfvc
xvbd
rbwbbb
aplikacji z interfejsem
graficznym
Marek Sawerwain
G
dy chcemy poznać jakieś jest poznanie adresu pliku – zakładamy,
narzędzie i sprawdzić, czy że zostanie on podany przez użytkow-
będzie ono przydatne w pra- nika. Następnie, gdy dysponujemy już
cy, dobrze jest wykorzystać adresem, jesteśmy gotowi do wywoła-
je do realizacji jakiegoś zadania. Załóż- nia programu Wget. KDE oferuje gotową
my, że chcemy napisać niewielką apli- klasę o nazwie KProcess, która wspoma-
kację, która będzie stanowił graficzną ga to zadanie. Jej najważniejszą właści-
nakładkę na program Wget. KDE oferuje wością jest fakt, iż pozwala w łatwy
nam bardzo dobry program dla progra-
mistów o nazwie KDevelop. W tym arty-
kule pokażemy, jak z jego pomocą osią-
Instalacja programu
gnąć zdefiniowany powyżej cel, a tym KDevelop
Ponieważ już sporo czasu upłynęło od
samym udowodnimy, że jest on aplikacją
wydania wersji 3.0 programu, to więk-
godną polecenia.
szość dystrybucji Linuksa oferuje ten
program – wystarczy tylko zainstalować
Kilka założeń na początek pakiet zawierający KDevelopa.
Interfejs naszego programu będzie pre- Po instalacji może okazać się, iż nie
zentował się bardzo skromnie. Wystarczą możemy wywołać opcji Uruchom auto-
nam dwa przyciski: jeden do zamknięcia make. Okazuje się, że KDevelop wymaga
okna oraz drugi, którym rozpoczniemy do poprawnej pracy wersji Automake
proces ściągania pliku. Będziemy rów- wyższej niż 1.6, a Autoconf wyższej niż
nież potrzebowali komponentu o typie 2.5. Problem ten pojawia się np. w wersji
QLineEdit, którego nazwiemy Address-
Mandrakelinux 10.1, ale rozwiązanie jest
bardzo proste – wystarczy doinstalować
Text. Umieścimy w nim adres pliku,
odpowiednie pakiety.
który chcemy ściągnąć. Ponieważ pobie-
Z użytkowaniem KDevelopa wiąże
ranie pliku zrealizujemy za pomocą innej się też inny problem, gdyż po utworzeniu
aplikacji (co więcej, będzie ona działała projektu i wykonaniu z nim jakichś prac,
w trybie konsoli), to będziemy musieli może okazać się, że KDevelop nie chce
Na płycie CD/DVD przechwytywać standardowe wyjście, na ponownie wczytać naszej pracy, generu-
Na płycie CD/DVD znajduje się
które Wget wysyła wszelkie komunikaty jąc sygnał 11. Rozwiązaniem jest skaso-
kod źródłowy programu oraz
podczas swojej pracy. Wykorzystamy do wanie w katalogu projektu dwóch plików:
wszystkie listingi z artykułu.
tego celu komponent o typie QtextEdit, pierwszy posiada rozszerzenie kdevses,
O autorze którego nazwiemy MessageBoxText. a drugi pcs.
Autor zajmuje się tworzeniem Podczas instalacji KDevelopa warto
Jak zawsze, warto przygotować nie-
oprogramowania dla WIN32 upewnić się, czy zainstalowana zostanie
i Linuksa. Zainteresowania: teoria
wielki schemat, w którym przedstawi-
dokumentacja, gdyż omawiane narzę-
języków programowania oraz my najważniejsze zdarzenia, które będą
dzie ma bardzo dobry moduł do doku-
dobra literatura. zachodzić w naszym programie. Został mentacji, który bardzo przydaje się pod-
Kontakt z autorem: on przedstawiony na Rysunku 1. Jak czas pisania jakiejkolwiek aplikacji, nawet
autorzy@lpmagazine.org widać, proces ściągania pliku składa się tak prostej jak nasz projekt.
z kilku pomniejszych zadań. Pierwszym
22 luty 2005
kdevelop narzędzia deweloperskie
Projektujemy formularz
Po utworzeniu projektu przygotujemy
w pierwszej kolejności okno formula-
rza. W górnym oknie Menadżera auto-
make (z prawej strony głównego okna
z kodem) wybieramy gałąź z naszym pro-
jektem, czyli wget_gui, a następnie kata-
log src. Gdy w dolnym oknie Menadże-
ra automake klikniemy prawym przyci-
skiem myszy na dowolnym pliku, pokaże
się nam małe menu z kilkoma opcjami.
Wybieramy opcję Utwórz nowy plik....
Zobaczymy takie okno, jak na Rysunku 3.
Do pola Nazwa pliku wpisujemy np.
wget_gui_widget.ui, a następnie wybiera-
my typ pliku – Widget. Tworzymy widget,
który zostanie podłączony do głównego
okna naszej aplikacji. Okno tworzenia
Rysunek 1. Główne zdarzenia pojawiające się w programie tego pliku można także uzyskać wybie-
rając z menu Plik opcję Nowy.
sposób przechwycić dane kierowane jeszcze raz przycisk Następny. Zobaczy- Po wykonaniu tej operacji jeste-
na standardowe wyjście (ang. stdout) my okno, w którym znajduje się tekst śmy gotowi do utworzenia interfejsu za
oraz na standardowe wyjście o błędach licencji. Będzie on dołączany do każde- pomocą QtDesignera. Niestety, jeśli uży-
(ang. stderr), co czasem również może go pliku nagłówkowego. Jeśli chcemy, wamy nowej wersji KDevelopa, to po
się przydać. aby do każdego takiego pliku były dołą- dwukrotnym kliknięciu na pliku wget_
czane inne informacje, w tym miejscu gui_widget.ui, uruchomi się tylko prze-
Tworzymy projekt możemy to zmienić. Gdy naciśniemy raz glądarka KUIViewer, a nam jest potrzeb-
Pierwszym krokiem jest utworzenie jeszcze przycisk Następny, to tym razem ny QtDesigner. W tym celu wystarczy
nowego projektu w KDevelop. Nasz przycisk zmieni etykietę na Koniec i po prawym przyciskiem myszy wybrać pod-
program piszemy dla środowiska KDE, jego naciśnięciu zostanie wygenerowa- menu Otwórz w i z opcji, które się nam
więc po uruchomieniu programu prze- ny podstawowy szkielet projektu. wyświetlą, wybrać Projektanta Qt.
chodzimy do menu Projekt. Wybie- Zanim zaczniemy go kompilować, Ułożenie dwóch przycisków (Push-
ramy z niego Nowy projekt.... Pokaże należy jeszcze wykonać dwie czynności. Button z sekcji Buttons okna Toolbox)
się okno podobne do tego z Rysun- Z okna Buduj wybieramy opcję Uruchom oraz dwóch komponentów (LineEdit
ku 2. Na liście odszukujemy gałąź C++, Automake. Po kilku chwilach, gdy pro- i TextEdit z sekcji Input) nie powinno
a następnie KDE, gdzie znajduje- gram utworzy wszystkie skrypty, z tego nikomu sprawić trudności, ale trzeba
my pozycję Simple KDE Application. samego menu Buduj wybieramy opcję odpowiednio zadeklarować sygnały.
We Właściwościach musimy podać Uruchom Configure. Wszystkie komuni-
Nazwę Aplikacji. Załóżmy, że projekt katy będą wyświetlane w okienku na
będzie nazywał się wget_gui. Pozosta- dole programu. Dopiero po zakończe-
łe pola mają dla nas mniejsze znaczenie. niu działania skryptu configure możemy
Wybieramy teraz przycisk Następny, aby dokonać kompilacji projektu naciska-
przejść do następnego okna, w którym jąc klawisz [F8 ] lub wybierając z menu
będziemy mogli wybrać system kon- Buduj opcję Buduj projekt. Utworzony
troli wersji. Nam nie jest on potrzebny, program uruchomiamy wciskając klawi-
gdyż tworzona przez nas aplikacja nie sze [Shift]+[F9 ] – z menu Buduj opcja
Rysunek 3. Tworzenie pliku formularza
wymaga pracy grupowej. Wybieramy Wykonaj program.
www.lpmagazine.org 23
narzędzia deweloperskie
#include "wget_gui.h"
#include <qlabel.h>
#include <kmainwindow.h>
#include <klocale.h>
#include "wgetguiwidget.h"
24 luty 2005
kdevelop narzędzia deweloperskie
www.lpmagazine.org 25
narzędzia deweloperskie
Reader::~Reader()
{ }
#include "reader.moc"
Rysunek 6. Tworzenie klasy Reader
26 luty 2005
kdevelop narzędzia deweloperskie
edt->append(QString::fromLatin1(b, l));
www.lpmagazine.org 27
narzędzia deweloperskie
Scratchbox
– narzędzie
do kompilacji skrośnej
Veli Mankinen
G
dyby przyjrzeć się historii i z tego powodu nie może być uznawa-
komputeryzacji i oprogra- ny za właściwy. Na Rysunku 1 znajduje
mowania, można zauwa- się wykres pokazujący różnice w czasach
żyć, że kompilacja skro- kompilacji pomiędzy kompilacją natyw-
śna jest wynalazkiem względnie nowym. na a skrośną. Docelowy komputer z pro-
We wczesnych latach rozwoju informaty- cesorem ARM posiadał następującą kon-
ki nie była ona w ogóle potrzebna, ponie- figurację: procesor Intel SA110 233 MHz,
waż programy były pisane na konkretny dysk twardy 40 GB, 256 MB pamięci
sprzęt i w ściśle określonym celu. Z tego RAM oraz Debian Sarge z jądrem Linuksa
powodu powtórne użycie tego samego 2.4.25. Wykorzystana platforma do kom-
kodu nie było w obszarze zainteresowań pilacji skrośnej miała następujące para-
programistów. metry: procesor Intel Xeon CPU 2.80
Ponieważ dzisiejsze procesory mają GHz, dysk twardy 80 GB, 2 GB pamięci
bardzo różną moc obliczeniową, to RAM oraz Debian Sarge z jądrem Linuksa
w wielu przypadkach kompilacja aplika- 2.6.8-1-686 i Scratchboksem 0.9.8.2.
cji na innym, bardziej wydajnym kompu-
terze, zajmuje znacznie mniej czasu niż Narzędzia i urządzenia
kompilacja na sprzęcie, który jest bezpo- Typowe użycie kompilacji skrośnej ma
średnim odbiorcą danego oprogramowa- miejsce wtedy, gdy ktoś chce skompilo-
nia. W ten sposób narodziła się idea kom- wać program używany na palmtopie, czy
pilacji skrośnej (ang. cross-compiling). innym niewielkim komputerku o relatyw-
nie małej mocy obliczeniowej procesora.
Co to jest kompilacja Ten artykuł będzie koncentrował się na
skrośna? tworzeniu oprogramowania pod IPAQ-a,
Podstawowa idea kompilacji skrośnej a kompilacja będzie realizowana na szyb-
polega na użyciu pewnego procesora kim komputerze klasy X86. Największą
(HOST) w celu skompilowania progra- korzyść z niego będą miały osoby posia-
mu przeznaczonego na procesory mające dające IPAQ-a albo inny komputer z pro-
inną architekturę (TARGET). Oznacza to, cesorem ARM, na którym została zainsta-
że komputer kompilujący program nie lowana jakaś dystrybucja Linuksa.
może natywnie uruchamiać skompilowa- Osoby posiadające IPAQ-a i zaintere-
nego przez siebie oprogramowania. Jest sowane uruchomieniem na nim Linuksa,
to pierwsze wyzwanie stojące przez kom- względnie kompilowaniem na ten kom-
pilacją skrośną, gdyż wiele środowisk puter programów, powinny zapoznać się
programistycznych wymaga uruchomie- z dystrybucją o nazwie Familiar Linux,
Na płycie CD/DVD nia dodatkowych narzędzi, specyficz- dostępnej pod adresem www.hand-
Na płycie CD/DVD znajdują się nych dla docelowej architektury, już pod- shelds.org. Na wspomnianej stronie
narzędzia omawiane w artykule. czas kompilacji programu. zostały też umieszczone bardzo użytecz-
O autorze Aby uniknąć wspomnianych trudno- ne podręczniki instalacyjne.
Autor jest współtwórcą pakietu ści, niektórzy ludzie wolą kompilować W niniejszym artykule zostanie użyte
Scratchbox. Kontakt z autorem: programy na docelowej platformie. Jak- narzędzie do kompilacji skrośnej pocho-
veli.mankinen@movial.fi kolwiek na to patrzeć, w wielu przypad- dzące z projektu o nazwie Scratchbox. Jest
kach jest to bardzo bardzo wolny proces to środowisko programistyczne do two-
28 luty 2005
scratchbox narzędzia deweloperskie
#include <stdio.h>
int main(void)
{
printf("Hello World!\n");
return 0;
}
www.lpmagazine.org 29
narzędzia deweloperskie
30 luty 2005
scratchbox narzędzia deweloperskie
Jeżeli ponownie wpiszemy program wiście, glib może być kompilowany Kompilacja powinna zakończyć się
"Hello World" i skompilujemy go za także poprzez skonfigurowanie środo- bez zgłaszania jakichkolwiek błędów,
pomocą komendy: wiska, ale jest to nieco bardziej skompli- a jako jej wynik powstanie plik binar-
kowane niż przykład pokazany wyżej. ny sb-arm-glib-hello. Ponieważ posia-
gcc -Wall -o sb-arm-hello hello.c Dokumentacja o kompilacji skrośnej damy emulator QEMU, więc możemy
glib jest dostępna pod adresem: http:// go teraz uruchomić, w wyniku czego
to kompilacja powinna przebiec bez developer.gnome.org/doc/API/2.0/glib/ powinien pojawić się napis “Hello
błędów, a jako wynik otrzymamy plik glib-cross-compiling.html. World!". Jeżeli teraz wydamy komen-
binarny sb-arm-hello. Po uruchomieniu Teraz, gdy w naszym środowisku dę file, to jej wynik powinien być iden-
komendy: mamy już zainstalowane biblioteki C oraz tyczny jak w poprzedniej wersji pro-
glib, możemy skompilować nowe "Hello gramu “Hello World!". Jeśli wywołamy
file sb-arm-hello World", które będzie używało funkcji jeszcze komendę ldd, która pokazu-
print z biblioteki glib. Oto plik glib-hel- je wykorzystanie bibliotek, to będzie-
otrzymamy komunikat, który pokazuje, lo.c: my mogli zobaczyć, że zainstalowana
że znowu mamy w swoim ręku rzeczy- przed chwilą biblioteka glib jest rze-
wisty plik binarny ARM: # include <glib.h> czywiście używana (ldd sb-arm-glib-
# include <glib/gprintf.h> hello):
sb-arm-hello: ELF 32-bit LSB executable, int main(void)
ARM, version 1 (ARM), for GNU/Linux { libglib-2.0.so.0 => /usr/local/lib/
2.0.0, dynamically linked g_printf("Hello World!\n"); libglib-2.0.so.0 (0x00000000)
(uses shared libs), not stripped return 0; libc.so.6 => /lib/libc.so.6 (0x00000000)
} libgcc_s.so.1 => /lib/libgcc_s.so.1 S
Ponieważ jesteśmy wewnątrz środowi- (0x00000000)
ska Scratchbox, to możemy uruchomić Scratchbox jest dostarczany z narzędziem /lib/ld-linux.so.2 =>
powstały program w emulatorze poprzez pkg-config, które jest używane w celu /lib/ld-linux.so.2 (0x00000000)
wpisanie: ./sb-arm-hello. W rezultacie wygodnego wyciągnięcia wszystkich
otrzymamy wynik w postaci napisu Hello ścieżek dostępu związanych z biblioteką W tej chwili możemy już tworzyć pliki
World!. glib. Domyślnie, glib instaluje się do /usr/ wykonywalne naszych programów i biblio-
local/ i do tego samego katalogu są także tek, a następnie przenosić je na różne
Przykład bardziej instalowane pliki konfiguracyjne pkg- urządzenia oparte o procesor ARM.
skomplikowany config. W poniższym przykładzie użyje- Scratchbox zawiera jeszcze wiele
Kolejny przykład będzie wymagał biblio- my pkg-config oraz tak ustawimy zmien- innych rozszerzeń i narzędzi, które
teki glib z rodziny GTK+. Najpierw ną środowiskową PKG_CONFIG_PATH, pomagają w tworzeniu oprogramowania,
musimy ściągnąć pakiet glib i skompi- że narzędzie znajdzie odpowiednie pliki np. dla Debiana ARM.
lować go dla środowiska docelowego za glib:
pomocą następujących komend: Podsumowanie
# export PKG_CONFIG_PATH=/usr/local/ S Istnieje wiele ciekawych urządzeń, na
S
> wget ftp://ftp.gtk.org/pub/gtk/v2.2/ lib/pkgconfig/ których można zainstalować i urucha-
glib-2.2.3.tar.bz2 miać Linuksa. Uruchomienie czy skom-
> tar -xjvf glib-2.2.3.tar.bz2 Teraz możemy uruchomić pkg-config pilowanie naszych ulubionych progra-
> cd glib-2.2.3 –list-all, co umożliwi nam obejrzenie mów na te urządzenia może być rzeczy-
> ./configure bibliotek zainstalowanych w systemie. wiście trudnym zadaniem. Dzięki odpo-
> make W tej chwili powinno to wyświetlić: wiednim narzędziom oraz z pomocą róż-
> make install nych artykułów z czasopism i ze stron
gmodule-2.0 GModule - Dynamic module internetowych można spowodować, że
Jak można zauważyć, jest to znacz- loader for GLib nie będzie to już tak skomplikowane.
nie bardziej złożony przykład. Użyli- glib-2.0 GLib - C Utility Library A już na pewno jest to bardzo interesują-
śmy skryptu configure, który kompi- gobject-2.0 GObject - GLib Type, Object, ca dziedzina do doświadczeń programi-
luje i uruchamia dużo różnych pro- Parameter and Signal Library stycznych.
gramów w celu wyciągnięcia różnych gthread-2.0 GThread - Thread support
danych o środowisku. Gdybyśmy użyli for GLib
kompilacji skrośnej poza Scratchbok- W Internecie:
sem, wtedy skrypt configure nie ukoń- W celu skompilowania nowego "Hello
czyłby prawidłowo działania, ponieważ World" będziemy potrzebowali następu- – Strona domowa projektu Scratchbox:
nie mógłby uruchomić programów do jącej komendy: http://www.scratchbox.org/
kompilacji. Zerknięcie do pliku /tmp/ – Strona domowa projektu QEMU:
http://fabrice.bellard.free.fr/qemu/
cputransp_$USER.log pozwala na uzy- # gcc -Wall `pkg-config --cflagsS
– Strona domowa projektu Handhelds:
skanie informacji o komendach, które --libs glib-2.0` -o sb-armS
http://www.handhelds.org/
były uruchamiane z emulatorem. Oczy- -glib-hello glib-hello.c
www.lpmagazine.org 31
wywiad
Wywiad
z Carlosem Velez Baez,
szefem projektu
Vidalinux
Krzysztof Krawczyk: Na początku
chciałbym, abyś krótko przedstawił się
naszym Czytelnikom.
Carlos Velez Baez: Jestem szefem pro-
jektu Vidalinux. W tej chwili pracuję jako
konsultant ds. systemów sieciowych oraz
jako deweloper Vidalinux Desktop OS.
KK: W jaki sposób związałeś się
z Linuksem?
CVB: W 1997 roku jeden z moich
sąsiadów dał mi swojego Red Hata 5.0.
Nie udało mu się zainstalować Linuk-
sa na swoim komputerze, a dla mnie
była to pierwsza okazja zapoznania się
z tym systemem. Ostatecznie, od tego
dnia zacząłem korzystać wyłącznie
z Linuksa.
KK: Ilu jest deweloperów Vidalinux?
Carlos Velez Baez prezentuje swoją
CVB: W tej chwili w Vidalinux jest nas
dystrybucję Linuksa
troje: dwóch deweloperów oraz jeden
grafik.
KK: Nad czym teraz pracujecie w Vida- tylko pomarzyć. Gentoo jest dystrybu-
linuksie? cją, która jest budowana ze źródeł, więc
CVB: Wszystkie moje wysiłki są skon- dzięki temu jest łatwiej stworzyć własną
centrowane na tym, aby Vidalinux Desk- dystrybucję Linuksa.
top OS jak najlepiej integrował się z sys- KK: Dlaczego skorzystaliście z Ana-
temem zarządzania pakietami. Ponadto, condy, instalatora systemu Red Hata?
zajmuję się programowaniem w GNOME, CVB: Wybraliśmy Anacondę, gdyż
mechanizmami autodetekcji sprzętu oraz nim zacząłem tworzyć instalator,
innymi aplikacjami systemowymi. istniał już projekt rozwijany przez
KK: Dlaczego wybraliście Gentoo Victora Prada. Dokonał on pierwszych
jako bazę dla swojej dystrybucji Linuk- zmian w Anacondzie, aby działała
sa? Jest wiele innych popularnych dystry- poprawnie z Gentoo. Skontaktowałem
bucji, takich jak Mandrakelinux, Fedora się z nim, aby pomóc mu w tym pro-
Core czy SUSE. jekcie, a on przekazał mi wszystkie
CVB: System zarządzania pakieta- źródła. Dzięki temu zacząłem pracę nad
mi, który jest dostępny w Gentoo (Por- Anacondą.
tage), ma więcej zaawansowanych funk- KK: Czy mechanizmy wykrywania
cji niż RPM czy APT. Gdy dokonujesz i konfigurowania sprzętu są waszym dzie-
Na DVD instalacji niektórych aplikacji korzysta- łem?
Na płycie DVD B zamieściliśmy jąc z Portage, rozwiązuje on wszystkie CVB: Nie, są połączeniem bazy
dystrybucję Gentoo Linux 2004.3 zależności, które ma ta aplikacja. Jest danych sprzętu z Knoppiksa oraz narzę-
to coś, o czym inne dystrybucje mogą dzi z Gentoo LiveCD.
32 luty 2005
wywiad z Carlosem Velez Baez wywiad
KK: Czy stworzyliście jakieś własne i komercyjnych dystrybucji, jest system KK: Czy potrzebujecie jakiejś innej
narzędzia, np. konfiguratory czy mene- zarządzania pakietami. Gdy chcesz zain- pomocy od społeczeństwa linuksowego?
dżery pakietów? stalować jakąś aplikację, musisz przeszu- CVB: Tak, gdyż każdy, kto chce włą-
CVB: Tak, wprowadziliśmy wiele kiwać całą sieć w celu zapewnienia jej czyć się do projektu, poprzez kod, doku-
zmian w kodzie Anacondy, włączając w zależności, w szczególności bibliotek, mentację bądź cokolwiek innego, jest
to interfejs dodawania użytkowników których wymaga ta aplikacja, aby zainsta- bardzo mile widziany.
oraz nowy sposób wybierania pakie- lowała się poprawnie. Gentoo jest jedną KK: Jakie zmiany czekają użytkowni-
tów, który będzie dostępny w VLOS 1.1. z najbardziej zaawansowanych dystrybu- ków Waszej dystrybucji w Vidalinux OS
Ponadto, planujemy przygotować pro- cji Linuksa, a z systemem Portage otrzy- Desktop 1.1?
gram, zbliżony do Red Carpeta Ximia- muje się pełną kontrolę nad swoim syste- CVB: VLOS 1.1 będzie miał wiele
na, do instalowania pakietów binarnych mem operacyjnym. zmian i poprawek, m.in. system udev,
w VLOS-ie. KK: A w jak sposób współpracujecie NPTL, GNOME 2.8, KDE 3.3.1, jądro 2.6.9,
KK: A jakie pakiety są teraz wykorzy- z deweloperami Gentoo? wsparcie dla dysków twardych SATA
stywane w Vidalinuksie? Źródłowe czy CVB: Tworzymy ebuildy i zgłaszamy i SCSI, wykrywanie urządzeń USB pod-
binarne? błędy. Myślę, że przez tworzenie VLOS, łączanych do systemu, instalator bazujący
CVB: Używamy obu rodzajów pakie- który bazuje na Gentoo, ale jest łatwiej- na Fedora Core 3 oraz wybór pakietów,
tów. szy w instalacji, oferujemy Gentoo roz- które można zainstalować.
KK: Dlaczego przygotowujecie swój wiązanie odpowiednie dla typowych KK: A jakie macie plany na dalszą
system dla czterech architektur: p4, i686, użytkowników. przyszłość?
athlonxp i amd64. Czy to nie za dużo, KK: Istnieją dwie wersje Vidalinux CVB: Mamy bardzo dużo planów,
albo może za mało? Desktop OS: publiczna (download) i do włączając w to serwerową edycję VLOS,
CVB: Takie dystrybucje Linuksa, jak kupienia. Jaka jest różnica pomiędzy nimi wersję typu LiveCD, aplikację do zarzą-
Fedora Core, Mandrakelinux czy SUSE, i dlaczego zdecydowaliście się je przygoto- dzania instalacją pakietów oraz wspar-
wykorzystują domyślną architekturę do wać. Czy nie jest możliwe w wersji down- cie w Anacondzie dla wielu systemów
kompilowania wszystkich swoich pa- load zainstalowanie OpenOffice.org, Evo- plików, w tym dla Reiser4fs.
kietów. My kontynuujemy tradycję Gen- lution, Firefox czy innych poprzez wyko- KK: Na koniec mam pytanie, czy
too optymalizacji wszystkich pakietów rzystanie polecenia emerge? byłeś kiedyś w Polsce. No i czy chciałbyś
poprzez wykorzystanie dostępnych archi- CVB: Główną różnicą są załączo- ją odwiedzić?
tektur preprocesora, co pozwala nam osią- ne aplikacje oraz aplet GDesklets, który CVB: Nie, nigdy nie byłem w Euro-
gnąć dużą różnicę wydajności systemów. dodaje skrót szybkiego uruchamiania pie, ale na pewno w przyszłości ją
KK: Jakie główne problemy napotka- aplikacji, identyczny do tego w syste- odwiedzę, gdyż znajdują się tam piękne
liście podczas przygotowywania tej dys- mie Mac OS X. Tylko we dwójkę pracu- miejsca.
trybucji? jemy nad tym projektem, a musimy prze- KK: Bardzo dziękuję za rozmowę.
CVB: Główne trudności dotyczyły cież opłacać pewne rachunki, takie jak W przyszłym miesiącu nasi Czytelnicy
formatu RPM, wykorzystywanego przez hosting naszych stron, łącze internetowe, będą mieli okazję zapoznać się z VLOS
Anacondę, oraz były związane z błęda- oprawa graficzna i inne rzeczy, które są 1.1, więc możecie spodziewać się spore-
mi, które się w niej znajdują. pokrywane z przychodów ze sprzedaży go odzewu.
KK: Jakie jest twoje zdanie na temat dystrybucji. Jeśli postanowisz korzystać
innych linuksowych dystrybucji, w szcze- z wersji publicznej i potrzebujesz innych
gólności Gentoo. aplikacji dostępnych w sprzedawanej W Internecie:
CVB: Przygodę z Linuksem zaczą- wersji, możesz je zainstalować bez pro-
– Strona domowa systemu Vidalinux
łem od Red Hata, ale gdy odkryłem blemów, ale miej na uwadze, że jeśli sko-
Desktop OS:
Gentoo, nie było już odwrotu. Głównym rzystasz z wersji płatnej, pomagasz nam http://desktop.vidalinux.com/
problemem, typowym dla popularnych w utrzymaniu przy życiu tego projektu.
R E K L A M A
www.lpmagazine.org 33
rozwiązania mobilne
MultiSync
– synchronizacja
urządzenia przenośnego
z komputerem biurkowym
Krzysztof Wolski
O
becne możliwości telefo- czek. Pozwalają one na współpracę pro-
nów komórkowych znacz- gramu z organizerem oraz klientem
nie przewyższają podsta- poczty Ximian Evolution. Komunikacja
wowe zadania, przed któ- z urządzeniami zewnętrznymi (telefona-
rymi stał kiedyś zwykły telefon. Każdy mi komórkowymi oraz komputerami kie-
nowy model jest wyposażony w prosty szonkowymi) odbywa się poprzez port
organizer, z pomocą którego możemy USB, IrDA lub Bluetooth.
zapisywać informacje o spotkaniach
czy wydarzeniach. Bardziej rozbudowa- Instalacja
ne telefony komórkowe pozwalają rów- Testy programu zostały przeprowadzo-
nież na panowanie nad zadaniami, które ne w systemie Aurox Linux. Na stro-
ma do zrealizowania właściciel telefo- nie domowej projektu są do pobra-
nu. Oprócz tego, w każdym telefonie nia odpowiednie pakiety RPM. Ponie-
jest dostępna książka telefoniczna, która waż program jest zbudowany w opar-
pozwala na zapisywanie numerów do ciu o wtyczki, to nie musimy ścią-
znajomych. gać wszystkich pakietów, ale tylko te,
Często wpisywanie nowych spotkań z których będziemy korzystali. Oczy-
do telefonu bywa bardzo niewygodne wiście, najważniejszy jest pakiet z pro-
(choćby ze względu na małe klawisze gramem (multisync). Jeśli będziemy
czy mały wyświetlacz). W takim przy- chcieli synchronizować dane z progra-
padku dobrze jest posiadać komputer mem Evolution, to niezbędna będzie
i za jego pomocą zapisywać informacje również wtyczka multisync-evolution.
w organizerze, a następnie zsynchronizo- Do synchronizacji danych z telefona-
wać ze sobą dane w komórce i kompu- mi komórkowymi będziemy również
terze przy pomocy odpowiedniego opro- potrzebowali pakietu multisync-irmc.
gramowania. Takim właśnie programem W przypadku palmtopa Zaurus odpo-
przeznaczonym dla systemu Linux jest wiednia wtyczka nazywa się multisync-
MultiSync.
MultiSync pozwala na synchroniza-
cję danych nie tylko pomiędzy kompu-
terem a komórką, ale również pomiędzy
komputerem domowym (lub laptopem)
oraz komputerem kieszonkowym (za-
O autorze
równo PocketPC, jak również Palm oraz
Autor jest studentem piątego roku
Politechniki Śląskiej na Wydziale Zaurus). Umożliwia także wykonywa-
Organizacji i Zarządzania, spe- nie kopii zapasowej danych zapisanych
cjalność "Informatyka w Przed- w organizerze.
siębiorstwie". Kontakt z autorem: Omawiane narzędzie zostało napisa-
Rysunek 1. Ustawienia dla telefonu
autorzy@lpmagazine.org ne dla środowiska GNOME. Jego archi-
komórkowego
tektura jest oparta na mechanizmie wty-
34 luty 2005
multisync rozwiązania mobilne
www.lpmagazine.org 35
ZAMÓWIENIE PRENUMERATY
Prosimy wypełnić czytelnie i przesłać faksem na numer: (22) 860 17 71
lub listownie na adres: Software-Wydawnictwo Sp. z o.o.,
Lewartowskiego 6, 00-190 Warszawa,
e-mail: pren@software.com.pl
Przyjmujemy też zamówienia telefoniczne: (22) 860 17 67
ID kontrahenta*
* jeżeli jesteś już klientem firmy Software-Wydawnictwo Sp. z o.o. – wystarczy, że podasz swój numer ID kontrahenta; jeżeli nie posiadasz takiego numeru, podaj swe dane teleadresowe
Upoważniam firmę Software-Wydawnictwo Sp. z o.o. do wystawienia faktury VAT bez podpisu odbiorcy
Nazwa firmy
Dokładny adres
W sumie
(liczba prenumerat x cena)
www.stock.com.pl
UWAGA: Nadesłanie zamówienia jest jednocześnie zobowiązaniem do zapłaty.
Linux+ 07/2004 Linux+ 08/2004
Linux+ 06/2004 (DVD, CD, bez CD) (DVD, CD, bez CD)
(DVD, CD, bez CD)
Linux+ 11/2004
(DVD, CD, bez CD) Numery archiwalne
Prosimy o przesłanie kuponu pocztą lub faksem.
Prosimy w odpowiednim polu zakreślić numery, które Państwo chcą zamówić.
żółte pola – 24 zł za Linux+
1 2 3 4 5 6 7 8 9 10 11 12
2000
2001
2002
2003
Linux+ 12/2004 2004
(DVD, CD, bez CD)
2004
2004
2005
2005
2005
Nicotine
– klient sieci SoulSeek
Witold Kieraś
40 luty 2005
GNOME News
GParted 0.0.7
Ukazała się wreszcie nowa wersja
im programy, np. gFTP protokołowi ftp, GParted, czyli Gnome Partition
a Evolution – mailto. Editor, będącego nakładką graficzną
W zakładce Zajęty możemy zdefinio- dla biblioteki libparted, służącej do
obsługi partycji. Minęło sporo czasu
wać, po ilu minutach bezczynności pro-
od poprzedniej wersji, a było to
gramu nasz status zostanie automatycznie spowodowane faktem, że duża część
zmieniony na Zajęty. Możemy też wpisać kodu wymagała przepisania od nowa.
tzw. autoodpowiedź dla tego statusu, któ- W nowej wersji ulepszono obsługę
systemów plików ext2, ext3 oraz
rą zobaczy każdy użytkownik próbujący
ReiserFS, dodano pełną obsługę NTFS
wysłać nam jakąś wiadomość, gdy usta- oraz wzbogacono program o wiele
Rysunek 2. Okno konfiguracji ukaże wiony mamy status Zajęty. W zakładce mniej istotnych dodatków.
się nam przy pierwszym uruchomieniu Info użytkownika wpisać możemy pu- http://gparted.sourceforge.net/
programu
blicznie dostępne informacje o nas, np. GUADEC 2005
że nie lubimy użytkowników, którzy nie W dniach 29-31 maja bieżącego roku
ściągnąć, lecz czekają w kolejce. W os- udostępniają żadnych plików lub co my- w Stuttgardzie już po raz szósty
odbędzie się GUADEC, czyli GNOME
tatniej zakładce, Znajomi, wpisać mo- ślimy o prezydencie naszego kraju. W za- Users and Developers European
żemy loginy naszych przyjaciół, dzięki kładce Blokuj/Ignoruj możemy zarzą- Conference – europejska konferencja
czemu będziemy mieli łatwiejszy dostęp dzać osobami przez nas blokowanymi lub użytkowników i deweloperów
do udostępnianych przez nich plików, ignorowanymi. Możemy dodać użytkow- środowiska GNOME. Organizatorzy
przewidują udział uczestników z około
a oni będą mogli skorzystać ze zdefinio- ników do spisu bezpośrednio poprzez to trzydziestu krajów. Komitet konferencji
wanych przez nas preferencji dla nich. okno (co jest mało wygodne) lub przez zaplanował podzielenie wystąpień na
wspomniane już menu kontekstowe. kilka działów: integracja biurka
Dodatkowe opcje W zakładce Wyszukiwanie możemy zde- i systemu, wsparcie dla multimediów,
standardy biurkowe, oprogramowanie
Skoro już wiemy, jak działa Nicotine finiować filtry działające przy wyszukiwa- biurowe, GNOME dla każdego,
i sieć SoulSeek, to możemy zająć się do- niu plików. Kryterium mogą być frazy, społeczność GNOME, GNOME
pracowaniem konfiguracji programu. Wy- które zawiera lub których nie zawiera na- w edukacji, GNOME w administracji
bieramy zatem menu Plik–>Ustawienia zwa pliku, rozmiar pliku, wartość bitrate, rządowej oraz GNOME na małych
urządzeniach (ang. small devices).
– pojawi się znane już okno konfiguracji. kraj pochodzenia użytkownika udostęp- http://2005.guadec.org/
W zakładce Transfer możemy szczegóło- niającego plik, oraz to, czy użytkownik
AbiWord 2.2
wo zdefiniować szybkość transferu wy- ma w danym momencie wolny slot (tzn. Ukazała się nowa wersja
chodzącego, jak i zasady kolejkowania czy można od razu pobierać od niego wieloplatformowego edytora
plików do wysyłania. Możemy też ograni- plik, czy też trzeba poczekać w kolejce). tekstu AbiWord, będącego częścią
czyć zachłanność innych użytkowników, W zakładce Zdarzenia możemy zdefinio- nieoficjalnego projektu GNOME Office.
Projekt nastawiony jest w dużej mierze
ustawiając limit, do którego dany użyt- wać polecenia wykonywane na plikach na maksymalne ułatwienie przesiadki
kownik może jednorazowo zakolejkować lub katalogach zaraz po ich ściągnięciu, dotychczasowym użytkownikom
udostępniane przez nas pliki. Możemy też np. jeśli chcemy, aby zaraz po ściągnięciu MS Word i trzeba przyznać, że udaje
uprzywilejować naszych znajomych, da- całego katalogu został on przenoszony do się to coraz lepiej. W nowej wersji
umożliwiono m.in. automatyczne
jąc im pierwszeństwo ściągania, oraz wy- folderu /mnt/muzyka/ w naszym katalo- tworzenie spisów treści w dokumentach.
łączyć ich z ustawionych limitów. gu domowym, to w drugim od góry polu Od tej wersji dostępny jest również port
Z opcji w zakładce Blokada krajów w tej zakładce musimy wpisać polecenie: programu dla MacOS X.
możemy skorzystać tylko wówczas, gdy mv $ /mnt/muzyka/. http://www.abisource.com/
mamy w systemie zainstalowaną wspo- Firestarter 1.0
mnianą wcześniej bibliotekę GeoIP. Podsumowanie Minęło już sporo czasu od powstania
projektu Firestarter – graficznej
W tej zakładce możemy zdefiniować SoulSeek to bardzo ciekawa sieć P2P, któ-
aplikacji dla GNOME, przeznaczonej
kraje, z których użytkownicy nie bę- ra wykształciła specyficzną społeczność do budowania zapór ogniowych. Teraz
dą mogli ściągać udostępnionych przez dbającą o zachowanie pewnych zasad. Ni- wreszcie program osiągnął dojrzałość.
nas plików. Wystarczy podać tylko kody cotine to pełnowartościowy klient tej sie- W nowej wersji niemal zupełnie od
początku przepisano interfejs programu.
tych krajów. ci dla Linuksa, nieustępujący funkcjonal-
http://www.fs-security.com/
W zakładce Interfejs możemy zdefi- nością swemu windowsowemu pierwo-
niować własne kolory dla wypowiedzi wzorowi. Użytkownik nie powinien mieć Essays 1743 1.0
Essays 1743 to nowa czcionka autorstwa
wpisywanych w czasie rozmów na soul- kłopotów z jego konfiguracją, choć mo- Johna Stracle'a, wydana na licencji
seek'owym chacie. Z kolei w zakładce Ła- gą zdarzyć się niespodziewane problemy, LGPL (Lesser General Public License).
panie URL-i możemy zdefiniować, jakie np. przeglądanie udostępnianych plików Wzorowana jest na czcionce, jakiej użyto
programy zewnętrzne mają przechwy- pomiędzy dwoma użytkownikami, któ- do złożenia angielskiego wydania Prób
(w angielskiej wersji Essays) Michela de
tywać odpowiednie protokoły (np. gdy rzy są za NAT-em, jest niemożliwe. Są to Montaigne'a, z 1743 roku (stąd nazwa).
w rozmowie ktoś wskaże jakiś adres jednak problemy właściwe wszystkim sie- Projekt osiągnął niedawno wersję 1.0
URL). Domyślnie zdefiniowana jest jedy- ciom P2P i trudno się przed nimi ustrzec, i oferuje obecnie czcionki standardowe,
nie Mozilla dla protokołu http, ale nic nie bez względu na to, jakiego programu i dla pogrubione, kursywę oraz pogrubioną
kursywę.
stoi na przeszkodzie, aby innym proto- jakiej platformy się używa. http://www.thibault.org/fonts/essays/
kołom przyporządkować odpowiadające http://nicotine.thegraveyard.org/
www.lpmagazine.org 41
aktualności
oprogramowanie kde
Krusader
– menedżer plików
Witold Kieraś
42 luty 2005
KDE News
Wywiad
ze Scottem Wheelerem
Serwis Open for Business
przeprowadził wywiad ze
Scottem Wheelerem, deweloperem
KDE, członkiem zespołu
KDE Multimedia i twórcą m.in.
odtwarzacza JuK. Scott
opowiada w nim przede
wszystkim o problemach
z serwerem aRts, po tym jak
jego twórca, Stefan Westerfeld,
przestał go rozwijać, oraz
o możliwościach zastąpienia
go innymi istniejącymi już
rozwiązaniami. Zmiana nie
nastąpi jednak, zdaniem Scotta,
przed wydaniem wersji 4.0
środowiska KDE. Scott rozważa
również problem tzw. domyślnego
odtwarzacza multimediów
w KDE – teoretycznie jest nim
Noatun, ale w praktyce coraz
większą popularność zdobywają
takie projekty, jak AmaroK czy
Rysunek 2. MountMan ułatwia montowanie urządzeń i zasobów zdalnych Kaffeine.
http://www.ofb.biz/modules.php?
name=News&file=article&sid=338
graficzne okno proszące o podanie hasła je z pewnością tych użytkowników, któ-
administratora w razie potrzeby uzyska- rzy nie mają zaufania do automatycznych Improving KDE 1.0
Bardzo popularny zestaw łatek
nia takich uprawnień (standardowy kom- monterów nośników, takich jak super- upiększających KDE osiągnął
ponent KDE); kget to menedżer ściągania mount. Wybierając z menu Narzędzia–> wersję 1.0. Wszystkie poprawki
plików, graficzny odpowiednik tekstowe- MountMan otworzymy okno, w któ- zostały przetestowane na
go programu wget; kmail to znany klient rym są wyszczególnione wszystkie pozy- wersji 3.3.1 środowiska i, zdaniem
autora, spisują się poprawnie,
poczty; diff utility – tutaj mamy do wyboru cje zapisane w pliku /etc/fstab – napędy ale nie ma gwarancji ich
zainstalowanie dwóch różnych nakładek CD-ROM i stacje dyskietek, partycje, za- poprawnego działania
na tekstowy program diff do porównywa- soby sieciowe, urządzenia przenośne USB w innych wersjach. Zachęcam
nia zawartości plików tekstowych: xxdiff itp. Teraz klikając na dowolnej z nich mo- do obejrzenia zrzutów ekranowych
– wyglądają naprawdę imponująco.
lub kdiff3; krename – nakładka graficz- żemy dowiedzieć się, czy jest zamonto- http://www.kde-apps.org/content/
na na program rename do grupowej zmia- wana, czy nie. Klikając prawym przyci- show.php?content=16962
ny nazw plików według ustalonego wzor- skiem myszy na wybranej pozycji może-
AmaroK 1.2 beta1
ca; krusader to oczywiście ścieżka do sa- my dany zasób zamontować lub odmon- Ukazała się pierwsza wersja
mego Krusadera. Cztery ostatnie pozycje tować – pod warunkiem oczywiście, że beta nowego AmaroKa
to już standardowe narzędzia systemowe, mamy do tego uprawnienia. Aby uniknąć – zdobywającego coraz
większą popularność odtwarzacza
z pewnością obecne w naszym Linuksie: omyłkowego odmontowania np. ważnej
muzyki dla KDE. W nowej
locate – program do wyszukiwania plików partycji systemowej, warto zabronić Mount- wersji poprawiono m.in. obsługę
w okresowo aktualizowanej bazie danych; Manowi operacji na tym zasobie. OSD i aRts, a także dodano
mount i umount – narzędzia do monto- W tym celu z menu wybieramy Ustawienia wsparcie dla bazy danych
MySQL.
wania i odmontowania urządzeń; upda- –>Configure Krusader–>Zaawansowane
http://www.kde-apps.org/content/
tedb – program aktualizujący bazę danych i przy pozycji MountMan won't (un)mo- show.php?content=9939
o nazwach plików. W zakładce Programy unt the following mount points: po prze-
Dla programistów Qt
kompresujące możemy zdefiniować nie- cinku wymieniamy wszystkie zasoby W serwisie KDE.pl powstał
mal wszystkie możliwe narzędzia do kom- (według punktów montowania), których niedawno dział poświęcony
presji danych (pod warunkiem, że mamy MountMan nie ma prawa ruszać (domyśl- programowaniu z wykorzystaniem
biblioteki Qt. Dział zainaugurowały
je zainstalowane w systemie). nie wymieniona jest tu tylko partycja / ).
trzy artykuły autorstwa Tomasza
W konfiguratorze Krusadera może- Pielecha. Przy serwisie powstało
my również wskazać, jaki program ma Podsumowanie również forum dyskusyjne
być standardowym wirtualnym termina- Krusader to program przede wszystkim poświęcone podobnej tematyce.
http://www.kde.pl/?page=
lem. W sekcji Ogólne domyślnie jest wska- dla tych, którzy przyzwyczaili się do pew-
articles&category=6
zany program Konsole, ale nic nie stoi na nego modelu pracy z plikami. Nawet je- http://qtforum.kde.pl/
przeszkodzie, aby wykorzystać w tej ro- śli do tej pory nie mieliśmy z nim do czy-
li np. XTerm. nienia, to warto poświęcić mu trochę cza-
su, bo z pewnością odpłaci się sowicie.
MountMan Zachęcam do eksperymentowania z tym
MountMan to ciekawa funkcja oferowa- elastycznym menedżerem plików.
na przez Krusadera, która zainteresu- http://krusader.sourceforge.net/
www.lpmagazine.org 43
aktualności
oprogramowanie linuxfresh
SoX
– konwerter formatów
dźwiękowych
Piotr Machej
44 luty 2005
FRESH News
Quick3dApplet 1_5
Quick3dApplet pozwala na
prezentowanie interaktywnej grafiki
3D na stronie WWW. Jeśli tylko
w przeglądarce mamy zainstalowaną
Javę w wersji co najmniej 1.1, to
będziemy mogli cieszyć się dosyć
szybkim silnikiem 3D. Przed
wykorzystaniem apletu możemy
zapoznać się z jego możliwościami
na stronie domowej projektu. Są tam
umieszczone przykłady wykorzystania
tego programu, takie jak szachy czy
gra w trójwymiarowe kółko i krzyżyk.
W nowej wersji dodano możliwość
odczytywania plików 3ds, dzięki
czemu możemy również prezentować
modele stworzone w programie
3DStudio. Oprócz tego, poprawiono
kilka błędów.
http://freshmeat.net/projects/
quick3dapplet/
Swfdec 0.3.2
W Internecie można znaleźć
wiele zabawnych animacji i gier
zapisanych w plikach SWF. Swfdec to
Rysunek 2. W dokumentacji możemy znaleźć dokładny opis parametrów poszczególnych biblioteka służąca do renderowania
efektów takich animacji. Chociaż została
zaprojektowana do użytku przy
S tworzeniu wtyczek Flasha dla
W analogiczny sposób możemy wypró- # sox -t ossdsp -c 1 -r 44100 /dev/dsp
programu GStreamer, obecnie jest
bować inne efekty, eksperymentując file.wav praktycznie samodzielną biblioteką
z parametrami aż do uzyskania zadowa- (wymaga jedynie biblioteki libart
lających nas wyników. Opcją -t wskazujemy typ pliku wejścio- do rysowania). Wraz z Swfdec jest
dostarczany odtwarzacz i wtyczka
Teraz już możemy nałożyć odpowia- wego (jego ścieżka to /dev/dsp). Liczbę dla Mozilli. Program jest jeszcze we
dający nam efekt. Jeśli podoba nam się kanałów podajemy w opcji -c (dźwięk wczesnej fazie rozwoju, więc może
echo uzyskane wcześniejszym polece- monofoniczny), a częstotliwość próbko- sprawiać trochę problemów, lecz
niem, możemy zapisać je na stałe: wania w opcji -r. W ten sposób w pli- zapowiada się całkiem interesująco.
W ostatniej wersji wprowadzono kilka
ku file.wav uzyskamy dźwięk nagrany poprawek do wtyczki dla Mozilli.
# sox file.wav file2.wav echo 0.8 0.9 S z mikrofonu. Oczywiście, wcześniej nale- http://freshmeat.net/projects/swfdec/
1000.0 0.3 ży odpowiednio ustawić urządzenie na-
Mutt Folder List 20041122
grywające poleceniem aumix oraz ustawić Użytkownikom Mutta z pewnością
W ten sposób w pliku file2.wav znajdzie właściwe poziomy głośności. przyda się ta łatka. Dodaje ona
się dźwięk z pliku file.wav z nałożonym Zamiast powyższego polecenia może- do tego znakomitego programu
pocztowego przydatną funkcję, czyli
efektem echa. Jak wspomnieliśmy na po- my skorzystać z alternatywy:
boczny pasek ze spisem folderów
czątku, SoX pozwala na konwersję po- pocztowych. Można ten pasek
między różnymi typami plików. Można ją # rec -c 1 -r 44100 file.wav ukrywać i ujawniać wciśnięciem
uzyskać bardzo prosto: jednego klawisza. Oprócz tego,
dostępnych jest kilka możliwości,
Jak widać, upraszcza to polecenie pozwa-
takich jak podświetlanie nazw
# sox file.au file.wav lając nam pominąć kilka opcji. folderów zawierających nowe listy czy
Oprócz wspomnianych już poleceń, konfigurowanie szerokości i kolorów
W przypadku pracy z plikami zawiera- SoX udostępnia jeszcze jedno: soxmix. paska, a także skrótów klawiszowych.
http://freshmeat.net/projects/mutt-
jącymi odpowiednie nagłówki, składnia Spełnia ono praktycznie taką samą funk-
folderlist/
wywołania SoX jest prosta. Jeśli jednak cję, jak sox, lecz z pewnym wyjątkiem
KDocker 1.0 RC2
pracujemy z danymi w formacie suro- – oczekuje na wejściu co najmniej dwóch
KDocker to ciekawy projekt mający
wym RAW, to programowi trzeba do- plików, które następnie miksuje i zapisuje umożliwić dokowanie aplikacji
starczyć nieco więcej informacji o stru- w pliku wyjściowym. Musimy tu pamiętać, w zasobniku systemowym. Jego zaletą
mieniu dźwięku. Chodzi tu o takie in- że wszystkie pliki wejściowe muszą być te- jest to, że działa zarówno w KDE, jak
i w GNOME, więc jeśli nawet aplikacja
formacje, jak częstotliwość próbkowa- go samego typu i mieć tą samą częstotli-
radzi sobie z dokowaniem w jednym
nia (sample rate), precyzja przecho- wość próbkowania. ze środowisk graficznych, to KDocker
wywania danych (np. 8-bitowe bajty Na koniec warto pamiętać o bardzo pomoże jej w drugim. W nowej wersji
i 16-bitowe słowa), kodowanie danych użytecznej opcji -V, która spowoduje, że między innymi dodano obsługę drag
and drop.
(np. u-law, ADPCM) oraz liczba kana- SoX wyświetli więcej informacji o wyko-
http://freshmeat.net/projects/kdocker/
łów. Przykładowo, jeśli chcemy nagrać nywanych czynnościach.
dźwięk z mikrofonu, możemy skorzy-
stać z polecenia: http://freshmeat.net/projects/sox/
www.lpmagazine.org 45
aktualności
oprogramowanie linuxfresh
GFSGL
– menedżer uruchamiania gier
Piotr Machej
PATH=$PATH:$HOME/bin
46 luty 2005
FRESH News
www.lpmagazine.org 47
aktualności
oprogramowanie linuxfresh
Munin
– generator zestawień
i statystyk
Piotr Machej
48 luty 2005
FRESH News
Snortalog 2.3.0c
gu /etc/opt/munin/plugins/ utworzyć do- Teraz już możemy uruchomić węzły Użytkownicy systemu wykrywania
intruzów Snort z pewnością czasem
wiązania symboliczne do plików wtyczek i zarządcę. Węzły powinny działać cały chcieliby sprawdzić, jak wiele ataków
umieszczonych w katalogu /opt/munin/ czas, zbierając dane i oczekując na zapyta- doświadczył ich system i jakie niosły
lib/plugins/. W pliku Makefile.config ka- nia od zarządcy. Najprościej umieścić ich ze sobą zagrożenie. Jednym
talogi te są zdefiniowane odpowiednio wywołanie w plikach startowych: /opt/ z programów to umożliwiających jest
napisany w Perlu skrypt Snortalog.
w zmiennych CONFDIR i LIBDIR. munin/sbin/munin-node (katalog wska-
Analizuje on logi Snorta i generuje
To nie koniec konfiguracji. Musimy zany przez zmienną SBINDIR). Zarząd- przejrzyste raporty w wybranym
zadbać o pliki konfiguracyjne węzłów ca powinien być uruchamiany w regular- formacie (HTML, PDF lub czysty
i zarządcy. nych odstępach czasu, więc warto skorzy- tekst). Oprócz trzech formatów logów
Snorta, potrafi w podobny sposób
W przypadku węzłów należy spraw- stać z usługi Cron. Tworzymy plik cron- analizować również logi Fw-1, Netfilter
dzić plik /etc/opt/munin/munin-node.conf tab.munin o zawartości: oraz IPFilter.
(znów w katalogu CONFDIR). Interesu- http://freshmeat.net/projects/snortalog/
je nas tam szczególnie opcja allow, okre- SHELL=/bin/sh Vobcopy 0.5.14
ślająca, jakie komputery mogą łączyć się MAILTO=gerard Jednym z kroków konwersji filmu
z węzłem. Domyślnie są dopuszczone tyl- */5 * * * * /opt/munin/bin/munin-cron DVD do formatu XviD lub podobnego
(dokonujemy jej przykładowo,
ko połączenia z maszyny lokalnej. Mo- gdy chcemy obejrzeć nasz film na
żemy poniżej dodać kolejne linie allow Następnie wystarczy z poziomu użytkow- komputerze nie wyposażonym
z odpowiednimi wartościami, np. allow nika root wydać polecenie crontab -u w napęd DVD) jest zgrywanie
^192\.168\.0\.1$ (konieczne jest użycie munin crontab.munin. Od tej pory program zawartości płyty na dysk twardy.
W realizacji tego zadania może nam
wyrażeń regularnych). Pozostałe opcje /opt/munin/bin/munin-cron (ścieżka okre- pomóc program Vobcopy, który,
zawarte w pliku zazwyczaj nie wymaga- ślona w zmiennej BINDIR) będzie urucha- wykorzystując bibliotekę Libdvdread,
ją zmiany. miany co 5 minut z prawami użytkowni- kopiuje pliki .vob na dysk,
Inaczej ma się sprawa z plikiem kon- ka munin. Ewentualne wyniki poleceń bę- w razie potrzeby je dekodując
(o ile posiadamy bibliotekę Libdvdcss).
figuracyjnym zarządcy – /etc/opt/munin/ dą przesyłane na konto gerard (tu powin- Program upewnia się, czy na dysku
munin.conf. Tutaj, oprócz nazw katalo- niśmy wstawić nazwę naszego konta). Nie jest dosyć miejsca, a także porównuje
gów, przechowujących pliki RRD, wyge- powinniśmy obawiać się zalewu skrzynki rozmiary skopiowanych plików
nerowane strony WWW, logi systemowe pocztowej – listy otrzymamy tylko w razie w celu sprawdzenia wystąpienia błędu.
Potrafi też skopiować całą zawartość
i pliki blokujące, możemy określić dane problemów (np. gdy nie zainstalowaliśmy wideo płyty DVD lub tylko wybrane
wszystkich węzłów. Najprostszy opis wę- wymaganych modułów Perla). pliki.
zła ma postać: Teraz pozostaje nam otworzyć w prze- http://freshmeat.net/projects/vobcopy/
glądarce plik /opt/munin/var/www/index. FAQtor 0.5
[komputer.domena.pl] html i cieszyć oczy generowanymi statysty- Autorzy bardziej rozbudowanych
address komputer.domena.pl kami. Warto też zapoznać się z dokumen- stron WWW nieraz umieszczają
na stronie sekcję zawierającą
tacją programu, aby lepiej dostosować sta-
odpowiedzi na często zadawane
Oczywiście, możemy też użyć cyfr: ad- tystyki do własnych wymagań. pytania (FAQ). Jeśli lista jest długa,
dress 192.168.0.1. http://freshmeat.net/projects/munin/ jej aktualizacja może wymagać nieco
wysiłku. Można sobie to zadanie
ułatwić korzystając z generatora
– programu FAQtor. Wystarczy
zbudować prosty plik XML
z pytaniami i odpowiedziami oraz
równie prosty plik konfiguracyjny,
a FAQtor wygeneruje ładnie
sformatowaną stronę z FAQ.
http://freshmeat.net/projects/faqtor/
AFD 1.2.21
Jeśli regularnie wysyłamy pliki
do wielu osób lub na wiele
komputerów, zainteresujmy się
programem AFD (Automatic
File Distributor). Program może
przesyłać pliki zarówno protokołem
FTP, jak i SMTP. Oprócz tego,
może rozprowadzać pliki lokalnie,
po prostu je kopiując. AFD radzi
sobie ze wznawianiem przesyłania
plików, jeśli połączenie zostało
przerwane. Dostępny interfejs graficzny
pozwala nadzorować przesyłanie
plików. Nowa wersja zawiera poprawki
kilku uciążliwych błędów.
http://freshmeat.net/projects/afd/
Rysunek 2. Dane o interfejsach sieciowych to tylko część wyświetlanych informacji
www.lpmagazine.org 49
aktualności
oprogramowanie gry
Dominions II
– strategiczna gra fantasy
Michał Niwicki
50 luty 2005
GAMES News
Scorched 3D
Pojawiła się najnowsza wersja
Scorched 3D, świetnego klona,
klasycznej już, DOS-owej gry
Scorched Earth. Scorched 3D jest
w pełni trójwymiarową grą, ze
wsparciem dla trybu OpenGL.
Autorzy postarali się zachować
klimat i niesamowitą grywalność
pierwowzoru, dodając zarazem
świetną grafikę i mnóstwo nowych
opcji. W chwili obecnej możliwa jest
już gra z innymi osobami przez sieć
LAN bądź Internet.
http://www.scorched3d.co.uk/
Xmame 0.89
Xmame to emulator popularnych
automatów z grami. Jest rozwijany
od 1997 roku, a obecnie nad
jego rozwojem pracuje ponad 100
programistów. Xmame w najnowszej
wersji obsługuje ponad 2000
różnych gier. Wprowadzono wiele
poprawek w kodzie aplikacji,
usprawniono obsługę OpenGL
i dodano eksperymentalną opcję
gry sieciowej. Niestety, ze względu
Rysunek 2. Gra tylko pozornie przypomina typową strategię
na niejasny status licencyjny
trzeba spędzić sporo czasu na
poszukiwaniu ROM-ów (archiwów
nęła bezpowrotnie gdzieś we mgle, zda- jące pod wodami mórz) oraz wiele opcji z grami) w Internecie.
jemy sobie sprawę, że nie mamy do czy- wpływających na przebieg gry. Ponadto, http://x.mame.net/
nienia ze strategią typu Command and mamy możliwość wskrzeszania zmarłych
Battle for Wesnoth 0.8.8
Conquer, Warcraft, czy Settlers. W Do- przywódców i prowadzenia ich przez te- Battle for Wesnoth to strategia turowa
minions II takie elementy, jak rozbudo- rytoria pod postacią mumii. Dostępnych w konwencji fantasy. Postacie,
wa królestwa, sceny bitwy (również do- jest również wiele różnorakich potworów którymi kierujemy, w trakcie gry
zyskują doświadczenie i zdobywają
bre) czy trenowanie żołnierzy, stanowią i dodatkowych elementów magii.
kolejne poziomy. Możliwa jest też
jedynie element pewnej całości. Nacisk rozgrywka sieciowa przez Internet.
położono na strategię, czyli planowanie, Podsumowanie W najnowszej wersji poprawiono
co, gdzie i jak zrobić, aby po kilku turach Dominions II jest strategią pod każdym wiele błędów, dodano nowe
mapy i jednostki. Wymieniono też
móc cieszyć się z przyrostu złota w skarb- względem – począwszy od ustawiania pa-
część grafik w grze, poprawiono
cu lub wygranej potyczki. rametrów gry, poprzez rozwijanie, moder- lokalizację oraz “wyczyszczono” kod
nizowanie i planowanie przyszłości kró- gry ze zbędnych i problematycznych
Co w pełnej wersji Dominions II? lestwa, a skończywszy na takich dodat- elementów.
http://www.wesnoth.org/
Wersja demonstracyjna Dominions II kach, jak potyczki oddziałów, czy ścią-
po kilkudziesięciu turach (kilku godzi- ganie podatków od lokalnej społeczno- Apricots 0.2.6
Pojawiła się kolejna
nach zabawy) jest przerwana komuni- ści. Na uznanie zasługuje znakomita gra-
(wciąż wczesna, aczkolwiek
katem informującym o sposobie nabycia fika i bardzo dobrze dobrana do scenariu- grywalna) wersja gry Apricots,
pełnej wersji gry. Po zapłaceniu 50 dola- szy średniowieczna muzyka. Mimo swej w której kierujemy małym
rów otrzymujemy dodatkowo prawie stu- złożoności, opanowanie podstawowych samolotem, starając się
wyeliminować wrogie obiekty,
stronicowy przewodnik, możliwość gra- umiejętności nie powinno sprawić pro-
strzelając do nich bądź bombardując.
nia nowymi postaciami (dwie nacje ży- blemu żadnemu graczowi. Gra na pew- Gra w zamyśle twórców ma być
no spodoba się wszystkim miłośnikom szybka i wciągająca. Na planszy
strategii i powinna bez wątpienia znaleźć może znajdować się równocześnie
do 6 samolotów, z czego 2 mogą
się w ich kolekcji. Niewątpliwie wadą Do-
być kontrolowane przez graczy.
minions II jest jej cena, ale mimo wszyst- Gra jest jeszcze w bardzo wczesnej
ko warto zastanowić się, czy nie sprawić wersji: nie posiada żadnych menu,
sobie takiego prezentu na długie zimowe a po uruchomieniu aplikacji od
razu przechodzimy do rozgrywki;
wieczory.
nie posiada możliwości nagrywania
stanu gry, a opcja gry sieciowej wciąż
oczekuje na liście rzeczy
Ocena do zrobienia.
http://www.fishies.org.uk/
– Grafika: 4/5 apricots.html
Rysunek 3. Sceny bitewne, mimo że – Muzyka: 5/5
atrakcyjne, stanowią jedynie atrakcyjny – Grywalność: 5/5
dodatek do gry
www.lpmagazine.org 51
dla początkujących
GRUB – program
uruchomieniowy
Piotr Machej
C
zym jest program uruchomie- nych dystrybucjach miałem możliwość
niowy (ang. bootloader) i czy zmiany na GRUB-a, przez kilka lat upar-
jest mi potrzebny do szczę- cie zostawałem przy LILO. Do zmiany
ścia? Jest to program umiesz- przekonało mnie moje własne lenistwo...
czony w początkowych sektorach dysku Po prostu, gdy po raz kolejny zapomnia-
twardego (np. w MBR – Master Boot łem uruchomić polecenie lilo po zmia-
Record ). BIOS, po uruchomieniu kompu- nie w pliku konfiguracyjnym i musiałem
tera i wykonaniu testów, przekazuje ste- szukać dyskietki ratunkowej, powie-
rowanie właśnie do programu zawartego działem: dość. Zainstalowałem GRUB-a
w MBR dysku wskazanego jako startowy, i od tej pory nie mam już powodów do
czyli do naszego programu uruchomie- narzekań. I nawet jak przyjadą krewni,
niowego. Jego zadaniem jest załadowanie to nie ma siły, aby uruchomili system,
systemu operacyjnego do pamięci i prze- którego nie powinni – przynajmniej
kazanie mu kontroli. Obecnie większość dopóki nie odgadną hasła.
popularnych programów uruchomienio-
wych pozwala na wybór jednego z sys- Instalacja
temów zainstalowanych na dysku. Najpo- Pakiety z programem GRUB można zna-
pularniejsze tego typu programy, dostar- leźć w praktycznie każdej dystrybucji.
czane wraz z dystrybucjami Linuksa, to Co więcej, podczas instalacji dystrybu-
LILO i GRUB (Grand Unified Bootloader). cji możemy wybrać program uruchomie-
W niniejszym artykule postaram się przy- niowy, z którego chcemy korzystać. Jeśli
bliżyć to drugie narzędzie. zdecydujemy się na GRUB-a, to system
od razu postara się odpowiednio dosto-
Przykład użycia sować jego konfigurację. Jeśli jednak nie
Jestem tradycjonalistą. Nie ukrywam zdecydowaliśmy się na instalację GRUB-a,
tego. Z tego powodu przez bardzo długi musimy to zrobić teraz sami.
czas (szczególnie na studiach) urucha-
miałem Linuksa z dyskietki. Koledzy
z pokoju przez długi czas nie mogli dojść,
dlaczego uruchamia mi się inny system
niż im. No i po co w ogóle uruchamiać
system, na którym nie można pograć
w Dooma ? Później zacząłem korzystać
z LILO. Dzięki temu programowi rozru-
chowemu nie musiałem już pamiętać,
w której kieszeni została dyskietka.
Na płycie CD/DVD Ponadto, mój komputer był już wtedy
Rysunek 1. Wersja GRUB-a obecnie
Na płycie CD/DVD znajdują się bezpieczny od zakusów studenckiej
wykorzystywana w dystrybucjach nie jest
narzędzia omawiane w artykule. braci, więc mogłem sobie pozwolić na
już rozwijana
odrobinę luksusu. I chociaż w kolej-
52 luty 2005
grub dla początkujących
www.lpmagazine.org 53
dla początkujących
Opcje ogólne
Oprócz powyższych czterech linii, warto
Nazewnictwo dysków i partycji
od razu dodać kilka innych, które określą W pliku konfiguracyjnym GRUB-a (/boot/ larne jest wskazywanie partycji za pomocą
zachowanie naszego menu. Są to nastę- grub/grub.conf) zazwyczaj nie używa- etykiety. Jeśli w naszym pliku konfiguracyj-
pujące linie: my znanych z Linuksa oznaczeń dysków nym mamy linię postaci: kernel /vmlinuz-
i partycji, takich jak hda, hdb2 i tym podob- 2.4.22-1 ro root=LABEL=/, to zwróćmy
default=0 ne. Zamiast tego, widzimy oznaczenia typu uwagę na tekst root=LABEL=/. Zastępuje
timeout=30 (fd0) lub (hd1,2). Jest to nieco mylące, na on zwykły tekst postaci root=/dev/hda1 (jeśli
początku, lecz można się szybko przyzwy- nasz katalog / jest umieszczony na partycji
Umieszczamy je przed (podkreślam czaić. hda1). Można zastanawiać się, co to daje i
– przed) wymienionymi wcześniej linia- Opis (fd0) oznacza pierwszy napęd czemu się tego używa. Zapis taki pozwala
mi, zaraz na początku pliku /boot/grub/ dyskietek (należy pamiętać o nawia- nam swobodnie przekładać dysk w ramach
grub.conf. Pierwsza z nich określa, która sach i braku odstępu pomiędzy znakami). naszego komputera, np. w przypadku dokła-
pozycja menu będzie domyślnie wybra- W przypadku dysków twardych nazwa dania nowego napędu lub nagrywarki. Jeśli
na. Jak wiemy, GRUB liczy od zera, (hd0) odpowiada dyskowi hda, nazwa (hd1) stosujemy etykiety, nie musimy wówczas
więc w naszym przykładzie wybraliśmy to dysk hdb itd. Jak więc widać, zamiast liter poprawiać plików konfiguracyjnych (m.in.
pierwszą (i na razie jedyną) pozycję w używamy cyfr, zaczynając od zera. Aby grub.conf i /etc/fstab).
menu. Druga opcja wskazuje, że przez 30 wskazać konkretną partycję, dodajemy jej Powstaje pytanie, jak odczytać i stwo-
sekund (możemy ustawić inną wartość) numer (znów licząc od zera) po przecinku. rzyć etykiety dla partycji. Służy do tego
GRUB będzie czekał na naszą decyzję. Tak więc dla hda1 mamy (hd0,0), dla hda7 polecenie e2label /dev/hda1, gdzie
Jeśli nie wciśniemy żadnego klawisza, to – (hd0,6), a dla hdc3 – (hd2,2). Wystarczy zamiast /dev/hda1 wstawiamy nazwę par-
uruchomi automatycznie pozycję menu w zasadzie pamiętać, że numerujemy od 0, tycji ext2 lub ext3. Polecenie to spowoduje
wskazaną w opcji default. W przypadku, a nie od 1. Jeśli mamy wątpliwości, możemy wyświetlenie etykiety przypisanej do party-
gdy użyliśmy opcji timeout bez korzysta- przypisanie nazw do dysków sprawdzić cji. Jeśli chcemy nadać partycji nową etykie-
nia z opcji default, uruchomiona zostanie w pliku /boot/grub/device.map. Dla kompu- tę, to stosujemy zapis e2label /dev/hda1
pierwsza zdefiniowana pozycja w menu. tera posiadającego tylko jeden napęd dys- etykieta.
kietek i jeden dysk twardy, plik ten powinien Przy okazji warto zaznaczyć, że z ety-
Zapisywanie GRUB-a na dysk mieć następującą zawartość: kiet możemy korzystać tylko wtedy, gdy
Teraz już możemy zapisać GRUB-a na ładujemy również odpowiadający jądru
dysk (jeśli jeszcze tego nie robiliśmy). (fd0) /dev/fd0 RAM-dysk. Służy do tego polecenie initrd
Zazwyczaj będziemy chcieli umieścić go (hd0) /dev/hda /initrd-2.4.22-1.img, umieszczone pod
na pierwszym dysku. Służy do tego pole- wspomnianą wcześniej linią pliku konfigu-
cenie grub-install /dev/hda. W niektórych dystrybucjach (np. w Red racyjnego.
Jeśli później zmienimy zawartość Hat i pochodnych – Fedora i Aurox) popu-
pliku konfiguracyjnego /boot/grub/grub.
conf, to nie będziemy musieli ponow-
nie wykonywać tego polecenia. GRUB po to, aby czasem pograć) lub z FreeBSD kernel /vmlinuz-new ro root=LABEL=/
automatycznie rozpozna zmiany w pli- (np. ze względu na studia czy pracę). initrd /initrd-2.4.22-1a.img
ku i podczas kolejnego uruchomie-
nia komputera wyświetli odpowied- Inne dystrybucje Linuksa Jeśli nie wygenerowaliśmy RAM-dysku,
nie menu. W zasadzie jedyny przypa- W przypadku, gdy chcemy z pomocą to nie dopisujemy ostatniej linii, a zamiast
dek, gdy możemy chcieć wydać ponow- GRUB-a uruchamiać również inne dystry- root=LABEL=/ musimy podać odpowiednią
nie to polecenie, to moment aktualizacji bucje Linuksa zainstalowane w naszym nazwę partycji (w naszym przykładzie
GRUB-a do nowszej wersji. komputerze, postępujemy tak samo, jak root=/dev/hda9). Jeśli o tym zapomnimy, to
Warto uruchomić ponownie kompu- w przypadku opisanym w rozdzia- nasz system przestanie się ładować na eta-
ter, aby sprawdzić, jak działa nasz GRUB. le Uruchamianie Linuksa. Wystarczy pie montowania głównego systemu plików.
Powinniśmy zobaczyć proste menu dopisać kolejną sekcję zaczynają-
z jedną pozycją do wyboru. Po jej zatwier- cą się od linii title i zawierającą odpo- Windows, DOS
dzeniu klawiszem [Enter] (lub odczeka- wiednie opcje. Tego samego sposo- Najprostszym sposobem na uruchamia-
niu 30 sekund) powinien załadować się bu możemy zresztą użyć, gdy chcemy nie systemów z rodziny Windows jest
nasz Linux. przetestować nowe jądro w naszej dystry- umieszczenie na końcu pliku /boot/grub/
bucji. Przypuśćmy, że skompilowaliśmy grub.conf następujących linii:
Uruchamianie różnych samodzielnie jądro i nazwaliśmy je
systemów vmlinuz-new. Wówczas w pliku /boot/ title DOS lub Windows
Możliwości GRUB-a najlepiej wykorzysta- grub/grub.conf możemy na końcu dopi- rootnoverify (hd0,0)
my, jeśli mamy zainstalowane również inne sać następujące linie: chainloader +1
systemy operacyjne – bardzo wielu użyt-
kowników systemu spod znaku pingwi- title Aurox Linux (2.4.22-1a) Polecenie title już znamy. W linii rootno-
na korzysta również z Windows (choćby root (hd0,7) verify wskazujemy partycję, na której jest
54 luty 2005
grub dla początkujących
umieszczony system, który chcemy zała- slice ma być zamontowany, to możemy Oczywiście, zamiast MEMTEST możemy
dować. Polecenie to różni się od polece- użyć postaci (hd1,0,a). wstawić inny odpowiadający nam tytuł.
nia root tym, że wskazana partycja nie Pamiętajmy, że te linie dotyczą wciąż
jest montowana. Polecenie chainloader Uruchamianie Memtest86+ naszego przykładu. Jeśli katalog /boot/
przekazuje kontrolę do następnego pro- Od czasu do czasu warto przetestować mamy na innej partycji, to musimy odpo-
gramu rozruchowego. Jak to działa? Jeśli pamięć naszego komputera, aby zawcza- wiednio dostosować wartości poleceń
na partycji /dev/hda1 mamy zainstalowa- su wykryć wszelkie problemy. Dwa naj- root i kernel.
ny tylko pojedynczy system (np. DOS lub lepsze programy przeznaczone do tego Po zapisaniu zmian możemy już zre-
Windows 98), to zostanie on uruchomio- celu to Memtest86 i Memtest86+. GRUB startować system, a w naszym menu
ny. Jeśli mamy na dysku zainstalowane może nam pomóc w ich uruchomieniu. powinna pojawić się nowa opcja – MEM-
systemy Windows 98 i Windows XP, to Wystarczy wybrać jeden z wymie- TEST. Jeśli ją wybierzemy, uruchomi się
program uruchomieniowy zainstalowany nionych programów, gdyż obydwa czer- program Memtest86+ i od razu rozpocz-
przez Windows XP potrafi obsłużyć oba pią nawzajem ze swoich kodów źródło- nie testowanie pamięci. Opcje programu
te systemy. Wystarczy więc w poleceniu wych. Osobiście polecam Memtest86+. są dostępne po wciśnięciu klawisza [c],
rootnoverify wskazać partycję, na której Najpierw musimy pobrać odpowied- natomiast klawiszem [ESC ] możemy zre-
jest zainstalowany program uruchomie- ni plik ze strony domowej programu startować komputer, jeśli nie mamy czasu
niowy Windows XP. Dzięki temu, po (http://www.memtest.org/ ). Odnajduje- na przeprowadzanie pełnego testu.
wybraniu w menu GRUB-a pozycji DOS my sekcję Download (Pre-built & ISOs),
lub Windows, zobaczymy kolejne menu, w której znajdują się już skompilowane Upiększanie GRUB-a
pozwalające nam wybrać pomiędzy Win- wersje. Następnie z sekcji odpowiada- Jeśli nie podoba nam się domyślny
dows 98 a Windows XP. jącej najnowszej wersji (w chwili pisa- wygląd menu GRUB-a, możemy spróbo-
nia artykułu była to wersja 1.40) pobie- wać je nieco ubarwić. Jedną z możliwo-
FreeBSD ramy plik znajdujący się pod odnośni- ści jest ustawienie lub zmiana rysunku
Systemy z rodziny FreeBSD możemy uru- kiem Download – Pre-Compiled Boota- wyświetlanego w tle. Ponadto, możemy
chamiać w analogiczny sposób, jak Win- ble Binary (.gz). Plik ma zaledwie dopasować kolory czcionki do naszych
dows i DOS, czyli korzystając z poleceń około 40 kB, więc jego pobieranie nie upodobań.
rootnoverify i chainloader. Możemy też powinno potrwać zbyt długo. Dla pew- Większość dystrybucji dostarcza
wskazać dokładnie na program /boot/ ności możemy sprawdzić, czy plik jest swoje własne tło dla GRUB-a, więc naj-
loader z pomocą następujących linii poprawny. W tym celu wchodzimy do prawdopodobniej mamy już w pliku kon-
w pliku /boot/grub/grub.conf : katalogu, w którym znajduje się nasz figuracyjnym odpowiednią opcję. Jest to
plik i wydajemy polecenie: linia o zawartości podobnej do poniż-
title FreeBSD szej:
root (hd1,a) # md5sum memtest86+-1.40.bin.gz
kernel /boot/loader splashimage=(hd0,7)/grub/splash.xpm.gz
Oczywiście, jeśli pobraliśmy nowszą
Widać tu użycie innego nazewnictwa. wersję, to musimy odpowiednio dosto- Linia ta opcji splashimage przypisuje plik
Wynika to stąd, że FreeBSD nazywa sować nazwę pliku. W wyniku powin- splash.xpm.gz znajdujący się w katalo-
swoje partycje literami alfabetu, niśmy otrzymać ciąg znaków (tzw. skrót gu /grub/ na partycji /dev/hda8 (a więc
a w dodatku wprowadza pojęcie slice MD5), który porównujemy z ciągiem w naszym przykładzie plik ten znajduje
(tzw. plastra – natywnej partycji Fre- znaków umieszczonym obok odnośni- się w katalogu /boot/grub/ ).
eBSD). Jeśli więc mamy FreeBSD zain- ka do pliku na stronie domowej progra- Jeśli w naszym pliku nie ma takiej
stalowane na pierwszej partycji drugie- mu. Jeśli oba ciągi są takie same, możemy linii, to należy ją dodać, odpowiednio
go dysku, to zapis (hd1,a) powinien być przystąpić do następnych czynności. dopasowując wartości. Linia ta powin-
odpowiedni. Wyszuka on pierwszy slice, Czas na rozpakowanie pliku. Doko- na być umieszczona przed pierwszą linią
na którym znajduje się partycja a. Jeśli nujemy tego poleceniem gzip -d mem- title. Możemy ją wstawić zaraz poniżej
chcemy dokładnie sprecyzować, który test86+-1.40.bin. Następnie uzyskujemy opcji timeout.
uprawnienia superużytkownika (wydaje- Powstaje pytanie, skąd wziąć rysunki.
my polecenie su - i podajemy hasło użyt- Jak widać, w opcji splashimage nie poda-
kownika root), po czym kopiujemy plik jemy plików w popularnych formatach,
memtest86+-1.40.bin do katalogu /boot/. takich jak PNG czy JPG. Zamiast tego,
Teraz pozostało nam odpowiednio zmo- mamy tu plik w formacie XPM, skompre-
dyfikować plik konfiguracyjny GRUB-a. sowany programem Gzip. To nie jedyne
Otwieramy go w naszym ulubionym edy- ograniczenie. Nasz obrazek może mieć
torze (np. Vim) i na końcu dopisujemy tylko 14 kolorów i rozdzielczość 640x480
dwie linie: pikseli. Nie brzmi to może zbyt zachęca-
jąco, ale zapewniam, że można przygo-
Rysunek 4. Memtest86+ zajmuje niewiele title MEMTEST tować interesujące rysunki spełniające
miejsca, lecz jest bardzo przydatny root (hd0,7) te wymagania. Zacznijmy od obejrzenia
kernel /memtest86+-1.40.bin kilku przykładowych rysunków.
www.lpmagazine.org 55
dla początkujących
56 luty 2005
grub dla początkujących
www.lpmagazine.org 57
dla początkujących
wpisując polecenie grub. Mamy wówczas były dostępne tylko dwie możliwości Jeśli chcemy całkiem uprościć sobie
podobne możliwości, jak w opisywa- – uruchomienie jednego z systemów ustawianie tła menu GRUB-a, możemy
nej wyżej linii poleceń, lecz oczywiście lub wciśnięcie klawisza [p]. Jeśli po skorzystać z programu GrubTk. Wystar-
z niektórych poleceń nie możemy korzy- wciśnięciu klawisza [p] podamy pra- czy w nim podać tylko nazwę pliku
stać (dotyczy to przykładowo polecenia widłowe hasło (to, które wpisywaliśmy z rysunkiem, a program zajmie się
splashimage). w poleceniu md5crypt), to dopiero resztą.
wtedy uzyskamy dostęp do możliwości A jeśli chcemy zobaczyć, do czego
Zabezpieczenia opisywanych w rozdziale Obsługa. jeszcze można wykorzystać GRUB-a, to
Menu oferowane przez GRUB-a jest Nadal użytkownik może urucho- zainstalujmy sobie grę GRUB Invaders.
bardzo wygodne, lecz czasem daje zbyt mić dowolną pozycję w menu, a to nie Jest ona uruchamiana przez GRUB-a
wiele możliwości. Jak przekonaliśmy zawsze musi nam odpowiadać. Skoro i nie wymaga do działania żadnego
się w poprzednim rozdziale, użytkow- już mamy ustalone hasło, wystarczy systemu operacyjnego.
nik mający dostęp do GRUB-a może teraz w sekcji title, którą chcemy zablo-
dowolnie zmieniać parametry wywo- kować, umieścić polecenie lock. Musi Zakończenie
łania systemu, a nawet uzyskać dostęp ono być umieszczone od razu pod linią Wydawałoby się, że program urucho-
do chronionych plików. Na szczęście, title, gdyż użytkownik może wykony- mieniowy to proste narzędzie pozwa-
GRUB pozwala na zablokowanie takie- wać wszystkie polecenia aż do napo- lające tylko wskazać, który system ma
go dostępu. tkania polecenia lock. W tym momen- być uruchomiony. Tymczasem, okazuje
Służy do tego hasło broniące dostę- cie zostaje zapytany o hasło i dopóki się, że jest to program, który możemy
pu do edycji pozycji w menu, jak rów- nie poda prawidłowego, nie będzie stosunkowo łatwo dopasować do
nież do linii poleceń. Jeśli chcemy, mógł wykonać dalszych poleceń. Jak swoich potrzeb. Z jego pomocą uru-
to nawet uruchomienie poszczegól- więc widać, umieszczanie polecenia chomimy nie tylko systemy, ale rów-
nych systemów może wymagać poda- lock na końcu sekcji title zazwyczaj nież takie programy, jak Memtest86.
nia hasła. mija się z celem – lepiej umieścić je na GRUB może stanowić barierę bronią-
Jeśli chcemy zabezpieczyć w ten początku. cą innym użytkownikom dostępu do
sposób nasz system, to – oczywiście – Należy zaznaczyć, że zabezpieczenie naszego systemu, równocześnie nie
potrzebujemy do tego uprawnień użyt- to nie jest doskonałe. Nie można liczyć, zmniejszając naszej wygody obsługi.
kownika root. Najpierw wygenerujemy że założenie hasła na GRUB-a zabezpie- Dodatkowo, może witać nas naszym
nasze hasło. Uruchamiamy linię pole- czy nas przed niecnymi zamiarami osób ulubionym rysunkiem. Warto zapoznać
ceń GRUB-a – grub. Tym razem sko- mających bezpośredni dostęp do kom- się z jego dokumentacją i poznać inne
rzystamy z polecenia md5crypt. Po jego putera. Zawsze jednak może zwiększyć jego funkcje.
wydaniu zostaniemy zapytani o hasło. wygodę korzystania z komputera oraz
Wpisujemy je (niech tylko nie będzie zabezpieczyć nas przed mniej doświad-
zbyt łatwe do odgadnięcia) i wciskamy czonymi użytkownikami.
[Enter ]. W odpowiedzi zobaczymy linię W Internecie:
z zakodowanym hasłem. Ułatwianie konfiguracji • Strona domowa GRUB-a:
Teraz edytujemy nasz plik konfigu- Jeśli nie chcemy ręcznie zmieniać pliku http://www.gnu.org/software/grub/
racyjny (np. vim /boot/grub/grub.conf) konfiguracyjnego GRUB-a, możemy • GNU GRUB splashimage howto:
i na jego początku umieszczamy linię skorzystać z jednego z konfigurato- http://ruslug.rutgers.edu/~mcgrof/
o treści: rów. Najlepszym rozwiązaniem wydaje grub-images/
się być moduł Webmina dostępny • Różne tła dla menu GRUB-a:
password --md5 S w sekcji Sprzęt –>Inicjator systemu http://vision.featia.net/linux/
$1$ikVvf0$naEIsTUTM5yM1MYrx3Ms7. GRUB. Oprócz tego, mamy do dyspo- grubsplash/
zycji działający w trybie tekstowym • Strona domowa Memtest86:
Oczywiście, zamiast podanej tu warto- skrypt Grubconfig oraz przeznaczony http://www.memtest86.com/
• Strona domowa Memtest86+:
ści należy wkleić wynik działania pole- dla środowiska graficznego program
http://www.memtest.org/
cenia md5crypt. Wykorzystanie podanej GrubConf. Pierwszy z nich jest mało
• Strona domowa skryptu Grubconfig:
wyżej wartości nie jest dobrym pomy- intuicyjny, lecz ma kilka ciekawych http://www.tux.org/pub/people/kent-
słem, gdyż jest to zakodowane słowo opcji, a przy tym nie wymaga instala- robotti/looplinux/index.html
password. Skoro w pliku przechowu- cji – wystarczy rozpakować archiwum • Strona domowa programu GrubConf:
jemy hasło, powinniśmy się upewnić, i można go uruchomić. http://grubconf.sourceforge.net/
że nie będzie ono łatwe do odczytu. Osoby samodzielnie kompilują- • Strona domowa programu Install
W tym celu ustawiamy odpowiednio ce jądro prawdopodobnie zainteresu- Kernel:
prawa dostępu do pliku: ją się programem Install Kernel, który http://installkernel.tripod.com/ik/
nie tylko zwalnia nas od konieczności index.html
# chmod 600 /boot/grub/grub.conf wykonania szeregu poleceń, ale rów- • Strona domowa programu GrubTk:
http://freshmeat.net/projects/grubtk/
nież automatycznie uaktualnia konfi-
• Strona domowa gry GRUB Invaders:
Ta zmiana wystarczy, aby przy urucha- gurację programów uruchomieniowych
http://www.erikyyy.de/invaders/
mianiu komputera w menu GRUB-a (oprócz GRUB-a, obsługuje też LILO).
58 luty 2005
aktualności
księgozbiór piotrt@lpmagazine.org dział prowadzi: Piotr Truszkowski
środowisko graficzne (Sun Looking Glass) znamy się z trybem debugowania oraz
powstały w oparciu o ten wspaniały, wie- poznamy przykładowe aplikacje.
loplatformowy język programowania. Eclip- Książka pełna jest różnego rodza-
se jest jednym z kompletnych i darmowych ju przykładów i czytając ją aż prosi się
środowisk programistycznych, służących o płytkę CD, która pozwoli nam skorzystać
m.in. do pisania aplikacji w języku Java. z licznych kodów źródłowych. Takiej płytki
Steve Holzner, autor książki zatytułowa- dołączonej do książki bardzo brakuje, za co
nej “Eclipse”, przedstawia nam to środowi- w moim odczuciu wydawcy należy się duży
sko ze wszystkich możliwych stron. Skon- minus. Przykłady można co prawda pobrać
centrował się na Eclipse 2.1, ale pozycja z Internetu, ale nie każdy ma do niego
obejmuje również Eclipse 3.0. dostęp. Szkoda, że nie dołączono również
Książka jest ukierunkowana na począt- samego Eclipse.
kującego programistę, który postanowił Ogólnie, tytuł prezentuje się dobrze,
O języku Java słyszał chyba każdy. napisać swój pierwszy program właśnie a początkującemu programiście pozwoli
Popularne w Internecie pokoje rozmów w Eclipse. Znajdziemy w niej ogólne omó- bez większych trudności poznać świat Javy.
zwane chatami, liczne programy, a nawet wienie środowiska i podstawy Javy, zapo- Moja ocena: 3+/5
Bestsellery Merlina
Lista najlepiej sprzedających się książek informatycznych
w sklepie internetowym www.merlin.pl, w miesiącu listopadzie:
1. OpenBSD. Tworzenie firewalli za pomocą PF - J. Artymiak, Wyd. Helion, 2004
2. Zarządzanie projektami IT – J. Phillips, Wyd. Helion, 2004
3. Macromedia Flash MX 2004 Bible – R. Reinhardt, S. Dowd, Wyd. Helion, 2004
4. Jakościowe aspekty kompresji obrazu i dźwięku - poglądowo o DivX – D. Nasiłowski, Wyd. Mikom, 2004
5. Programowanie Asembler IBM PC – P. Abel, Wyd. Read Me, 2004
6. Praktyczne podejście do inżynierii oprogramowania, Wyd. WNT, 2004
7. Microsoft Visual Basic .NET Księga przykładów, Wyd. APN PROMISE, 2004
8. Język C++ - B. Stroustrup, Wyd. WNT, 2004
9. Naucz się z nami! Obsługi komputera (wydanie 4), Wyd. Help, 2004
10. CorelDraw 11 – M. Gradias, Wyd. Read Me, 2004
www.lpmagazine.org 59
dla początkujących
Sztuczki i kruczki
Grzegorz Niewęgłowski
Niespodziewane ją, aby wiersze tekstu były oddziela- Łatwo jest zmienić nazwę jedne-
“zawieszanie się” terminali? ne dwubajtową sekwencją <CR><LF>, mu plikowi. Nawet dziesięć plików
Czy czasem zauważasz, że terminal tek- natomiast Linux zadowala się samym można przemianować ręcznie. Ale gdy
stowy (np. XTerm lub zwykły linuksowy <LF>. Linuksowe pliki bez konwer- są ich setki, na dodatek rozproszone
terminal VGA) przestaje reagować? Zupeł- sji łatwo rozpoznać pod Windows po całym drzewie katalogów? Można
nie, jakby został zamrożony, nie przyjmuje – wszystkie wiersze zwykle zosta- wtedy próbować stworzyć jakiś auto-
żadnych naciśnięć klawiszy, nie aktualizu- ną sklejone w pojedynczy, długi ciąg, mat działający rekursywnie, oparty na
je wyświetlanego tekstu, a jedynym wyj- a to skutecznie utrudnia czytanie pętlach for..do..done. Można również
ściem jest wyłączenie go? Jeśli tak, to być takiego tekstu. próbować połączyć find, iconv i mv,
może przypadkiem nacisnąłeś [Ctrl]+[s]. Wiele edytorów potrafi na życze- ale takie rozwiązanie będzie pewnie
Aby odblokować terminal, trzeba naci- nie użytkownika konwertować teksty dalekie od ideału wydajności i obsłu-
snąć [Ctrl]+[q]. Takie pomyłki przytra- między tymi standardami (np. w VIM-ie gi błędów.
fiają mi się stosunkowo często, więc można zrobić to przez :set fileformat Rozwiązaniem może być skrypt
całkiem wyłączyłem swoim termina- = unix lub :set fileformat= dos przed convmv. Zwykle nie wchodzi on w skład
lom możliwość reagowania na [Ctrl]+ zapisem pliku), ale istnieją też (jak linuksowych dystrybucji, ale można go
[s]. Można to zrobić wywołując polecenie przy kodowaniach) dedykowane pro- łatwo pobrać z http://j3e.de/linux/
stty -ixon, a jeśli dopiszesz je do plików gramy do tego celu. W razie potrzeby convmv/. Polecenie convmv -r -i -f
konfiguracyjnych swojej powłoki, np. do (choćby przy obróbce wsadowej, gdy utf-8 -t iso8859-2 –notest ~/katalog
~/.bashrc czy ~/.bash_profile, to unik- trzeba konwertować wiele plików, spowoduje rekursywne przejście przez
niesz tego na stałe. ■ a okazuje się, że nie ma pod ręką ~/katalog, wyszukując nazwy plików
gotowego narzędzia) można wykorzy- w utf-8 i konwertując je na iso8859-2.
Konwertowanie strony kodowej stać SED-a: Opcja -i włącza dodatkowo tryb
plików tekstowych interaktywny, w którym użytkownik
Istnieje sporo specjalnych narzędzi słu- # sed 's:$:\r:' -i plik_unix.txt widzi dokładnie, które pliki będzie
żących do konwertowania tekstu między # sed -e 's:\r::' -i plik_unix.txt próbował konwertować convmv. Skrypt
różnymi kodowaniami. Zamiast instalo- jest dobrze przygotowany na różne
wać do tego celu kolejny pakiet, można Pierwsze polecenie zamienia końce sytuacje, co widać w obsługiwanych
posłużyć się poleceniem iconv. To stan- znaków w plik_unix.txt na coś czytel- przez niego opcjach. Dzięki niemu
dardowa część pakietu Glibc, więc powi- nego pod Windows, a drugie zamie- konwersja nazw całego drzewka
nien znajdować się na każdym współ- nia z powrotem końce linii na format plików nie stanowi już problemu,
czesnym systemie linuksowym. Aby uniksowy (czyli powraca do stanu a na pewno jest bezpieczniejsza niż
przekonwertować tekst w iso8859-2 wyjścia). ■ używanie napisanych na szybko skryp-
do unikodowego utf-8, można użyć tów opartych na iconv i mv. ■
takiego polecenia: Konwertowanie kodowań nazw
plików Cykliczne uruchamianie
# iconv -f iso8859-2 -t utf-8 S Rzadziej potrzebną funkcją jest kon- polecenia w trybie tekstowym
<plik_w_iso.txt >plik_w_utf.txt wertowanie samych nazw plików, ale Przydatnym (choć często niezna-
przez to potrafi być ono dużo bardziej nym) poleceniem jest watch z pakie-
Windowsowe cp1250 konwertuje się na kłopotliwe. Problem pojawia się przy tu ProcPS. Pozwala on w regularnych
iso8859-2 analogicznie: przestawianiu systemu z iso8859-2 odstępach czasu (np. co sekundę) uru-
na utf-8, albo gdy używa się glo- chamiać jakieś polecenie. Dzięki temu
# iconv -f cp1250 -t iso8859-2 S balnie iso8859-2, a jakaś nowomod- można przykładowo obserwować
<plik_windows.txt >plik_iso.txt na aplikacja (np. ROX-Filer) uparcie stale aktualizowaną zawartość jakie-
tworzy pliki o nazwach zakodowanych goś pliku z /proc lub wyjście pole-
Spis obsługiwanych kodowań można w utf-8... lub w innych sytuacjach, np. cenia ifconfig. Najprostsze zastoso-
obejrzeć przez iconv –list. przy niedbałym kopiowaniu plików wanie to:
Pozostała tylko kwestia znaków między systemami plików, używający-
końca linii – DOS/Windows wymaga- mi różnych standardów kodowania. # watch ifconfig eth0
60 luty 2005
sztuczki i kruczki dla początkujących
Ale to nie koniec możliwości. Można Jak odczytać temperaturę obszerny zestaw płyt głównych i chip-
np. spowolnić czas odświeżania do 1 procesora pod Linuksem? setów. W skład tego pakietu wcho-
minuty: Problem jest bardziej złożony – jak dzą dwa polecenia: mbmon oraz
w ogóle odczytać czujniki z płyty xmbmon.
# watch -n 60 ifconfig eth0 głównej? Większość płyt ma wbudo- Po uruchomieniu mbmon możemy
wane stosowne czujniki monitorujące zobaczyć coś takiego:
zlikwidować “tytuł” wyświetlany przez parametry pracy – szalenie przydatne,
watch: gdy mamy zamiar przetaktować proce- Temp.= 35.0, 48.0, 0.0;
sor lub podejrzewamy, że niestabilna Rot.= 0, 3214,0
# watch -n 60 -t ifconfig eth0 praca komputera to wina słabego wen- Vcore = 1.66, 0.10;
tylatora lub przeciążonego zasilacza. Volt. = 3.55, 5.05, 12.59, -12.06, -5.14
a nawet włączyć bardzo wygodny tryb Nowe płyty główne często udostęp-
oznaczania zmian (watch będzie oznaczał niają te dane jako część implementacji Ten skondensowany odczyt czujni-
te fragmenty tekstu, które zmieniły się od ACPI, a Linux (w wersjach 2.6.x) umie je ków pokazuje temperaturę procesora,
ostatniego uruchomienia): odczytać i udostępnić przez pliki w /proc tempo obrotu wiatraków oraz wysoko-
lub /sys. Wtedy trzeba je jakoś pokazać ści poszczególnych napięć na płycie.
# watch -n 60 -t -d ifconfig eth0 użytkownikowi – dobrą nakładką może Za pomocą opcji mbmon możemy
być GKrellM, który, obok zintegrowa- zmieniać format prezentowanych da-
Większość tego (może z wyjątkiem nych wykresów pokazujących obciąże- nych, ale to kwestia gustu, więc poprze-
oznaczania zmian) dałoby się łatwo nie procesora i sieci, umie podłączyć się stanę na pokazaniu formatu domyśl-
wykonać za pomocą pętli while i pole- pod strumień informacji z czujników tem- nego.
ceń clear oraz sleep, ale watch jest już peratury. Obserwując wzrost temperatu-
prawdopodobnie zainstalowany w sys- Jeśli płyta nie obsługuje ACPI lub ry, spadek prędkości obrotów wiatra-
temie, więc dlaczego z niego nie sko- obsługuje tylko szczątkowo, rozwiąza- ka czy niebezpieczne obniżanie się
rzystać? Obserwowanie wyniku jakie- niem może być pakiet lm_sensors – to napięć, można zdiagnozować wiele
goś cyklicznie odświeżanego polecenia rozbudowany zestaw modułów jądra, awarii maszyny lub przewidzieć te
przydaje się w najmniej spodziewanych pozwalający odczytywać różne infor- dopiero nadchodzące. A zasilacz czy
momentach. ■ macje z płyty głównej, takie jak napię- wentylator lepiej jest wymieniać zanim
cia, obroty wiatraków czy temperatu- osiągną stadium krytyczne i pójdą
Jakich bibliotek używa ten ra. Niestety, pakiet ten może być kło- z dymem.
program? potliwy w konfiguracji, co przy bogac- Niestety, xmbmon nie współpra-
Prosta rzecz, ale często nieodzowna. twie chipsetów odczytujących tempe- cuje z GkrellM, ale dla zwolenników
Jak sprawdzić, które biblioteki współ- raturę utrudnia jego poprawne użycie. graficznego interfejsu istnieje polece-
dzielone są wymagane przez dany pro- Jeśli lm_sensors wchodzi w skład dys- nie xmbmon, pokazujące swoje wyniki
gram? Często wystarczy uruchomić na trybucji, której używasz, to dobrze w formie okienka z prostą grafiką.
nim polecenie ldd, a pojawi się zesta- – moduły są już skompilowane, więc Z omawianym tematem wiąże się
wienie bibliotek, które byłyby łado- wystarczy załadować ich odpowiedni również odczytywanie temperatu-
wane przy uruchamianiu programu. zestaw (pomocne będzie polecenie sen- ry dysku twardego – w końcu dyski
Nie uwzględnia ono niestety dodatko- sors-detect, podpowiadające, jaka elek- też się grzeją i przegrzanie może się
wych bibliotek czy wtyczek, które pro- tronika została wykryta w komputerze), dla nich skończyć fatalnie. Niestety,
gram potem może ładować własno- a potem odczytywać dane poleceniem tutaj sprawa ma się gorzej niż z tem-
ręcznie (tego nie da się z góry przewi- sensors (lub za pomocą GkrellM, gdyż peraturą procesora, ale nie z winy
dzieć), ale w 99% przypadków wynik współpracuje on również z lm_sen- Linuksa, lecz samych producentów
ldd będzie się pokrywał z rzeczywisty- sors). Pakiet lm_sensors jest stopniowo sprzętu. Nadal stosunkowo niewiele
mi rezultatami. integrowany w źródła jądra 2.6.x, ale dysków ma wbudowane czujniki tem-
Taka wiedza przydaje się przy dia- sądząc po obecnym postępie, jeszcze peratury, więc niewielu użytkowników
gnozowaniu problemów z ładowa- długo potrwa zanim zostanie całkowi- będzie mogło sprawdzić, jak miewa
niem bibliotek dynamicznych – ldd, cie wchłonięty. się ich dysk. Można jednak spróbować
obok listy samych bibliotek, wyświetla Jeśli nie mamy dojścia do goto- można – tutaj kluczowym słowem jest
ścieżki dostępu do nich (widać, gdzie wych paczek z lm_sensors, a nie SMART, czyli system autodiagnosty-
szuka bibliotek), a jeśli jakaś biblioteka chcemy kłopotać się kompilowaniem ki dysku. Temperatura jest udostęp-
nie mogła zostać zlokalizowana, to ldd i instalowaniem go samodzielnie, to niana jako część danych SMART, więc
również powiadomi o tym użytkowni- możemy użyć programu xmbmon można ją odczytać za pomocą Smart-
ka w sposób bardziej czytelny niż zro- – to proste narzędzie bez żadnych montools (najpierw uruchamiając
biłby to konsolidator (ang. linker) przy niestandardowych zależności, które smartd, a następnie odczytując dane
próbie uruchamiania programu. Dzięki nie wymaga instalowania modułów dysku przez smartcl -a /dev/hda lub
ldd można również odróżnić progra- jądra ani tworzenia plików konfi- smartctl -a /dev/hda|grep -i temp,
my budowane statycznie od tych dyna- guracyjnych. Ponadto, potrafi auto- aby nie przedzierać się przez nieistot-
micznie. ■ matycznie wykryć i obsłużyć całkiem ne dane). ■
www.lpmagazine.org 61
sprzęt
Kamery
internetowe
pod Linuksem
Piotr Wolny
K
amery internetowe (tzw. video lub /dev/video1, jeśli kamera inter-
webcamy) stają się coraz bar- netowa nie jest naszym jedynym urzą-
dziej popularne. Można ich dzeniem video. Odpowiedź na pytanie,
używać do spotkań w Inter- który moduł będzie nam potrzebny do
necie, nagrywania małych filmów czy zadziałania kamery, jest właściwie naj-
robienia fotografii. Mogą być także wyko- trudniejszym zadaniem przy jej insta-
rzystywane do monitoringu pomiesz- lacji. Pewne wskazówki możemy zna-
czeń. Linux obsługuje sporą część aktu- leźć w ramce Działające kamery, ale
alnie sprzedawanych kamer. często jedyną możliwością jest wyszu-
Ogromna większość tanich kamer kanie informacji na stronach poszcze-
internetowych posiada złącze USB. gólnych sterowników lub na stronie
O instalacji właśnie takiej kamery piszę http://www.linux-usb.org/.
w tym artykule. Gdy wiemy, jaki moduł jądra jest
Pod Linuksem możemy również potrzebny do działania naszej kamery,
korzystać ze zwykłej kamery, podłączo- stajemy przed jedną z trzech możliwości:
nej do wejścia Composite w karcie telewi-
zyjnej. Prostą kamerę analogową można • kamera jest obsługiwana przez naszą
nabyć w niewiele wyższej cenie w skle- dystrybucję Linuksa;
pach elektronicznych. W takim przypad- • wsparcie dla niej znalazło się w now-
ku instalacja samej kamery nie jest oczy- szych wersjach jądra niż posiadane
wiście potrzebna – wystarczy instalacja przez nas;
samej karty telewizyjnej. • kamera jest obsługiwana tylko przez
sterowniki, które można znaleźć na
Instalacja kamery USB stronach internetowych.
Dostęp do obrazu wideo w Linuk-
sie otrzymujemy poprzez pliki urzą-
dzeń /dev/video*. Jeśli zainstalowali-
śmy np. kartę telewizyjną, to mamy
w jądrze moduł videodev oraz moduł
odpowiedzialny za naszą kartę tele-
wizyjną, np. bt848. Działanie kamery,
O autorze podłączonej przez USB, jest bardzo
Autor hobbistycznie i zawodo-
podobne. Również potrzebujemy mo-
wo zajmuje się Linuksem mniej
dułu videodev oraz modułu odpowie-
więcej od czasów jądra 2.0.20.
Obecnie pracuje w organiza- dzialnego za naszą kamerę, czyli najczę-
Rysunek 1. Duża konkurencja na rynku
cji społecznej. Poza Linuksem ściej jednego z następujących: vicam,
kamer internetowych skutkuje nie tylko
fascynuje go rock progresywny. ibmcam, konicawc, ov511, se401,
stosowaniem wymyślnych obudów, ale
Kontakt z autorem: sn9c102 oraz stv680. Po załadowaniu
i częstym wprowadzaniem na rynek
autorzy@lpmagazine.org właściwego modułu, możemy otrzymać
nowych modeli
obraz z kamery na urządzeniu /dev/
62 luty 2005
kamery internetowe sprzęt
www.lpmagazine.org 63
sprzęt
daemon off
videodevice /dev/video0
input 1
norm 0
frequency 0
width 352
height 288
framerate 4
target_dir /var/www/kamera1
snapshot_filename %v-%Y%m%d%H%M%S §
snapshot
snapshot_interval 0
#czułość
threshold 2000
noise_level 32
Rysunek 5. Internetowe wykazy kamer działających pod Linuksem liczą setki pozycji
64 luty 2005
kamery internetowe sprzęt
Działające kamery
Producenci tego typu sprzętu często zmie- Mini jest oparta na stv0680 – sterow-
niają stosowane w kamerach układy, pozo- nik ten jest już w nowych wersjach
stawiając nazwę produktu bez zmian. jądra i w nowych dystrybucjach;
Dodatkowo, obowiązujące na rynku zwy- Webcamn NX, Webcam NX Pro – je-
czaje nakazują wprowadzanie nowych dynie „eksperymentalny” sterownik moż-
modeli co kilka miesięcy, często bez żad- na znaleźć pod adresem http://
nych zmian w parametrach technicznych. zc0302.sourceforge.net/.
W efekcie, na próżno można szukać jakiej- • Trust: w sprzedaży można znaleźć
kolwiek informacji o działaniu pod Linuk- modele oparte na OV511(+) – Space- Rysunek 6. Program GnomeMeeting
sem dużej części aktualnie sprzedawa- C@m 150, SpaceC@m USB, Spa- umożliwia bardzo wygodne
nych kamer USB. ceC@m 200, SpaceC@m 300 – te przetestowanie urządzeń dźwiękowych
Mogę dać pewną radę dotyczą- urządzenia działają dobrze, sterow-
podczas konfiguracji
cą zakupów – dobrze jest skorzystać nik jest w najnowszych dystrybucjach,
z informacji w Internecie, odwiedzając a dodatkowo pod adresem http://
strony linuksowych sterowników, podane alpha.dyndns.org/ov511/; SpaceC@m
Istnieją kamery, dla których usta-
w ramce W Internecie. Znajdziemy tam 320 – ta kamera występuje w dwóch wienie pewnych opcji jest niezbędne
informacje o setkach kamer, które dzia- wersjach: z układem OV511+ działa do ich działania z niektórymi programa-
łają w naszym systemie. Te dane można dobrze, ale z OV519 można otrzy- mi. Przykładowo, aby używać programu
następnie porównać z aktualną ofertą mać z niej obraz tylko przy pomocy GnomeMeeting z kamerą opartą na ukła-
w handlu. W ten sposób istnieje duże specjalnych programów – sterow- dach Phillipsa, potrzebne jest ustawie-
prawdopodobieństwo, że zakupiony pro- nik dostępny tylko na stronie http: nie rozmiaru i częstotliwości odświeża-
dukt będzie działać. //alpha.dyndns.org/ov511/ nie zapew- nia przy pomocy takiej linii w /etc/mod-
Obecnie najpopularniejszymi markami nia kompatybilności z Video4Linux; probe.conf :
kamer internetowych wydają się Logitech, Spycam 300, Spycam 300 Voice są
Creative Labs oraz Trust. Oto niepełna oparte na układzie stv0680 i dzia-
options pwc size=SIF fps=10
lista kamer tych producentów, które powin- łają. Niestety, nie wiem, czy doty-
ny działać pod Linuksem: czy to również modelu 300NX;
Trust SpaceC@m Lite działa na Listę wszystkich opcji, które przyjmu-
• Logitech: Quickcam Express (starsza sterowniku z http://webcam.source je moduł, można uzyskać nie tylko przy
wersja), Quickcam Web – linuksowy forge.net/ (CpiA); Trust SpaceCam 120, pomocy programu modinfo – lepiej jest
sterownik możemy znaleźć na http:// SpaceCam 100 PORTABLE – działają przeczytać odpowiednią dokumenta-
qce-ga.sourceforge.net/; Quickcam 3000 na sterowniku z http://nw802.source cję, np. w źródłach jądra – w katalo-
Pro, QuickCam 4000 Pro, QuickCam forge.net/. gu Documentation/usb znajdziemy pliki
Notebook Pro oraz QuickCam Note-
z opisem dla poszczególnych chipsetów
book wykorzystują układy Philipsa; ste- Gdy kupiliśmy już kamerę USB i podłączy-
kamer: w9968cf.txt, stv680.txt, se401.txt,
rownik na http://www.saillard.org/ oraz liśmy ją do komputera, a nie mamy poję-
w niektórych dystrybucjach; Quick- cia, z jakim sterownikiem może ona dzia-
ov511.txt oraz ibmcam.txt. Jeśli ścią-
Cam Express – sterownik pod adresem łać, powinniśmy sprawdzić identyfikatory gnęliśmy nasz sterownik z Internetu, to
http://home.tiscali.dk/tomasgc/labtec/; USB: dostawcy (vendor) oraz produktu (pro- zapewne w archiwum był plik README
Quickcam Messenger, Home oraz Tra- duct). Mogą one pojawić się w logach sys- lub podobny, zawierający opis wszyst-
veller – w momencie pisania tego arty- temowych, po podłączeniu kamery. Pokaże kich możliwych opcji.
kułu nie posiadały sterowników. je komenda cat /proc/bus/usb/devices Na koniec, nie zapomnijmy o upraw-
• Creative Labs – urządzenia PC Cam albo program Centrum informacyjne KDE. nieniach dostępu do urządzeń /dev/
600, PC Cam 300 posiadają sterownik Znając te dwa identyfikatory, możemy je video*. Aby każdy użytkownik mógł mieć
pod adresem http://mxhaard.free.fr/; wpisać w wyszukiwarce na stronie www.li- dostęp do obrazu z kamery interneto-
Creative WebCam III, WebCam Pro nux-usb.org. Otrzymamy wtedy informa-
wej, wystarczy nam polecenie chmod 666
(model PD1030) są oparte na układzie cję, czy istnieje sterownik do danego urzą-
/dev/video0.
ov511 i sterownik znajdziemy w no- dzenia.
wych dystrybucjach; WebCam Go
GnomeMeeting
Kamera internetowa – jak sama jej nazwa
działała. Na moim komputerze, po wyda- Tak więc, aby ustawić automatyczną jas- wskazuje – najczęściej znajduje zastoso-
niu polecenia modinfo ov51x, pojawiły się ność, progi i ekspozycję, dopisałem nas- wanie do sieciowych spotkań, w których
m.in. informacje: tępującą linię do pliku /etc/modprobe. możemy nie tylko porozmawiać, ale rów-
conf: nież widzieć swojego rozmówcę oraz być
parm: autobright:Sensor automatically § widocznym.
changes brightness options ov51x autobright=1 autogain=1 § Istnieje co najmniej kilka standardów,
parm: autogain:Sensor automatically § autoexp=1 umożliwiających tego typu komunikację
changes gain w Internecie. Jednym z najpopularniej-
parm: autoexp:Sensor automatically § W większości sterowników opcje modułu szych i zapewne najlepiej obsługiwa-
changes exposure pozwalają właśnie na ustawienie tego nych pod Linuksem jest H.323. Jest on
[...] typu parametrów. używany m.in. przez program Microsoft
www.lpmagazine.org 65
sprzęt
66 luty 2005
kamery internetowe sprzęt
nie pokaże żadnego obrazu. Gdy zdecy- trum miasta, stoku narciarskiego, plaży
dujemy, że wystarczy nam komunikacja itp. Takie rozwiązanie najczęściej uatrak-
głosowa oraz transmisja obrazu w jedną cyjnia daną stronę i przyczynia się do
stronę, najprościej jest przekonać zna- zwiększenia liczby odwiedzających.
jomych użytkowników NetMeeting, aby W Linuksie znajdziemy gotowe pro-
zarejestrowali się na serwerze ils.seco- gramy, które wykonają za nas prawie całą
nix.com – wtedy łatwo ich znajdziemy. pracę przy konfiguracji takiej kamery.
Nowe wersje GnomeMeeting pozwalają Najstarszym z nich i wciąż jednym
nam również na rejestrację przy użyciu z najpopularniejszych jest Webcam. Jest
tego programu na innych serwerach, on zawarty w archiwum razem ze źró-
używanych normalnie przez posiada- dłami Xawtv i można go ściągnąć bez-
czy NetMeeting. pośrednio od autora, ze strony http://
linux.bytesex.org/xawtv/. Program ten
Obraz z kamery potrafi odczytać dane z urządzenia
na stronie WWW /dev/video*, nagrać je do pliku jpeg, nało-
Pojęcie kamera internetowa niektó- żyć na obraz dowolny napis (najczę- Rysunek 9. Program Vlc potrafi również
rym kojarzy się bardziej z ozdobnikiem ściej data i czas) oraz dodatkowo wysłać współpracować z kamerami internetowymi
wielu serwisów internetowych w posta- gotowy plik na zdalny serwer, korzysta-
ci obrazu przekazywanego na żywo jąc z protokołu ftp. To ostatnie przyda- zostaje wyłącznie stworzenie strony
z jakiegoś ciekawego miejsca, np. cen- je się najbardziej, gdy postanowiliśmy html, najczęściej z nagłówkiem META
podpiąć kamerę do jakiegoś komputera, HTTP-EQUIV="Refresh", aby zapewnić
który stoi poza serwerownią. Program jej automatyczne odświeżanie w przeglą-
Kamery z OV519 będzie powtarzać te wszystkie opera- darkach gości na stronie.
Urządzenia wyposażone w układ OV519,
cje co zadaną liczbę sekund, bez żadnej
jak np. Trust SpaceC@m 320 czy Sony
EyeToy, stanowią nieliczne przykłady
ingerencji użytkownika. Obraz przez sieć
urządzeń – jak dotąd – niekompatybil- Użycie programu jest bardzo proste Obraz z naszej kamery internetowej
nych z Video4Linux. Znalazłem tylko dwa – wystarczy wydać polecenie webcam możemy przesyłać przez sieć nie
programy, przy pomocy którym możemy plik_konfiguracyjny. Zawartość przykła- tylko w postaci plików jpeg, uaktual-
uzyskać obraz z takich kamer. Pierwszy dowego pliku konfiguracyjnego pokaza- nianych co parę sekund, gdyż dzięki
z nich to program Getjpeg. Znajdziemy go no na Listingu 1. Składa się on z dwóch oprogramowaniu VideoLAN (http:
w archiwum ze sterownikami do kamery sekcji. //www.videolan.org/ ) jest możli-
(plik ov51x-1.65-1.11-mark.tar.bz2) w pod- Pierwsza sekcja ([grab]) zawie- we skompresowanie go i wysyłanie
katalogu test. Aby go skompilować, wy- ra parametry obrazu pobieranego w postaci strumienia danych, m.in mpeg
starczy przejść do tego podkatalogu
z kamery. Powinny one być zrozumia- lub asf. VideoLAN działa na wielu syste-
i wydać samo polecenie make. Wszyst-
łe, nawet bez czytania man webcam. Przy mach operacyjnych, w tym MS Windows,
ko, co możemy wykonać przy pomocy
tego programu, to zapisanie aktualne-
pomocy opcji text wpisujemy własny więc jest możliwe np. nadawanie na
go obrazu z kamery do pliku jpeg. Jeśli opis obrazu z kamery, a delay okre- Linuksie i odbiór na MS Windows.
uruchomimy ./getjpeg -d /dev/video1, śla tutaj, co ile sekund obraz jest ścią- Część dystrybucji zawiera ten pro-
obraz z kamery znajdziemy w pliku gany z kamery i wysyłany na serwer. gram, gdyż jest on rozprowadzany
image-00.jpg, oczywiście przy założeniu, Przyda się również opcja trigger – jeśli na licencji GPL. Najlepiej zainstalo-
że nasza kamera jest powiązana z /dev/ podamy wartość większą od zera, wać wtedy wszystkie pakiety, które
video1. Program ten możemy uruchamiać obraz będzie wysyłany tylko wtedy, posiadają w nazwie VLC. Gdy nie
w odrobinę bardziej fantazyjny sposób, gdy uległ jakiejkolwiek zmianie (coś mamy gotowych pakietów w dystry-
np. ./getjpeg -d /dev/video1 -o `date się poruszyło). Do całkiem profesjo- bucji, możemy posłużyć się gotowy-
+%s`.jpg -n 100 wykona nam 100 zrzu-
nalnego wykrywania ruchu przed mi ze strony www.videolan.org. Przy-
tek obrazu z kamery. Można je następnie
kamerą internetową najlepiej używać kładowo, dla Auroksa 10.0 można
konwertować np. na film avi, korzystając
z Mencodera.
znacznie bardziej zaawansowanego ściągnąć pliki przeznaczone dla
Kolejnym programem, współpracują- programu Motion, o którym napiszę Fedora Core (vlc-binary.tar.gz oraz
cym z takimi kamerami, jest Showvideo, w dalszej części. fedora1-updates.tar.gz). Po rozpako-
który znajdziemy pod adresem http:// Sekcja [ftp] zawiera adres serwera, waniu zostanie utworzony katalog vlc,
www.wlug.org.nz/OV519WebCam. Jego nazwę użytkownika, hasło, katalog oraz a w nim cały zestaw pakietów rpm.
również kompiluje się, używając wyłącz- nazwę pliku, w którym ma się znaleźć Polecenie rpm -U vlc/* --force --nodeps
nie polecenia make. Program ten pokazu- obraz z naszej kamery. Jeśli wpiszemy -h zainstaluje je wszystkie (będą tam
je na żywo obraz z kamery w okienku śro- local=1, obrazy nie będą wysyłane na również nowe wersje wielu bibliotek).
dowiska X Window i to jedyna jego funk- żaden zdalny serwer, tylko zapisywane VideoLAN posiada bardzo bogate
cja. Cóż, przynajmniej wiemy, że urzą-
w położeniach określonych przez para- możliwości, ale podam jedynie
dzenie jest sprawne, a jakość obrazu...
metry file, dir oraz tmp. prostą metodę na przesyłanie obrazu
niestety kiepska, przynajmniej w przy-
padku mojej Trust SpaceC@m 320.
Tak więc, po skonfigurowaniu pro- z kamery internetowej między dwoma
gramu Webcam, administratorowi po- komputerami w sieci. W identycz-
www.lpmagazine.org 67
sprzęt
Motion
Jednym z ciekawszych programów,
współpracujących z kamerą internetową,
którym chciałbym zainteresować Czytelni-
ków, jest Motion (http://motion.sf.net/ ).
Jak wcześniej wspominałem, program ten
obserwuje kamerę internetową lub inne
urządzenie, kompatybilne z V4L, oraz
nagrywa obraz z niego do plików jpeg,
mpeg czy avi, ale tylko w momencie, gdy
zmienia się obraz w kamerze. Doskonale
nadaje się do monitoringu pomieszczenia
albo terenu otwartego. Dzięki niemu, jeśli
np. pozostawimy kamerę pilnującą ogrodu
Rysunek 10. Nowe wersje programu Vlc umożliwiają bardzo łatwe przesyłanie obrazu przez weekend, po powrocie będziemy
przez sieć mieli do obejrzenia tylko zestaw obrazków
lub filmów, zarejestrowanych w momen-
ny sposób możemy przesyłać obraz MPEG TS – powinno działać ze wszyst- cie, gdy przed kamerą wystąpił jakiś ruch,
z DVD, z pliku avi, a nawet z karty kimi kamerami internetowymi. W przy- a nie cały kilkudziesięciogodzinny mate-
DVB. Korzystam przy tym z dosyć padku problemów, warto wypróbować riał. Przy pomocy Motion możemy rów-
nowej wersji vlc (0.8.1) oraz nakładki ASF. Ostatnie pytanie odnosi się do warto- nież tworzyć bardzo efektowne filmy
wxvlc, które są dostępne w dystrybu- ści TTL (Time To Live) pakietów przesyła- z obserwacji, np. zachowania rośliny
cji Debian Sid. nych przez sieć. Innymi słowy, określamy w ciągu całego dnia – widać, jak reaguje
Zaczynamy od uruchomienia progra- tutaj, przez ile ruterów mogą one przejść. ona na światło, rozwija kielich kwiatu
mu Wxvlc, więc powinniśmy zobaczyć W sieci lokalnej wystarczy nam itp. Program zawiera również w sobie
jeden z lepszych interfejsów graficznych z reguły liczba 1 lub 2. miniaturowy serwer http, umożliwiający
dla Vlc. Następnie w menu File wybie- To wszystko! Teraz już nasz obraz udostępnianie obrazu z kamery przez
ramy Wizard... –> Stream to network. powinien być nadawany, co widać po Internet lub sieć lokalną.
Teraz klikamy na Choose, aby określić, co pozycjach w menu Audio i Video. Jeśli Programu Motion raczej nie znaj-
chcemy nadawać. Interesująca nas kamera nie uaktywniły się one, to spójrzmy na dziemy w naszej dystrybucji Linuksa,
internetowa jest na zakładce Video4Linux, konsolę, z której uruchomiliśmy Vlc a jeśli już, to na ogół w okrojonej
w której podajemy ewentualnie urzą- – powinien znaleźć się tam komunikat wersji, która nie pozwala na tworze-
dzenie, jeśli nie jest to /dev/video. o błędzie, np. braku dostępu do urzą- nie filmów, kodowanych przy pomocy
Po przejściu dalej powinniśmy okre- dzenia lub niemożności otwarcia ffmpeg. Najlepiej ściągnąć źródła ze strony
ślić sposób wysyłania danych. Naj- portu. http://sourceforge.net/projects/motion/.
prostszą metodą jest wybranie HTTP. Gdy nasza nakładka nie pozwala Najpierw w naszym systemie powinny
W takim przypadku w okienku poni- na wybranie V4L jako źródła obrazu, zostać zainstalowane pakiety glibc-
żej nie powinniśmy wpisywać żadne- możemy posłużyć się linią komend. devel, libjpeg-devel, zlib-devel, curl-
go adresu. Alternatywnie, możemy spró- Przykładowo, vlc v4l:/dev/video: devel, openssl-devel oraz krb5-libs. Gdy
bować wybrać UDP Unicast, ale wtedy channel=1 uruchomi program z obra- chcemy używać Motion do nagry-
musimy podać adres komputera, na zem z wejścia composite1. Bardziej zło- wania filmów, powinniśmy jeszcze
którym będzie odbierany obraz. UDP żony przykład może wyglądać następu- ściągnąć ze strony ffmpeg.sourceforge
działa szybciej, mniej obciążając sieć, ale jąco: v4l:/dev/video:norm = pal:frequ- .net plik ffmpeg-0.4.8.tar.gz oraz skom-
częściej możemy spodziewać się proble- ency = 543250:size = 640x480:channel= 0: pilować i zainstalować następującymi
mów z tym protokołem. Ogromną zaletą adev =/dev/dsp:audio = 0. poleceniami:
VideoLAN jest jego wsparcie dla UDP Mul- Gdy wszystko działa, przechodzimy
ticast, czyli wysyłania strumienia do wielu na drugi komputer, gdzie uruchamiamy # tar zxfvp ffmpeg-0.4.8.tar.gz
komputerów równocześnie, ale wymaga ten sam program – Vlc. Tym razem z # mv ffmpeg-0.4.8 /usr/local/ffmpeg
to, aby cała nasza infrastruktura sieciowa menu File wybieramy Open Network # cd /usr/local/ffmpeg/
pozwalała na takie adresowanie. Można to Stream, zaznaczamy HTTP/FTP/MMS # ./configure
osiągnąć w sieci lokalnej, ale w Internecie i w okienku obok wpisujemy adres # make
nie jest to już możliwe. Ponadto, do działa- komputera, z którego nadajemy, oraz # make install
nia Multicast potrzebujemy odpowiedniej domyślny port 8080, np. 192.168.0.55:
konfiguracji jądra systemu. 8080. Powinniśmy zobaczyć obraz Na zakończenie instalacji ffmpeg, otwie-
Wróćmy teraz do naszej kamery. i przy okazji usłyszeć dźwięk z pierw- ramy dowolnym edytorem plik /etc/
Następne pytanie odnosi się do sposobu szej karty dźwiękowej na kompute- ld.so.conf, dopisujemy do niego jedną
kompresji przesyłanych danych. Będzie- rze, na którym jest podpięta kamera linię:
my mieli do wyboru m.in. MPEG PS, – chyba, że wyłączyliśmy go przy
MPEG TS czy ASF. Możemy spróbować wcześniejszej konfiguracji. /usr/local/lib
68 luty 2005
kamery internetowe sprzęt
oraz wydajemy polecenie ldconfig. Teraz pliku konfiguracyjnego dodać linię danych (MySQL i PostgreSQL), zdalne
możemy rozpakować archiwum z progra- output_normal off – wtedy obraz- kontrolowanie działającego programu
mem Motion (ja używam wersji motion- ki jpeg nie będą nagrywane na przez sieć oraz bardzo zaawanso-
3.1.17.tar.gz), aby skompilować i zainsta- dysku, a wyłącznie wysyłane przez wane mechanizmy wykrywania ru-
lować je komendami: ./configure, make, sieć. Możemy również zastosować chu.
make install. opcję snapshot_interval 10, a wtedy
Zabawę z programem możemy roz- program Motion będzie zachowy- Zakończenie
począć od pliku konfiguracyjnego, wał się jak serwer zwykłej kamery Linux wciąż nie cieszy się zbyt wielkim
zamieszczonego na Listingu 2. Powin- internetowej – co 10 sekund będzie uznaniem producentów kamer inter-
niśmy go skopiować do /usr/local/etc/ wysyłał nowy obraz, niezależnie od netowych – wiele tego typu urządzeń
motion.conf. W tym przykładzie prog- tego, czy wykrył ruch przed kamerą, działa tylko w MS Windows. Często
ram będzie odczytywał urządzenie czy nie. programy o podobnych funkcjach,
/dev/video0 i nagrywał obrazki z maksy- Pliki jpeg mimo wszystko zajmują jak darmowe odpowiedniki dla Linuk-
malną częstotliwością czterech klatek dosyć sporo miejsca na dysku, zwłasz- sa, w wersji dla dominującego sys-
na sekundę w katalogu /var/www/ cza w porównaniu z plikami mpeg temu, sprzedawane są za dziesiątki
kamera1 (powinniśmy wcześniej utwo- czy avi, z tą samą zawartością. Są też dolarów.
rzyć ten katalog). Opcją threshold okre- mniej wygodne do przeszukiwania.
ślamy, jak wiele pikseli obrazu musi Z tego powodu warto skorzystać
ulec zmianie, aby została ona uznana z możliwości nagrywania filmów. Przy- W Internecie:
za ruch przed kamerą, a opcja noise_level kładowe linie, które powinniśmy dopi-
• Strona domowa programu
pozwala na ignorowanie określonego sać do pliku konfiguracyjnego, mogą
GnomeMeeting:
poziomu szumów, który należy dostoso- wyglądać tak:
http://www.gnomemeeting.org/
wać do indywidualnej kamery i warun-
• Strona domowa programu Motion:
ków oświetlenia. output_normal off
http://motion.sourceforge.net/
Aby, poza zapisywaniem obrazków, ffmpeg_cap_new on • Program Webcam jest częścią
można je było oglądać na żywo przez ffmpeg_cap_motion on pakietu Xawtv:
przeglądarkę internetową, wystarczy ffmpeg_timelapse 0 http://linux.bytesex.org/xawtv/
dopisać do pliku konfiguracyjnego nastę- ffmpeg_timelapse_mode hourly • Sterowniki dla kamer z układami
pujące linie: ffmpeg_bps 500000 Philips'a:
ffmpeg_variable_bitrate 0 http://www.saillard.org/
# Live Webcam Server ffmpeg_video_codec mpeg4 • Sterowniki dla kamer z układem
CpiA:
webcam_port 8080
http://webcam.sourceforge.net/
webcam_quality 50 W ostatniej z tych linii określiliśmy
• Sterowniki dla kamer z SE401,
webcam_motion on sposób kodowania filmu – zamiast poda-
SE402 oraz EP800:
webcam_maxrate 1 nego tutaj divixa, możemy zastosować http://members.chello.nl/~j.vreeken/
webcam_localhost off mpeg1 lub msmpeg4, aby pliki mogły se401/
webcam_limit 0 być odtwarzane pod MS Windows bez • Sterowniki dla kamer z OV511(+),
konieczności instalowania dodatkowych OV518, OV519:
Następnie podajemy w przeglądar- kodeków. http://alpha.dyndns.org/ov511/
ce adres komputera, do którego jest Program Motion potrafi równo- • The Webcam HOWTO:
podpięta kamera oraz port 8080 cześnie pracować w trybie serwe- http://www.tldp.org/HOWTO/
(np. 192.168.200.2:8080). Uzyskujemy ra kamery internetowej oraz zapi- Webcam-HOWTO/
• Eksperymentalny sterownik, m.in. dla
obraz, który automatycznie odświe- sywać pliki avi czy mpg. Ponadto,
niektórych kamer Creative i Logitech:
ża się, gdy tylko zmienia się obraz jego bardzo bogate możliwości obej-
http://mxhaard.free.fr/spca5xx.html
w kamerze. Przy okazji możemy do mują nawet współpracę z bazami
R E K L A M A
www.lpmagazine.org 69
dla programistów
Piszemy program
do zmiany rozdzielczości
ekranu przy pomocy
rozszerzenia RandR
Marek Sawerwain
J
edną z wad środowiska X Window, pokażę, jak napisać tego typu pro-
wytykaną przede wszystkich przez gram. W środowiskach typu GNOME
początkujących użytkowników, jest czy KDE, a nawet w samym środowi-
jego dość trudna konfiguracja. sku X Window, istnieją odpowiednie
Wszelkie parametry serwera X-ów zostają programy wykorzystujące rozszerze-
zapisane w pliku tekstowym, więc najle- nie RandR, ale napisanie takiego pro-
piej przeprowadzać konfigurację poprzez gramu samodzielnie to bardzo dobre
edycję tego pliku. ćwiczenie.
Inną poważną wadą był brak moż- Co ciekawe, nasz program będzie
liwości zmiany parametrów wyświe- oferował dostęp do wszystkich mo-
tlanego obrazu bez restartu środowi- żliwych rozdzielczości. Przykładowo,
ska. Co prawda, możliwa była zmiana domyślnie dostępna aplikacja w środo-
rozdzielczości ekranu poprzez kom- wisku GNOME oferuje wyłącznie te
binację klawiszy [Ctrl ]+[Alt ]+[+] oraz główne, takie jak 640x480, 800x600,
[Ctrl ]+[Alt ]+[-], ale w ten sposób zmie- 1024x768 itd. Z tego powodu mo-
nialiśmy tylko samą rozdzielczość, żna powiedzieć (z lekkim przymruże-
a obraz wyświetlany przez X-y pozo- niem oka), iż poprawimy niedostatki
stawał nadal tych samych rozmia- środowiska GNOME.
rów. W rezultacie, przy zmianie roz-
dzielczości z wyższej na niższą, był Projektujemy program
włączany tryb ekranu wirtualnego. Program napiszemy wykorzystując biblio-
Ponadto, nie można było łatwo stero- tekę GTK+. Do zaprojektowania gra-
wać odświeżaniem obrazu. ficznego interfejsu użytkownika wyko-
Te problemy odeszły już do prze- rzystamy program Glade. Tym razem
Na płycie CD/DVD szłości wraz z wprowadzeniem roz- nie poprzestaniemy na wygenerowa-
Na płycie CD/DVD znajdują się
szerzenia o nazwie RandR. Pozwala niu pliku z opisem interfejsu (plik o roz-
wykorzystywane biblioteki, kod
ono również na wykorzystanie innych szerzeniu glade), ale przygotujemy rów-
źródłowy programu oraz wszyst-
możliwości kart graficznych, ponie- nież kod źródłowy tworzący ten inter-
kie listingi z artykułu.
waż, oprócz zmiany rozdzielczości fejs – program, który opracujemy, jest
O autorze ekranu bez konieczności restartu śro- niewielkich rozmiarów, więc będzie naj-
Autor zajmuje się tworzeniem dowiska X Window, możliwe stało się lepiej, gdy nasza aplikacja nie będzie
oprogramowania dla WIN32 także jego obracanie, jeśli tylko karta wymagać do poprawnej pracy dodatko-
i Linuksa. Zainteresowania: graficzna udostępnia taką funkcjonal- wych plików.
teoria języków programowania ność. Możliwości naszego programu
oraz dobra literatura. Okazuje się, że wykorzystanie tych można streścić jednym krótkim zda-
Kontakt z autorem:
możliwości jest dość łatwe do zapro- niem: program ma zmieniać roz-
autorzy@linux.com.pl
gramowania, więc w tym artykule dzielczość oraz wartość odświeża-
70 luty 2005
randr i gnome 2.8 dla programistów
www.lpmagazine.org 71
dla programistów
Listing 2. Obsługa sygnału changed dla widgetu wyboru rozdzielczości Przedstawiony powyżej kod zapewnia
nam spis dostępnych rozdzielczości.
void on_ResolutionWidget_changed( GtkWidget *widget, gpointer data ) W naszym programie czynność tę
{ wykonuje funkcja get_basic_informa-
int i=0; tion.
gchar tmp_buf[128]; W tym momencie musimy prze-
nieść uzyskane informacje do widgetu
i=gtk_combo_box_get_active(GTK_COMBO_BOX(widget)); o nazwie ResolutionWidget. W tym celu
selected_resolution=i; przepisujemy zawartość tablicy sizes.
Omawiany proces może wydawać się
for(i = 0; i < old_nrate;i++) skomplikowany, ale sprowadza się do
gtk_combo_box_remove_text(GTK_COMBO_BOX(RefreshWidget), 0); jednej krótkiej pętli typu for, której kod
znajduje się na Listingu 1.
rates = XRRConfigRates (screen_config, selected_resolution, &nrate); Podczas przepisywania ważna
old_nrate=nrate; jest całkowita ilość elementów tabli-
cy sizes. Wielkość tę poznaliśmy pod-
for (i = 0; i < nrate; i++) czas wywołania funkcji XRRConfigSizes
{ i została zapisana w zmiennej nsize.
g_snprintf(tmp_buf, 128, "%3d", rates[i] ); W samej pętli wykonujemy tylko dwie
gtk_combo_box_append_text(GTK_COMBO_BOX(RefreshWidget), &tmp_buf[0]); czynności. Instrukcją g_snprintf two-
} rzymy odpowiednio sformatowany ciąg
znaków, np. 1024 x 768, a następnie
sel_res=TRUE; wywołaniem gtk_combo_box_append_
} text dodajemy ten ciąg do listy wyboru
widgetu ResolutionWidget.
Jak widać, czynności, które trzeba
#include <X11/Xproto.h> W kolejnym kroku pobieramy indeks wykonać, aby uzyskać listę dostęp-
#include <X11/Xlib.h> aktualnie stosowanej rozdzielczości nych rozdzielczości ekranu, są try-
#include <X11/extensions/Xrandr.h> ekranu: wialne. W kodzie naszej aplikacji tym
#include <X11/extensions/Xrender.h> zadaniem zajmuje się funkcja o nazwie
current_size = XRRConfigCurrent fill_resolution_list. Wykonuje ona
Najważniejszy jest dla nas przedostat- Configuration (screen_config, jeszcze jedną ważną czynność, a mia-
ni plik, bo w nim znajdują się funkcje ¤t_rotation); nowicie wpisuje do etykiety aktualne
związane z rozszerzeniem RandR. Uzy- parametry obrazu. Kod, który wykonu-
skane informacje należy gdzieś umie- Możliwości RandR nie ograniczają się je te czynności, jest następujący:
ścić, więc zdefiniujemy kilka zmien- wyłącznie do zmiany rozdzielczości
nych. Pierwsza z nich reprezentuje ekranu. Obraz możemy obracać o 90 g_snprintf(tmp_buf, 128, §
aktualną konfigurację: stopni, więc w powyższej linii kodu "%5d x %-5d@%3d Hz", sizes §
należy podać adres do zmiennej, [current_size].width, §
XRRScreenConfiguration *screen_config; w której zostanie umieszczona infor- sizes[current_size].height, §
macja o obrocie ekranu. XRRConfigCurrentRate(screen_config)); §
Następna to w rzeczywistości tabli- Samą tablicę zawierającą dostę- gtk_label_set_text §
ca, w której zostaną umieszczone pne rozdzielczości ekranu odczytu- (GTK_LABEL(ActualResLabel), tmp_buf);
informacje o dostępnych rozdzielczo- jemy za pomocą funkcji XRRConfig-
ściach: Sizes: Wykorzystaliśmy zmienną current
_size. Jej wartością jest indeks, pod
XRRScreenSize *sizes; sizes = XRRConfigSizes § którym w tablicy sizes znajduje się
(screen_config, &nsize); opis aktualnie stosowanej rozdzielczo-
Proces odczytu spisu rozdzielczości roz- ści. Wartość odświeżania odczytujemy
poczynamy od uzyskania uchwytu: Ważną rolę pełni zmienna nsize. Jest za pomocą funkcji XRRConfigCurrent-
w niej umieszczana liczba dostęp- Rate, która w wyniku daje dokładną
screen_config = XRRGetScreenInfo nych rozdzielczości ekranu. Chociaż wartość odświeżania.
(GDK_DISPLAY(), GDK_ROOT_WINDOW()); nasz program służy tylko do zmiany
rozdzielczości, to możemy również Wybieramy rozdzielczość
Jak widać, wykorzystujemy predefi- odczytać dostępne sposoby obraca- oraz odświeżanie
niowane funkcje z podsystemu GDK, nia ekranu: Podczas projektowania interfejsu w wid-
reprezentujące okno główne: GDK _ROOT_ getach GtkComboBox trzeba koniecz-
WINDOW, oraz urządzenie GDK _DISPLAY, rotations = XRRConfigRotations § nie zaimplementować obsługę syg-
z którego korzysta system GTK+. (screen_config, ¤t_rotation); nału changed, gdyż po wyborze roz-
72 luty 2005
randr i gnome 2.8 dla programistów
Zmieniamy rozdzielczość
Listing 3 zawiera kod odpowiedzialny
za zmianę rozdzielczości i odświeżania
ekranu. Znajdująca się tam funkcja jest
wywoływana w momencie naciśnię-
cia przycisku Change resolution. Naj-
ważniejszym elementem jest wywoła-
niem funkcji:
XRRSetScreenConfigAndRate
www.lpmagazine.org 73
dla programistów
create_MainWin
74 luty 2005
randr i gnome 2.8 dla programistów
www.lpmagazine.org 75
testy ibm thinkpad t41 testy
P
ierwszą rzeczą, którą postano- Dystrybucje typu Live
wiłem zrobić, gdy do redak- Ponieważ prawdziwym sprawdzianem
Zalety
cji przyniesiono nowiutkie- dla komputera są systemy uruchamia- • Solidna konstrukcja
go ThinkPada T41, było zain- ne bezpośrednio z płyty CD/DVD, uru- • Bezproblemowa współpraca
stalowanie na nim systemu Linux. Lekki chomiłem na ThinkPadzie kilka z nich. z Linuksem
niesmak poczułem widząc informację, Wybrałem FreeSBIE, bazujące na Free- • Podświetlana klawiatura
naklejoną na obudowie komputera, że BSD, małą dystrybucję Damn Small • Cicha praca
sprzęt najlepiej współpracuje z syste- Linux oraz Games Knoppix 3.7. Mimo
mem operacyjnym Windows XP. Mając moich wątpliwości, wszystkie uruchomi-
na uwadze liczne listy przychodzące do ły się szybko i bez problemów. Wady
redakcji, w których czytamy o proble-
mach z instalacją Linuksa na laptopach, Wady i zalety • Brak polskiej instrukcji obsługi
poczułem się zaniepokojony. Nie będę skupiał się na gadżetach i wyso- • Wysoka cena
kich parametrach testowanego sprzętu,
Aurox ale wybiorę raczej kilka elementów, na Niestety, wadą opisywanego sprzętu
Na pierwszy ogień poszła nowa wersja które warto zwrócić uwagę decydując się jest jego stosunkowo wysoka cena. Porów-
Auroksa (10.1). Po włożeniu do napędu na zakup ThinkPada T41. nując inne laptopy tej samej klasy (Dell Lat-
DVD instalacyjnych płyt dystrybucji, Laptop jest urządzeniem lekkim titude, HP Compaq), IBM Thinkpad T41 jest
bez żadnych problemów uruchomił się o obudowie odpornej na wstrząsy i ude- urządzeniem drogim (ok. 9 tyś. zł). Warto
instalator Anaconda. Kłopotu nie spra- rzenia. W oczy rzucają się solidne stalowe zatem zastanowić się nad wyborem prze-
wiło również wykrycie poprawnej kon- zawiasy scalające panel ekranu z kompu- nośnego komputera mniej znanej marki,
figuracji sprzętowej. System zainstalo- terem. Tak jak we wszystkich ThinkPa- nieodbiegającego parametrami od T41,
wał się szybko, sprawnie i bez wyświe- dach, urządzeniem zastępującym tra- a lepiej wypadającego cenowo.
tlających się komunikatów o błędach. dycyjną myszkę jest usytuowany na
środku klawiatury czerwony trackpoint. Podsumowanie
Novell Linux Desktop 9 Dodatkowo, poniżej znajduje sie touch- Krótko mówiąc, komputer prawie na
Podobnie jak w przypadku Auroksa, pad, który w przypadku korzystania piątkę. Tak jak to w przypadku produk-
postąpiłem także z nową dystrybu- z tego pierwszego urządzenia wskazu- tów IBM-a bywa, otrzymujemy sprzęt naj-
cją opartą na SUSE. Mimo, że instala- jącego, trochę przeszkadza. Zauważal- wyższej jakości.
Ocena
cja przebiegła pomyślnie, pojawiły się na jest dobra jakość dźwięku płynące-
lekkie problemy z konfiguracją ekranu. go z wbudowanych głośników. Impo-
Za pomocą programu konfiguracyjnego nuje cicha praca komputera – wentylator
szybko ustawiłem prawidłowe parame- włącza się jedynie w razie potrzeby i nie
try wyświetlania obrazu. Moją uwagę przeszkadza w pracy.
zwrócił również fakt, iż w przeciwień-
stwie do Auroksa, nie działał tzw. dwu-
klik przy korzystania z touchpada (za-
znaczam, że to wina dystrybucji, a nie
sprzętu).
Specyfikacja techniczna:
● Procesor: Intel Pentium M 1,6 GHz
● Pamięć RAM: 512 MB
● Wyświetlacz: 14,1'' TFT
● Napęd: 16x-10x-24x-8x max
CD-RW/DVD
● Karta graficzna:
ATI Mobility Radeon 9000 32MB Rysunek 1. IBM ThinkPad T41
76 luty 2005
testy novell linux desktop testy
N
a początku listopada 2004 Wady i zalety
roku firma Novell poinformo- System wydaje się być dopracowany pod
Zalety
wała o wprowadzeniu linukso- każdym względem, ale można znaleźć • Bardzo prosta instalacja
wego systemu operacyjnego w nim również wady. Pomimo, że dystry- • Łatwa i intuicyjna obsługa
przeznaczonego dla przedsiębiorstw. bucja obsługuje język polski (już na pozio- • Domyślnie zainstalowane wsparcie
Novell Linux Desktop 9 jest oparty na dys- mie instalacji), to istnieją aplikacje, które dla aplikacji napisanych w Javie
trybucji SUSE. Poza standardowymi pa- są dostępne wyłącznie po angielsku. Taka i we Flashu
kietami wchodzącymi w jej skład, zawiera sytuacja ma miejsce w Centrum Pomocy,
szereg aplikacji przeznaczonych do pracy które jest umieszczone na pasku zadań. Wady
biurowej. Warto wymienić chociażby pa- Zastanawia również wykorzystanie stosun-
kiet OpenOffice.org, przeglądarkę inter- kowo starego jądra w wersji 2.6.5 – być może • Nie przetłumaczone na język polski
netową Mozilla Firefox, klient poczty Novell brano pod uwagę stabilność systemu. niektóre programy i elementy aplikacji
Evolution oraz Adobe Acrobat Reader – pro- Mocnych punktów dystrybucji jest
gram umożliwiający wyświetlanie plików zdecydowanie więcej. Na uznanie na pewno (kontakt z użytkownikiem ograniczony do
pdf. Domyślnie są instalowane sterowniki zasługuje możliwość pełnej gotowości sys- niezbędnego minimum).
dla kart Nvidii oraz wtyczki, dzięki którym temu do pracy bezpośrednio po instalacji Novell Linux Desktop opiera się na
można odtwarzać prezentacje przygotowa- – NLD zawiera podstawowe, już skonfigu- niemieckim SUSE, uznawanym za dys-
nych we Flashu oraz uruchamiać aplikacje rowane, narzędzia biurowe, udostępniające trybucję stabilną i w miarę bezpieczną.
napisane w Javie. wszystkie funkcje, do których są przy- Mimo, że podejście do polityki bezpie-
Novell Linux Desktop cechuje prostota zwyczajeni użytkownicy. W oko wpada czeństwa nie jest aż tak rygorystyczne, jak
instalacji oraz łatwość użytkowania, zatem odziedziczona po SUSE przyjazna grafi- w przypadku Debiana, to twórcom udało
znajdzie on najprawdopodobniej zastoso- ka, zwłaszcza w środowisku KDE. System się osiągnąć połączenie stabilności syste-
wanie w charakterze uniwersalnej platfor- nie ma żadnych problemów z wykry- mu z łatwością jego użytkowania.
my dla komputerów biurowych. waniem urządzeń dołączanych przez USB. Warto zastanowić się, czy proponowa-
System jest dobry, ale nie ma nic za na przez Novella cena rzeczywiście jest aż
Instalacja systemu darmo – sugerowana cena produktu wynosi tak wysoka, na jaką wygląda.
Instalacja Novell Linux Desktop 9 jest 50 euro. Novell zapewnia także roczny
bardzo prosta. Sprowadza się jedynie do dostęp do uaktualnień i poprawek. Podsumowanie
uruchomienia programu instalacyjnego z Novell Linux Desktop to dystrybucja Linuk-
płyty DVD oraz do zatwierdzenia kilku Novell kontratakuje sa bardzo dobrze przystosowana do zasto-
opcji zaproponowanych przez producentów Kilka lat temu skończyły się czasy domi- sowań biurowych. Niewątpliwie zwróci
systemu. Dostępne są oczywiście zaawan- nacji Novella na rynku sieciowych syste- uwagę klientów korporacyjnych szukają-
sowane parametry instalacji, ale domyślnie mów operacyjnych. Od tego czasu pro- cych tańszej od proponowanej przez Micro-
użytkownik nie jest o nie pytany. Instalator dukty tej firmy, uważane za niezastąpio- soft platformy systemowej.
sam potrafi wykryć i skonfigurować zainsta- ne, powoli zaczęły ustępować wszędobyl-
Ocena
lowany sprzęt. skiemu Microsoftowi. Obecnie Novell nad-
rabia straty licząc na zdobycie przynajmniej
Novell, czyli SUSE LINUX części klientów korzystających na co dzień
Czym różni się Novell Linux Desktop od z platformy Windows. Ma nadzieję, że
typowej dystrybucji SUSE LINUX? Pierwszą pierwsze wdrożenia dystrybucji będą miały
rzeczą, która rzuca się w oczy, jest przyja- miejsce w instytucjach rządowych oraz pla-
zny dla oka instalator oraz logo firmy Novell cówkach edukacyjnych.
pojawiające się podczas uruchamiania
większości popularnych programów. Zmo- Czy warto?
dyfikowano pakiet OpenOffice.org oraz Dlaczego warto zwrócić uwagę na produkt
dodano mechanizmy integracji z ZENworks Novella? Wśród systemów, które łatwo się
– oprogramowaniem ułatwiającym central- instaluje, NLD nie tylko nie ustępuje wiodą-
ne zarządzanie aplikacjami przedsiębior- cej konkurencji (np. Mandrakelinux, Fedora
Rysunek 1. Novell Linux Desktop
stwa. Poruszanie się po systemie przebiega Core, Windows), ale w niektórych aspek-
podczas pracy
identycznie jak w SUSE. tach wypada od niej zdecydowanie lepiej
www.lpmagazine.org 77
Katalog firm Linux+
Lp. Nazwa firmy Strona domowa firmy: Lp. Nazwa firmy Strona domowa firmy:
1 Borland www.borland.pl 41 Bitpipe, Inc. www.bitpipe.com
2 Trolltech Inc. www.trolltech.com 42 Raisonance S.A. www.raisonance.com
3 Software AG www.softwareag.com 43 Navicat www.navicat.com
4 SlickEdit Inc. www.slickedit.com 44 Simplewire, Inc. www.simplewire.com
5 Siliconpenguin.com www.siliconpenguin.com 45 Integrated Computer www.ics.com
Solutions
6 Auto ID Polska Sp. z o.o. www.autoid.pl
46 SYSI GmbH Software www.sysi-software.de
7 The SCO Group www.sco.com
Systeme
8 Agency9 www.agency9.se
47 CPT Crosswords www.geocities.com/
9 CA3de www.ca3d-engine.de cptshareware/
10 SimTech Simulation www.simtech.fr 48 Visual-paradigm.com www.visual-paradigm.com
and Technology
49 AquaFold, Inc www.aquafold.com
11 Clinic New Media www.clinicdesign.com.au
50 Metrowerks www.metrowerks.com
12 Saab Training www.gizmosdk.com
Systems AB 51 Sav technology www.savtechno.com
78
Z katalogu firm Linux+ – Narzędzia deweloperskie:
79