1. 程式人生 > >linux GPRS模組撥號上網

linux GPRS模組撥號上網

使用GPRS模組撥號上網之前需要一直pppd和chat

首先配置核心中的ppp選項,

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) 

[[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

Changes-2.3  configure  FAQ      modules  pppdump   README.cbcp     README.MPPE      README.pppoe  scripts

chat         contrib    include  PLUGINS  pppstats  README.eap-srp  README.MSCHAP80  README.pwfd   SETUP

common       etc.ppp    linux    pppd     README    README.linux    README.MSCHAP81  README.sol2   solaris

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

Configuring for Linux

Creating Makefiles.

  Makefile <= linux/Makefile.top

  pppd/Makefile <= pppd/Makefile.linux

  pppstats/Makefile <= pppstats/Makefile.linux

  chat/Makefile <= chat/Makefile.linux

  pppdump/Makefile <= pppdump/Makefile.linux

  pppd/plugins/Makefile <= pppd/plugins/Makefile.linux

  pppd/plugins/rp-pppoe/Makefile <= pppd/plugins/rp-pppoe/Makefile.linux

  pppd/plugins/radius/Makefile <= pppd/plugins/radius/Makefile.linux

  pppd/plugins/pppoatm/Makefile <= pppd/plugins/pppoatm/Makefile.linux

[[email protected] ppp-2.4.4]$ ls

Changes-2.3  contrib  linux     pppd      README.cbcp     README.MSCHAP80  README.sol2

chat         etc.ppp  Makefile  pppdump   README.eap-srp  README.MSCHAP81  scripts

common       FAQ      modules   pppstats  README.linux    README.pppoe     SETUP

configure    include  PLUGINS   README    README.MPPE     README.pwfd      solaris

[[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

 CC =/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc#add by guanlei 2016.1.21 


[[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 下載到自己的s3c2440開發板上,放在/usr/sbin中

使用gprs上網的時候需要如下幾個指令碼 

一:編寫gprs指令碼為PPP連線指定了連線使用的裝置、使用的控制字元傳輸速率、指定了硬體加速、溢位控制等。

#/etc/ppp/peers/gprs

# Usage: root>pppd call gprs

#set seriral

/dev/ttyS1

# set baudrate

115200

# set flowdate

nocrtscts

#加上引數-v 告訴 chat命令將其所有的輸出/入拷貝到系統記錄裡(通常是 #/var/log/messages)。-t 6 指定了執行chat該命令的時間為6schat指令碼的位置可以位##/etc/目錄下,也可以位於/var下,這個可以更加需要靈活設定。

connect '/usr/sbin/chat -v -f /etc/ppp/chat/gprs-connect-chat'

#set debug ,send message to /var/log/messages

debug

#To keep pppd on the terminal

nodetach

#hide-password

# 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

具體檢視的話,man 8 pppd

二, CHAT指令碼

一個簡單的chat指令碼有下面的結構:

""              AT

OK              ATDT  dialnumber

CONNECT      ""

1)     MODEM期望空字串。這句話的意思直接理解就是MODEM不管收到什麼字串,先發出字串AT

2)  期望收到“OK”字串,然後傳送字串“ATDT dialnumber”

3)如果收到“CONNECT”,就不再發送,認為資料鏈路已建立連線。

4)如果需要進行超時控制,就可以加入如下欄位:

TIMEOUT  10

5)如果要增加對特殊情況的處理,就加入下面欄位:        ABORT           BUSY                   ABORT           NO ANSWER         ABORT            RINGING

意思是:如果收到字串“BUSY”“NO  ANSWER”“RINGING”就退出執行。

編寫自己的chat指令碼

>vi gprs-connect-chat

#/etc/ppp/gprs-connect-chat

#Copyright (c) 2016 guanlei [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'

    TIMEOUT         20

''               \rAT

#set  apn

OK              AT+CGDCONT=1,"IP","cmnet"

    # 撥號上網

    OK              ATDT*99***1#

    SAY             " + requesting data connection\n"

    CONNECT         ''

    SAY             " + connected\n"

 

開始測試:

>: ifconfig eth0 down

>: ifconfig

要程式一直在後臺執行,如果在前臺執行的話,沒辦法ping,不能測試到底能不能上網

>: pppd call gprs &

>:  + requesting data connection

 + connected

Serial connection established.

using channel 2

iUsing interface ppp0

Connect: ppp0 <--> /dev/ttyS1

fconfsent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xf9216d0> <pcomp> <accomp>]

rcvd [LCP ConfReq id=0x1 <asyncmap 0xa0000> <auth pap>]

sent [LCP ConfAck id=0x1 <asyncmap 0xa0000> <auth pap>]

rcvd [LCP ConfRej id=0x1 <magic 0xf9216d0> <pcomp> <accomp>]

