Default style (Cherry Eve). Switch styles (Capricorn). Atom Feed Calendar
http://blogs.sun.com/mbrowarski/date/20081109 niedziela listopad 09, 2008

e220 pod opensolarisem

Jestem "szczęśliwym" posiadaczem iPlusa z modem USB Huawei E220 :). Firma Plus dostarczyła oczywiście oprogramowanie tyko pod Windowsy 32bitowe (konia z rzędu temu, komu uda się to uruchomić pod 64bitową Vistą), a jak mamy prawdziwy 64bitowy system operacyjny OpenSolaris? (ja używam Nevada b102)
Procedura też powinna działać dla Era Blueconnect (dostawca internetu jest inny, ale chyba parametery te same).
Najpierw należy taki modem zarejstrować pod sterownikiem usb modem, robi się to tak:
1. Podłączamy modem do łącza USB.
2. Wykonujemy:
-bash# lshal | less
usb_device.product_id = 4097 (0x1001) (int)
usb_device.vendor_id = 4817 (0x12d1) (int)
usb_device.vendor = 'HUAWEI Technologies' (string)
usb_device.product = 'HUAWEI Mobile' (string)

3. Wyszukujemy tak HUAWEI technologii i patrzymy do vendor_id i product_id (interesują nas wartości hexydecymalne, u mnie to 0x12d1 i 0x1001)
4. Rejestrujemy urządzenie pod sterownikiem usbsacm
-bash# update_drv -a -i 'usb12d1,1001' usbsacm
5. Po tym tworzymy urządzenia które będą obsługiwać modem:
-bash# devfsadm
6. sprawdzamy czy modem działa:
-bash# tip /dev/term/0
ATZ
+OK
ATI
Manufacturer: huawei
Model: E220
Revision: 11.116.04.01.69
IMEI: 351827438125857
+GCAP: +CGSM,+DS,+ES
+OK
7. Wychodzimy z tip'a przez ~. ( tylda kropka)

Już mamy podłączony modem, to teraz dzwonienie do iPlus (jeżeli posiadamy inny modem, np. na PCIMCIA, dalsze procedura też powinna być poprawna).
Przed dalszymi pracami należy wyłączyć PIN na karcie SIM,np. przekładając kartę do telefonu i tam wyłączamy pytanie o PIN. (albo dopisujemy AT+CPIN=$PIN do skryptu 3netchat)
Jak wygląda procedura postępowania:
1. wyłączamy wszystkie procesory i core tak aby został nam tylko jeden core na pierwszym procesorze (wynika to z błędu w pppd)
2. uruchamiamy pppd. Na początku działania pppd uruchamia chat, który jest odpowiedzialny za dzwonienie przez modem
3. jak połączenie zostanie nawiązane pppd włącza interfejs sppp0 i go odpowiednio skonfiguruje (w naszym przypadku ustawia adres, jaki przysle nam IPlus)
4. przegrywamy plik /etc/ppp/resolv.conf, który jest tworzony po poprawnym połączeniu) do /etc/resolv.conf (tak aby mieć zapewnione serwery DNSów z iPlusa)
5. Można już się bawić Internetem na OpenSolarisiem.

OK, a teraz pliki, które zautomatyzują mam trochę ten proces:
1. Najpierw tworzymy skrypt, którym będziemy uruchamiać resztę skryptów:
bash# cat /bin/iplus
psradm -f 1
pppd call 3netconnect debug
psradm -n 1

2. Tworzymy plik /etc/ppp/peers/3netconnect:
-bash# /etc/ppp/peers/3netconnect
refuse-chap
nodetach
460800
/dev/term/0
crtscts
noipdefault
holdoff 1
noauth
asyncmap 00000000
passive
defaultroute
usepeerdns
noccp
novj
lcp-echo-interval 0
connect '/usr/bin/chat -V -t15 -f /etc/ppp/3netchat'

3. Tworzymy plik /etc/ppp/3netchat, odpowiedzialny za komunikacje z modemem iPlus (dzwonienie):
-bash# cat /etc/ppp/3netchat
ABORT BUSY
ABORT ERROR
ABORT 'NO ANSWER'
ABORT 'NO CARRIER'
'' ATZ
OK 'ATDT *99#'
CONNECT '\d\c'

(! Uwaga, te apostrofy są spod klawisza, gdzie jest podwójny apostrof ", nie spod tyldy ~ !)
4. Nadajemy uprawnienia dla /bin/iplus
-bash# chmod a+x /bin/iplus
5. Uruchamiamy go:
-bash# /bin/iplus
serial speed set to 460800 bps
connect option: '/usr/bin/chat -V -t15 -f /etc/ppp/3netchat' started (pid 1270)
ATZ
OK
ATDT *99#
CONNECTSerial connection established.
serial speed set to 460800 bps
Using interface sppp0
Connect: sppp0 <--> /dev/term/0
/etc/ppp/pap-secrets is apparently empty
/etc/ppp/chap-secrets is apparently empty
sent [LCP ConfReq id=0x22 ]
rcvd [LCP ConfReq id=0x0 ]
sent [LCP Ident id=0x23 magic=0x0 "ppp-2.4.0b1 (Sun Microsystems, Inc.)"]
sent [LCP ConfRej id=0x0 ]
rcvd [LCP ConfAck id=0x22 ]
rcvd [LCP ConfReq id=0x1 ]
sent [LCP ConfAck id=0x1 ]
sent [LCP Ident id=0x24 magic=0x56c50c5c "ppp-2.4.0b1 (Sun Microsystems, Inc.)"]
sent [IPCP ConfReq id=0x80 ]
rcvd [LCP DiscReq id=0x2 magic=0xc952af]
rcvd [IPCP ConfNak id=0x80 ]
sent [IPCP ConfReq id=0x81 ]
rcvd [IPCP ConfReq id=0x0]
sent [IPCP ConfNak id=0x0 ]
rcvd [IPCP ConfNak id=0x81 ]
sent [IPCP ConfReq id=0x82 ]
rcvd [IPCP ConfReq id=0x1]
sent [IPCP ConfAck id=0x1]
rcvd [IPCP ConfAck id=0x82 ]
Peer refused to provide his address; assuming 192.168.1.1
local IP address 77.115.152.227
remote IP address 192.168.1.1
primary DNS address 212.2.96.51
secondary DNS address 212.2.96.52

Tak wygląda poprawna sesja z iPlusem.
Może się zdarzyć, że podczas pierwszego łączenia będzie prośba o autentykacje CHAP, wynika to z faktu, że modem jeszcze jest w fazie logowania do sieci, należy wtedy przerwać łączenie, poczekać chwile i ponowić próbę.

Dla ciekawskich:
Spis komend dla modemu e220
at+clac <- spis komend obsługiwanych przez modem (u mnie jest COMMAND NOT SUPPORT)
Wymuszanie prędkości dla modemu (testowane, i chyba działa :)):
# GPRS/EDGE Preferred
AT^SYSCFG=2,1,3FFFFFFF,1,2

# 3G Preferred
AT^SYSCFG=2,2,3FFFFFFF,1,2

# GPRS/EDGE Only
AT^SYSCFG=13,1,3FFFFFFF,1,2

# 3G Only
AT^SYSCFG=14,2,3FFFFFFF,1,2
Aby z tego skorzystać, trzeba dokładnie dopisać:
AT\^SYSCFG=14,2,3FFFFFFF,1,2
do pliku /etc/ppp/3netchat

Comments:

świetny news, dodam że w przypadku modemu na pcmcia, trzeba wpisać w /etc/system linie set mtc_off = 1, żeby modem nie zawieszał np.devfsadm, cfgadm itp, i poprawnie pojawiał się w /dev/term/... snv_101.

Posted by wozik on listopad 09, 2008 at 07:49 PM CET #

Przepraszam, ale dlaczego wylaczyc PIN na karcie SIM?

Posted by piotr14 on listopad 10, 2008 at 10:31 AM CET #

Bo skrypt /etc/ppp/3netchat nie zawiera w sobie komend AT, które autoryzowałby Nas po numerze PIN.
Jest to też ułatwienie dla Nas, że skrypt jest prostszy w obsłudze.

Posted by Maciej Browarski on listopad 10, 2008 at 10:56 AM CET #

I'm very interested with this work but i am unable to read the comments because i do not inderstood the language in use. Please, can anyone traduce this text in english or, better for me, in french?
Thank you!

Posted by HEMDANI on maj 14, 2009 at 11:39 PM CEST #

To Hemdani.

Hi. You do not need any translations between commands except those two phrases:

<- spis komend obsługiwanych przez modem (u mnie jest COMMAND NOT SUPPORT) -- List of commands supported by modem
Wymuszanie prędkości dla modemu (testowane, i chyba działa :)): -- Force of modem speed.

All the others are pretty simple to anticipate. Good luck man.

Posted by lpiatek on czerwiec 26, 2009 at 12:07 AM CEST #

Post a Comment:
  • HTML Syntax: NOT allowed