利用EC800K-CN4g模块进行实现RNDIS上网

全志BingPi-M2(T113-S3)采用EC800K-CN4G模块利用RNDIS上网

一:安装option驱动

将4G模块插到板子上,执行ls /dev/ttyUSB* 看是否有相应的设备,如果有,则可以跳过此步骤,若没有则需要安装option驱动,参照2_Quectel_UMTS_LTE_5G_Linux_USB_Driver_用户指导_V1.1文档以及板子的SDK文档,教程如下:

1.为了识别模块,需将模块的 VID 和 PID 信息添加到[KERNEL]/drivers/usb/serial/option.c 文件中

查找EC800K-CN的VID和PID
在这里插入图片描述

0x2C7C和0x6002

找到option.c文件,在对应位置插入VID和PID:如图
在这里插入图片描述

2.使用 USBNet 驱动

高于 2.6.30 的 Linux 内核版本,用户可以在[KERNEL]/drivers/usb/serial/option.c 的option_probe (函数中)中添加以下语句

在这里插入图片描述

3.添加零包机制

高于 2.6.34 的 Linux 内核版本,需在[KERNEL]/drivers/usb/serial/usb_wwan.c 文件中添加以下语句

在这里插入图片描述

4.添加 Reset-resume 机制

部分 USB 主机控制器或 USB hub 在 MCU 进入 Suspend/Sleep(挂起/睡眠)模式时会发生掉电或复位,并且在 MCU 退出 Suspend/Sleep 模式后不能使模块恢复。需要通过添加以下语句来启用 reset-resume机制。 高于 3.4 的 Linux 内核版本,需在[KERNEL]/drivers/usb/serial/option.c 文件中添加以下语句。
在这里插入图片描述

5.修改内核配置,如下:

进入/home/meetyoo/t113/Tina-Linux目录下,make kernel_menucofig,依次启用如下配置:

CONFIG_USB_SERIAL CONFIG_USB_SERIAL_WWAN CONFIG_USB_SERIAL_OPTION

在kernel_menuconfig界面 按"/"键进入查找模式,依次查找,按"1"键快速进入相应配置项菜单下并按"y"键启用

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

至此,option驱动已经配置完毕,保存退出kernel_menuconfig即可。

二:配置RNDIS驱动

由于RNDIS驱动文件在内核当中有,我们只需要修改内核配置即可。

在这里插入图片描述

依次配置CONFIG_USB_NET_DRIVERS CONFIG_USB_USBNET CONFIG_USB_NET_RNDIS_HOST

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

还是按照配置option驱动的那种方法依次配置即可。至此RNDIS驱动已经配置完毕。保存配置选项,退出。

三:烧写开发板

参照开发板上手教程,在/home/meetyoo/t113/Tina-Linux 执行make mboot 和 pack 命令 将会在/home/meetyoo/t113/Tina-Linux/out/t113-bingpi_m2目录下生成tina_t113-bingpi_m2_uart3.img文件

在这里插入图片描述

利用烧写工具进行烧写

以上步骤均在宿主机上执行~

四:检测激活模块RNDIS模式

以下步骤均在开发板上执行,开发板烧写完毕后

1.执行 ls /sys/bus/usb/drivers 命令 ,看是否将rndis和option驱动全部烧写进去在这里插入图片描述

如上图,说明已经加载了option和rndis驱动

2.插入4g模块,注意4g模块上面要插入天线SIM卡

执行 ls /dev/ttyUSB* 以此来检测看是否能够识别4g模块

在这里插入图片描述

如图:说明已经能够检测并识别到模块

3.将模块配置成RNDIS模式

参照EC800K-CN手册,usb0是网卡设备,ttyUSB1和ttyUSB2 是用来接收AT指令的串口

在这里插入图片描述

依次执行以下命令

cat /dev/ttyUSB2 & 打开串口回显

echo “AT+QCFG=“usbnet”,3” > /dev/ttyUSB2 按照手册将模块设置为RNDIS模式

在这里插入图片描述

ifconfig -a

在这里插入图片描述

可以看到已经识别出来usb0 网卡设备了,说明RNDIS驱动没有问题

