惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
V
Visual Studio Blog
美团技术团队
L
LINUX DO - 最新话题
Last Week in AI
Last Week in AI
雷峰网
雷峰网
博客园_首页
腾讯CDC
博客园 - Franky
大猫的无限游戏
大猫的无限游戏
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
J
Java Code Geeks
W
WeLiveSecurity
Apple Machine Learning Research
Apple Machine Learning Research
Spread Privacy
Spread Privacy
博客园 - 聂微东
量子位
Recent Announcements
Recent Announcements
S
Schneier on Security
O
OpenAI News
PCI Perspectives
PCI Perspectives
H
Heimdal Security Blog
T
Tailwind CSS Blog
S
Security Affairs
Y
Y Combinator Blog
P
Privacy International News Feed
Hacker News: Ask HN
Hacker News: Ask HN
Stack Overflow Blog
Stack Overflow Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
U
Unit 42
Webroot Blog
Webroot Blog
Vercel News
Vercel News
Simon Willison's Weblog
Simon Willison's Weblog
B
Blog RSS Feed
S
Secure Thoughts
Microsoft Azure Blog
Microsoft Azure Blog
N
Netflix TechBlog - Medium
V
V2EX
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
DataBreaches.Net
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
L
LangChain Blog
S
Security @ Cisco Blogs
The Hacker News
The Hacker News
The GitHub Blog
The GitHub Blog
C
CERT Recently Published Vulnerability Notes

轶哥博客

blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog blog
blog
2022-03-27 · via 轶哥博客

由于无线上网卡驱动的完善,随着内核的更新大部分的4G/5G无线网卡得到免驱支持。

OpenWRT社区包含了大量的无线网卡驱动,其中不乏4G/5G模块,现如今市面上常见的模块型号都得到了支持。

如果在其它Linux发行版使用4G/5G模块,请参考《Linux使用4G/5G无线网卡模块上网》

识别模块

将4G/5G开发板插入设备,终端输入lsusblspci,看设备是否识别到4G/5G模块。

$ lsusb
Bus 001 Device 001: ID 05c6:6001 Qualcomm, Inc. Mass Storage Device

以树莓派4(Raspberry4)中安装的OpenWRT为例,上述命令显示设备识别到高通芯片的4G模块(USB无线网卡)。

如果你也在树莓派4中使用4G/5G网卡,还可以参考:《树莓派4使用OTG功能变身有线网卡》

查看驱动加载情况

OpenWRT对3G/UMTS/4G/LTE/5G/Phone网卡的驱动方式,一共有以下几种:

  • QMI
  • NCM
  • RNDIS
  • 串口/专有驱动

查看dmesg信息,确认模块驱动加载情况。不同的4G/5G网卡,加载的驱动模式可能有差异。通常情况下,4G无线网卡包含两个模式,一个CD存储模式,另一个是Modem模式(调制解调器模式)。5G模块的无线网卡通常走USB Type-C,具有专门的驱动。

$ dmesg

如果usb模式切换正常,通常可以看到输出内容包含:

GSM modem

否则,可能只识别到USB Storage device或者CD-ROM。这种情况下,需要安装usb-modeswitch等库,并设置切换网卡运行模式。

如果只识别到USB设备而没有对应驱动,需要对OpenWRT内核编译选项进行配置。如果看到GSM相关字眼(跳过内核编译,说明固件已经支持该模块),那么直接执行ifconfig -a查看是否有wwan0usb之类的网卡名称。

很多情况下一些依赖的相关驱动需要安装后才会出现网卡。

例如执行lsusb时找到设备为高通4G卡托:

Bus 001 Device 006: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)

执行RNDIS相关依赖安装:

opkg update
opkg install kmod-usb-net-rndis usb-modeswitch

重启设备。

重启后如果dmesg输出内容包含RNDIS device,则说明已经被识别为RNDIS设备,将匹配为一个安卓手机来进行上网。

这时执行lsusb就可以看到USB设备已经变为:

Bus 001 Device 006: ID 05c6:902d Android Android

这时USB 4G上网卡托则被识别为安卓设备,同时ifconfig -a出现usb0网卡。

内核编译选项

### USB Net Drivers
CONFIG_PACKAGE_kmod-usb-net=y
CONFIG_PACKAGE_kmod-usb-net-asix=y
CONFIG_PACKAGE_kmod-usb-net-asix-ax88179=y
CONFIG_PACKAGE_kmod-usb-net-rtl8152=y
CONFIG_PACKAGE_kmod-usb-net-cdc-eem=y
CONFIG_PACKAGE_kmod-usb-net-cdc-ether=y
CONFIG_PACKAGE_kmod-usb-net-cdc-mbim=y
CONFIG_PACKAGE_kmod-usb-net-cdc-ncm=y
CONFIG_PACKAGE_kmod-usb-net-cdc-subset=y
CONFIG_PACKAGE_kmod-usb-net-dm9601-ether=y
CONFIG_PACKAGE_kmod-usb-net-hso=y
CONFIG_PACKAGE_kmod-usb-net-huawei-cdc-ncm=y
CONFIG_PACKAGE_kmod-usb-net-ipheth=y
CONFIG_PACKAGE_kmod-usb-net-kalmia=y
CONFIG_PACKAGE_kmod-usb-net-kaweth=y
CONFIG_PACKAGE_kmod-usb-net-mcs7830=y
CONFIG_PACKAGE_kmod-usb-net-pegasus=y
CONFIG_PACKAGE_kmod-usb-net-pl=y
CONFIG_PACKAGE_kmod-usb-net-qmi-wwan=y
CONFIG_PACKAGE_kmod-usb-net-rndis=y
CONFIG_PACKAGE_kmod-usb-net-sierrawireless=y
CONFIG_PACKAGE_kmod-usb-net-smsc95xx=y
CONFIG_PACKAGE_kmod-usb-net-sr9700=y
CONFIG_PACKAGE_kmod-usb-net2280=y

