MODEM GPRS
Opracowane przez: 'pawku'
2005-08-20 21:19

Sprawa tak naprawdę jest prosta i zaraz pokażę jak zrobić pliki, żeby dzialal gprs i edge (szybszy gprs) - stad nazwy przyjąłem od razu dla edge. Konfiguracja dotyczy modemów na porcie szeregowym. Sprawdzone na Sony Ericsson SE GC75, na systemie LIBRANET 3.0 (pochodna Debiana), neotebook Amilo L1300

Zaloguj się jako root i do dzieła:
1. Najpierw zobacz czy w ogóle widoczny jest w systemie modem: wpisz

cardctl status

jeśli wyskoczy coś w stylu : Socket 0: Vcc 3.3v............. to znak, że widzi - dla sprawdzenia wyciągnij kartę i wpisz znów

cardctl status

- jeśli będzie różnica to masz kartę na /dev/modem

2. Przystępujesz do konfiguracji:

Najpierw zrób sobie pliczek z opcjami dla pppd: czyli w /etc/ppp/peers/ tworzysz plik: edge-gprs o treści:

################
#/etc/ppp/peers/edge-gprs
debug
/dev/modem
115200
crtscts
updetach
nodeflate
noauth
user idea
connect "/usr/sbin/chat -v -f /etc/chatscripts/edge-gprs-connect-chat"
disconnect "/usr/sbin/chat -v -f /etc/chatscripts/edge-gprs-disconnect-chat"
:20.0.0.1
noipdefault
usepeerdns
novj
novjccomp
nobsdcomp
defaultroute
####

w opcji user dałem "idea", ponieważ używam operatora idea do polaczenia gprs. W innym przypadku wpisz odpowiednik swojego operatora. Oczywiście trzeba zmienić atrybut pliku, żeby byl wykonywalny czyli np:

chmod +x ./edge-gprs

(pozostałe pliki, które tworzymy też należy zmienić na wykonywalne)

kolejny pliczek to: /etc/chatscripts/edge-gprs-connect-chat

#/etc/chatscripts/edge-gprs-connect-chat 
# 
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'    
SAY      "Press CTRL-C to close the connection at any stage!" 
TIMEOUT  30       
''       '\rAT'                          
OK 'AT+CFUN=1,1'     
OK 'AT+CPIN="wpisz_numer_pinu_karty"'     
OK       'ATE1\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d'      
SAY "\nWaiting for logged to gsm network..." 
SAY      "\ndefining PDP context...\n"   
OK       '\d\d\d\d\d\d\d\d\d\d\dAT+CGDCONT=1,"IP","www.idea.pl","",0,0' 
OK 'AT+CBST=81,0,1;+CHSN=6,0,0,0' 
OK       'ATD*99***1#'                   
TIMEOUT  10                             
SAY      "\nwaiting for connect...\n"    
CONNECT  ""                              
SAY      "\nConnected."                  
SAY      "\nIf the following ppp negotiations fail,\n" 
SAY      "try again. Sometimes the 
          waiting time to logged to gsm network is to short.\n"
############

UWAGA: musisz wpisać swoj PIN w miejscu AT+CPIN="tu_wpisz"

ważne jest również, że modem zanim przekaże info czeka i to właśnie w naszym przypadku linijka z ATE1 pomaga nam w tym poprzez ilosic \d\d\d\d jeśli będzie to konieczne dodaj ich troszkę - u mnie na razie nie trzeba było.

Dzieki tej prostej metodzie omijamy użytkowanie durnego programu typu MINICOM.

również wpis "www.idea.pl" jest dla tego operatora, zmień odpowidnio do swojego - chodzi tu o tzw. punkt dostepu.

W zasadzie to wystarczą te 2 pliki, ale dodamy jeszcze konfiguracje dla rozłaczenia: otwórz plik: /etc/chatscripts/edge-gprs-disconnect-chat

###############
# 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"
#################

pamiętaj, żeby pliki byly wykonywalne!!!!! Na koniec trzeba jeszcze dodać login i hasło w pliku /etc/ppp/pap-secret i dla mojego operatora wyglada to tak :

#########
#/etc/ppp/pap-secret

"idea" * "idea"

#########

W nim nie trzeba zmieniać żadnych praw. Pozostaje odpalić naszego demona:

pppd call edge-gprs

Jak uzyskasz połączenie zobaczysz jak plyną pakiety :)

Jeśli chcesz żeby działało automatycznie dopisz pppd call edge-gprs np do inittab lub innego pliku startowego.

Korzystalem z wielu opracowań - trochę tu, trochę tam - często zapominano o jakimś detalu co powodowało błędy w skyptach.

opracowanie : pawku