参考前面所提到的4G拨号上网,我这里使用移远的cat1模块,EC200,进行openwrt下的挂载,实现ppp拨号上网
1 增加EC200s的USB驱动
1.1增加VID和PID支持
本系统[KERNEL]为:~/lede_AR9331_zhuotk_source_32bit/build_dir/target-mips_24kc_musl/
linux-ar71xx_generic/linux-4.4.79
在以上目录中的option.c文件中新增如下代码:
如果在这个目录的其他文件中存在,有其他设备使用了相同的VID和PID,需要将其注释掉,否则会导致冲突。
1.2添加零包处理机制
文件:[KERNEL]/drivers/usb/serial/usb_wwan.c
中添加
1.3增加休眠后唤醒接口
文件: [KERNEL]/drivers/usb/serial/option.c
中添加
1.4Use ECM or RNDIS
文件: [KERNEL]/drivers/usb/serial/option.c
下的
中添加
1.5Add VID and PID
文件: [KERNEL]/drivers/net/usb/qmi_wwan.c
2编译选项
make V=s
生成相应的bin文件
将相应的bin文件烧录在片子上。上电测试
查看设备驱动文件是否生成相应的USB驱动
将下面的文件传输到片子上。
copy ppp to /etc //这个里面是相应的执行脚本,dns添加,错误收集,进行连接和断开连接
copy chat and pppd to /sbin //这个两个底层我们有,可以不用拷贝
ppp下的文件夹下的peers
更改运营商
将ppp/peers/quectel-chat-connect里的
OK AT+CGDCONT=1,"IP","3gnet",,0,0
OK ATD*99#
改为相应的值
移动: at+cgdcont=1,"ip","cmnet"
联通: at+cgdcont=1,"ip","3gnet"
电信: at+cgdcont=1,"ip","ctnet"
需要确定相应的sim卡,有流量套餐。
将上述文件移植到相应的板子上,使用
chmod +x 目标文件
修改文件的执行权限
权限修改完之后,测试运行
run pppd call quectel-ppp &
终端上进行信息的打印
debug # (from /etc/ppp/peers/quectel-ppp)
nodetach # (from /etc/ppp/peers/quectel-ppp)
dump # (from /etc/ppp/peers/quectel-ppp)
noauth # (from /etc/ppp/peers/quectel-ppp)
user test # (from /etc/ppp/peers/quectel-ppp)
password ?????? # (from /etc/ppp/peers/quectel-ppp)
remotename 3gppp # (from /etc/ppp/peers/quectel-ppp)
/dev/ttyUSB2 # (from /etc/ppp/peers/quectel-ppp)
115200 # (from /etc/ppp/peers/quectel-ppp)
lock # (from /etc/ppp/peers/quectel-ppp)
connect chat -s -v -f /etc/ppp/peers/quectel-chat-connect # (from /etc/ppp/peers/quectel-ppp)
disconnect chat -s -v -f /etc/ppp/peers/quectel-chat-disconnect # (from /etc/ppp/peers/quectel-ppp)
nocrtscts # (from /etc/ppp/peers/quectel-ppp)
modem # (from /etc/ppp/peers/quectel-ppp)
noendpoint # (from /etc/ppp/peers/quectel-ppp)
hide-password # (from /etc/ppp/peers/quectel-ppp)
novj # (from /etc/ppp/peers/quectel-ppp)
novjccomp # (from /etc/ppp/peers/quectel-ppp)
ipcp-accept-local # (from /etc/ppp/peers/quectel-ppp)
ipcp-accept-remote # (from /etc/ppp/peers/quectel-ppp)
ipparam 3gppp # (from /etc/ppp/peers/quectel-ppp)
noipdefault # (from /etc/ppp/peers/quectel-ppp)
ipcp-max-failure 15 # (from /etc/ppp/peers/quectel-ppp)
defaultroute # (from /etc/ppp/peers/quectel-ppp)
usepeerdns # (from /etc/ppp/peers/quectel-ppp)
noccp # (from /etc/ppp/peers/quectel-ppp)
abort on (BUSY)
abort on (NO CARRIER)
abort on (NO DIALTONE)
abort on (ERROR)
abort on (NO ANSWER)
timeout set to 30 seconds
send (AT^M)
expect (OK)
AT^M^M
OK
-- got it
send (ATE0^M)
expect (OK)
^M
ATE0^M^M
OK
-- got it
send (ATI;+CSUB;+CSQ;+CPIN?;+COPS?;+CGREG?;&D2^M)
expect (OK)
^M
^M
Quectel^M
EC200S^M
Revision: EC200SCNAAR01A05M16^M
^M
SubEdition: V02^M
^M
+CSQ: 18,99^M
^M
+CGREG: 0,1^M
^M
+CPIN: READY^M
^M
+COPS: 0,0,"CHINA MOBILE",7^M
^M
OK
-- got it
send (AT+CGDCONT=1,"IP","cmnet",,0,0^M)
expect (OK)
^M
^M
OK
-- got it
send (ATD*99#^M)
expect (CONNECT)
^M
^M
CONNECT
-- got it
Script chat -s -v -f /etc/ppp/peers/quectel-chat-connect finished (pid 2085), status = 0x0
Serial connection established.
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB2
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x5c37096a> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <auth pap> <magic 0x151572f9> <pcomp> <accomp>]
sent [LCP ConfAck id=0x1 <asyncmap 0x0> <auth pap> <magic 0x151572f9> <pcomp> <accomp>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x5c37096a> <pcomp> <accomp>]
sent [PAP AuthReq id=0x1 user="test" password=<hidden>]
rcvd [PAP AuthAck id=0x1 "" 00]
PAP authentication succeeded
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
rcvd [IPCP ConfReq id=0x2]
sent [IPCP ConfNak id=0x2 <addr 0.0.0.0>]
rcvd [IPCP ConfNak id=0x1 <addr 10.0.206.137> <ms-dns1 211.136.17.107> <ms-dns2 211.136.20.203>]
sent [IPCP ConfReq id=0x2 <addr 10.0.206.137> <ms-dns1 211.136.17.107> <ms-dns2 211.136.20.203>]
rcvd [IPCP ConfReq id=0x3]
sent [IPCP ConfAck id=0x3]
rcvd [IPCP ConfAck id=0x2 <addr 10.0.206.137> <ms-dns1 211.136.17.107> <ms-dns2 211.136.20.203>]
Could not determine remote IP address: defaulting to 10.64.64.64
local IP address 10.0.206.137
remote IP address 10.64.64.64
primary DNS address 211.136.17.107
secondary DNS address 211.136.20.203
Script /etc/ppp/ip-up started (pid 2112)
Script /etc/ppp/ip-up finished (pid 2112), status = 0x0
出现出现后面两行表示连接成功。
可以通过ps,查看相应的进程
通过ifconfig 查看相关的网卡
可以看到相应的标识。修改默认路由,ping 一下外网,确定一下网络的情况
dns服务器正常,网络连通正常。
后续就可以执行相应的联网应用程序了。
开启vpn操作。
查看相应的网卡
这样就可以进行远程操作了。