一.内核和文件系统的准备(文档附带软件为 arm-hisiv600-linux- 编译而成)
1.在内核的menuconfig中将所有带有ppp的选项选中,编译到内核中(也可以选为模块,但没有编译到内核方便)。然后将编译好的内核烧录到开发板中。
2.可以将文件系统重新烧录,以防止出现无法创建字符设备等问题。
二.软件准备(编译参考他人的帖子)
1.准备pppd文件
1.在百度上搜索“下载ppp-x.x.x.tar.gz”(其中x.x.x代表版本号,本次使用版本为ppp-2.4.5)。
2.交叉编译后,进入到目录中。将顶层目录中的pppd目录下的pppd文件放到开发板的/usr/sbin目录下。
2. 准备pptp文件
1.在百度上搜索“下载pptp-x.x.x.tar.gz”(其中x.x.x代表版本号,本次使用版本为pptp-1.10.0)。
2.交叉编译后,进入到目录中。将顶层目录的pptp文件放到开发板的/usr/sbin目录下。
3.准备配置文件(前两步是在开发板上完成,第三步是在交叉编译后的文件夹中得到文件)
1.在内核支持ppp功能后,会在/etc下有一个ppp目录。进入/etc/ppp后,输入vi chap-secrets(chap-secrets文件应该是没有的,需要自己创建)。打开文件按照格式输入。每个间隔使用tab隔开,修改完保存退出。![在这里插入图片描述](https://img-blog.csdnimg.cn/20191219151627273.png)
其中username:账号。
connectvpn:服务端ip地址,一般使用*代替。
password:密码。
ip address:客户端分配的ip地址,一般用*代替。
2.在本层目录下可能会有一个peers文件夹(如果没有,自己创建一个)。进入peers目录,输入vi connectvpn(connevpn文件是没有的,自己手动创建)。打开文件后添加内容后,保存退出。![在这里插入图片描述](https://img-blog.csdnimg.cn/20191219151539784.png)
其中服务器ip是要连接的vpn服务器的IP。
账号与上面chap-secrets中的账号一致。
***可以添加一个 lock 选项,让连接不被挤掉。***
3.将pptp-x.x.x顶层目录中的options.pptp复制到开发板的/etc/ppp目录中。
三.完成连接
1.在开发板上输入pppd call connectvpn
2.等待连接完成(10秒左右),输入ifconfig,出现ppp0即为成功。
四.检测连接和说明
1.使用ping -I ppp0 x.x.x.x 指定使用ppp0检验。
2.分配过的IP可以重复分配,但优先使用未分配的。
3.当pppd call connectvpn输入完成后,出现timeout,检查/dev/pts/中有没有创建字符设备文件。如果没有,需要手动创建一个字符设备文件 mknod 0 c 180 0。在创建不成功报错为:无权限,解决方法为重刷文件系统。
4.注意在使用时,应给文件足够的权限。
五.源码和文件
1.网址:https://download.csdn.net/download/CSDN_dyq111/12040714