天天看點

ppp and ndis

3g wcdma

http://wenku.baidu.com/view/9811fcfcf705cc17552709c6.html

http://wenku.baidu.com/view/27a345fcf705cc1755270970.html

http://blog.csdn.net/hens007/article/details/7255488

2g gprs

http://wenku.baidu.com/view/acffc7ebf8c75fbfc77db2ec.html

基本情況:

核心需支援ppp協定,也要支援這個usb裝置,

ppp client調用pppd進行撥号,pppd會調用chat程式與遠端的ppp server會話。

tiny6410 e261上網卡撥号流程:

首先配置驅動:

3g裝置驅動支援
Device Drivers  --->
 [*] USB support  --->
 <*>   USB Serial Converter support  --->  
 [*]   USB Generic Serial Driver 
 <*>   USB driver for GSM and CDMA modems   
ppp協定支援
[*] Network device support  --->
<*>   PPP (point-to-point protocol) support 
[*]     PPP multilink support (EXPERIMENTAL) 
[*]     PPP filtering
<*>     PPP support for async serial ports 
<*>     PPP support for sync tty ports
<*>     PPP Deflate compression 
           

假設3g子產品(或上網卡)插在闆子上已經被識别成了/dev/ttyUSBx了,進行pppd撥号的程式如下

1.編譯pppd源碼,将生産的pppd,chat搞到闆子的/usr/sbin下

2.在/etc下建立ppp目錄

3.ppp下建立pap-chat檔案,和peers目錄

[[email protected]]# cat pap-secrets 
cmnet   *       cmnet *
           

4.在peers目錄下建立

wcdma和chat-wcdma-connect和chat-wcdma-disconnect//用于聯通3g的撥号腳本

cdma2000和chat-cdma2000-connect和chat-cdma2000-disconnect//電信3g

tdscdma和chat-tdscdma-connect 和chat-tdscdma-disconnect//移動3g

内容如下:

聯通3g

[[email protected]]# cat wcdma 
nodetach
lock
/dev/ttyUSB0
921600
user "card"
password "card"
crtscts
show-password
usepeerdns
noauth
noipdefault
novj
novjccomp
noccp
defaultroute
ipcp-accept-local
ipcp-accept-remote
connect '/usr/sbin/chat -s -v -f /etc/ppp/peers/chat-wcdma-connect'
disconnect '/usr/sbin/chat -s -v -f /etc/ppp/peers/chat-wcdma-disconnect'

[[email protected]]# cat chat-wcdma-connect 
ABORT 'NO CARRIER'
ABORT 'ERROR'
ABORT 'NO DIALTONE'
ABORT 'BUSY'
ABORT 'NO ANSWER'
'' AT
OK ATZ
OK AT+CGDCONT=1,\"IP\",\"3gnet\",,0,0
OK AT+CFUN=1
OK ATDT*99#
CONNECT ''

[[email protected]]# cat chat-wcdma-disconnect 
ABORT  OK
ABORT  BUSY
ABORT  DELAYED
ABORT  "NO ANSWER"
ABORT  "NO CARRIER"
ABORT  "NO DIALTONE"
ABORT  VOICE
ABORT  ERROR
ABORT  RINGING
TIMEOUT  12
""  \K
""  \K
""  \K
""  +++ATH
""  +++ATH
""  +++ATH
""  ATZ
SAY "\nGoodbay\n"
[[email protected]]# 
           

電信3g

