Ten rozdział opisuje jak połączyć się z Internetem za pomocą telefonu komórkowego wykorzystując system GPRS. General Packet Radio System (GPRS) jest metodą dostępu do Internetu w sieciach GSM, która, w przeciwieństwie do zwykłego połączenia komutowanego (Sekcja 7.15.6) oraz połączenia HSCSD, charakteryzuje się pakietową transmisją danych. Trzy cechy odróżniają system GPRS od pozostałych metod dostępu: po pierwsze, użytkownik płaci tylko za ilość przesłanych danych a nie za czas połączenia. Po drugie, GPRS jest szybszy od zwykłego połączenia dial-up z siecią przez telefon komórkowy (9,6 kbps), bo pozwala na łączenie kilku kanałów i osiągnięcie przepływu do abonenta (downstream) do 115 kbps (na razie ani sieci, ani telefony nie wspierają jeszcze tak dużych prędkości transmisji). Po trzecie, system GPRS pozwala odbierać połączenia i SMS-y w trakcie trwania sesji (połączenia) GPRS. Sesja jest wówczas na czas połączenia zawieszana, a po jego zakończeniu - wznawiana. Dodatkowym atutem jest czas nawiązywania połączenia - jest kilkakrotnie krótszy niż w przypadku zwykłych modemów dial-up.
Usługa GPRS musi być aktywowana u operatora telefonii komórkowej (w niniejszym opisie, dla uproszczenia wszystkie przykłady i konfiguracja będą przedstawione dla sieci Era). W Erze aktywacja usługi jest za darmo, standardowo nie ma również żadnej opłaty miesięcznej w abonamencie. Koszt: 49 gr (+VAT) za 100 kB wysłanych i (oddzielnie) odebranych danych (na poziomie protokołu IP). "Kwantem rozliczeniowym" jest właśnie 100 kB. Oznacza to, że minimalna opłata za sesję GPRS wynosi 49 gr (dane odebrane) + 49 gr (dane wysłane) = 98 gr (kilkaset bajtów musi być zawsze wysłanych i odebranych w ramach nawiązywania połączenia). Sesja GPRS przerwana połączeniem przychodzącym i (automatycznie) wznowiona, jest traktowana jak pojedyncza sesja (choćby trwała nawet cały dzień :-) ). GPRS jest bardzo użyteczny przy połączeniach shellowych. Połączenie tekstowe/konsolowe z serwerem jest relatywnie tanie (chociaż do każdego znaku należy doliczyć nagłówek IP) i nie ma ciągłej presji czasu jak w przypadku zwykłego połączenia dial-up przez telefon komórkowy.
Naturalnie, system GPRS musi być wspierany przez telefon. Aktualnie coraz więcej telefonów ma wbudowanego GPRS-a, są to m.in.: Nokia 6310, 6310i, 7650, 8310; Ericsson R520, T65i, T39, T68; Siemens ME45, M50, S55 i wiele innych.
Sesje GPRS mogą być uruchamiane na dwa sposoby:
Z poziomu telefonu, wówczas telefon pełni funkcję terminala:
Telefon ---- GPRS ---- sieć GSM ---- InternetMożliwe zastosowania to m.in. WAP over GPRS (tu opłata jest z reguły wyższa niż przy dostępie do Internetu), SMS over GPRS (z rzadka wspierany), dostęp do Internetu przez MIDlety (programy w Javie na telefony komórkowe). Niewielkie możliwości terminalowe telefonów (przede wszystkim mały wyświetlacz) ograniczają możliwości zastosowań.
Z poziomu komputera (wówczas telefon spełnia funkcję modemu):
Komputer PC ---- RS-232 ---- Telefon ---- GPRS ---- sieć GSM ---- Internet Komputer PC ---- IrDA ---- Telefon ---- GPRS ---- sieć GSM ---- Internet Komputer PC ---- Bluetooth ---- Telefon ---- GPRS ---- sieć GSM ---- InternetKlasyczną już metodą połączenie telefonu do komputera specjalnym kablem (RS-232), który jest przyłączany do portu szeregowego (czyli COM-a). Ceny takich kabli są z reguły dosyć wysokie (ok. 150 zł), poza tym każdy producent ma własne standardy (Nokia ma ich kilka!), więc nie jest to rozwiązanie przenośne. Ostatnio rosnącą popularnością cieszą się połączenia bezprzewodowe - IrDA, oraz, wciąż jeszcze mało popularny - bo drogi - Bluetooth. Wybranie IrD-y jako medium komunikacyjnego z telefonem ma w przypadku GPRS-u pewien mankament: otóż gdy odbieramy rozmowę telefoniczną w trakcie połączenia GPRS to z reguły musimy podnieść telefon i tym samym zerwać komunikację w podczerwieni. Nawet, gdy po zakończeniu rozmowy odłożymy telefon na miejsce, to sesja GPRS nie może być wznowiona. Tego problemu nie ma w przypadku zastosowania kabla ani (najprawdopodobniej) w przypadku systemu Bluetooth.
W podrozdziale tym opisany jest sposób instalacji i konfiguracji systemu IrDA na Linuksie z jednym z nowszych systemów RedHat (rodzina 7.x, 8.x, 9.x). Starsze systemy RedHat wymagały łat na jądro (teraz IrDA jest już standardowo wspierana) oraz doinstalowania pakietu irda-utils (obecnego w nowszych wersjach systemu).
IrDA jest obecna we wszystkich obecnie produkowanych laptopach a wyposażenie komputera stacjonarnego w system IrDA (dioda podczerwieni podłączana do płyty głównej) to kwestia kilkudziesięciu złotych.
Zanim zaczniemy konfigurować IrD-ę na Linuksie, powinniśmy dokładnie dowiedzieć się jakie są ustawienie w naszym systemie (sprawdzić w BIOS-ie). Często należy uaktywnić system IrDA, ponieważ może być standardowo wyłączony. Należy sprawdzić pod którym portem komunikacyjnym będzie widoczna IrDA. W przypadku laptopów będzie to zwykle COM2, czyli /dev/ttyS1. Co ciekawe, niektóre systemy biurkowe, wyposażone w dwa porty COM, podpinają IrD-ę pod COM2 - prawdopodobnie wyłączając standardowy, "kablowy" port szeregowy. Warto także sprawdzić numer portu i przerwanie przydzielone przez BIOS.
Po włączeniu IrD-y w BIOS-ie i odczytaniu jej parametrów uruchamiany Linuksa. Następnie:
Za pomocą komendy dmesg | grep tty sprawdzamy, które przerwanie przydzieliło interesującemu nas portowi komunikacyjnemu jądro Linuksa. Otrzymamy informację typu:
ttyS00 at 0x03f8 (irq = 4) is a 16550A ttyS01 at 0x02f8 (irq = 3) is a 16550AW tym przypadku port został skonfigurowany do używania portu 0x02f8 i przerwania 3. Jeżeli nie zgadza się to z ustawieniami w BIOS'ie, należy zmienić ustawienia portu za pomocą komendy setserial, np. jeżeli chcemy zmienić przerwania na 10, możemy to uczynić komendą:
# setserial /dev/ttyS1 port 0x02f8 irq 10Sprawdzamy czy wszystko poszło tak jak zamierzaliśmy:
# setserial -g /dev/ttyS1 /dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 10Niestety, w większości przypadków jeżeli jądro automatycznie nie przydziela portowi dobrego przerwania, odpowiednie wywołania setserial trzeba wykonywać przy każdym starcie systemu, przed uruchomieniem IrD-y (najlepiej dodać je do skryptów startowych systemu).
Dodajemy po pliku /etc/modules.conf wpis:
alias tty-ldisc-11 irtty alias char-major-161 ircomm-tty
Modyfikujemy plik /etc/sysconfig/irda tak, żeby wyglądał jak poniżej:
IRDA=yes DEVICE=/dev/ttyS1 DISCOVERY=yesJeżeli u nas IrDA jest na innym porcie szeregowym niż /dev/ttyS1, to należy odpowiednio zmodyfikować zmienną DEVICE.
Uruchamiamy IrD-ę:
service irda start.. i sprawdzamy czy został uruchomiony proces irattach:
ps auxw | grep irattachJeśli tak - to wszystko w porządku. Jeśli nie - to problem. Najczęstszą przyczyną jest zły port szeregowy lub złe ustawienia tego portu (np. przerwanie). Komunikat błędu można odczytać z /var/log/messages.
Dodajemy usługę irda do usług uruchamianych przy starcie przez system RedHat (np. przy pomocy narzędzia ntsyv).
cat /proc/net/irda/discoveryJeśli telefon został wykryty, to program cat powinien na wyjściu na wyjściu zwrócić informację jak poniżej:
IrLMP: Discovery log: nickname: Nokia 6310i, hint: 0xb125, saddr: 0xb4bd12f0, daddr: 0x0000b624Wartości nickname, hint, saddr i daddr mogą się różnić w zależności od modelu telefonu - ważny jest fakt pojawienia się tej całej linii. W przypadku niewykrycia urządzenia zostanie zwrócony pusty log:
rLMP: Discovery log:Powodem jest zwykle niewłączenie IrD-y w telefonie lub niewidzenie się czytnika IrD-y w telefonie i w komputerze (niektóre telefony mają podczerwień na czubku, a inne - z boku obudowy).
Jeśli telefon został wykryty, możemy spróbować się połączyć z telefonem za pomocą programu minicom (tu drobna dygresja: minicom jest programem do komunikacji przez porty/łącza szeregowe. W nomenklaturze komputerowej człon "com", "COM" lub "comm", pochodzący zapewne od słowa "communication", oznacza komunikację szeregową (ang. serial communications), kojarzoną zwykle z portami szeregowymi, tzw. COM-ami w pececie i interfejsem RS-232. Jak się ma IrDA to komunikacji szeregowej? Otóż wiele standardów, w tym także bezprzewodowych, wspiera tryb komunikacji, który jest identyczny do tego znanego z RS-232. W przypadku IrD-y tryb ten zwie się IrCOMM (Infared COMM) a w przypadku Bluetootha RFCOMM (Radio Frequency COMM). Dzięki temu istnieje prosta możliwość przeniesienia setek programów wykorzystujących komunikację szeregową do nowych zastosowań oraz możliwość tworzenia nowych aplikacji, w oparciu o tradycyjny i opanowany sposób komunikacji. Program minicom nie wie i nie musi wiedzieć, że porozumiewa się poprzez łącze bezprzewodowe. Koniec dygresji). Tu uwaga! Urządzeniem, które należy wskazać programowi minicom jest /dev/ircomm0 a nie /dev/ttyS1. Sprawdzamy czy odpowiada na komendy Hayesa (AT). Odpowiada? Więc IrDA została zainstalowana.
Opisany tu sposób konfiguracji połączenia przez GPRS został zaczerpnięty z dokumentu Mikko Rapeliego pt.: "Of Linux, GPRS Phones, Serial Cable, IrDA, Bluetooth and USB" (http://www.iki.fi/mikko.rapeli/linux_gprs.html) i zmodyfikowany na potrzeby połączenia z siecią Era przez telefon Nokia 6310i. W plikach pozostawiono angielskie komentarze autora, żeby ułatwić ich dostosowanie do innych konfiguracji (np. Plus GSM, telefony Siemensa itd.). Thank you, Mikko. Good job.
Żeby skonfigurować program pppd w celu obsługi systemu GPRS, należy stworzyć 4 pliki:
Plik /etc/ppp/peers/gprs o zawartości:
# File: gprs # # Description: # Serial cable, IrDA, Bluetooth and USB pppd options for GPRS phones. # Keep pppd attached to the terminal: # Comment this to get daemon mode pppd #nodetach updetach # Opcja updatach oznacza, ze pppd odlaczy się od terminala dopiero # gdy zostanie nawiazane polaczenie. # Debug info from pppd: # Comment this off, if you don't need more info debug # Show password in debug messages show-password # Connect/Disconnect scripts: connect "/usr/sbin/chat -v -f /etc/chatscripts/gprs-connect-chat" disconnect "/usr/sbin/chat -v -f /etc/chatscripts/gprs-disconnect-chat" # Serial device to which the GPRS phone is connected: # /dev/ttyS0 for serial port (COM1 in Windows), /dev/ircomm0 # /dev/ircomm0 for IrDA, # /dev/ttyUB0 for Bluetooth (Bluez with rfcomm running) and # /dev/ttyUSB0 for USB #/dev/ttyS0 # serial port one #/dev/ttyS1 # serial port two #/dev/ircomm0 # IrDA serial port one #/dev/rfcomm0 # Bluetooth serial port one #/dev/ttyUSB0 # USB serial device, for example Orange SPV # Serial port line speed #115200 # fast enough 57600 # perhaps usefull with IrDA # Hardware flow control: # Use hardware flow control with cable, Bluetooth and USB but not with IrDA. #crtscts # serial cable, Bluetooth and USB nocrtscts # IrDA # Ignore carrier detect signal from the modem: local # IP addresses: # - accept peers idea of our local address and set address peer as 10.0.0.1 # (any address would do, since IPCP gives 0.0.0.0 to it) # - if you use the 10. network at home or something and pppd rejects it, # change the address to something else :10.0.0.1 # pppd must not propose any IP address to the peer! noipdefault # Accept peers idea of our local address ipcp-accept-local # Add the ppp interface as default route to the IP routing table defaultroute # DNS servers from the phone: # some phones support this, some don't. usepeerdns novj nobsdcomp novjccomp nopcomp noaccomp # The phone is not required to authenticate: noauth # Username and password: # If username and password are required by the APN, put here the username # and put the username-password combination to the secrets file: # /etc/ppp/pap-secrets for PAP and /etc/ppp/chap-secrets for CHAP # authentication. See pppd man pages for details. # Example, Radiolinja operator pap-secrets: # "rlnet" * "internet" * user "erainternet" # Asyncmap: # some phones may require this option. #asyncmap 0xa0000 # No magic: # some phones may require this option. #nomagic # Require PAP authentication: # some phones may require this option. #require-pap
Plik /etc/chatscripts/gprs-connect-chat o następującej treści:
Uwaga! Pod treścią skryptu jest kilka słów wyjaśnienia. Przeczytać koniecznie!
Zawartość pliku:
# File: gprs-connect-chat # # Description: # # Set PDP context CID=1, protocol=IP, APN=internet: # AT+CGDCONT=1,"IP","internet","",0,0 # # Set CID=1 QoS requirements from the network, not supported by Nokia: # AT+CGQREQ=1,0,0,0,0,0 # # Set CID=1 minimum acceptable QoS parameters, not supported by Nokia: # AT+CGQMIN=1,0,0,0,0,0 # # 'Call' CID=1 (activate PDP context one, perform GPRS attach): # ATD*99***1# # # Some phones like the Orange SPV (yes, the Microsoft Smartphone) use this # dial string to start GPRS connection: # ATD*99# # # The actual chat script: TIMEOUT 5 ECHO ON ABORT '\nBUSY\r' ABORT '\nERROR\r' ABORT '\nNO ANSWER\r' ABORT '\nNO CARRIER\r' ABORT '\nNO DIALTONE\r' ABORT '\nRINGING\r\n\r\nRINGING\r' '' \rAT TIMEOUT 12 SAY "Press CTRL-C to close the connection at any stage!" SAY "\ndefining PDP context...\n" OK ATH OK ATE1 OK 'AT+CGDCONT=1,"IP","erainternet"' OK ATD*99***1# TIMEOUT 22 SAY "\nwaiting for connect...\n" CONNECT "" SAY "\nConnected." SAY "\nIf the following ppp negotiations fail,\n" SAY "try restarting the phone.\n"
Uwaga! W skrypcie powyżej występuje następująca linia:
OK 'AT+CGDCONT=1,"IP","erainternet"'Jest ona specyficzna tylko dla operatora ERA (nazwa APN to "erainternet"). Należy ją zmienić w przypadku innych operatorów. Ustawienia dla polskich operatorów są następujące:
Plus APN: "www.plusgsm.pl" (użytkownik: brak, hasło: brak).
Idea APN: "www.idea.pl" (użytkownik: ppp, hasło: ppp).
Era APN: "erainternet" (użytkownik: erainternet, hasło: erainternet).
Poniższa linia to wywołanie odpowiedniego numeru GPRS:
OK ATD*99***1#Ogólna składnia polecenia wygląda następująco:
ATD*99[*APN[*Protocol[*CID]]]#gdzie zarówno "APN", "Protocol" jak i "CID" są opcjonalne (przyjmują wówczas wartości domyślne). Wartości "Protocol" nie należy ustawiać nigdy - domyślne "PPP" jest jak najbardziej OK. Składnia minimalna wygląda następująco:
ATD*99#Jest to jednak składnia niezalecana przez niektórych producentów telefonów, szczególnie tych, które wspierają możliwość wpisania więcej niż jednego aktywnego punktu dostępu (APN-a). Każdy taki punkt jest wpisany w telefonie pod określoną pozycją (1, 2, ..) - ta pozycja to jest właśnie CID (connection ID). Niektórzy operatorzy wpisują swoje ustawienia w sprzedawanych telefonach, zwykle trzeba to jednak zrobić ręcznie. Najbezpieczniejszą składnią jest taka, jak zaproponowano w pliku powyżej:
OK ATD*99***1#czyli domyślny (lub ustawiony wcześniej komendą AT+CGDCONT) APN, protokół PPP i CID o numerze 1. Czasami jednak CID=1 może być zarezerwowany dla np. WAP-u po GPRS-ie (a nie pełnego, modemowego dostępu po Internetu). Wówczas może być konieczne ustawienie CID=2 lub CID=3, np.
OK ATD*99***2#
Plik /etc/chatscripts/gprs-disconnect-chat o zawartości:
# File: gprs-disconnect-chat # # send break exec /usr/sbin/chat -V -s -S ABORT "BUSY" ABORT "ERROR" ABORT "NO DIALTONE" SAY "\nSending break to the modem\n" "" "\K" "" "+++ATH" SAY "\nPDP context detached\n"
Plik /etc/ppp/chap-secrets o zawartości:
# Secrets for authentication using PAP # client server secret IP addresses "erainternet" * "erainternet" *
Plik /etc/ppp/ip-up.local o zawartości:
mv /etc/resolv.conf /etc/resolv.conf-pppbackup cp -f /etc/ppp/resolv.conf /etc/resolv.conf chmod a+r /etc/resolv.conf
Plik /etc/ppp/ip-down.local o zawartości:
mv /etc/resolv.conf-pppbackup /etc/resolv.conf
Uwaga! W przypadku telefonów Nokia 6310/6310i (może też innych?) stwierdziliśmy objaw zrywania połączenia GPRS po ok. dwóch minutach. Żeby się go pozbyć, należy otworzyć plik /etc/ppp/options i sprawdzić czy w pliku jest następująca linia (lub podobna):
lcp-echo-failure 4Jeśli jest - należy ją usunąć albo wykomentować. Należy się również upewnić czy opcji tej nie ma w innych plikach odczytywanych przy połączeniu, można to sprawdzić np. programem grep:
grep -r lcp-echo-failure /etc/ppp
Teraz czas na przetestowanie połączenia. Wywołanie komendy:
pppd call gprsspowoduje odczytanie przez pppd pliku /etc/ppp/peers/gprs i uruchomienie zawartych tam instrukcji. Na wyjściu powinniśmy otrzymać komunikaty drukujące kolejne fazy połączenia: komendy AT, wybieranie numeru i otrzymanie adresu IP. Powinny nam zostać również przesłane adresy IP serwerów DNS (ostatni komunikat przed odłączeniem się od terminala). Za obsługą opcja adresów IP serwerów DNS stoi opcja usepeerdns, dzięki której adresy IP zostaną umieszczone w pliku /etc/ppp/resolv.conf, a następnie przekopiowane przez nasz skrypt /etc/ppp/ip-up.local do /etc/resolv.conf. Zakończenie połączenia następuje przez wywołanie:
killall pppdTa barbarzyńska z pozoru metoda zakończenia połączenia sprawuje się wyśmienicie, w tym wywołuje skrypty /etc/ppp/if-down i /etc/ppp/if-down.local (czyli zamyka połączenie w sposób, jaki byśmy oczekiwali).
W przypadku połączenia GPRS istotna jest ilość wysłanych i odebranych bajtów. Informację tę można zdobyć wywołując komendę pppstats (przed zakończeniem połączenia!).
W tym podrozdziale zostanie opisana instalacja modemów GPRS Sony Ericsson GC75 i GC75e oraz konfiguracja pppd dla połączenia GPRS IDEA.
Obie karty PCMCIA są standardowo wykrywane. Jeśli nasz modem nie jest wykrywany, powinniśmy się upewnić czy nasze jądro jest odpowiednio skonfigurowane. Przykład poprawnej konfiguracji jądra.
I tak dla:
Jąder serii 2.4 :
General setup ---> [*] Support for hot-pluggable devices PCMCIA/CardBus support ---> [M] PCMCIA/CardBus support [*] CardBus support [*] Databook TCIC host bridge support [ ] i82092 compatible bridge support [*] i82365 compatible bridge support Character devices ---> PCMCIA character devices ---> [M] PCMCIA serial device support [ ] SyncLink PC Card support
Jąder serii 2.6 :
General setup ---> [*] Support for hot-pluggable devices Bus options (PCI, PCMCIA, EISA, MCA, ISA) ---> PCCARD (PCMCIA/CardBus) support ---> [M] PCCard (PCMCIA/CardBus) support [ ] Enable PCCARD debugging [ ] Enable obsolete PCCARD code [M] 16-bit PCMCIA support [*] 32-bit CardBus support --- PC-card bridges [M] CardBus yenta-compatible bridge support [ ] Cirrus PD6729 compatible bridge support [M] i82092 compatible bridge support [M] i82365 compatible bridge support [ ] Databook TCIC host bridge support Device Drivers ---> Character devices ---> Serial drivers ---> [*] 8250/16550 and compatible serial support [*] Console on 8250/16550 and compatible serial port [M] 8250/16550 PCMCIA device support [ ] 8250/16550 device discovery via ACPI namespace
Przy tak skonfigurowanym jądrze po wsunięciu karty PCMCIA do slotu powinniśmy zobaczyć komunikat wyglądający mniej więcej tak:
ttyS0 at I/O 0x3f8 (irq = 3) is a 16550AJeśli korzystamy z X'ów możemy skorzystać z polecenia dmesg. Jeśli nasz modem zostanie wykryty np. jako ttyS14, a w /dev nie ma takiego urządzenia należy je utworzyć np.
# mknod /dev/ttyS14 c 4 78
WAŻNE: W przypadku gdy nasz modem to GC89, musimy wykonać następujące czynności.
Musimy zainstalować setserial, w przypadku Debiana możemy posłużyć się apt-get.
# apt-get install setserialNasza karta jest "dość wybredna" jeśli chodzi o prędkość z jaką będzie chciała z nami rozmawiać. Mamy dwie możliwości:
# setserial /dev/ttyS14 spd_shi # setserial /dev/ttyS14 baud_base 460800Teraz nasz port szeregowy powinien rozmawiać z prędkością 38400 (standardowo ustawiona w minicomie).
# setserial /dev/ttyS14 baud_base 460800Teraz nasz port szeregowy powinien rozmawiać z prędkością 230400 (działa w większości przypadków.)
Aby uruchomić moduł wlan, musimy skorzystać z ndiswrapper'a. Dokładny opis instalacji ndiswrappera znajdziemy w Sekcja 7.14.2. Nasze drivery znajdziemy na dołączonej płycie do SE GC89 (Wlan-2k/semwl5.inf).
W tym momencie nasz modem PCMCIA jest gotowy do pracy. Została nam jeszcze konfiguracja pppd.
Jeśli jesteśmy użytkownikami Debiana, możemy pominąć następne rozdziały i zainstalować paczkę edge-gprs udostępnianą przez PRATERM S.A. Konfiguracja jest bardzo prosta i na pewno każdy sobie poradzi, wystarczy odpowiedzieć na kilka pytań.
Modem korzysta ze sterowników nozomi, które są obecne w nowszych jądrach (na pewno 2.6.26). Jeśli mamy starszy modem, musimy ściągnąć sterowniki ze strony http://www.pharscape.org/3G/nozomi_060209.tar.gz, a następnie je skompilować. Aby tego dokonać, powinniśmy zaopatrzyć się w źródła/nagłówki jądra.
Następnie standardowo make i powinniśmy otrzymać plik nozomi.ko. W przypadku problemów ze znalezieniem katalogu ze źródłami, możemy użyć opcji -I/path/to/kernel. Po załadowaniu modułu nasz modem jest dostępny jako /dev/noz0 ... /dev/noz3. Jeśli urządzenia nie zostały automatycznie stworzone, musimy zrobić to ręcznie:
mknod /dev/noz0 c 241 0 mknod /dev/noz1 c 241 1 mknod /dev/noz2 c 241 2 mknod /dev/noz3 c 241 3
Transmisja danych odbywa się na urządzeniu /dev/noz0, jednak w tym samym czasie możemy komunikować się z modemem w /dev/noz2. Jest to pewne udogodnienie, ponieważ teoretycznie pozwala na badanie siły sygnału podczas transmisji (czego nie umożliwiają modemy Sony Ericsson GC8X) oraz np. dostęp do skrzynki sms, spisu telefonów itp.
Ostatnim etapem, opcjonalnym jest umieszczenie nozomi.ko w katalogu z modułami. Robimy to w zależności od posiadanej przez nas dystrybucji, zazwyczaj /lib/modules/2.X.X/...
Jeśli jesteśmy użytkownikami Debiana, możemy pominąć następne rozdziały i zainstalować paczkę edge-gprs udostępnianą przez PRATERM S.A. Konfiguracja jest bardzo prosta i na pewno każdy sobie poradzi, wystarczy odpowiedzieć na kilka pytań.
W przypadku modemów Sony Ericsson GCXX sprawa jest bardzo prosta. Po zaopatrzeniu się w pakiet pcmcia-cs wydajemy po prostu polecenie: cardctl eject a następnie cardctl insert.
Gdy posiadamy OptionGlobeTrotter Fusion+, sprawa nieco się komplikuje. Gdybyśmy użyli metody z GCXX, nastąpiłby kernel panic. Poprawnym rozwiązaniem jest najpierw zabicie pppd, a następnie usunięcie w odpowiedniej kolejności modułów. I tak:
killall pppd rmmod ppp_async rmmod ppp_generic rmmod nozomi cardctl eject cardctl insert modprobe nozomi
Aby zalogować się do sieci gprs, musimy w w przypadku Sony Ericsson GCXX podczas komunikacji z modemem wpisać:
AT+CFUN=1,1 AT+CPIN=TWÓJ_PIN
W przypadku OptionGlobeTrotter Fusion+:
AT+CPIN=TWÓJ_PIN
Poniżej jest zamieszczony najogólniejszy zestaw plików ppp, który powinien działać zarówno dla GCXX jak i OGTFusion+.
/etc/ppp/peers/edge-gprs
debug # Max speed 230400 # Do not use hardware flow control nocrtscts # Don't keep pppd attached to the terminal: updetach # Connection options nodeflate lcp-echo-interval 0 # Path to chat script connect/disconnect connect "/usr/lib/edge-gprs/edge-gprs-connect-chat" # IP address configuration :20.0.0.1 noipdefault usepeerdns novj novjccomp nobsdcomp defaultroute # Enter below your path to modem /dev/ttyS1/usr/lib/edge-gprs/edge-gprs-connect-chat
/usr/sbin/chat \ TIMEOUT 20 \ ECHO ON \ ABORT '\nBUSY\r' \ ABORT '\nERROR\r' \ ABORT '\nNO ANSWER\r' \ ABORT '\nNO CARRIER\r' \ ABORT '\nNO DIALTONE\r' \ ABORT '\nRINGING\r\n\r\nRINGING\r' \ SAY "Press CTRL-C to close the connection at any stage!" \ TIMEOUT 60 \ '' '\rAT' \ OK 'ATE1' \ OK 'AT+CGDCONT=1,"IP","AP_OPERATORA"' \ OK 'ATD*99***1#' \ TIMEOUT 30 \ CONNECT "" \ SAY "\nConnected."Teraz tylko pppd call edge-gprs i powinniśmy uzyskać połączenie.
ERA - AP_OPERATORA to "erainternet". Dodatkowo wpisujemy do /etc/ppp/pap-secrets"erainternet * erainternet "oraz do /etc/ppp/peers/edge-gprs"user erainternet" oraz "auth"
IDEA(ORANGE) - AP_OPERATORA to "www.idea.pl". Dodatkowo do /etc/ppp/peers/edge-gprs dopisujemy "noauth".
PLUS - AP_OPERATORA to "www.plusgsm.pl". Dodatkowo do /etc/ppp/peers/edge-gprs dopisujemy "noauth".
Jeśli zauważymy, że nasz modem działa bardzo wolno, albo że nie działa prawie w ogóle (szczególnie w przypadku komputerów UNO), najprawdopodobniej jest to wina przerwań. W przypadku komputerów UNO, musimy w Bios'ie zmienić ustawienia przerywania IRQ 9 z ISA/PNP na PCI/Legacy. Modem powinien zacząć działać z normalną prędkością. Dotyczy to zarówno modemów GCXX, jak i OGTFusion+.
Poprzedni | Spis treści | Następny |
Konfiguracja połączenia PLIP | Początek rozdziału | Diagnozowanie problemów z pppd |