Jak poradzić sobie bez Winzgrozy na laptopach i nie tylko (v. 0.0.1).


Zamiast wstępu.
Celem niniejszej krótkiej rozprawki jest pokazanie, że pingwin zadomowi się wszędzie, i to z powodzeniem. Trzeba tylko troszkę samozaparcia, odrobinę zrozumienia ze strony żony oraz zapas zimnego piwa w lodówce. Zaczęło sie od tego, że nabyłem ostatnio, z tak zwanej drugiej ręki, laptopa Acer TravelMate 610 i wszystko wskazywało na to, że zainstaluje na nim system dołączony w oryginale czyli Windows Millenium (znak zastrzeżony itd.). Pojawił się jeden problem, systemem, który działał na tym laptopie był WinXP (znak zastrzeżony itd.), natomiast sam laptop przywieziony był z Tajwanu i w związku z tym na dołączonym CD-ROMie był Windows Me Traditional Chinese, koniec znaków zastrzeżonych ;-) Uczyć sie chińskiego, hmm można, ale po co skoro jest Linux.
Sam pracuje na co dzień z Linuxem, ze Slakiem. To dobry i sprawdzony system zwłaszcza na serwery. Jednak jeśli chodzi o desktopy a szczególnie laptopy wymaga on nieco “dopieszczenia”. Ponieważ zależało mi na czasie po zasięgnięciu języka wybrałem Aurox'a w wersji 9.4. To nowa dystrybucja oparta o Red Hat'a (dziś Fedorę). Jest to dystrybucja skierowana szczególnie do nauczycieli, a dzięki szczególnemu dobraniu pakietów dobrze współpracuje z laptopami.

Instalacja.
Proces instalacji przebiegł bez zakłóceń. Instalator jest bardzo przejrzysty i przyjemny. Jako codzienny użytkownik nieco surowego Slackware jestem pewny, że nawet początkujący, znudzony Winzgrozą użytkownik poradzi sobie bez najmniejszego problemu z tym procesem. W trakcie instalacji pojawia się pytanie o typ instalacji. Instalator podpowiada, że najlepszy typ dla laptopów to “Biuro, szkoła, dom”. Instaluje on środowisko graficzne, pakiety biurowe, oraz narzędzia do korzystania z Internetu. Oczywiście pakiety można wybrać szczegółowo tak w trakcie instalacji jak również później. Ponieważ z jednej strony zależało mi na w miarę maksymalnym wykorzystaniu sprzętu, natomiast z drugiej nie potrzebuję zbędnych “wodotrysków” zdecydowałem sie na doinstalowanie lekkiego środowiska graficznego ICEWM. Można go ściągnąć ze strony http://www.redhatnet.com/icewm/. Wymaga on co prawda spędzenia troszkę czasu nad konfiguracją ale efekt jest niesamowity – polecam.

Konfiguracja wstępna.
Jądro wykorzystywane w Aurox ma wkompilowane zarządzanie energią zgodne ze standardem ACPI. Domyślnie jednak ze względu na początki tego projektu, funkcjonalność ta jest wyłączona. Aby ją włączyć należy w pliku konfiguracyjnym boot load'era GRUB znajdującego się w /boot/grub/grub.conf dopisać na końcu linii zaczynającej sie od kernel, po spacji: acpi=on
W moim przypadku wygląda to tak:
kernel /vmlinuz-2.4.22-1.2194.nptl roroot=LABEL=/ hdc=ide-scsi rhgb acpi=on
Następną pożyteczną rzeczą jest wyłączenie zbędnych daemonów, serwerów startujących przy uruchamianiu systemu. Można to zrobić wydając polecenie: redhat-config-services i odpowiednio zmodyfikować wpisy.

Łączność ze światem. Oprócz wbudowanej karty sieciowej ethernetowej, z której korzystam w domu i w pracy, istnieje potrzeba korzystania z laptopa gdziekolwiek indziej, np. na urlopie ;-)
Z pomocą przychodzi wszechobecna telefonia komórkowa i transmisja GPRS. Laptopy można zmusić do łączenie się za pomocą tej technologii na trzy sposoby: łączem szeregowym (RS-232, USB), poprzez podczerwień lub poprzez BlueTooth. Ze względu na posiadany model w moim przypadku zajmę sie konfiguracją dwóch pierwszych metod. I tak, aby ją uruchomić należy poczynić kilka zmian w stosunku do standardowych ustawień. Najpierw jednak należy się upewnić, czy zainstalowany jest pakiet irda-utils, który jest niezbędny do tego rodzaju zadań. Aby się upewnić można wykonać zapytanie do bazy zainstalowanych pakietów RPM:
[root@localhost /]rpm -q irda-utils

