一级a做爰网站,外链优化,网站那个做的比较好的,网站建设使用情况目录一、EC20 4G模块简介二、根据移远官方文档修改EC20 4G模组驱动 1、因为EC20 4G模组min-pice接口其实就是usb接口#xff0c;因此需要修改Linux内核源码drivers/usb/serial/option.c文件#xff0c;如下图#xff1a; 2、根据USB协议的要求#xff0c;需要在drive…
目录一、EC20 4G模块简介二、根据移远官方文档修改EC20 4G模组驱动 1、因为EC20 4G模组min-pice接口其实就是usb接口因此需要修改Linux内核源码drivers/usb/serial/option.c文件如下图 2、根据USB协议的要求需要在drivers/usb/serial/usb_wwan.c 文件下添加在批量处理期间处理零数据包的机制输出传输的代码如下图 3、当MCU进入暂停/休眠状态时某些USB主机控制器/USB集线器将断电或重置并且当MCU从暂停/休眠模式退出时它们不能恢复USB设备相反他们将操作复位恢复。在 drivers/usb/serial/option.c 文件下添加以下语句如下图 4、如果您使用的是UC20/EC25/EC21/EC20/EC20R2.0/EG91/EG95/EG06/EP06/EM06/BG96并且需要GobiNet或QMI WWAN必须在drivers/usb/serial/option.c文件下添加以下语句以防止这些模块的接口4防止用作USB串行设备如下图 5、使能 USB 串口 GSM、 CDMA 驱动配置路径如下 6、使能 USB 的 CDC ACM 模式配置路径如下 7、看看是否使能 USBNET 功能路径如下 8、插入EC20 4G模块查看是否已经启动USB驱动和虚拟出该模组的网卡三、使用PPP工具拨号联网 1、配置 Linux 内核打开 Linux 内核的 ppp 功能配置路径如下 2、移植pppd软件 3、测试pppd软件的ppp自动拨号上网4、拓展四、使用GobiNet工具拨号上网1、添加移远官方的GobiNet驱动2、quectel-CM拨号工具移植 3、使用quectel-CM软件来调用Gobi驱动自动拨号上网ping通百度4、拓展与EC20 4G模组所需的文件下载链接,请点击即可
一、EC20 4G模块简介 关于 EC20 4G 模块的详细资料请找卖家索要 EC20 有多种不同的配置比如全网通纯数据版本、语音版、带 GNSS 版等等建议大家购买的时候至少要选择全网通数据版因为我们使用 4G 模块主要还是用于数据通信的。移远的EC20 4G 模块采用 LTE 3GPP Rel.11 技术支持最大下行速率 150Mbps最大上行速率 50Mbps。 EC20 4G 模块特性如下 ①、一路 USB2.0 高速接口最高可达 480Mbps。 ②、一组模拟语音接口(可选)。 ③、 1.8V/3.0V SIM 接口。 ④、 1 个 UART 接口。 ⑤、 W_DISABLE#(飞行模式控制)。 ⑥、 LED_WWAN#(网络状态指示)。 上图这个文档是移远官方的文档它提供了mini-pcie接口的模组驱动的指导大家可以参考。
二、根据移远官方文档修改EC20 4G模组驱动 1、因为EC20 4G模组min-pice接口其实就是usb接口因此需要修改Linux内核源码drivers/usb/serial/option.c文件如下图 上图左边的是文档右边是我修改的驱动源程序大家会发现怎么我添加的比文档要多这是左边文档是EC20旁系列的驱动匹配表我是添加了移远比较全的系列而我们用的EC20只使用到了上图的红色框框一行。 { USB_DEVICE(0x2C7C, 0x0125) }, /* Quectel EC20 R2.0/EC20 R2.1/EC25/EG25-G/EM05 */{ USB_DEVICE(0x2C7C, 0x0121) }, /* Quectel EC21/EG21-G */{ USB_DEVICE(0x2C7C, 0x0191) }, /* Quectel EG91 */{ USB_DEVICE(0x2C7C, 0x0195) }, /* Quectel EG95 */{ USB_DEVICE(0x2C7C, 0x0306) }, /* Quectel EG06/EP06/EM06 */{ USB_DEVICE(0x2C7C, 0x0512) }, /* Quectel EG12/EM12/EG18 */{ USB_DEVICE(0x2C7C, 0x0296) }, /* Quectel BG96 */{ USB_DEVICE(0x2C7C, 0x0700) }, /* Quectel BG95/BG77/BG600L-M3/BC69 */{ USB_DEVICE(0x2C7C, 0x0435) }, /* Quectel AG35 */{ USB_DEVICE(0x2C7C, 0x0415) }, /* Quectel AG15 */{ USB_DEVICE(0x2C7C, 0x0452) }, /* Quectel AG520R */{ USB_DEVICE(0x2C7C, 0x0455) }, /* Quectel AG550R */{ USB_DEVICE(0x2C7C, 0x0620) }, /* Quectel EG20 */{ USB_DEVICE(0x2C7C, 0x0800) }, /* Quectel RG500Q/RM500Q/RG510Q/RM510Q */2、根据USB协议的要求需要在drivers/usb/serial/usb_wwan.c 文件下添加在批量处理期间处理零数据包的机制输出传输的代码如下图 if (dir USB_DIR_OUT) {struct usb_device_descriptor *desc serial-dev-descriptor;if (desc-idVendor cpu_to_le16(0x05c6) desc-iProduct cpu_to_le16(0x9090))urb-transfer_flags | URB_ZERO_PACKET;if (desc-idVendor cpu_to_le16(0x05c6) desc-iProduct cpu_to_le16(0x9003))urb-transfer_flags | URB_ZERO_PACKET;if (desc-idVendor cpu_to_le16(0x05c6) desc-iProduct cpu_to_le16(0x9215))urb-transfer_flags | URB_ZERO_PACKET;if (desc-idVendor cpu_to_le16(0x2c7c))urb-transfer_flags | URB_ZERO_PACKET;}3、当MCU进入暂停/休眠状态时某些USB主机控制器/USB集线器将断电或重置并且当MCU从暂停/休眠模式退出时它们不能恢复USB设备相反他们将操作复位恢复。在 drivers/usb/serial/option.c 文件下添加以下语句如下图 .reset_resume usb_wwan_resume,4、如果您使用的是UC20/EC25/EC21/EC20/EC20R2.0/EG91/EG95/EG06/EP06/EM06/BG96并且需要GobiNet或QMI WWAN必须在drivers/usb/serial/option.c文件下添加以下语句以防止这些模块的接口4防止用作USB串行设备如下图 if (dev_desc-idVendor cpu_to_le16(0x05c6) dev_desc-idProduct cpu_to_le16(0x9003) iface_desc-bInterfaceNumber 4)return -ENODEV;if (dev_desc-idVendor cpu_to_le16(0x05c6) dev_desc-idProduct cpu_to_le16(0x9215) iface_desc-bInterfaceNumber 4)return -ENODEV;if (dev_desc-idVendor cpu_to_le16(0x2c7c) iface_desc-bInterfaceNumber 4)return -ENODEV;5、使能 USB 串口 GSM、 CDMA 驱动配置路径如下 6、使能 USB 的 CDC ACM 模式配置路径如下 7、看看是否使能 USBNET 功能路径如下 8、插入EC20 4G模块查看是否已经启动USB驱动和虚拟出该模组的网卡
步骤 编译Lnix内核“make -j6”然后将/arch/arm/boot/zImage放到开发板重新加载如果开发板识别出USB口的EC20那么就会打印出以下红色框框信息
三、使用PPP工具拨号联网 1、配置 Linux 内核打开 Linux 内核的 ppp 功能配置路径如下 然后重新编译Linux内核得到新的zImage使用新的zImage启动开发板即可。 2、移植pppd软件 将 ppp-2.4.7.tar.gz 拷贝到 Ubuntu 下并解压解压以后会生成一个名为 ppp-2.4.7 的文件夹。进入到 ppp-2.4.7 目录中然后编译 pppd 源码命令如下 cd ppp-2.4.7/ ./configure //配置 make CCarm-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/djw/linux/nfs/rootfs/usr/bin/ -f sudo cp pppd/pppd /home/djw/linux/nfs/rootfs/usr/bin/ -f sudo cp pppdump/pppdump /home/djw/linux/nfs/rootfs/usr/bin/ -f sudo cp pppstats/pppstats /home/djw/linux/nfs/rootfs/usr/bin/ -f 完成以后输入“pppd -v”查看一下 pppd 的版本号如果 pppd 版本号显示正常的话就说明pppd 移植成功如图下图所示 然后将/EC20自动拨号文件/gosuncn文件拷贝到/etc目录下有两个文件需要根据实际情况修改的 ①gosuncn_options文件 第 1 行如果是联通或移动的卡就是用 ttyUSB2如果是电信的卡就是用 ttyUSB0。 第 11~12 行这两行内容和所使用的卡有关如果是联通或者移动的卡就按照上面的写如果是电信的卡要改为如下所示内容 ②gosuncn_ppp_dialer文件 第 9 行后面的 3GNET 是网络的 APN 码这个要根据自己所使用的手机卡来确定联通卡的 APN 为 3GNET移动卡的 APN 为 CMNET。因为我使用的是联通卡进行测试的所有这里设置 APN 为 3GNET如果使用的移动卡那么要将 APN 设置为 CMNET。如果是电 信的卡那么第 9 行要改为 第 10 行如果是联通或移动的卡那么第 10 行就不变。如果是电信的卡那么第 10 行要改为 gosuncn文件夹下 3、测试pppd软件的ppp自动拨号上网
①输入如下命令连接 4G 网络 在EC20连接 4G 网络的过程中可能会出现如下图所示的错误提示 从图上图可以看出提示不能创建“Can’t create lock file /var/lock/LCK…ttyUSB2”检查根文件系统是否存在/var/run 和/var/lock 这两个目录如果没有的话就手动创建这两个文件夹命令如下 然后再输入拨号上网命令 ./ppp-on 会输出一下信息 ppp 拨号成功以后就会生成一个名为“ppp0”的网卡,如下图所示 但发现怎么ping百度都不通如下图所示 出现以上的问题这里有两点原因 ①路由上并没有把EC20 4G模组生成的网络地址添加进去那么Linux系统只会调用添加进默认的路由中 如下图所示4G网卡并没有添加到默认的路由中 命令ip route show 解决办法将4G网卡生成的网络地址添加进默认路由中如下图 命令route add default gw ip地址 ②IP地址解析失败原因是并没有解析出其对应的 IP 地址。因此我们需要配置域名解析服务器的 IP 地址一般域名解析地址可以设置为所处网络的网关地址比如 192.168.1.1。也可以设置为运营商的域名解析服务器地址。 解决办法在/etc目录下创建resolv.conf_back文件内容下图所示 然后在/etc目录下创建ppp0脚本文件并赋予可执行权限内容如下图所示 最后就可以上网ping通百度了如下图所示 4、拓展 上面讲的是使用gosuncn文件下的脚本文件启动ppp拨号的方式现在再讲使用peers文件下的脚本文件启动ppp拨号。 将peers文件夹拷贝到/etc/ppp/目录下并在 quectel-ppp 里修改你的串口设备名pppd 拨号使用的 usernamepassword。 在 quectel-chat-connect 里修改你的 APN。APN/username/password 是从你的网络提供商那里获取的。上面已经讲过了 然后使用下面的命令启动 ppp 拨号上网ping通百度如下图所示 四、使用GobiNet工具拨号上网
1、添加移远官方的GobiNet驱动 ①先将 Quectel_WCDMALTE_LinuxAndroid_GobiNet_Driver_V1.3.0.zip压缩包解压然后将Quectel_WCDMALTE_LinuxAndroid_GobiNet_Driver_V1.3.0/src 下的所有.c 和.h 文件都拷贝到 Linux 内核中的/driver/net/usb 目录下如下图所示 ②打开 Linux 内核的 drivers/net/usb/Makefile 文件添加如下图内容让Linux系统启动是自动连接.ko文件并自动加载。 ③打开Linux内核的drivers/net/usb/Kconfig 文件添加如下图内容目的是在make menuconfig图形化界面添加GobiNet驱动使能项。
config USB_GOBI_NETtristateGobi USB Net driver for Quectel modulehelpSupport Quectelmodule.A modemmanager with support for GobiNet is recommended.Tocompile this driver as a module, choose M here: the module will be calledGobiNet.④打开 Linux 内核配置界面使能前面添加的 Gobi 驱动配置路径如下 配置完成以后就重新编译一下 Linux 内核然后使用新的 zImage 启动开发板。启动以后检查一下“/dev/qcqmi2”这个文件是否存在如果存在的话就说明 Gobi 驱动工作成功。 如下图所示 Ⅰ启动时打印信息 Ⅱ查看/dev目录下是否生成了qcqmi2设备节点如下图所示
2、quectel-CM拨号工具移植 将WCDMALTE_QConnectManager_LinuxAndroid_V1.1.34.zip 这个压缩包进行解压得到quectel-CM 这个文件夹然后将 quectel-CM 文件夹拷贝到 Ubuntu 中。拷贝完成以后进入到Ubuntu 中的 quectel-CM 文件夹使用如下命令进行交叉编译 make CROSS_COMPILEarm-linux-gnueabihf- 编译完成以后得到一个名为“quectel-CM”软件如下图所示 将 quectel-CM 软件拷贝到开发板根文件系统的/usr/bin 目录下命令如下 sudo cp quectel-CM /home/zuozhongkai/linux/nfs/rootfs/usr/bin/ -f 3、使用quectel-CM软件来调用Gobi驱动自动拨号上网ping通百度
①输入如下命令完成 EC20 的 4G 网络连接 quectel-CM -s cenet 4、拓展 我们也可以将Quectel_WCDMALTE_LinuxAndroid_GobiNet_Driver_V1.3.0整个文件夹拷贝到Linux内核下的/drivers/net/usb目录下修改makefile文件手动生成GobiNet.ko文件然后自己手动加载GobiNet.ko驱动程序也是可以的。