### USB Storage Drivers
CONFIG_PACKAGE_kmod-usb-ohci=y
CONFIG_PACKAGE_kmod-usb-ohci-pci=y
CONFIG_PACKAGE_kmod-usb-printer=y
CONFIG_PACKAGE_kmod-usb-storage=y
CONFIG_PACKAGE_kmod-usb-storage-extras=y
CONFIG_PACKAGE_kmod-usb-storage-uas=y
CONFIG_PACKAGE_kmod-usb-uhci=y
CONFIG_PACKAGE_kmod-usb2=y
CONFIG_PACKAGE_kmod-usb2-pci=y
CONFIG_PACKAGE_kmod-usb3=y

# 3G/4G/5G Drivers & Utilities
CONFIG_PACKAGE_comgt-ncm=y
CONFIG_PACKAGE_comgt=y
CONFIG_PACKAGE_kmod-mii=y
CONFIG_PACKAGE_kmod-usb-acm=y
CONFIG_PACKAGE_kmod-usb-serial=y
CONFIG_PACKAGE_kmod-usb-serial-option=y
CONFIG_PACKAGE_kmod-usb-serial-wwan=y
CONFIG_PACKAGE_luci-proto-3g=y
CONFIG_PACKAGE_luci-proto-ncm=y
CONFIG_PACKAGE_luci-proto-qmi=y
CONFIG_PACKAGE_qmi-utils=y
CONFIG_PACKAGE_umbim=y
CONFIG_PACKAGE_uqmi=y
CONFIG_PACKAGE_usb-modeswitch=y

# Mobile Network Sharing
CONFIG_PACKAGE_libimobiledevice-utils=y
CONFIG_PACKAGE_libplist-utils=y
CONFIG_PACKAGE_libudev-fbsd=y
CONFIG_PACKAGE_libusbmuxd-utils=y
CONFIG_PACKAGE_usbmuxd=y

# Kmods
CONFIG_PACKAGE_kmod-rtl8187=y
CONFIG_PACKAGE_kmod-rtl8188eu=y
CONFIG_PACKAGE_kmod-rtl8192c-common=y
CONFIG_PACKAGE_kmod-rtl8192cu=y
CONFIG_PACKAGE_kmod-rtl8192du=y
CONFIG_PACKAGE_kmod-rtl8812au-ac=y
CONFIG_PACKAGE_kmod-rtl8821cu=y
CONFIG_PACKAGE_kmod-rtl88x2bu=y
CONFIG_PACKAGE_kmod-rtlwifi=y
CONFIG_PACKAGE_kmod-rtlwifi-usb=y
CONFIG_PACKAGE_kmod-usb-net-rtl8150=y
CONFIG_PACKAGE_kmod-usb-net-rtl8152=y

上述配置项包含了常见的3G/4G/5G模块所依赖的配置信息。其中最为关键的是usb-modeswitch模块的配置。

按照上述配置项编译后,即可正常识别上网模块。如果仍然无法识别,需要根据设备ID查找对应驱动,可参考《Linux安装无线网卡驱动通用方法》

驱动模块

OpenWRT.png

常见的4G模块是通电即能联网,无需手工配置拨号信息。这类模块在ifconfig -a中直接体现了wwan0usb之类的网卡名称。但由于OpenWRT默认没有对网卡启用DHCP Client,因此不会看到被分配的IP信息。这种情况下我们只需要在UI管理界面的接口-新建接口,输入一个你喜欢的wan口名称,并选择协议为DHCP客户端,选中对应的网卡,新建后修改-网卡防火墙,选择wan保存。之后就可以看到接口界面该网卡获得了IP地址,客户端即可正常上网。【USB模块里最常见情况】

另外一种情况通常是给开发人员提供的4G/5G模块,是需要依赖一个上位机系统才能完成拨号并正常上网的。这类模块的表现就是直接给模块通电是无法正常上网的,需要配置拨号信息。例如移远等各类开发板使用的LTE模块、GL.iNet的各类LTE模块、给自助设备/嵌入式设备使用的4G模块、大部分的PCIe接口的LTE模块。这种情况需要使用qmi模块进行拨号上网。

opkg install usb-modeswitch kmod-mii kmod-usb-net kmod-usb-wdm kmod-usb-net-qmi-wwan uqmi luci-proto-qmi

安装上述模块后,进入GUI管理界面,接口-新建接口,输入一个你喜欢的wan口名称,并选择协议为QMI 蜂窝(不同版本翻译的名称不一样,带QMI即可),新建后修改-网卡防火墙,选择wan保存。修改,设备地址输入/dev/cdc-wdm0(通常是这个,看dmesg输出的结果),APN根据卡片来(联通 3gnet、移动 cmnet、电信ctnet)。保存后查看是否能成功拨号。

其它特殊模块参考官方文档https://openwrt.org/docs/guide-user/network/wan/wwan/ltedongle

具体的手动拨号方法参见《OpenWRT使用4G卡托拨号上网》。