irda-utils-0.9.15-1.1
Odpowiedź jest pozytywna, jedziemy dalej. Ponieważ w moim laptopie irda wykonana jest na układzie SMC należy w pierwszej kolejności załadować odpowiedni moduł, w pliku /etc/modules czynimy następujący wpis:

# irda setup
alias tty-ldisc-11 irtty
alias char-major-161 ircomm-tty
alias irda0 smc-ircc
# end of irda setup
Następnie wprowadzamy zmiany w pliku startowym serwisu irda:
w /etc/sysconfig/irda należy zamienić
DEVICE=/dev/ttyS1
na
DEVICE=irda0

teraz można wystartować usługę ze skryptu:
[root@localhost /]#/etc/rc.d/init.d/irda start
lub "z ręki":
[root@localhost /]#irattach irda0 -s
Aby sprawdzić czy wszystko działa poprawnie, można uruchomić program irdadump. Pokazuje on pakiety jakie są wysyłane i odbierane na porcie podczerwieni:

[root@localhost /]# irdadump
13:07:42.842959 xid:cmd 366b0be4 > ffffffff S=6 s=0 (14)
13:07:42.932954 xid:cmd 366b0be4 > ffffffff S=6 s=1 (14)
13:07:43.022955 xid:cmd 366b0be4 > ffffffff S=6 s=2 (14)
13:07:43.112952 xid:cmd 366b0be4 > ffffffff S=6 s=3 (14)
13:07:43.202957 xid:cmd 366b0be4 > ffffffff S=6 s=4 (14)
13:07:43.292953 xid:cmd 366b0be4 > ffffffff S=6 s=5 (14)
13:07:43.382955 xid:cmd 366b0be4 > ffffffff S=6 s=* localhost hint=0400 [ Computer ] (25)
13:07:45.842959 xid:cmd 366b0be4 > ffffffff S=6 s=0 (14)
13:07:45.932955 xid:cmd 366b0be4 > ffffffff S=6 s=1 (14)
13:07:46.022950 xid:cmd 366b0be4 > ffffffff S=6 s=2 (14)
13:07:46.112955 xid:cmd 366b0be4 > ffffffff S=6 s=3 (14)
13:07:46.202951 xid:cmd 366b0be4 > ffffffff S=6 s=4 (14)
13:07:46.279396 xid:rsp 366b0be4 < 00000028 S=6 s=4 SIEMENS S55 hint=b124 [ PnP Modem Fax IrCOMM IrOBEX ] (28)
Ctrl^C aby zakończyć.
Jak widać port działa prawidłowo, po zbliżeniu telefonu zostaje on rozpoznany.

GPRS via irda.
Jeśli udało sie juz uruchomić port podczerwieni, można przejść do skryptów uruchamiających łączność GPRS. W katalogu /etc/ppp tworzymy katalog gprs a w nim skrypty:
gprs-up: inicjuje połączenie, zmienia routing domyślny, ustawia DNS

 

gprs-dn: zakańcza połączenie, “odkręca” routing i ustawienia DNS

 

gprs-chat-up: polecenia dla modemu przy starcie

 

gprs-chat-dn: polecenia dla modemu przy zakończeniu pracy

 

gprs-options: opcje przenoszone do pppd

 

 


--------cut here gprs-up ----------------
#!/bin/bash
PPPD="/usr/sbin/pppd"
WORKDIR="/etc/ppp/gprs"
PPPDOPTIONS="gprs-options"
clear
echo "connecting GPRS....."
sleep 1
echo ""
echo "Running pppd..."
$PPPD file ${WORKDIR}/${PPPDOPTIONS} &
echo "GPRS connected successful..."
sleep 4
echo "Replacing existing default routing..."
route del default gw 192.168.2.1
route add default ppp0
echo "Replacing resolv.conf for DNS settings..."
cp /etc/resolv.conf.idea /etc/resolv.conf
echo "done..."
sleep 1
--------cut here gprs-up ----------------

--------cut here gprs-dn ----------------
#!/bin/bash
PPPD="/usr/sbin/pppd"
WORKDIR="/etc/ppp"
PPPDOPTIONS="gprs-options"
clear
echo "disconnecting GPRS....."
sleep 1
killall -9 pppd
echo "GPRS disconnected successful..."
sleep 1
echo "Replacing existing default route to eth0"
route add default gw 192.168.2.1
echo "Replacing resolv.conf for DNS settings..."
cp /etc/resolv.conf.lan /etc/resolv.conf
echo "done..."
sleep 1
--------cut here gprs-dn ----------------

--------cut here gprs-chat-up -------------
TIMEOUT 10
ECHO ON
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
ABORT "BUSY"
'' 'rATZ'
OK AT+CGDCONT=1,"IP","www.idea.pl"
OK ATD*99***1#
CONNECT ``
--------cut here gprs-chat-up -------------

--------cut here gprs-chat-dn -------------
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
ABORT "BUSY"
"" "K"
"" "+++ath"
--------cut here gprs-chat-dn -------------

--------cut here gprs-options -------------
#/dev/ttyS0
/dev/ircomm0
115200
modem
nocrtscts
defaultroute
show-password
user idea
nodetach
connect '/usr/sbin/chat -v -f /etc/ppp/gprs/gprs-chat-up'
noipdefault
ipcp-accept-local
ipcp-accept-remote
novj
novjccomp
disconnect '/usr/sbin/chat -v -f /etc/ppp/gprs/gprs-chat-dn'
--------cut here gprs-optoins -------------

Pliki skryptów zakładają, że w katalogu /etc/ znajduję się dwa pliki resolv.conf z wpisami dla systemu DNS; jeden z nich, gdy korzystam z sieci wewnętrznej i połączenia za pomocą karty sieciowej (/etc/resolv.conf.lan) i drugi dla połączenia modemowego (/etc/resolv.conf.idea). Różnią się one wpisami dotyczącymi używanych serwerów nazw.

--------cut here resolv.conf.lan -------------
search localdomain
nameserver 192.168.1.1
--------cut here resolv.conf.lan -------------

--------cut here resolv.conf.idea -------------
search local.pl
nameserver 194.9.223.79
nameserver 194.9.223.74
--------cut here resolv.conf.idea -------------

Aby rozpocząć połączenie będąc w katalogu /etc/ppp/gprs wykonujemy ./gprs-up i analogicznie aby zakończyć ./gprs-dn.

GPRS via COM.
Jeżeli decydujemy się na uruchomienie GPRS przy użyciu telefonu połączonego nie przez irdę, lecz port szeregowy i specjalny kabel do transmisji danych, należy w pliku /etc/ppp/gprs/gprs-options w miejsce /dev/ircomm0 wpisać /dev/ttyS0.