sent [LCP ConfReq id=0x2 <asyncmap 0x0>]

rcvd [LCP ConfAck id=0x2 <asyncmap 0x0>]

No secret found for PAP login

sent [PAP AuthReq id=0x1 user="guanlei" password=<hidden>]

rcvd [PAP AuthAck id=0x1 "Login OK"]

Remote message: Login OK

PAP authentication succeeded

sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]

sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]

rcvd [LCP ProtRej id=0x2 80 fd 01 01 00 0f 1a 04 78 00 18 04 78 00 15 03 2f]

Protocol-Reject for 'Compression Control Protocol' (0x80fd) received

consent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]

rcvd [IPCP ConfReq id=0x1 <addr 192.200.1.21>]

sent [IPCP ConfAck id=0x1 <addr 192.200.1.21>]

rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>]

sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]

rcvd [IPCP ConfNak id=0x2 <addr 10.110.1.110> <ms-dns1 211.137.58.20> <ms-dns3 211.137.64.163>]

sent [IPCP ConfReq id=0x3 <addr 10.110.1.110> <ms-dns1 211.137.58.20> <ms-dns3 211.137.64.163>]

rcvd [IPCP ConfAck id=0x3 <addr 10.110.1.110> <ms-dns1 211.137.58.20> <ms-dns3 211.137.64.163>]

local  IP address 10.110.1.110

remote IP address 192.200.1.21

primary   DNS address 211.137.58.20

secondary DNS address 211.137.64.163

>: ifconfig

ppp0      Link encap:Point-to-Point Protocol  

          inet addr:10.110.1.110  P-t-P:192.200.1.21  Mask:255.255.255.255

          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1

          RX packets:4 errors:0 dropped:0 overruns:0 frame:0

          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:3 

          RX bytes:64 (64.0 B)  TX bytes:125 (125.0 B)

>: ping www.baidu.com

PING www.baidu.com (103.235.46.39): 56 data bytes

64 bytes from 103.235.46.39: seq=0 ttl=48 time=555.719 ms

64 bytes from 103.235.46.39: seq=1 ttl=48 time=273.481 ms

--- www.baidu.com ping statistics ---

3 packets transmitted, 2 packets received, 33% packet loss

round-trip min/avg/max = 273.481/414.600/555.719 ms

>: ifconfig

ppp0      Link encap:Point-to-Point Protocol  

          inet addr:10.110.1.110  P-t-P:192.200.1.21  Mask:255.255.255.255

          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1

          RX packets:10 errors:0 dropped:0 overruns:0 frame:0

          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:3 

          RX bytes:686 (686.0 B)  TX bytes:557 (557.0 B)


相關推薦

linux GPRS模組撥號上網

使用GPRS模組撥號上網之前需要一直pppd和chat 首先配置核心中的ppp選項, Make menuconfig Device dirver --->Network device    │ │                               ***

ME909S-821 4G-LTE模組Linux系統下撥號上網測試

實驗平臺 中國移動 “and”普通4G USIM卡 Ubuntu Kylin 14.04作業系統 大前提 SIM正常,能撥號/能上網 4G模組正常,通過USB口連線到PC Linux系統能檢測到模組,並且能識別模組的網絡卡

嵌入式linux實現pppoe撥號上網

嵌入式linux實現pppoe撥號上網一.交叉編譯內核make menuconfig -> Device Drivers -> Network device support -> PPP (point-to-point protocol) 中,選中所有ppp選項。退出,保存配置,修改M

樹莓派pi3B連線4G模組撥號上網配置(樹莓派接受cc2530資料儲存併發送到OneNet例項)

樹莓派pi3B串列埠配置見: #Time:20180801 #Env:raspi、4G模組、4GSIM(本人用的移動、如用聯通、電信按下文APN,修改接入點名稱) #ZigBee從裝置採集感測器資料 #ZigBee協調器串列埠接受從裝置資料 #樹莓派3B串列

華為3G模組撥號上網

一 開發環境簡介 核心版本 3.19.5、3.15(這2個我都試過) 編譯環境  Ubuntu 12.04 3g模組      華為MU709s SIM卡        聯通 二 主要步驟 向linux核心中新增3G模組驅動(USB轉串列埠的option驅動)和pp

GPRS模組Linux平臺上ppp撥號上網總結與心得

由於一個嵌入式平臺上專案開發的需要,在arm平臺上實施ppp撥號上網。說起這個linux平臺的ppp撥號上網,也許很多人覺很簡單,網上     的成功的例子很多!不錯,你說的對,但是我還要給點我的看法,就是這個簡單的ppp撥號折騰了我的時間之長,我都不好意思講。但是,現

嵌入式Linux系統---ppp撥號,4G模組上網

