NUC980开发板Linux系统EC20模块 移植 PPP拨号
1. EC20模块连接
在嵌入式Linux中,4G网络连接是一个较容易实现的功能,大多数的4G模块接口都是MiniPCIE接口,深入了解一下就会发现,4G模块的通信接口是USB,所以4G模块的驱动通常选择使用USB驱动,这种情况下,只要USB驱动正常,4G模块在硬件上就能正常通信。但是本文中不采用USB驱动,而是采用串口驱动,二者在传输速率上存在不同。 将NUC980主控板中芯片NUC980DK61Y的引脚和EC20 R2.1模块的RX TX 通过电平转换芯片进行连接,以及EC20的powerkey引脚。具体可参考EC20硬件设计手册。
2. Linux内核配置
源码目录,在linux终端输入命令make linux-menuconfig进行配置。
-
选中如下选项,进行串口复用。 配置路径如下: Device Drivers —> Character devices —> <*> GSM MUX line discipline support(EXPERIMENTAL) -
选中如下选项,可支持PPP拨号。 配置路径如下: Device Drivers —> Network device support —> <> PPP (point-to-point protocol) support <> PPP BSD-Compress compression <> PPP Deflate compression [] PPP filtering <> PPP MPPE compression (encryption) [] PPP multilink support <> PPP over Ethernet <> PPP support for async serial ports <> PPP support for sync tty ports <> SLIP(serial line) support -
保存退出,执行make,得到uImage文件,烧写到开发板。
3. 交叉编译PPP
将ppp-2.4.7压缩包复制到ubuntu下,解压。 ppp-2.4.7压缩包下载链接:https://pan.baidu.com/s/1dhyhfghJspcT0mfn1bH6ww 提取码:y5bs
- 生成Makefile文件:./configure --prefix=/…(指定文件夹)
- 编译
必须使用与开发板一致的编译器,NUC980用的是arm-nuvoton-linux-uclibcgnueabi - 安装:make install
- 将编译得到的部分可执行文件复制到ARM开发板上:
按照上面的make好之后,在目录中找到如下的四个可执行文件:chat,pppd,pppdump,pppstats 将四个文件复制到ARM开发板的/usr/sbin目录下。 - 按照如上步骤复制完成后可以使用pppd命令和chat命令。
4. 拨号脚本
在开发板中的/etc目录下新建一个ppp文件夹,此处采用Putty来进行交互。
- 从ppp-2.4.7相应目录中拷贝文件,建立如下目录结构:
/etc/ppp/chap-secrets /etc/ppp/pap-secrets /etc/ppp/ip-up /etc/ppp/ip-down /etc/ppp/peers/ - 拨号脚本: /etc/ppp/peers目录下放置如下三个脚本
a. 拨号上网脚本quectel-ppp(使用联通卡)
/dev/ttyS3 115200
user "test" password "test"
connect 'chat -s -v -f /etc/ppp/peers/quectel-chat-connect'
disconnect 'chat -s -v -f /etc/ppp/peers/quectel-chat-disconnect'
hide-password
noauth
debug
defaultroute
noipdefault
novj
novjccomp
noccp
ipcp-accept-local
ipcp-accept-remote
local
lock
modem
dump
nodetach
nocrtscts
remotename 3gppp
ipparam 3gppp
ipcp-max-failure 30
usepeerdns
b. chat脚本(quectel-chat-connect)
ABORT "BUSY"
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
TIMEOUT 30
"" AT
OK ATE0
OK ATI;+CSUB;+CSQ;+CPIN?;+COPS?;+CGREG?;&D2
OK AT+CGDCONT=1,"IP","3gnet",,0,0
OK ATD*99
CONNECT
c. 断开连接(quectel-chat-disconnect)
ABORT "ERROR"
ABORT "NO DIALTONE"
SAY "\nSending break to the modem\n"
"" +++
"" +++
"" +++
SAY "\nGoodbay\n"
5. 进行拨号
- PUTTY终端输入命令pppd call quectel-ppp &,出现以下说明拨号成功(未全部列出)。
- 查看模块运行状态
PUTTY终端输入ifconfig查看网络,如下出现ppp0说明4G模块确定拨号成功。 - 拨号成功后可将ppp0设置为静态路由。
设置PPP0为默认路由:先删除原来路由,route del default ;再将ppp0设置为默认路由,route add default dev ppp0。
|