Mittwoch, 1. Oktober 2008

Huawei e169 USB UMTS GPRS Modem

I have the Huawei e169 USB UMTS Modem and want to make it work under Opensolaris. In the Opensolaris.org-Forums I found two Threads [1, 2] about this Topic (just with other Hardware).
Problem with this Device is: If you plug it in, it first shows up as a Storage Device (wich contains the Driver-Software for WinXP). But if you connect it before you start your Engine, there's no Problem.
Before you can use the Modem, you have to associate it with the driver "usbsacm":

host:# update_drv -a -i 'usb12d1,1001' usbsacm
//NOTE: This is for the e169 ONLY, you have to
// replace the bold Numbers with those appropiate
// for your device
host:# devfsadm

You can test it easily with:

host:$ tip /dev/term/1
OK // output from tip
ati // input from you
Vendor-and-Product-Stuff // output from tip

Before you can dial-in, you have to create (or copy) several files located under /etc/ppp and /etc/ppp/peers. You can copy the isp-chat and the isp-Script from [1] and change it to your needs (dial-in-number, username, password, accesspoint; replace isp with the name of your Internet Service Provider).
If you have a Multiprocessor-System, then you have to disable all Cores except one. Otherwise the Connection will drop, when you start browsing the Internet with Firefox (BUG: 6719062)!

host:# psrinfo
// returns the cpus
host:# psradm -f
// this disables the cpu with that number
// with psradm -n you can enable the cpu

Now you can dial in:

host:$ pfexec pppd debug call isp

Right now, I am writing this with Opensolaris running.

Kommentare:

Anonym hat gesagt…

i try your guide on opensolaris 2008.11 with result NO CARRIER

Guido Luetke Woestmann hat gesagt…

Hmmm, have you tried to connect to the Modem with the "tip"-Command? e.g:

host:$ tip /dev/term/1 (or 0)
OK // output from tip
ati // type this to get some Information

If this works, I think there is a Problem with your Dial-Skript. Also note that you have to connect the Device BEFORE booting, otherwise it shows up as Storage-Device.

HTH

Agus Priyadi hat gesagt…

this scripts running on 2008.05, but not running on 2008.11

darkstar@opensolaris:~$ dmesg | grep usbsacm
Dec 7 08:34:49 opensolaris usba: [ID 912658 kern.info] USB 1.10 device (usb12d1,1001) operating at full speed (USB 1.x) on USB 1.10 root hub: device@1, usbsacm1 at bus address 2
Dec 7 08:34:49 opensolaris genunix: [ID 936769 kern.info] usbsacm1 is /pci@0,0/pci1025,11c@1d/device@1
Dec 7 08:34:49 opensolaris genunix: [ID 408114 kern.info] /pci@0,0/pci1025,11c@1d/device@1 (usbsacm1) online
Dec 7 08:35:20 opensolaris usba: [ID 912658 kern.info] USB 1.10 device (usb12d1,1001) operating at full speed (USB 1.x) on USB 1.10 root hub: device@1, usbsacm1 at bus address 2
Dec 7 08:35:20 opensolaris genunix: [ID 936769 kern.info] usbsacm1 is /pci@0,0/pci1025,11c@1d/device@1

darkstar@opensolaris:~$ ls -lah /dev/term/
total 9.0K
drwxr-xr-x 6 root root 6 2008-12-07 08:35 .
drwxr-xr-x 256 root sys 256 2008-12-07 08:35 ..
lrwxrwxrwx 1 root root 47 2008-12-07 08:35 0 -> ../../devices/pci@0,0/pci1025,11c@1d/device@1:0
lrwxrwxrwx 1 root root 47 2008-12-07 08:35 1 -> ../../devices/pci@0,0/pci1025,11c@1d/device@1:1
lrwxrwxrwx 1 root root 47 2008-12-07 08:35 2 -> ../../devices/pci@0,0/pci1025,11c@1d/device@1:2
lrwxrwxrwx 1 root root 47 2008-12-07 08:35 3 -> ../../devices/pci@0,0/pci1025,11c@1d/device@1:3