4G模組PPP撥號上網 方法1 所需檔案: xxx-chat-connect,xxx-chat-disconnect ,xxx-ppp 複製以上三個檔案到/etc/ppp/peers目錄下 在 xxx-ppp 檔案 修改你的串

linux下用wvdial實現gprs撥號上網

1. 安裝wvdial   sudo apt-get install wvdial   2. 在/etc/wvdial.conf中寫入wvdial的配置資訊: femacs /etc/wvdial.conf   Init1 = ATZ   Init2 = ATQ0 V1 E

在ARM-linux上實現4G模組PPP撥號上網

轉自 http://blog.sina.com.cn/s/blog_7880d3350102wb92.html 在ARM平臺上實現4G模組的PPP撥號上網,參考網上的資料和自己的理解,從一無所知到開發完成花了一週多。最後看到ARM板ping通www.baidu.com時甚

linux PPPOE撥號上網設定

1. 開啟應用程式選單,依次選擇附件 - 終端。  2.在彈出終端視窗後,輸sudo pppoeconf,輸入完成後回車。  3.然後會提示您輸入當前Ubuntu 管理員使用者的密碼,輸入完成後回車。  詢問你的網路裝置,一般選擇是,進行檢測,然後一直選擇是。  4.之後會

OpenWrt下通過EC20 R2.0 4G模組實現qmi撥號上網

OpenWrt下通過EC20R2.0 4G模組實現qmi撥號上網   1.本文件參考資料為Quectel_WCDMA&LTE_Linux_USB_Driver_User_Guide_V1.6.pdf, 實現QMI撥號,只需要參考下列章節即可

GPRS連線,用AT指令撥號上網

  內容非常簡單.會電腦的一定明白我在說什麼.1:設定撥號號碼為*99***1#,GPRS連線接入點名稱APN按你的GPRS埠可設為cmwap或cmnet.2:modem屬性的高階中額外的初始化命令中填入at+cgdcont=1,"IP","cmwap"3:開啟IE,工具-internet選項-連線-選擇所

Linux/Ubuntu下的PPPoE撥號上網方法

-------------藍色是終端裡面的連線方式,可以不看--------------------- ADSL上網,Ubuntu下是可以的,雖然以前沒用過撥號上網,不過查了查也不是很麻煩。 開啟終端配置上網: [email protected]:~$ sudo p

Linux/Android系統通過PPP撥號上網

 嵌入式系統經常需要具備無線上網的功能,但在有的應用場景中無法使用wifi,這時可以通過GPRS模組上網。GPRS模組是基於AT命令進行控制的。對於微控制器這類沒有複雜作業系統的平臺來說,往往要通過應用程式,直接傳送AT命令給GPRS模組,以使GPRS模組連線到網路並建立

Android——4.2 - 3G移植之路之 reference-ril .pppd 撥號上網 (三)

而且 init.rc nal null ann 源代碼分析 suggest cdma 初始化 Android的RIL機制中的 reference-ril.c 即為廠商提供的驅動接口。這個驅動源代碼各個廠商都是有提供的,網上也有下載。我如今用的就是huawe

linux主機連不上網解決流程

linux上網本文出自 “萬網” 博客,請務必保留此出處http://wanwangit.blog.51cto.com/12092006/1954233linux主機連不上網解決流程

Windows設置代理,linux連接windows上網

windows baidu target 代理服 .cn 服務 image www img 代理服務器CCProxy: http://www.ccproxy.com/download.htm linux使用此代理: 在Linux終端下使用代理訪問網絡

關於移動寬帶撥號上網開通發現不能共享

通信技術;關於移動寬帶撥號上網開通發現不能共享 不管在哪裏工作,職業操守還是非常重要的,本來是想分享一下的,發現用戶的信息太多了,我不能一個個的打碼,只截一張圖說明,其實寬帶開通不難,操作一遍就會了,廣泛的說,技術這個東西是沒有難度的,不管是哪一門技術都是一樣,真正難的地方應該是原理,你會這樣做,但是你不一定

GPRS MODEM應用場景有哪些 GPRS MODEM撥號錯誤代碼分析

服務器 管理員 寬帶 直接 撥號連接 如果 咨詢 機動車 正常 工業蜂窩MODEM又稱GPRS MODEM是一種物聯網無線數據終端,利用公用網絡為用戶提供無線長距離數據傳輸功能。 該產品采用高性能的工業級無線模塊,提供RS232接口,可直接連接串口設備,實現CSD、短信和撥

MikroTik RouterOS安裝後初始化配置(PPPOE撥號上網

sts 瀏覽器 表示 完成 src dash allow 撥號上網 dia 1、修改登入密碼 路由器默認登入賬號為admin,密碼為空,強烈建議修改登入密碼保證安全: 2、修改接口名稱 選擇Interface,切換到Ethernet標簽,找到狀態是R(ru