一: 4G模组是通过USB连接的,因此需要连接
查看4G模组的VID和PID的:
将模组连接到电脑后可以识别到VID和PID。
二:内核编译
1:向内核中添加VID和PID列表。
编辑文件路径:KERNEL_PATH/drivers/usb/serial/option.c
找到option_ids这个结构体,并添加如下:
static const struct usb_device_id option_ids[] = {
#if 1 //Added by Quectel
{ USB_DEVICE(0x05C6, 0x9090) }, /* Quectel UC15 */
{ USB_DEVICE(0x05C6, 0x9003) }, /* Quectel UC20 */
{ USB_DEVICE(0x2C7C, 0x0125) }, /* Quectel EC25/EC20 R2.0 */
{ USB_DEVICE(0x2C7C, 0x0121) }, /* Quectel EC21 */
{ USB_DEVICE(0x05C6, 0x9215) }, /* Quectel EC20 */
{ USB_DEVICE(0x2C7C, 0x0191) }, /* Quectel EG91 */
{ USB_DEVICE(0x2C7C, 0x0195) }, /* Quectel EG95 */
{ USB_DEVICE(0x2C7C, 0x0306) }, /* Quectel EG06/EP06/EM06 */
{ USB_DEVICE(0x2C7C, 0x0296) }, /* Quectel BG96 */
#endif
2: 添加内核USB Serial以及PPP协议支持
终端进入内核路径,输入make menuconfig 修改内核,需要添加的功能如下:
①
Device Drivers –
USB Support –
USB Serial Converter support –
USB driver for GSM and CDMA modems
选中:支持GSM和CDMA模块的USB转串口驱动,这个驱动作用是虚拟出/dev/ttyUSB0、/dev/ttyUSB1、/dev/ttyUSB2、/dev/ttyUSB3这几个串口,
他们的作用分别是错误诊断、gps信息接口、模块的的通信接口。
根据我的测试ttyUSB2和ttyUSB3的功能貌似一样。ttyUSB2不太正常,有重复发送感觉。
建议使用ttyUSB3。
如果使用设备树的话,需要将USB的过流检测取消掉。此时就可以检测usb虚拟的串口了。
②
Device Drivers –
Network device support –
PPP (point-to-point protocol) support
<*> PPP 下面带PPP的都勾上
这个驱动的作用就是支持ppp拨号工具,在应用层使用ppp拨号脚本进行拨号上网
保存退出,编译内核,烧录到板子上
查看USB
ls /dev/TTYusb*
lsusb
手动的发送AT指令
cat /dev/ttyUSB3 &
echo -e "AT\r\n" >/dev/ttyUSB3
三: 下载ppp并编译
1:下载ppp 并且交叉编译
sudo wget https://download.samba.org/pub/ppp/ppp-2.4.5.tar.gz
sudo tar -xzvf ppp-2.4.5.tar.gz
sudo cd ppp-2.4.5
sudo ./configure
sudo make CC=arm-linux-gcc
如果make不过去 直接指定交叉编译器的位置:
如:sudo make CC=/usr/local/arm_linux_4.8/usr/bin/arm-linux-gcc
完成后,分别生成chat,pppd,pppdump,pppstats四个可执行文件,在同名文件夹中,将其复制到开发板根文件目录的/bin下
2:移动链接库到开发板的根文件系统/lib中:
如下:查看可执行文件是X86的还是Arm的。我查看了我的依赖。
将编译器工具链中/lib中的链接库移动到开发板根文件系统的/lib中
libc.so.0 ld-uClibc.so.0
移动之后就可以正常启动pppd了
四:启动拨号:
在启动拨号之前,需要将拨号脚本文件安放在以下位置
1: 放置拨号脚本
etc
├── ppp
├── ip-up
├── peers
├── quectel-chat-connect
├── quectel-chat-disconnect
├── quectel-ppp
└── quectel-ppp-kill
将quectel的四个脚本以及ip-up脚本按照该结构放置好
2:修改拨号参数
> 拨号上网需要user、password与APN,这三个参数是需要与运营商联系索要
修改user与password:在quecterl-ppp中,修改user与password
修改APN:在quectel-chat-connect中
# Insert the APN provided by your network operator, default apn is 3gnet
OK AT+CGDCONT=1,”IP”,”3gnet”,,0,0
将3gnet修改为正确的APN
3: 启动拨号
mkdir /var/lock 启动之前先新建该文件夹,否则会报错
pppd call quectel-ppp &
在启动完成后通过ifconfig查看网卡,则完成拨号
4 :挂断拨号
/etc/ppp/peers/quectel-ppp-kill
|