darkstar@opensolaris:~$ pfexec ln -sf /dev/term/2 /dev/e169
darkstar@opensolaris:~$ tip /dev/e169
connected
at
OK
ati
Manufacturer: huawei
Model: E169
Revision: 11.314.12.31.00
IMEI: 359638010442220
+GCAP: +CGSM,+DS,+ES

OK
~
[EOT]

darkstar@opensolaris:~$ cat /etc/ppp/peers/tselnet
modem
e169 # use this device (ln -s /dev/term/0 /dev/e51)
nodetach
460800 # baud rate
noauth # do not authenticate the ISP's identity (client)
passive
noipdefault # assume no IP address; get it from ISP
defaultroute # install default route; ISP is Internet gateway
usepeerdns
noccp # ISP doesn't support free compression
novj
crtscts
user '' # not using username and password
password ''
connect "/usr/bin/chat -V -t15 -f /etc/ppp/chat-tselnet" # dial into ISP

darkstar@opensolaris:~$ cat /etc/ppp/chat-tselnet
'' 'ATZ'
'OK' 'ATQ0 V1 E1 S0=0 &C1 &D2'
'OK' 'AT+CGDCONT=1,"IP","internet"'
'OK' 'ATDT*99#'
CONNECT ''
darkstar@opensolaris:~$ pfexec pppd debug call tselnet
serial speed set to 460800 bps
connect option: '/usr/bin/chat -V -t15 -f /etc/ppp/chat-tselnet' started (pid 782)

OK
ATQ0 V1 E1 S0=0 &C1 &D2
OK
AT+CGDCONT=1,"IP","internet"
OK
ATDT*99#
CONNECTSerial connection established.
serial speed set to 460800 bps
Using interface sppp0
Connect: sppp0 <--> /dev/e169
/etc/ppp/pap-secrets is apparently empty
/etc/ppp/chap-secrets is apparently empty
sent [LCP ConfReq id=0x7e asyncmap 0x0 magic 0x548fc40a pcomp accomp]
sent [LCP ConfReq id=0x7e asyncmap 0x0 magic 0x548fc40a pcomp accomp]
sent [LCP ConfReq id=0x7e asyncmap 0x0 magic 0x548fc40a pcomp accomp]
sent [LCP ConfReq id=0x7e asyncmap 0x0 magic 0x548fc40a pcomp accomp]
sent [LCP ConfReq id=0x7e asyncmap 0x0 magic 0x548fc40a pcomp accomp]
sent [LCP ConfReq id=0x7e asyncmap 0x0 magic 0x548fc40a pcomp accomp]
sent [LCP ConfReq id=0x7e asyncmap 0x0 magic 0x548fc40a pcomp accomp]
sent [LCP ConfReq id=0x7e asyncmap 0x0 magic 0x548fc40a pcomp accomp]
sent [LCP ConfReq id=0x7e asyncmap 0x0 magic 0x548fc40a pcomp accomp]
sent [LCP ConfReq id=0x7e asyncmap 0x0 magic 0x548fc40a pcomp accomp]
LCP: timeout sending Config-Requests

darkstar@opensolaris:~$ pfexec pppd call tselnet
ATZ
OK
ATQ0 V1 E1 S0=0 &C1 &D2
OK
AT+CGDCONT=1,"IP","internet"
OK
ATD*99#
NO CARRIER

Guido Luetke Woestmann hat gesagt…

Hmmm, I think there could be three "Errors":

1. In your Chat-Skript (/etc/ppp/chat-tselnet) check this Line:

'OK' 'AT+CGDCONT=1,"IP","internet"'

for the right Settings for your Provider. I have to use "internet.providername.de"