A jednak trochę bajerów, czyli dodatkowe klawisze.
Konfigurując moje ICEWM (naprawdę polecam, więcej na stronach: http://www.icewm.org lub po polsku http://icewm.prv.pl) natrafiłem na plik keys i przypomniałem sobie o “dodatkowych klawiszach multimedialnych”. Aby zmusić je do działania należy co prawda samodzielnie skompilować moduł jądra, ale nie jest to wcale takie trudne na jakie wygląda. Ze strony http://www.informatik.hu-berlin.de/~tauber/acerhk/ należy pobrać źródła i rozpakować np. w katalogu /usr/local/src/, teraz wchodzimy do katalogu ze źródłami i kompilujemy:

[root@localhost src]#tar -xvzf acerhk-0.5.14.tgz

[root@localhost src]#cd acerhk-0.5.14

[root@localhost src]#make

skompilowany moduł o nazwie acerhk.o kopiujemy do katalogu z modułami dla jądra systemu:

[root@localhost src]#cp acerhk.o /lib/modules/2.4.22-1.2194.nptl/kernel/drivers/char/

Następnie ładujemy moduł z odpowiednimi parametrami (ładując moduł nie podajemy już rozszerzenia “.o”):

[root@localhost src]#insmod acerhk poll=1

Aby moduł był ładowany automatycznie podczas startu systemu należy dopisać powyższe polecenie do któregoś z plików startowych np. do /etc/rc.d/init.d/rc.local (ważne, aby użyć “>>”, co spowoduje dopisanie do pliku, a nie “>” co spowoduje nadpisanie pliku:

[root@localhost src]#echo “insmod acerhk poll=1” >> /etc/rc.d/init.d/rc.local

 

Teraz wszystkie dodatkowe klawisze będą generowały keycode, tak więc można je odczytać np. za pomocą programu xev i tak:

help (Fn+F1)
226
setup (Fn+F2)
129
p1
153
p2
144
p3
171
www
178
mail
236
wireless
147
power (Fn+F3)
222
mute (Fn+F8)
166
volup (Fn+Up)
158
voldn (Fn+Down)
165

 

Teraz można już dowolnie skonfigurować X-y, aby reagowały na wciśnięcie dodatkowych klawiszy. Dodatkowa funkcjonalność, którą zyskujemy to możliwość sterowania diodą led pod klawiszem poczty. Umożliwia to wpisanie ciągu:

[root@localhost src]#echo on > /proc/driver/acerhk/led

[root@localhost src]#echo off > /proc/driver/acerhk/led

Te komendy można wykorzystać przy konfiguracji programów pocztowych, które zazwyczaj mają możliwość wykonania dowolnej komendy po nadejściu poczty elektronicznej.

Touchpad.

Touchpad zainstalowany w moim notebook'u co prawda działa bez dodatkowego oprogramowania (Synaptis zgodny z PS/2), ale z niewielką pomocą można zmusić go do dodatkowych możliwości. Aby to osiągnąć potrzebny będzie dodatkowy moduł, tym razem nie do jądra systemowego, tylko do systemu Xfree86. Oprogramowanie można ściągnąć ze strony: http://w1.894.telia.com/~u89404340/touchpad/. Procedura instalacji podobna jak przy klawiszach:

root@localhost src]#bzip2 -d synaptics-0.13.5.tar.bz2

[root@localhost src]#tar -xvf synaptics-0.13.5.tar

[root@localhost src]#cd synaptics-0.13.5

[root@localhost src]#make && make install

 


Następnie w pliku /etc/X11/XF86Config w “Section Module” dopisujemy:

Load “synaptis”

dalej dodajemy sekcję dla touchpad'a:

Section "InputDevice"
Identifier "Synaptics Mouse"
Driver "synaptics"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "LeftEdge" "1700"
Option "RightEdge" "5300"
Option "TopEdge" "1700"
Option "BottomEdge" "4200"
Option "FingerLow" "25"
Option "FingerHigh" "30"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "VertScrollDelta" "100"
Option "MinSpeed" "0.06"
Option "MaxSpeed" "0.12"
Option "AccelFactor" "0.0010"
Option "SHMConfig" "on"
EndSection


i w końcu w sekcji ServerLayout:

InputDevice "Synaptics Mouse" “CorePointer”

Należy pamiętać o tym, aby w tej sekcji nie było dwóch udządzeń z opcją CorePointer. Jeśli chcemy dodatkowo używać myszki, należy dla jej sekcji zaznaczyć opcję AlwaysCore. Trochę to zagmatwane, ale poniżej fragment z mojego pliku:

Section "ServerLayout"
Identifier "single head configuration"
Screen 0 "Screen0" 0 0
InputDevice "Synaptics Mouse" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "AlwaysCore"
InputDevice "DevInputMice" "AlwaysCore"

Po tych czynnościach należy zresetować X-y; najlepiej kombinacją klawiszy Ctrk+Alt+Backspace.
Dzięki tym zabiegom zyskujemy dodatkową funkcjonalność dla touchpada, między innymi:

emulację rolki myszy przy przewijaniu pionowym

 

emulację rolki myszy przy przewijaniu pioziomym

 

ustawienia prędkości i przyspieszenia kursora

emulację podwójnego kliknięcia.

 


Zamiast zakończenia.

Dzięki powyższym zabiegom oraz nieskończonej ilości dobrego softu można śmiało przesiąść się na Linuxa jako na swój podstawowy system operacyjny. Dotyczy to wszystkich rodzajów komputerów, w tym i laptopow. Dodam jeszcze na koniec, że w standardowej instalacji Aurox'a zawarte są linuxowe odpowiedniki popularnych aplikacji "niezbędnych" do życia: OpenOffice: edytor tekstu, arkusz kalkulacyjny, prezentacje itp.

Mozilla-firebird: przeglądarka stron WWW

Kadu: komunikator internetowy zgodny z GG

Evolution: zaawansowany program do zarządzania pocztą, spotkaniami

Mplayer: Odtwarzacz multimediów

Mam nadzieję, że ten dokument przekona wszystkich wątpiących i spowoduje, że rozpoczną swoją przygodę z tym systemem operacyjnym.


autor: Piotr M. Zagórowski
e-mail: piotr@zagor.eu.org