openwrt 配置4G网卡 simcom7600ce
文章目录
概述
在mt7628芯片上,操作系统使用openwrt21.02.1版本,4G模组使用SIMCOM7600CE-T的miniPCLE的版本,
配置4G模组成为网卡模式
参考资料:
sim7600ce拨号上网
OpenWRT安装SIM7600CE 4G模块驱动
配置并烧录系统,实现识别4G模组
编译选项配置
在openwrt源码根目录中,输入make menuconfig
,进行配置。
Kernel modules --->
Network Devices --->
kmod-mii
USB Support --->
kmod-usb-core
kmod-usb-net
kmod-usb-net-qmi-wwan
kmod-usb-ohci
kmod-usb-serial
kmod-usb-wdm
kmod-usb2
kmod-usb3
kmod-usb-serial-qualcomm //这个貌似是非必要的
Utilities --->
Terminal --->
minicom //可选,用于直观的收发串口AT命令
修改usb的option.c文件
修改option.c文件,文件路径在./build_dir/target-mipsel_24kc_musl/linux-ramips_mt76x8/linux-5.4.171/drivers/usb/seria/option.c
。
检查option_ids[]
数组中是否有添加了simcom的USB设备。在openwrt21.02.7版本中,这部分是写好了的,不用修改。
#define ALINK_VENDOR_ID 0x1e0e
#define SIMCOM_PRODUCT_SIM7100E 0x9001 /* Yes, ALINK_VENDOR_ID */
static const struct usb_device_id option_ids[] = {
{
USB_DEVICE(ALINK_VENDOR_ID, SIMCOM_PRODUCT_SIM7100E),
.driver_info = RSVD(5) | RSVD(6) },
...
}
修改option_probe()
函数,添加几行代码,过滤掉interface5,如下所示
static int option_probe(struct usb_serial *serial,
const struct usb_device_id *id)
{
#if 1 //added by simcom
if (serial->dev->descriptor.idVendor == cpu_to_le16(0x1E0E)
&& serial->dev->descriptor.idProduct != cpu_to_le16(0x9001)
&& serial->interface->cur_altsetting->desc.bInterfaceNumber>= 5) {
return -ENODEV;
}
#endif
。。。。
}
编译源码,烧录固件
编译源码,烧录到mt7628中。
插入SIMCOM7600CE模组,当终端打印了qmi_wwan 1-1.2:1.5 wwan0: register 'qmi_wwan' at usb-101c0000.ehci-1.2, WWAN/QMI device, 7e:1e:a6:8e:50:04
这句信息时,则说明系统已经识别到了4G模组。
这时/dev/ttyUSB0~4就会生成,上层应用就可以通过这些设备和模块交互了。
输入ifconfig wwan0
或 ifconfig -a
时,就可以查看到wwan0
的相关信息
配置4G模组成为网卡
设置4G模组驱动参数
SIMCOM7600模块是RAW IP模式,需要设置驱动参数:echo Y > /sys/class/net/wwan0/qmi/raw_ip
若遇到qmi_wwan 1-1.2:1.5 wwan0: Cannot change a running device ash: write error: Resource busy
,
可以先输入ifconfig wwan0 down
,把wwan0先down掉。
若还不行,则可以输入service network stop
,把网络关闭。
重新配置参数后,再输入ifconfig wwan0
,结果如下。
模组拨号
输入echo "AT\$QCRMCALL=1,1" > /dev/ttyUSB2
,让模组拨号。
或者
先输入cat /dev/ttyUSB2 &
,开启一个查看模组AT指令回显的进程;然后再输入echo -e "AT\$QCRMCALL=1,1\r\n" > /dev/ttyUSB2
,让模组拨号。这时可以查看到模组的回复
如果想确定拨号的成功,可以安装minicom
工具,通过minicom工具可以查看模组的回复。
如果模组回复了$QCRMCALL: 1, V4
,则说明拨号成功;
若模组回复了NO CARRIER
,则说明已经拨过号了。
添加网卡接口
输入vim /etc/config/network
,编辑网络接口配置文件。
添加wwan0网络接口, config interface 'wwan0'
语句中的wwan0
可以随意写,只是一个名字而已。
config interface 'wwan0'
option ifname 'wwan0'
option proto 'dhcp'
option metric '20'
接着输入service network restart
重启网络服务。
等待几秒钟,再输入ifconfig
,可以查看到新的网络接口wwan0
,并且其已经带有IPV4的地址
ping百度验证网络
最后,指定网卡ping百度,若能够ping通则说明配置网卡成功!
开机启动脚本
while true
do
str=$(ifconfig | grep wwan0)
if [ -n "$str" ];then
echo ${str};
echo "wwan0 down and networt stop";
ifconfig wwan0 down;
/etc/init.d/network stop;
echo "set wwan0 raw_ip";
echo Y > /sys/class/net/wwan0/qmi/raw_ip;
echo "send AT cmd";
echo "AT\$QCRMCALL=1,1" > /dev/ttyUSB2;
echo "network restart";
ifconfig wwan0 up;
/etc/init.d/network start;
echo "sleep 3s,wait for network start";
sleep 3;
break;
fi
done
- if [ -n "$str" ];then
表示获取的字符串非空,则执行分支
原文地址:https://blog.csdn.net/weixin_43871650/article/details/134575256
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!