2. Also in your Chat-Skript: Check the Dial-In-Number (*99#)

'OK' 'ATDT*99#'

Maybe you can check these Settings in the Software you have to use under Windows.

3. Create the following Files:

/etc/ppp/pap-secrets is apparently empty
/etc/ppp/chap-secrets is apparently empty

I had to set Name, Password and Providername in pap-secrets. There is a Template with some more Information under /etc/ppp/*

HTH

Agus Priyadi hat gesagt…

Dear sir,
Thank for the replay. I try my usb stick modem on Ubuntu 8.04 Live CD with wvdial and working well. my provider APN is internet without username and password. this wvdial.conf

[Dialer Defaults]
Modem = /dev/ttyUSB0
ISDN = off
Modem Type = Analog Modem
Baud = 460800
Init = ATZ
Init2 = ATZ
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init4 = AT+CGDCONT=1,"IP","YOUR APN HERE"
Init5 =
Init6 =
Init7 =
Init8 =
Init9 =
Phone = *99#
Phone1 =
Phone2 =
Phone3 =
Phone4 =
Dial Prefix =
Dial Attempts = 1
Dial Command = ATM1L3DT
Ask Password = off
Password = guest
Username = guest
Auto Reconnect = on
Abort on Busy = off
Carrier Check = off
Check Def Route = on
Abort on No Dialtone = on
Stupid Mode = on
Idle Seconds = 0
Auto DNS = on
;Minimize = on
;Dock = on


result:
ubuntu@ubuntu:~$ wvdial
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","internet"
AT+CGDCONT=1,"IP","internet"
OK
--> Modem initialized.
--> Sending: ATM1L3DT*99#
--> Waiting for carrier.
ATM1L3DT*99#
CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Sun Dec 7 23:10:51 2008
--> Warning: Could not modify /etc/ppp/pap-secrets: Permission denied
--> --> PAP (Password Authentication Protocol) may be flaky.
--> Warning: Could not modify /etc/ppp/chap-secrets: Permission denied
--> --> CHAP (Challenge Handshake) may be flaky.
--> Pid of pppd: 10406
--> Using interface ppp0
--> local IP address 114.121.22.34
--> remote IP address 10.64.64.64
--> primary DNS address 202.3.208.10

I try reinstall my opensolaris 2008.11 and use kanguru scripts from opensolaris forum with modify on chat-kanguru

e169
115200
idle 7200
lock
crtscts
modem
noauth
defaultroute
user removed
password 1
connect "/usr/bin/chat -Vv -f /etc/ppp/chat-kanguru"
noccp
allow-ip
noipdefault
nopcomp
nodeflate
usepeerdns
novj
nodetach

chat-kanguru:
ABORT BUSY
ABORT 'NO CARRIER'
ABORT ERROR
REPORT CONNECT
TIMEOUT 120
"" "AT&F"
OK "ATI"
OK "ATZ"
OK "ATZ"
OK "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
OK 'AT+CGDCONT=1,"IP","internet"'
OK "ATM1L3DT*99#"
TIMEOUT 120
CONNECT \c

still can't connect with result:
darkstar@darksolaris:~$ pfexec pppd debug call kanguru
serial speed set to 115200 bps
connect option: '/usr/bin/chat -Vv -f /etc/ppp/chat-kanguru' started (pid 799)
AT&F
OK
ATI
Manufacturer: huawei
Model: E169
Revision: 11.314.12.31.00
IMEI: 359638010442220
+GCAP: +CGSM,+DS,+ES

OK
ATZ
OK
ATZ
OK
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
AT+CGDCONT=1,"IP","internet"
OK
ATM1L3DT*99#
CONNECTchat: Dec 08 00:10:46 CONNECT
Serial connection established.
serial speed set to 115200 bps
Using interface sppp0
Connect: sppp0 <--> /dev/e169
sent [LCP ConfReq id=0xbf asyncmap 0x0> magic 0xc1e60db8> accomp>]
sent [LCP ConfReq id=0xbf asyncmap 0x0> magic 0xc1e60db8> accomp>]
sent [LCP ConfReq id=0xbf asyncmap 0x0> magic 0xc1e60db8> accomp>]
sent [LCP ConfReq id=0xbf asyncmap 0x0> magic 0xc1e60db8> accomp>]
sent [LCP ConfReq id=0xbf asyncmap 0x0> magic 0xc1e60db8> accomp>]
sent [LCP ConfReq id=0xbf asyncmap 0x0> magic 0xc1e60db8> accomp>]
sent [LCP ConfReq id=0xbf asyncmap 0x0> magic 0xc1e60db8> accomp>]
sent [LCP ConfReq id=0xbf asyncmap 0x0> magic 0xc1e60db8> accomp>]
sent [LCP ConfReq id=0xbf asyncmap 0x0> magic 0xc1e60db8> accomp>]
sent [LCP ConfReq id=0xbf asyncmap 0x0> magic 0xc1e60db8> accomp>]
LCP: timeout sending Config-Requests
Connection terminated.

i don't have idea how to connect opensolaris 2008.11 with e169 usb stick

Guido Luetke Woestmann hat gesagt…

I also used the kanguru-Scripts as a Starting Point ;-) But if I compare my Chat-Script with yours, I see a Difference:

//yours:
OK "ATM1L3DT*99#"

//mine:
OK 'ATD*99#'

HTH

PS: LCP is the Link Control Protocol. It is used to set up a PPP-Connection. Good News is, that your Modem "generally" works. I think your Problem is related to your PPP-Scripts.

Agus Priyadi hat gesagt…

Dear sir,
Thanks for your advice. now i can connect with my e169 USB stick. i edit my chat-kanguru and give comment on TIMEOUT 120 after OK "ATM1L3DT*99#"

ABORT BUSY
ABORT 'NO CARRIER'
ABORT ERROR
REPORT CONNECT
TIMEOUT 120
"" "AT&F"
OK "ATI"
OK "ATZ"
OK "ATZ"
OK "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
OK 'AT+CGDCONT=1,"IP","internet"'
OK "ATM1L3DT*99#"
#TIMEOUT 120
CONNECT \c

this messages sucsessfully

darkstar@darksolaris:~$ pfexec pppd call kanguru
AT&F
OK
ATI
Manufacturer: huawei
Model: E169
Revision: 11.314.12.31.00
IMEI: 359638010442220
+GCAP: +CGSM,+DS,+ES

OK
ATZ
OK
ATZ
OK
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
AT+CGDCONT=1,"IP","internet"
OK
ATM1L3DT*99#
CONNECTchat: Dec 08 12:46:55 CONNECT
Serial connection established.
Using interface sppp0
Connect: sppp0 <--> /dev/e169
local IP address 114.121.47.17
remote IP address 192.168.1.1
primary DNS address 202.3.208.10
secondary DNS address 202.3.210.10

i patch usb frezze problem with this http://chototsumoushinp.dip.jp/solaris/usbser.tar.bz2

and edit nsswitch.conf for resolv problem

hosts: files dns
ipnodes: files dns

Guido Luetke Woestmann hat gesagt…

Nice to hear that it works now. Bad to hear that the usb-Bug is still there :-(

But now it is your turn to help me ;-) What do I have to do, to patch away this Bug?

Thanks

Agus Priyadi hat gesagt…

for patch usb frezze i download usbser from this thread

http://www.opensolaris.org/jive/thread.jspa?threadID=70306&tstart=0

darkstar@darksolaris:~$ wget -c http://chototsumoushinp.dip.jp/solaris/usbser.tar.bz2
--10:52:11-- http://chototsumoushinp.dip.jp/solaris/usbser.tar.bz2
=> `usbser.tar.bz2'
Resolving chototsumoushinp.dip.jp... 61.213.94.141
Connecting to chototsumoushinp.dip.jp|61.213.94.141|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 45,198 (44K) [application/x-bzip2]

100%[====================================>] 45,198 --.--K/s

10:52:13 (512.98 KB/s) - `usbser.tar.bz2' saved [45198/45198]

darkstar@darksolaris:~$ tar -jxvf usbser.tar.bz2
usbser/
usbser/amd64/
usbser/amd64/usbser
usbser/usbser.c.org
usbser/usbser.patch
usbser/usbser.c
usbser/i386/
usbser/i386/usbser


Backup usbser original form /kernel/misc

darkstar@darksolaris:~$ mkdir ~/backup
darkstar@darksolaris:~$ cp /kernel/misc/usbser ~/backup/usbser.i386.orig
darkstar@darksolaris:~$ cp /kernel/misc/amd64/usbser ~/backup/usbser.amd64.orig

Copy file pacth to /kernel/misc
darkstar@darksolaris:~$ pfexec cp usbser/i386/usbser /kernel/misc/usbser

darkstar@darksolaris:~$ pfexec cp usbser/amd64/usbser /kernel/misc/amd64/usbser

change owner file
darkstar@darksolaris:~$ pfexec chown root:sys /kernel/misc/usbser /kernel/misc/amd64/usbser

reboot the system