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該命令的時間為6s。chat指令碼的位置可以位##於/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<E_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