本文主要介绍rk35684G模块如何以PPP方式进行拨号联网

1 内核配置

使用PPP需要对使用命令“sudo make menuconfig ARCH=arm64”对内核的.config文件进行配置,配置内容如下:

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

PPP配置好后,编译生成新的镜像烧录到开发板中,启动系统时,会输出如下图所示信息。
在这里插入图片描述

2 PPP交叉编译

本实验选择的PPP版本是2.4.9。
编译步骤为:(1)./configure;(2)make CC=aarch64-linux-gnu-gcc;(3)make install。
编译后会生成4个文件夹,如下图所示,分别为chat、pppd、pppdump、pppstats。
在这里插入图片描述

3 PPP移植

将chat、pppd、pppdump、pppstats这四个文件拷贝到开发板的/bin文件夹下面,输入命令“pppd -v”,如下图所示,则表示移植成功。
在这里插入图片描述

4 PPP拨号

PPP拨号方式需要编写三个脚本文件存放在/etc/ppp/peers下。默认是没有这些文件夹的,所以需要去创建ppp和peers文件夹,创建好后在peers目录下创建rasppp.sh、rasppp-chat-connect.sh、rasppp-chat-disconnect.sh三个脚本文件。
rasppp.sh

#!/bin/sh
hide-password
noauth
connect '/bin/chat -s -v -f /etc/ppp/peers/rasppp-chat-connect.sh'
disconnect '/bin/chat -s -v -f /etc/ppp/peers/rasppp-chat-disconnect.sh'
debug
/dev/ttyUSB1

115200
defaultroute
noipdefault

novj
novjccomp
noccp
ipcp-accept-local
ipcp-accept-remote
local

lock
dump

nodetach
#这里我们用的是电信卡
user card
password card

#如果是移动或者联通的卡将上面两行改为
crtscts
remotename 3gppp
ipparam 3gppp
usepeerdns

rasppp-chat-connect.sh

TIMEOUT 15
ABORT   "BUSY"
ABORT   "ERROR"
ABORT   "NO ANSWER"
ABORT   "NO CARRTER"
ABORT   "NO DIALTONE"
""AT
OK \rATZ
OK \rAT+CGDCONT=1,"IP",""
OK-AT-OK ATDT#777
CONNECT \d\c

rasppp-chat-disconnect.sh

ORT "ERROR"
ABORT "NO DIALTONE"
SAY "\NSending break to the modem\n"

""\k"

""+++ATH"
SAY "\nGood bye !\n"

添加完以上三个脚本文件后,现在可以使用PPP进行拨号。输入命令“pppd call rasppp.sh &”,该命令是进行后台拨号,会输出结果如下图所示。
在这里插入图片描述

从程序的输出中我们可以获得以下信息:本机IP:10.xxxxxx;主要 DNS 服务器:59.xxxxxx;次要 DNS 服务器: 222.xxxxxx。利用“ifconfig”查看网口,得到结果如下图所示。
在这里插入图片描述
然后我们需要通过下面3个命令来配置ppp0这个网口。

(1)ip route add default via 10.xxxx
(2)echo "nameserver 59.xxxxx" | tee -a /etc/resolv.conf
(3)echo "nameserver 222.xxxxxxx" | tee -a /etc/resolv.conf

配置完成后,即可进行上网。尝试ping百度来进行测试,测试结果如下图所示。可以判断网络是没有问题的。
在这里插入图片描述

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