sim900GPRS模組ppp撥接

來源:互聯網
上載者:User

標籤:

一:編輯Linux核心,使其支援PPP撥接
[[email protected] linux-3.0]$ make menuconfig

Device dirver --->Network device *** CAIF transport drivers ***                                                                               <*>   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                                                                                    <*>     PPP BSD-Compress compression                                                                  <*>     PPP MPPE compression (encryption) (EXPERIMENTAL)                             <*>     PPP over Ethernet (EXPERIMENTAL) 

二:編譯ppp-2.4.4.tar.gz
下載ppp-2.4.4.tar.gz
http://download.csdn.net/detail/zhyustar/1531748

[[email protected] ~]$ mkdir GPRS

[[email protected] ~]$ cd GPRS

[[email protected] GPRS]$ tar -xzf ppp-2.4.4.tar.gz

[[email protected] GPRS]$ ls

ppp-2.4.4 ppp-2.4.4.tar.gz

[[email protected] GPRS]$ cd ppp-2.4.4

[[email protected] ppp-2.4.4]$ ls

[[email protected] ppp-2.4.4]$ ./configure

[[email protected] ppp-2.4.4]$ cd chat/

[[email protected] chat]$ ls
chat.8 chat.c Makefile Makefile.linux Makefile.sol2

[[email protected] chat]$ vim chat.c

[[email protected] chat]$ vim Makefile

[[email protected] chat]$ cd ../pppd

[[email protected] pppd]$ vim auth.c

[[email protected] pppd]$ vim Makefile


[[email protected] ppp-2.4.4]$ make

[[email protected] ppp-2.4.4]$ cd chat

[[email protected] chat]$ ls
chat chat.8 chat.c chat.o Makefile Makefile.linux Makefile.sol2

[[email protected] chat]$ file chat
chat: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped

[[email protected] pppd]$ file pppd
pppd: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped

把產生的pppd 和chat 下載到自己的開發板上,放在/usr/sbin中,並修改許可權
如:chmod 777 chat

三:製作指令檔
gprs模組ppp撥接的時候需要如下幾個設定檔:
<1> /etc/ppp/peers/gprs
<2>/etc/ppp/chat-gprs-connect
預設情況在開發板的/etc/ppp/目錄下建立檔案gprs-connect-chat,它是在ppp底層會話的時候給chat進程的參數,每行是一個“期望/發送”的組合序列。

一個簡單的chat指令碼有下面的結構:
“” AT
OK ATDT dialnumber
CONNECT “”
1) MODEM期望Null 字元串。這句話的意思直接理解就是MODEM不管收到什麼字串,先發出字串AT;
2) 期望收到“OK”字串,然後發送字串“ATDT dialnumber”
3) 如果收到“CONNECT”,就不再發送,認為資料鏈路已建立串連。
4)如果需要進行逾時控制,就可以加入如下欄位:
TIMEOUT 10

5)如果要增加對特殊情況的處理,就加入下面欄位:
ABORT BUSY
ABORT NO ANSWER
ABORT RINGING
意思是:如果收到字串“BUSY”、“NO ANSWER”、“RINGING”就退出執行。
編寫chat指令碼如下:以下都是在開發板上操作
~>cd /etc
~>mkdir ppp
~>cd ppp
~>vi gprs-connect-chat

#/etc/ppp/gprs-connect-chat#Copyright (c) 2016 hulu [email protected]# This is second part of the ppp dial script. It will perform the connection    ABORT           ‘BUSY‘    ABORT           ‘NO ANSWER‘    ABORT           ‘NO CARRIER‘    ABORT           ‘NO DIALTONE‘    ABORT           ‘ERROR‘    ABORT           ‘\nRING\r\n\r\nRING\r‘  ‘‘               \rAT  OK ATE0  SAY "Press CTRL-C to break the connection process.\n"  OK ‘AT+CGDCONT=1,"IP","3GNET"‘   //isp接入網關為中國聯通的3GNET  OK ATDT*99#       //這裡要改成自己的電訊廠商號碼。。我的這個號碼是聯通的  #撥接  SAY "Waiting for connect...\n"  CONNECT ‘‘  SAY "Connect Success!\n"


編寫gprs設定檔:
它的作用是給pppd進程提供配置參數(詳見man 8 pppd的輸出內容,如果出現問題這個將是非常重要的參考頁),內容如下:
~>mkdir peers
~>cd peers
~>vi gprs

#/etc/ppp/peers/gprs# Usage: root>pppd call gprs#set seriral  /dev/ttyS1# set baudrate  115200# set flowdate 可能你的串口是需要crtscts,硬體流控的,這是由你的串口決定的,一般嵌入式系統的串口沒有帶硬體流控,也不需要就加nocrtscts  nocrtscts#set debug ,send message to /var/log/messages  debug#To keep pppd on the terminal  nodetach# Accept the peer‘s idea of our local IP address  ipcp-accept-local# Accept the peer‘s idea of its (remote) IP address  ipcp-accept-remote#dial up connetion as the default route  defaultroute  usepeerdns  Noipdefault  user hulu  connect ‘/usr/sbin/chat -s -v -f /etc/ppp/chat-gprs-connect‘

pppd調用chat會話進程接入對端isp,啟動對端的pppd,然後本地pppd與對端的pppd一起進行協商網路參數和chap/pap認證,成功後,再進行ncp層的ip的分配。

四:在開發板上測試ppp撥號
要用ping,你需要將eth0即網口給禁用掉,這樣ping才會通過ppp0連接埠尋找路由串連外網
~>ifconfig eth0 down
~>pppd call gprs & //&是後台執行的意思。。只有這條後台執行。。我們才能在前台檢測是否上網

如果出現ping得通4.2.2.2,卻png不通www.baidu.com,那就是DNS的問題
解決辦法:
你可能需要將/etc/ppp/resolv.conf(內容被新獲得的dns取代)內容拷貝到/etc/resolv.conf中或者做一個到/etc/resolv.conf的連結
也可以直接編輯/etc/resolv.conf

~>vi /etc/resolv.conf
nameserver 4.2.2.2
nameserver 8.8.8.8

~>ifconfig

至此關於sim900GPRS模組ppp撥接成功實現,各位讀友們有問題直接私聊我!!

sim900GPRS模組ppp撥接

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.