利用openwrt路由器和随身WIFI搭建CPE

背景:

最近5GCPE挺火,各种硬件层出不穷,包括DY上很多商家在推的AX3000叠加展锐RM500 5G模块,自己组装CPE,成本也在300+

看了下开源硬件,其实就是一个开源的openwrt系统,硬件上5G模块通过usb协议或者pci-e协议与openwrt相连,openwrt把5G模块识别成一个网卡,作为WAN口用,LAN口可以接网线或者关联WIFI热点

硬件改造思路

根据上面的分析,openwrt系统+4G网卡就可以组件一个CPE,笔者手头有个多年前闲置的TPLINK 703N,还有好多个薅羊毛的随身WIFI,基于这两个硬件尝试搭建CPE

步骤:

1.考虑到openwrt需要支持网卡,笔者的703N已经改8M flash了,所以可以自己编译固件支持usb网卡,需要把如下kmod包选上

复制代码
kmod-usb-net(USB 网卡基础支持)
kmod-usb-net-cdc-ether(大部分 USB 4G/5G 网卡需要)
kmod-usb-net-rndis(部分 USB 共享网络设备需要)
kmod-usb-serial(USB 串口设备支持)
kmod-usb-serial-option(大部分 4G/5G 网卡用这个)
kmod-usb-serial-wwan(用于某些 4G 模块)

编译完毕的固件保存在

2.通过luci web页面刷入新固件,也可以先把固件拷贝到tmp目录,然后通过如下命令升级

复制代码
sysupgrade -v /tmp/lede-ar71xx-generic-tl-wr703n-v1-squashfs-sysupgrade.bin

3.把随身wifi插入703N的usb口,上电开机,正常应该可以看到如下log,证明openwrt固件已经支持usb网卡

复制代码
[   17.615499] usbcore: registered new interface driver cdc_ether
[   17.624219] usbcore: registered new interface driver cdc_ncm
[   17.630923] usbcore: registered new interface driver cdc_subset
[   17.734098] usbcore: registered new interface driver rndis_host

如果看到如下log,证明usb网卡已经连接

复制代码
[    4.186030] hub 1-0:1.0: USB hub found
[    4.189058] hub 1-0:1.0: 1 port detected
[    4.194799] ehci-pci: EHCI PCI platform driver
[    4.202089] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    4.208623] ohci-platform: OHCI generic platform driver
[    4.215922] uhci_hcd: USB Universal Host Controller Interface driver
[    4.223153] ohci-pci: OHCI PCI platform driver
[    5.063064] usb 1-1: new high-speed USB device number 2 using ehci-platform

到这一步后,敲ifconfig命令,还没有看到新增网卡,说明cdc-ether驱动还未加载,还缺如下关键的步骤:1)上电脑查看随身wifi的pid/uid 2)openwrt 安装usb-modeswitch 3)修改配置,切换usbmode

4.把随身wifi插电脑的usb口,正常可以识别出来一个rndis网卡

查看硬件属性:

记录PID VID,例如

复制代码
USB\VID_19D2&PID_0536&MI_00\6&330DC382&0&0000

5.然后把随身wifi再插入openwrt上,执行lsusb命令,就发现问题了,PID不一样

复制代码
root@LEDE:~# lsusb
Bus 001 Device 003: ID 19d2:0548 ZTE WCDMA Technologies MSM
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@LEDE:~#

这时,usbmodeswitch就有用武之地了

6.安装usb-modeswitch

复制代码
opkg update
opkg install usb-modeswitch

在/etc/usb-mode.json中添加这么一段:

复制代码
                "19d2:0548": {                                                  
                        "*": {                                                  
                                "t_vendor": 6610,                              
                                "t_product": [ 1334 ],                        
                                "mode": "StandardEject",                        
                                "msg": [  ]                                    
                        }
                },

最终效果如下:

7.重启openwrt,如果看到如下log,证明cdc-ether驱动已经加载,usb网卡已经识别,

复制代码
[   15.710954] cdc_ether 1-1:1.0 eth1: register 'cdc_ether' at usb-ehci-platform-1, CDC Ethernet Device, 34:4b:50:00:00:00

查看网口,多出来一个eth1,也有可能是usb0,cdc0等

这时还不能上网,还需要新增一个wan连接,接口选新增的这个网口,协议选dhcp

8.测速环节

电脑直连随身wifi的usb口,测速用的是普通电信卡,非物联网卡

随身wifi插703N的usb口,电脑与703N通过网线连接

可见,703N中转后,网速折半,估计703N的硬件完全根本上随身wifi,测速用的随身wifi是新讯的TZ103,相对于高通410,网速已经提升了不少,发热也低。703N的硬件还不如随身WIFI,测速效果也不报太大希望。

至此,教程完毕,enjoy

相关推荐
xiaoxiongip6661 天前
假设两个设备在不同网段,网关怎么设置才能通呢
网络·爬虫·python·https·智能路由器
渡我白衣2 天前
字符串的陷阱与艺术——std::string全解析
网络·c++·人工智能·自然语言处理·智能路由器·信息与通信·caffe
报错小能手2 天前
计算机网络自顶向下方法33——网络层 路由器工作原理 输入端口处理和基于目的地转发 交换 输出端口处理
网络·计算机网络·智能路由器
Yurko132 天前
【计网】基于三层交换机和 RIP 协议的局域网组建
网络·学习·计算机网络·智能路由器
无聊的小坏坏3 天前
我自己对三种 IO 多路复用的理解
随笔·io多路复用
xixixi777773 天前
内部网关协议——OSPF 协议(开放最短路径优先)(链路状态路由协议)
网络·智能路由器
卓应3 天前
路由协议的基础
网络·智能路由器
学渣676563 天前
个人笔记|单臂路由,子接口,VLAN标签
网络·笔记·智能路由器
报错小能手4 天前
计算机网络自顶向下方法41——网络层 自治系统内部的路由选择:开放最短路优先(OSPF)设置OSPF链路权值
网络·计算机网络·智能路由器
AC是你的谎言5 天前
网络层和数据链路层
linux·网络·学习·智能路由器