五:进行上网

ifconfig eth0 down            将开发板内置网卡eth0 禁用
echo "AT+QNETDEVCTL=1,1,1" > /dev/ttyUSB2          识别出usb0网卡设备后,先发AT命令拨号
依次执行
ip link set usb0 up         
ifconfig  usb0 192.168.43.100 netmask 255.255.255.0
ip route add default via 192.168.43.1 dev usb0

在这里插入图片描述

在这里插入图片描述

至此,上网成功!

六:建议

可以先将4g模块插入到PC机上,在windows下按照教程先利用ppp拨号看看是否能上网,来排除4g模块的问题!

ppp拨号教程:WIN7 通过4G模块 拨号上网过程_模块拨号流程-优快云博客

先在windows上插上模块,看看设给管理器是否能识别模块,如果识别不了的话,到官方下载相应的驱动! Quectel_Windows_USB_DriverA_Customer_V1.1.13.zip

为了在Linux系统下使用EC800K-CN模块进行通信或开发,首先需要确保系统具备与该模块交互的基本条件,并按照一定的步骤完成驱动安装、设备识别、网络配置等关键操作。 EC800K-CN模块支持在Linux操作系统下运行,这意味着它能够与多种Linux发行版兼容,包括但不限于Ubuntu、Debian、Fedora等。在Linux环境中使用该模块通常涉及以下几个方面: 1. **USB驱动支持**:EC800K-CN模块通过USB接口与主机连接,在Linux系统中,大多数现代发行版已经内置了对USB虚拟串口的支持。如果模块连接后未被正确识别,可能需要手动加载相关的内核模块,如`usbserial`和`option`模块,以确保系统能够识别设备[^2]。可以通过执行以下命令来加载这些模块: ```bash sudo modprobe usbserial sudo modprobe option ``` 2. **设备节点创建**:一旦USB驱动被正确加载,系统会在`/dev`目录下创建相应的设备节点,例如`/dev/ttyUSB0`、`/dev/ttyUSB1`等。可以通过检查`dmesg`命令的输出来确认设备是否已经被正确识别: ```bash dmesg | grep USB ``` 输出信息中应该包含有关EC800K-CN模块的识别情况。 3. **AT命令通信**:对于基本的通信测试,可以使用`minicom`、`screen`或自定义的串口通信程序来发送AT命令并与模块交互。例如,使用`screen`命令连接到模块: ```bash screen /dev/ttyUSB0 115200 ``` 在此之后,可以输入AT命令测试模块的状态,例如输入`AT`并按回车键,预期返回`OK`表示模块工作正常。 4. **PPP拨号配置**:若需通过EC800K-CN模块建立互联网连接,可以配置PPP(Point-to-Point Protocol)拨号。这通常涉及到创建一个PPP配置文件,指定正确的设备路径、波特率等参数。一个简单的PPP配置示例可能如下所示: ```bash connect '/usr/sbin/chat -v -f /etc/chatscripts/ec800k' noauth defaultroute usepeerdns /dev/ttyUSB0 115200 ``` 此外,还需要编写一个`chat`脚本(如上述配置中的`/etc/chatscripts/ec800k`),用于定义拨号过程中的交互步骤,包括用户名、密码认证等。 5. **网络接口管理**:成功建立PPP连接后,系统会自动创建一个新的网络接口(通常命名为`ppp0`)。此时,可以使用`ifconfig`或`ip`命令查看接口状态,并确保其已获得有效的IP地址: ```bash ip addr show ppp0 ``` 6. **高级开发支持**:除了基本的通信功能外,EC800K-CN还支持更复杂的开发需求。开发者可以利用Python、C/C++等编程语言编写应用程序,通过串口通信库(如PySerial)实现模块的交互。例如,使用Python进行简单的AT命令发送和响应接收可以如下实现: ```python import serial ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=1) ser.write(b'AT\r\n') response = ser.read(100) print(response.decode()) ser.close() ``` 以上步骤涵盖了从硬件连接到软件配置的全过程,为在Linux系统下使用EC800K-CN模块提供了全面的技术指导。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值