{ }
menu zespół linki Logowanie
Stabilny hosting
BSDGuru zawdzięcza
firmie Datanet.pl
Hosting BSDGuru.org - DataNet.pl

GPRS i FreeBSD czyli Internet przez telefon GSM

Na rynku pojawia się coraz więcej możliwości podłączenia do Internetu. Operatorzy telefonów komórkowych GSM udostępniają usługę dostępu poprzez technologię GPRS. Można dyskutować lub zastanawiać się czy odpowiada nam opłata za każdą rozliczeniową ramkę lecz dla niektórych jest to często jedyna możliwość skorzystania z sieci.

Poniżej znajdziecie szybki opis podłączenia telefonu Motorola C651 działającego w sieci Plus GSM przetestowanego pod FreeBSD 5.x, 6.0 i FreeSBIE.

Konfiguracja sprzętu

Do telefonu należy dokupić przewód połączeniowy zakończony z jednej strony (telefonu) małą wtyczką USB (jak w aparatach fotograficznych), a z drugiej standardowym złączem USB. Podłączenie przewodu do komputera da nam na konsoli odpowiedni komunikat, brakuje teraz tylko sterowników.

Nie miałem okazji sprawdzić połączeń przez port podczerwieni (IrDA) lub Bluetooth, ale opisane poniżej uwagi zapewne przydadzą się tym którzy doprowadzą do połączenia telefonu z systemem tak, by był widoczny jego modem na porcie szeregowym.

Konfiguracja kernela

Ta część jest bardzo prosta i polega na wykonaniu poleceń ładujących moduły:

# kldload ucom
# kldload umodem

Oczywiście zadziała jeśli mamy skompilowaną podstawową obsługę portu USB.

Możemy też skompilować moduły podając w pliku konfiguracyjnym kernela:

device ucom
device umodem

Kiedy mamy odpowiednie moduły w kernelu pojawia się komunikat na konsoli:

ucom0: Motorola Inc. Motorola Phone (C650), rev 1.10/0.01, addr 2, iclass 2/2
ucom0: data interface 1, has CM over data, has no break
ucom0: status change notification available

Otrzymujemy nowy port /dev/ucom0 lub /dev/cuaU0 który jest nam dalej potrzebny do transmisji.

Konfiguracja łącza przez ppp

Konfigurację zmieniamy w pliku konfiguracyjnym /etc/ppp/ppp.conf. Po pierwsze należy podać nasz port komunikacji:

set device /dev/cuaU0

lub dla FreeSBIE (dobrze jest sprawdzić swój /dev po podłączeniu przewodu):

set device /dev/ucom0

Dalej należy ustawić numer wydzwaniany:

set phone "*99***3#"

Można dodać dodatkowo ATZ OK do skryptu lub inne podpatrzone polecenie służące do konfiguracji modemu telefonu. To polecenie wybiera domyślny kontekst dla mojego telefonu który również samodzielnie potrafi połączyć się z siecią po długich walkach z jego konfiguracją.

Ktoś w sieci podawał polecenie AT do konfiguracji dowolnego APN:

AT+CGDCONT=1,"IP","internet"
ok
ATDT*99***1#

gdzie "internet" oznacza wybrany APN. Działało, ale wymagało dopisania pierwszej części do skryptu lub obsługi w terminalu polecenia ppp który rozmawia bezpośrednio z modemem telefonu.

Dalej należy postępować jak przy zwykłym połączeniu ppp. Ręcznie:

# ppp papchap
Working in interactive mode
Using interface: tun0
ppp ON kayak>term
deflink: Entering terminal mode on /dev/cuaU0
Type `~?' for help
ATDT*99***1#
CONNECT
~.
ppp ON kayak>
Ppp ON kayak>
PPp ON kayak>
PPP ON kayak>

Automatycznie w tle:

# ppp -auto papchap

Każda próba osiągnięcia sieci zewnętrznej da nam uruchomienie połączenia obsługiwanego w tle. Ja stosuję metodę pośrednią:

# ppp papchap
Working in interactive mode
Using interface: tun0
ppp ON kayak>dial
ppp ON kayak>
Ppp ON kayak>
PPp ON kayak>
PPP ON kayak>

Podsumowanie

Podłączając inny model trzeba po pierwsze dowolnym łączem doprowadzić do tego by system zobaczył modem telefonu przez port szeregowy odpowiadający dołączonemu urządzeniu. Następnie trzeba znać polecenia AT modemu telefonu służące do uruchomienia transmisji ppp.

Pomyślnych połączeń!

Autor: 
Ryszard W. Czekaj [rychoo@BSDGuru.org]
Porozmawiaj o tym artykule na forum: 

tytus, czw., 17/04/2008 - 10:29