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