Linux驱动开发 |
您所在的位置:网站首页 › 常用网卡驱动 › Linux驱动开发 |
4G通信
使用有线网络或者 WIFI 有很多限制,因为要布线,即使是 WIFI 也得先布线,然后接个路由器。因此在不方便布线的场合,就可以通过 4G 连接到网络。下面介绍如何在 I.MX6U-ALPHA 开发板中使用 4G 来实现联网功能 一、4G网络连接4G 模块一般都是 MiniPCIE 接口的,虽然用了 MiniPCIE 接口,但是实际上的通信接口都是 USB,所以 4G 模块的驱动就转换为了 USB 驱动。4G 模块厂商都提供了详细的文档讲解如何在 Linux 下使用 4G 模块,以及如何修改 Linux 内核加入 4G 模块驱动。 I.MX6U-ALPHA 开发板也有一个 MiniPCIE 形式的 4G 模块接口,虽然外形是 MiniPCIE 的,但是内心却是 USB 的。I.MX6U-ALPHA 开发板的 4G 模块原理图如下图所示: ME3630 4G 模块是深圳高新兴物联(前身是中兴物联)出品的 4G LTE 模块,是一款 LTE Cat.4 七模全网通 4G 模块,在 LTE 模式下可以提供 50Mbps 上行速率以及 150Mbps 的下行速率,并支持回退到 3G 或 2G 网络。其特性如下: – 一路 USB2.0 接口 – 一路 UART 接口 – SIM 卡接口支持 1.8/3.0V – 内置 TCP、 UDP、 FTP 和 HTTP 等协议 – 支持 RAS/ECM/NDIS – 支持 AT 指令 ME3630 4G 模块有多种配置,这里主要使用到 ME3630 的数据通信功能,在使用 ME3630 4G 模块之前,需先将其插入到开发板的 MiniPCIE 座上、上紧螺、插入 Nano SIM 卡、接上天线,如下图: 使能 USBNET 功能 -> Device Drivers -> -*- Network device support -> USB Network Adapters -> -*- Multi-purpose USB Networking Framework使能 USB 串口 GSM、 CDMA 驱动 -> Device Drivers -> [*] USB support -> USB Serial Converter support -> USB driver for GSM and CDMA modems使能 USB 的 CDC ACM 模式 -> Device Drivers -> [*] USB support -> Support for Host-side USB -> USB Modem (CDC ACM) support 编译 Linux 内核,然后使用新的 zImage 启动开发板。如果 ME3630 已经插上的话,系统启动以后就会输出如下信息![]() 以上可见,ME3630 虚拟出了 3 个 USB 设备,分别为 ttyUSB0~ttyUSB2。ECM 模式下,可以通过运行ifconfig -a命令查看对应的网卡,名字可能为usbX/ecmX/ethX 等,如果存在的话就说明 ECM 接口驱动加载成功 移植之前先删除掉/usr/sbin/chat 这个软件(Busybox制作根文件系统的时候生成的),因为移植pppd也会编译出 chat 软件,不删除的话会出错 将源码 ppp-2.4.7.tar.gz 拷贝到 Ubuntu 下并解压,进入解压后的文件夹进行配置编译 cd ppp-2.4.7/ ./configure //配置 make CC=arm-linux-gnueabihf-gcc //编译 /************************************************/ /*若提示bison和flex "not found" 的话就安装这两个库*/ sudo apt-get install bison sudo apt-get install flex编译完成后会在当前目录下生成 chat/chat、pppd/pppd、pppdump/pppdump 和 pppstats/pppstats 这四个文件,将四个文件拷贝到开发板根文件系统中 /usr/bin 目录下 sudo cp chat/chat /home/andyxi/linux/nfs/rootfs/usr/bin/ -f sudo cp pppd/pppd /home/andyxi/linux/nfs/rootfs/usr/bin/ -f sudo cp pppdump/pppdump /home/andyxi/linux/nfs/rootfs/usr/bin/ -f sudo cp pppstats/pppstats /home/andyxi/linux/nfs/rootfs/usr/bin/ -f完成以后输入“pppd -v”查看版本号,如果 pppd 版本号显示正常就说明 pppd 移植成功 ppp 上网测试使用 pppd 进行拨号上网之前要先创建 4 个文件,这 4 个文件须放到同一个目录下。在开发板根文件系统下创建 /etc/gosuncn 目录 在 /etc/gosuncn 目录下,创建名为 “ppp-on” 的shell 脚本文件 #!/bin/sh clear OPTION_FILE="gosuncn_options" DIALER_SCRIPT=$(pwd)/gosuncn_ppp_dialer exec pppd file $OPTION_FILE connect "chat -v -f ${DIALER_SCRIPT}"在 /etc/gosuncn 目录下,创建名为 “gosuncn_options” 的文件 /dev/ttyUSB2 //联通或移动卡用ttyUSB2,电信卡用ttyUSB0 115200 crtscts modem persist lock noauth noipdefault debug nodetach user Anyname //电信卡,要改为"user card" password Anypassword //电信卡,要改为"password card" ipcp-accept-local ipcp-accept-remote defaultroute usepeerdns noccp nobsdcomp novj dump在 /etc/gosuncn 目录下,创建名为 “gosuncn_ppp_dialer” 的文件 ABORT "NO CARRIER" ABORT "ERROR" TIMEOUT 120 "" ATE SAY "ATE" ECHO ON OK ATH OK ATP //"3GNET"是联通卡的APN码,移动卡的话要改为"CMNET" //若是电信卡,下面行要改为 OK "AT+ZCAPN=card,card" OK AT+CGDCONT=1,\"IP\",\"3GNET\" OK ATD*99# //电信卡,要改为"ATD#777" CONNECT在 /etc/gosuncn 目录下,创建名为 “disconnect” 的脚本文件 #!/bin/sh killall pppd最后还要给予 ppp-on 和 disconnect 这两个文件可执行权限 chmod 777 ppp-on disconnect使用./ppp-on &命令连接 4G 网络,可能会出现如下问题 创建完成后重启开发板!进入到/etc/gosuncn 目录,使用./ppp-on &命令完成拨号上网。成功后会生成名为“ppp0”的网卡
系统烧写完成后设置开发板从 EMMC 启动,启动后按照前面的步骤先让 4G 模块连接上网络。确保当前开发板只有一个 ME3630 对应的 ppp0 网卡,最后直接 ping 百度官网即可,结果如下图示 对于支持 ECM 接口的模块可以直接通过 ECM 上网, ME3630 模块支持 ECM 接口,重启开发板,输入“ifconfig -a”命令可以看到有一个名为“usb0”的网卡,这个 usb0 网卡就是 ECM 接口对应的网卡 输入 AT 指令:如果模块已经设置为 ECM 模式,则此不需要此步骤 AT+ZSWITCH=L使用 AT 指令+CGDCONT 来设置数据参数 //联通卡的 APN 为 3GNET //电信卡的 APN 为 CTNET //移动卡的 APN 为 CMNET AT+CGDCONT=1, "IP" , "CMNET"发送连接 AT 命令 AT+ZECMCALL=1连接成功以后打开 usb0 网卡,并获取 IP 地址 ifconfig usb0 up //打开 usb0 网卡 udhcpc -i usb0 //获取 IP 地址IP 地址获取成功后,ping 一下百度官网,如果能 ping 通说明 ME3630 的 ECM 接口联网成功。如果提示“ bad address ‘www.baidu.com’”,可以检查一下 DNS 服务器地址设置是否正确,打开/etc/resolv.conf 文件,加入“nameserver 114.114.114.114”即可 3.4 GNSS定位测试GNSS 功能,也就是 GPS 定位,在上面移植 ME3630 驱动时我们知道最终会出现3个 ttyUSB 设备,分别为 ttyUSB0~ttyUSB2,其中 ttyUSB1 为 GNSS 接口。 GPS 模块是串口输出的,因此可以直接使用 minicom 来查看 ttyUSB1 输出的 GNSS 信息。minicom配置如下: ME3630 默认关闭 GNSS 定位输出功能的,必须先使用 AT 指令配置,minicom 打开串口后,输入如下AT指令进行配置: ATI //查看固件信息 Manufacturer: GOSUNCNWELINK Model: ME3630-W Revision: ME3630C3CV1.0B03 IMEI: 864863045876287 OK AT+ZGINIT //初始化 GPS OK AT+ZGPSEVENT=1 //使能 GPS 事件上报 OK AT+ZGMODE=3 //设置定位模式 OK AT+ZGPORT=0 //定位信息从 AT、 MODEM、 UART 三个口同时上报 OK AT+ZGNMEA=31 //设置 GPS 数据为 NMEA 格式 OK AT+ZGPSR=1 //使能 ZGPSR 数据 OK AT+ZGRUN=2 //连续定位模式 OK以上 AT 指令配置完成后 ME3630 就会开始搜星,注意: GPS 天线一定要放到室外! ME3630 搜星结束以后就会输出 NEMA 格式的定位信息 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |