一、概要
在ARM A7开发板上(使用的是正点原子的阿尔法IM6ULL),USB接口(迷你PCIE转USB)连接 4G模块ME3630 ,使用4G信号上网。本文档主要介绍在驱动装好之后,如何用串口调试,更改配置,成功连上公网。
步骤如下:
- 驱动修改
- Linux系统配置
- 4G模块识别
- 网络配置
第1 驱动修改 和 第2 系统配置部分,详见正点原子 《I.MX6U嵌入式Linux驱动开发指南V1.5》 第七十二章,本文档简略跳过。主要说明解决4G模块识别和网络配置遇到的问题。
二、驱动修改
1.添加USB设备信息
先在 Linux内核中添加 ME3630的 USB设备信息, ME3630 4G模块用的 USB接口。打开 Linux源码的 drivers/usb/serial/option.c文件,找到 options_ids数组,然后在里面添加 ME3630的 PID和 VID。
2.添加ECM支持程序
ME3630支持 ECM接口,可以通过 ECM接口轻松联网,如果要使用 ECM接口的话需要修改 drivers/usb/serial/option.c文件里面的 option_probe函数。找到此函数,然后在里面添加内容。
三、Linux系统配置
1.打开功能
我们需要配置 Linux内核, 使能 USBNET功能 使能 USB串口 GSM、 CDMA驱动 使能 USB的 CDC ACM模式 使能linux内核ppp功能 移植pppd软件,删掉/usr/sbin/chat这个软件
2.编译Linux内核,
编译Linux内核,使用心得zImage启动ARM开发板。在启动信息的末尾可以看到 4G连接到usb的提示, 挂载在 ttyUSB0、 ttyUSB1、 ttyUSB2 ifconfig命令,查看目前的网卡情况,有ME3630对应的 usb0网卡
四、4G模块识别
1.ppp连网文件配置
(1) 要为4G模块先配置脚本,为其输入运营商配置(联通、移动、电信稍有不同) 在使用 pppd进行拨号上网之前需要先创建 4个文件,这个 4个文件必须放到同一个目录下。在开发板根文件系统下创建 /etc/gosuncn目录,进入到刚刚创建的 /etc/gosuncn目录下,然后新建一个名为 ppp-on 的 shell脚本文件,用来作为启动ppp上网的脚本。 注意:联通、移动、电信在此处文件配置有不同,要相应变更。(本文选用联通) (2)提权,这四个文件编写完成以后要给予 ppp-on和 disconnect这两个文件可执行权限,命令如下:chmod 777 ppp-on disconnect (3)运行ppp-on连接4G网络 ./ppp-on &
在最后4行, 可以看到IP地址信息,表明4G模块已经得到IP了。 (4)解决报错:resolv.conf 即缺少DNS文件
需要进入到 根目录下,(可用cd ~之后,cd … 退到根目录),/etc/ppp 打开 resolv.conf文件. 没有的话,添加。
-
mkdir ppp 新建文件夹; -
用 touch resolv.conf新建文件。 -
vi resolv.conf 打开文件, 填入4G模块的 DNS resolv.conf 中编辑 -
重启运行, ./ppp-on & 就不报错了。
五、网络配置
此时,我们已给4G模块拥有了 IP ,配置了 DNS。 然而可能还是 无法连接公网,或者可以连公网IP,无法 ping www.baidu.com ,无法识别 host。
1.网卡信息
ifconfig
2.路由信息
可以看到 ppp0的设备, ip有了, 网关Gateway没有,子网掩码Genmask有了, 所以,加个网关,加个dns
3.检查网关
在根目录的 /etc/sysconfig/network 配置文件如下图 (如果没有需要添加一个默认网关上去) ping 公网ip ping 180.97.33.71 能ping到;此时ping百度任然无法识别host
4.检查DNS
除了保证网关能正常连通之外。检查服务器DNS设置是否正确,找到DNS设置的配置文件 /etc/resolv.conf 文件(另外网卡里面如果设置了DNS也会用网卡里面的DNS地址) 加了2个DNS 114.114.114.114 180.76.76.76 这两个通用dns,一般联网效果好。 现在能够解决之前的 百度host不识别问题,能ping通百度。
|