Download: CoverGPRS

Transkrypt

Download: CoverGPRS
GPRS w Linuksie
TEMAT MIESIĄCA
Mobilny dostęp do Internetu przez GPRS
ZAWSZE
I WSZĘDZIE
Stały mobilny dostęp do Internetu dla jednych może
oznaczać koszmar, a przez innych jest z utęsknieniem
wyczekiwany. Żeby dysponować takim dostępem, wystarczy system Linux i w miarę nowoczesny telefon komórkowy. MARCEL HILZINGER
G
eneral Packet Radio Service (GPRS)
jest standardem komunikacji mobilnej w sieciach komórkowych, mającym na celu zapewnienie wydajnej transmisji danych. GPRS, technologia udostępniająca
większe prędkości transmisji od starszych
usług komutowanych, nie jest przeznaczona
do komunikacji głosowej; została specjalnie
przystosowana do takich zastosowań jak przesyłanie poczty elektronicznej i przeglądanie
stron WWW w sieciach mobilnych. Ważną cechą GPRS jest fakt, że użytkownik jest stale
online, tzn. może transmitować dane w każdej
chwili. Nie musi wybierać numeru ani inicjować połączenia.
Usługę GPRS oferują dziś operatorzy wielu sieci komórkowych. Użytkownikom Linuksa technologię GPRS przybliża narzędzie
o nazwie GPRS Easy Connect. W narzędziu
tym uzyskanie mobilnego dostępu do Internetu sprowadza się do kliknięcia przycisku.
Obecna wersja tego programu w języku Perl
obsługuje ok. 300 telefonów komórkowych
i 200 usługodawców. Szczegółową listę obsługiwanych urządzeń i operatorów można znaleźć na stronie projektu [1].
Obecnie węgierscy programiści, Péter Simon i Gábor Pintér, pracują nad wersją 3.00,
opartą na bibliotece GTK2 i oprócz GPRS
obsługującą technologie UMTS oraz EDGE.
Wszystko w Perlu
We współczesnych dystrybucjach instalacja
Easy Connect nie powinna sprawić problemów. Wystarczy mieć w systemie środowisko
Perl oraz moduły perl-Tk, perl-libwww-perl i
perl-URI. W dystrybucji Suse Linux odpowiednie pakiety znajdziemy na płycie DVD.
W przypadku innych dystrybucji może zajść
konieczność pobrania któregoś z modułów
z Internetu.
Rozpakowujemy paczkę GPRS_Easy_Connect_253_Install.tar.gz do wybranego katalogu
i poleceniem su przechodzimy na konto użyt-
WWW.LINUX-MAGAZINE.PL
kownika root (w przypadku dystrybucji Suse
Linux w wersji 9.2 lub starzej można to zrobić poleceniem sux). Przechodzimy do utworzonego katalogu GPRSEC_Easy_Connect_253_Install i instalujemy oprogramowanie poleceniem sh INSTALL. Klikamy przycisk Next i potwierdzamy warunki publicznej licencji GNU; następnie rozpoczyna się
instalacja oprogramowania. W kolejnym
oknie widoczne są wykryte przez program
komponenty oprogramowania. Jeśli przy którymkolwiek z nich widnieje słowo Error, na-
NUMER 20 PAŹDZIERNIK 2005
19
TEMAT MIESIĄCA
GPRS w Linuksie
leży doinstalować brakujący program. Aby
uzyskać więcej informacji o zależnościach,
instalator można wywołać poleceniem sh INSTALL -c.
Po spełnieniu zależności klikamy przycisk
Next. Instalator kopiuje wymagane komponenty w odpowiednie miejsca; po zakończeniu instalacji klikamy przycisk Finish.
Konfiguracja
Po pierwszym uruchomieniu programu
(przez naciśnięcie kombinacji klawiszy
[Alt]+[F2] i wpisanie w okienku urucha-
Rysunek 1: Przed korzystaniem z programu
Easy Connect konieczne jest skonfigurowanie
telefonu komórkowego.
miania słowa gprsec) wyświetlane jest główne okno Easy Connect (Rysunek 1). Aby
skonfigurować parametry telefonu komórkowego, usługodawcy i połączenia, klikamy
przycisk Setup GPRS Easy Connect (Rysunek 2).
Telefon należy wybrać z listy na górze,
a usługodawcę z listy dostępnej po naciśnięciu przycisku Choose your provider (Wybierz
usługodawcę). Easy Connect wyświetla zdjęcie wybranego telefonu – to bardzo pomocna
funkcja, jeśli nie mamy pewności, czy wybraliśmy właściwy model. Po wybraniu usługodawcy program automatycznie wypełnia
dane konta, np. adres APN, nazwę użytkownika i hasło. Informacje te można także znaleźć w Internecie [2] lub bezpośrednio
u usługodawcy.
Aby wybrać interfejs komunikacji internetowej, używamy opcji Select the port (Wybierz port). Ustawienie zależy tutaj od typu
połączenia. W przypadku urządzeń Bluetooth zazwyczaj interfejs nosi nazwę
/dev/rfcomm0 (patrz Ramka „Podłączanie
telefonu przez Bluetooth”). Dla połączeń
USB należy wybrać plik urządzenia
/dev/ttyACM0. Jeśli telefon połączony jest
20
NUMER 20 PAŹDZIERNIK 2005
z komputerem kablem szeregowym, wybieramy /dev/ttyS0. Port na podczerwień reprezentowany jest przez urządzenie /dev/ircomm0. Szczegółowe informacje o konfigurowaniu połączeń na podczerwień można
znaleźć w artykule „Usługi katalogowe: Zarządzanie telefonem komórkowym za pomocą programów Gammu i Wammu”
w bieżącym numerze LM.
Jeśli na liście nie ma potrzebnego typu interfejsu, należy zaznaczyć opcję Expert port
scan (Zaawansowane skanowanie portów)
i wybrać odpowiednią pozycję. Opcja Select
your language (Wybierz język) służy do zmiany języka interfejsu. Następnie klikamy
przycisk OK/Save Data (OK/ Zapisz dane);
spowoduje to ponowne wyświetlenie głównego okna programu. W oknie tym dostępny
jest przycisk Connect, którego kliknięcie powinno spowodować nawiązanie połączenia
z Internetem. Kiedy połączenie jest aktywne, Easy Connect wyświetla przydzielony
komputerowi adres IP oraz statystyki transmisji danych.
Korzystanie na co
dzień i sztuczki
Podczas testowania Easy Connect należy
uruchamiać jako root. To zapewnia dostęp do
pliku /etc/resolv.conf (ustawienia serwera
nazw) oraz demona PPP (skrypty chat).
W naszym laboratorium telefon często
zgłaszał problemy z połączeniem Bluetooth,
mimo że połączenie było aktywne. Ten problem może niekorzystnie odbić się na zawartości naszej kieszeni, jeśli wziąć pod uwagę
ceny mobilnego dostępu do Internetu. Aby
uniknąć nieprzyjemnych niespodzianek,
warto sprawdzić zawartość wyświetlacza telefonu po kliknięciu Connect: większość telefonów informuje o nawiązaniu połączenia.
W przypadku połączeń Bluetooth, gdy telefon nie jest połączony z komputerem PC,
może nawet być konieczne potwierdzenie nawiązania połączenia.
Polecenie /sbin/ifconfig wyświetla listę aktywnych urządzeń sieciowych. Ponieważ
w technologii GPRS wykorzystywane jest
połączenie PPP, po uaktywnieniu połączenia powinien być widoczny wpis ppp0. Jeśli
wpis jest widoczny, wpisujemy ping
www.kde.org, co pozwoli sprawdzić, czy
„wyjście na świat” (tutaj połączenie z serwerem projektu KDE) działa. Przy średniej
szybkości transmisji 5-10 Kb/s odpowiedź
na ping może przyjść dopiero po kilku sekundach. Jeśli w wyniku polecenia wyświetlany jest komunikat unknown host, błąd może tkwić w ustawieniach serwera nazw.
W takim przypadku próbujemy wysłać ping
pod adres IP serwera KDE:
ping 80.232.38.131
Rysunek 2: Do skonfigurowania połączenia Easy Connect wymaga informacji o telefonie, usługodawcy i interfejsie.
WWW.LINUX-MAGAZINE.PL
GPRS w Linuksie
TEMAT MIESIĄCA
Podłączanie telefonu przez Bluetooth
We współczesnych dystrybucjach nie powinno być problemów z obsługą komunikacji w standardzie Bluetooth: wystarczy podłączyć odpowiedni interfejs USB i uruchomić system Bluetooth poleceniem /etc/init.d/bluetooth start (Suse i Fedora) lub
/etc/init.d/bluez-utils (Ubuntu). Suse Linux
9.3 wręcz automatycznie uruchamia obsługę tej technologii po podłączeniu odpowiedniego adaptera. Poleceniem hcitool
dev można sprawdzić, czy Linux prawidłowo wykrył podłączony interfejs. W odpowiedzi powinna zostać wyświetlona nazwa
podłączonego urządzenia i jego adres Bluetooth:
rfcomm bind 0 00:0E:07:BF:B4:C4
Na koniec trzeba jeszcze ustanowić połączenie szeregowe z telefonem; do tego musimy skorzystać z konta root. Znów uruchamiamy polecenie hcitool scan; zapamiętujemy adres telefonu (ważne jest zero między słowem bind i adresem):
Jeśli polecenie zwraca komunikat Connection refused (Połączenie odrzucone), prawdopodobnie konieczne jest powiązanie telefonu z komputerem. W tym celu w pliku
/etc/bluetooth/pin należy wpisać przynajmniej czterocyfrowy kod PIN. W pliku tym
nie powinno znajdować się nic więcej. Następnie należy zrestartować usługę Bluetooth i uruchomić funkcję wyszukiwania urządzeń w telefonie. Jeśli telefon poprosi o podanie kodu PIN, należy wprowadzić ten
z pliku /etc/bluetooth/pin.
Aby przetestować połączenie, przechodzimy na konto użytkownika root i wydajemy
polecenie minicom -s; wybieramy port
/dev/rfcomm0 i ustawiamy szybkość na
115200 bodów. W oknie minikoma wpisujemy komendę AT ATI, w wyniku której powinna zostać wyświetlona nazwa telefonu.
Polecenie rfcomm pokazuje aktywne połączenia. Aby zamknąć połączenie, z konta
root wydajemy polecenie rfcomm release 0.
Prawa dostępu: Aby otworzyć połączenie
poleceniem rfcomm, trzeba korzystać
z konta root. Oczywiście, nam zależy na korzystaniu z szeregowego portu Bluetooth ze
zwykłego konta użytkownika. Dlatego najpierw zmodyfikujemy prawa dostępu do pliku /dev/rfcomm0. W starszych dystrybucjach Linuksa, gdzie nie stosuje się dynamicznych plików urządzeń, wystarczy napisać chmod 666 /dev/rfcomm0. W nowszych
pliki takie tworzone są w locie po podłączeniu adaptera Bluetooth. W takim wypadku
należy albo zmieniać prawa dostępu po
każdym podłączeniu urządzenia Bluetooth,
albo zmienić ustawienia Udev tego urządzenia.
Jeśli takie wywołanie ping działa, w pliku
/etc/resolv.conf należy wpisać przynajmniej
jedną pozycję w formacie
Wiele chwilowych problemów można rozwiązać przez wyłączenie i ponowne włączenie telefonu.
marcel@kim:~> hcitool dev
Devices:
hci0 00:10:C6:29:2E:15
Następnie przez interfejs Bluetooth możemy poszukać telefonu komórkowego: hcitool scan. Należy zwrócić uwagę, że nie wystarczy włączyć komunikację Bluetooth
w telefonie. Telefon musi być w trybie „widzialnym”. Poniżej pokazano, jak wyglądają wykryte przez interfejs Bluetooth telefon
(Z1010) i komputer PC (ubuntu-0):
marcel@kim:~> hcitool scan
Scanning ...
00:0E:07:BF:B4:C4 Z1010
00:04:61:81:5C:6B ubuntu-0
nameserver adres IP
Szczegółowe informacje o serwerach nazw
usługodawców można znaleźć w [2].
Skoro połączenie działa już z konta root,
próbujemy zrobić to samo ze zwykłego konta. Zwykły użytkownik musi mieć prawo do
wykonywania pliku /usr/sbin/pppd. Odpowiednich praw może udzielić administrator,
wpisując polecenie:
chmod +s /usr/sbin/pppd
Nieprzyjemne
niespodzianki
Easy Connect bardzo ułatwia skonfigurowanie połączenia z Internetem przez komórkę.
Jednak trzeba uważać, żeby ten mobilny Internet nie spustoszył nam portfela.
Większość usługodawców pobiera miesięczną stawkę podstawową 5 EUR za usługę GPRS lub UMTS bez względu na to, czy
testujemy połączenie poleceniem ping, czy
pobieramy 1 MB danych. Pakiety obejmujące większe ilości danych mogą kosztować
WWW.LINUX-MAGAZINE.PL
Aby skorzystać z tej drugiej metody, otwieramy plik /etc/udev/rules.d/50-udev.rules
do edycji i dodajemy następującą linijkę
(Suse Linux 9.3):
KERNEL="rfcomm*", NAME="%k"U
GROUP="uucp" MODE="0660"U
OPTIONS="resmgr"
W dystrybucji Suse Linux 9.2 należy otworzyć plik /etc/udev/permissions.d/udev.permissions w edytorze i dodać następującą
linijkę:
rfcomm*:root:users:0666
W Ubuntu jest tam już linijka rozpoczynająca się od rfcomm[0-9]*. W tej dystrybucji
wystarczy więc ustawić prawa dostępu na
wartość 0666. Użytkownicy Fedory Core 3
nie muszą wprowadzać żadnych zmian.
Plik /dev/rfcomm0 automatycznie jest własnością zalogowanego w danym czasie
użytkownika.
Automatyczne połączenia: Aby uniknąć
konieczności każdorazowego wpisywania
polecenia nawiązującego połączenie,
można spowodować, aby system Bluetooth robił to automatycznie. W tym celu
należy dokonać edycji pliku /etc/bluetooth/rfcomm.conf. Zmieniamy wpis bind
no; na bind yes;, a następnie wpisujemy
adres
telefonu
w
polu
device
11:22:33:44:55:66;, np.:
device 00:0E:07:BF:B4:C4;
Jeśli na początku linijki stoi znak krzyżyka,
należy go usunąć.
nawet 100 EUR miesięcznie. Pobranie jednego megabajta danych może kosztować
w usłudze GPRS nawet 20 EUR. Na tym tle
UMTS wypada korzystnie: w zależności od
umowy za jeden megabajt zapłacimy ok.
2 EUR. Wielu operatorów wymaga podpisania dwuletniej umowy. ■
Dodatkowe informacje
[1] Strona projektu: http://easyconnect.linuxuser.hu
[2] Parametry dostępu do usług GPRS:
http://www.taniwha.org.uk/gprs.html
NUMER 20 PAŹDZIERNIK 2005
21