Modem EDGE Comander w usłudze iPlus
Witam.
W ofercie PlusGSM jest całkiem rozsądna oferta stałego dostępu do internetu o nazwie iPlus. Oferowane tempo transmisji nie jest zbyt wysokie (u mnie waha się między 80 a 120 kbit/s), ale “internet pod każdym krzakiem” jest całkiem obiecujący.
Opiszę tutaj, w jaki sposób skonfigurować iPlusa na modemie Comander USB. Konfiguracja jest robiona pod kątem Gentoo, ale powinna działać na każdym współczesnym systemie Linux. Nietypowość rozwiązania polega na tym, że modem łączy się automagicznie po wpięciu go do USB.
Przygotowanie kernela
Ze stron http://www.comander.pl można ściągnąć łatki na kernel. Można albo założyć wymienioną łatkę, albo zrobić to na piechotę: W pliku /drivers/usb/serial/ftdi_sio.c dodać wskazane linijki
{ USB_DEVICE(FTDI_VID, FTDI_IRTRANS_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_IPLUS1_PID) }, /* Dodaj tą linijkę */
{ USB_DEVICE(FTDI_VID, FTDI_IPLUS2_PID) }, /* Dodaj tą linijkę */
{ USB_DEVICE(FTDI_VID, FTDI_SIO_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_8U232AM_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_8U232AM_ALT_PID) },
W pliku /drivers/usb/serial/ftdi_sio.h dodać wskazane linijki
#define FTDI_IRTRANS_PID 0xFC60 /* Product Id */
/* comandrer iPLUS device - dodaj poniższe 2 linijki */
#define FTDI_IPLUS1_PID 0xCF58 /* Product Id */
#define FTDI_IPLUS2_PID 0xD070 /* Product Id */
/* www.crystalfontz.com devices - thanx for providing free devices for evaluation! */
/* they use the ftdi chipset for the USB interface and the vendor id is the same */
#define FTDI_XF_632_PID 0xFC08 /* 632: 16x2 Character Display */
Po dodaniu wpisów należy w konfiguracji kernela włączyć pozycję Device Drivers-> USB Support-> USB Serial Converter Support->USB FTDI Single Port Serial Driver.
Po skompilowaniu, zainstalowaniu i załadowaniu modułu ftdi_sio, po podłączeniu modemu powinno pojawić się urządzenie /dev/usb/tts/0 lub /dev/ttyUSB0.
Konfiguracja systemu
O ile zakładanie łatki producent zaprezentował dobrze, o tyle konfiguracja systemu po prostu nie działa. Zapomniano po prostu wysyłać PIN do modemu…
Na początek mój plik /etc/chatscripts/plus. Pamiętaj wpisać swój PIN w zaznaczonym miejscu!
# Błędy - <b>następne dwie linijki powinny być w jednej</b>!
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE'
ABORT 'NO DIAL TONE’ ABORT 'NO ANSWER' ABORT DELAYED
# Inicjalizacja
'' AT+CFUN=1
'OK' AT
'OK' AT
'OK' AT+CPIN?
TIMEOUT 5
'+CPIN: READY-AT+CPIN="<b>Twój PIN</b>"-OK' AT
'OK' AT
'OK' AT
'OK' AT
'OK' AT
'OK' AT
'OK' AT
'OK' AT
'OK' AT
'OK' AT+cgdcont=1,"ip","www.plusgsm.pl"
'OK' AT
'TIMEOUT-AT-OK’ AT
'OK' AT
TIMEOUT 60
'OK' 'ATD*99#'
CONNECT dc
Powtórzenia są konieczne, gdyż modem odpowiada 'OK' zanim tak naprawdę skończy daną operację. Najbardziej jest to istotne dla komendy AT+cgdcont, dlatego po niej jest myk z timeoutem.
Następny jest plik /etc/ppp/peers/plus. Zaznaczony fragment wypełnij urządzeniem modemu w Twoim systemie.
hide-password
noauth
connect "/usr/sbin/chat -v -t 5 -f /etc/chatscripts/plus"
debug
/dev/ttyUSB0
115200
defaultroute
noipdefault
user "ppp"
remotename plus
ipparam plus
usepeerdns
Następny jest plik /etc/ppp/resolv/plus. Ma mieć postać jednej linijki z pojedynczym znakiem #.
Następny jest plik /etc/ppp/ip-up:
REALRESOLVCONF='/etc/resolv.conf'
{
grep --invert-match '^nameserver[[:space:]]' $REALRESOLVCONF
cat /etc/ppp/resolv.conf
} > $REALRESOLVCONF.tmp
cp -dpP $REALRESOLVCONF $REALRESOLVCONF.pppd-backup
mv $REALRESOLVCONF.tmp $REALRESOLVCONF
chmod 0644 /etc/resolv.conf
chown root:root /etc/resolv.conf
Następny jest plik '/etc/ppp/ip-down':
REALRESOLVCONF='/etc/resolv.conf'
if [ -e $REALRESOLVCONF.pppd-backup ]; then
mv -f $REALRESOLVCONF.pppd-backup $REALRESOLVCONF
fi
Jeżeli wszystko jest dobrze, to komenda pppd call plus powinna zestawić połączenie.
Automatyczne łączenie po podpięciu modemu
Automatyzację łączenia uzyskałem stosując następujące programy:
- ivman - program umożliwiający reagowanie na zmiany konfiguracji, dodawanie i usuwanie urządzeń peryferyjnych
- HAL - biblioteka obsługująca monitorowanie i zarządzanie urządzeniami peryferyjnymi. Nowe Linuksy mają to zainstalowane.
- DBUS - biblioteka umożliwiająca wymianę komunikatów między aplikacjami. Nowe Linuksy mają to zainstalowane.
Do zestawienia połączenia używam następującego skryptu /usr/local/bin/comander:
# 5 sekund przerwy na zainicjalizowanie modemu
# po podłączeniu zasilania
sleep 5
# Start sieci
pppd call plus
Konfiguracje programu ivman w pliku /etc/ivman/IvmConfigActions.xml należy uzupełnić przed tagiem kończącym o następujący wpis:
<ivm:Option name="exec" value="/usr/local/bin/comander" />
</ivm>
Po ponownym uruchomieniu ivmana skrypt startowy modemu powinien uruchamiać się automatycznie po podłączeniu modemu do portu USB. Nie robiłem skryptu rozłączającego — po prostu odłączam modem od laptopa i pppd grzecznie się zamyka.
Miłego buszowania po Internecie!
- Wersja do wydruku
- Odpowiedz
- 677 odsłon
- Wersja PDF


Ostatnie odpowiedzi
5 dni 15 godzin temu
5 dni 20 godzin temu
1 tydzień 2 dni temu
8 tygodni 5 godzin temu
8 tygodni 1 dzień temu