背景:
最近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