[[email protected]]# cat cdma2000 
nodetach
lock
/dev/ttyUSB0
921600
user "[email protected]"
password "vnet.mobi"
crtscts
hide-password
usepeerdns
noauth
noipdefault
novj
novjccomp
noccp
defaultroute
ipcp-accept-local
ipcp-accept-remote
connect '/usr/sbin/chat -s -v -f /etc/ppp/peers/chat-cdma2000-connect'
disconnect '/usr/sbin/chat -s -v -f /etc/ppp/peers/chat-cdma2000-disconnect'
[[email protected]]# 
[[email protected]]# cat chat-cdma2000-connect 
ABORT 'NO CARRIER'
ABORT 'ERROR'
ABORT 'NO DIALTONE'
ABORT 'BUSY'
ABORT 'NO ANSWER'
'' AT
OK ATZ
OK AT+CFUN=1
OK ATDT#777
CONNECT '' 
[[email protected]]# 
[[email protected]]# cat chat-cdma2000-disconnect 
ABORT  OK
ABORT  BUSY
ABORT  DELAYED
ABORT  "NO ANSWER"
ABORT  "NO CARRIER"
ABORT  "NO DIALTONE"
ABORT  VOICE
ABORT  ERROR
ABORT  RINGING
TIMEOUT  12
""  \K
""  \K
""  \K
""  +++ATH
""  +++ATH
""  +++ATH
""  ATZ
SAY "\nGoodbay\n"
[[email protected]]# 
           

移動3g

[[email protected]]# cat tdscdma 
nodetach
lock
/dev/ttyUSB0
460800
user "cmnet"
crtscts
modem
hide-password
usepeerdns
noauth
noipdefault
novj
novjccomp
noccp
defaultroute
ipcp-accept-local
ipcp-accept-remote
connect '/usr/sbin/chat -s -v -f /etc/ppp/peers/chat-tdscdma-connect'
disconnect '/usr/sbin/chat -s -v -f /etc/ppp/peers/chat-tdscdma-disconnect'
[[email protected]]# 
[[email protected]]# cat chat-tdscdma-connect 
ABORT 'NO CARRIER'
ABORT 'ERROR'
ABORT 'NO DIALTONE'
ABORT 'BUSY'
ABORT 'NO ANSWER'
'' AT
OK ATZ
OK ATE0V1
OK ATS0=0
OK AT+CGDCONT=1,\"IP\",\"cmnet\"
OK AT+CFUN=1
OK ATDT*99***1#
CONNECT
[[email protected]]# 
[[email protected]]# cat chat-tdscdma-disconnect 
ABORT  OK
ABORT  BUSY
ABORT  DELAYED
ABORT  "NO ANSWER"
ABORT  "NO CARRIER"
ABORT  "NO DIALTONE"
ABORT  VOICE
ABORT  ERROR
ABORT  RINGING
TIMEOUT  12
""  \K
""  \K
""  \K
""  +++ATH
""  +++ATH
""  +++ATH
""  ATZ
SAY "\nGoodbay\n"

           

5.撥号

pppd call wcdma

進入目錄/var/run/,檢視是否産出檔案 ppp0-ok,如果有,則表示已撥号成功,ppp0-ok檔案内會存儲IP位址和DNS。

/etc下建立resolv.conf檔案,将配置設定到的兩個DNS伺服器位址,添加到此檔案中,内容如下:

nameserver 210.22.70.3

nameserver 211.95.1.97

ifconfig有資訊

[[email protected]]# ifconfig 
ppp0      Link encap:Point-to-Point Protocol  
          inet addr:10.45.210.114  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:9 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:180 (180.0 B)  TX bytes:216 (216.0 B)
           

6.使用如下指令切斷連接配接

ppp-off 

或 kill -9 pppd程序ID 

如果3g裝置插在闆子上沒有自動出現/dev/ttyUSBx:

使用如下指令将e261由cdrom模式轉換成modem模式,此時會生成/dev/ttyUSB0-5

3g-ppp /etc/3g-modem/12d1.1446.12d1.1001

usb_modeswitch

ndis上網

1.

配置核心生成usbnet.ko (drivers/net/usb/)

Device Drivers  --->     

[*] Network device support  --->      

USB Network Adapters  ---> 

<M> Multi-purpose USB Networking Framework

編譯希姆通廠家7100等子產品的ndis驅動GobiNet,ko

2.

搞到闆子上加載

insmod usbnet.ko 

insmod GobiNet,ko

3.

子產品插在班子上,會出現

/de/qcqmi0

ifconfig -a

有usb0接口出現

4.撥号

ndismanager  /dev/qcqmi0

進入菜單進行撥号

at 原始指令撥号

子產品的撥号需要相關的網絡at指令的支援

比如AT+TCPCLIENT="www.baidu.com",80