Linux使用4G/5G无线网卡模块上网 您所在的位置:网站首页 5G电信网卡怎么办 Linux使用4G/5G无线网卡模块上网

Linux使用4G/5G无线网卡模块上网

2024-07-15 06:30| 来源: 网络整理| 查看: 265

识别模块

5G模块

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

root@raspberrypi:~ $ lsusb Bus 001 Device 001: ID 05c6:1000 Qualcomm, Inc. Mass Storage Device

IMG6477.JPG

以树莓派(Raspberry)为例,上述命令显示设备识别到高通芯片的4G模块。了解更多详情请阅读《Linux安装无线网卡驱动通用方法》。

需要特别注意的是,部分4G模块(特别是性能较好的高通芯片)是内核免驱,载入成功后直接体现为网卡。使用ifconfig即可直接看到网卡并能上网。这种情况下,USB接口实现的是一个USB网卡端,类似于Raspberry OTG USB上网。参考:《树莓派4使用OTG功能变身有线网卡》。

查看驱动加载情况

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

$ dmesg

如果usb模式切换正常,通常可以看到类似如下输出:

ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1

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

配置wvdial拨号 sudo apt install wvdial ppp

修改wvdial配置文件/etc/wvdial.conf。我使用的电信手机卡进行测试:

[Dialer Defaults] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 Init3 = AT+CGDCONT=1,"IP","ctnet" Modem Type = Analog Modem Baud = 9600 New PPPD = yes Modem = /dev/ttyUSB1 ISDN = 0 Phone = *99# Password = card Username = card Auto DNS = on

相应的,你需要将APN设置的一行Init3内容进行修改,4G模块中移动cmnet、联通3gnet、电信ctnet,相应的物联网卡APN和5G使用的配置数据,根据供应商给到的参数进行设置。Modem一栏即4G模块的USB虚拟串口设备路径或5G模块的TTY接口。

运行:

$ wvdial

直接执行wvdial命令,即可看到拨号上网的过程。如果成功,将会看到:

--> WvDial: Internet dialer version xxx --> Initializing modem. --> Sending: ATZ OK --> Sending: ATQ0 V1 E1 S0=0 OK --> Modem initialized. --> Sending: ATDT*99# --> Waiting for carrier. ATDT*99# CONNECT 150000000 --> Carrier detected. Starting PPP immediately. --> Starting pppd at Sun Jan 24 14:45:37 2021 --> Pid of pppd: 1330 --> Using interface ppp0 --> pppd: X/?[01]X/?[01] --> local IP address xxx.xxx.xxx.xxx --> pppd: X/?[01]X/?[01] --> remote IP address xxx.xxx.xxx.xxx --> pppd: X/?[01]X/?[01] --> primary DNS address xxx.xxx.xxx.xxx --> pppd: X/?[01]X/?[01] --> secondary DNS address xxx.xxx.xxx.xxx --> pppd: X/?[01]X/?[01]

可以成功获取local IP地址,基本上就快成功了。其中,remote IP address 10.64.64.64是正常的。

部分5G模块拨号成功后,数据是不走ppp网卡的。需要根据具体模块文档进行调试。

检查是否可以上网

运行:

$ ifconfig

如果调制解调器正常运行,则可以看到ppp0输入类似内容:

ppp0: flags=4305 mtu 1500 inet xxx.xxx.xxx.xxx netmask 255.255.255.255 destination 10.64.64.64 ppp txqueuelen 3 (Point-to-Point Protocol) RX packets 11065 bytes 1348146 (1.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 12168 bytes 1585065 (1.5 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

每次成功启动后都会分配到一个随机IP地址(也有可能固定,取决于运营商),这就说明4G/5G模块初始化成功。使用IPv6场景的5G模块,还需要针对IPv6进行网卡配置。

检查路由表:

$ route -n

得到类似信息:

root@NanoPi-NEO2:~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0 0.0.0.0 10.10.10.252 0.0.0.0 UG 100 0 0 eth0 10.10.10.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0

在双网卡情况下,如果要使用ppp0上网,可以这么做:

# 删除第一条路由信息: $ sudo route del –net 0.0.0.0 eth0 # 新增一条ppp0的路由信息: $ sudo route add –net 0.0.0.0 ppp0

可以参考文章《MacOS 同时使用内网和外网(双网卡同时联网)》,进行多网卡同时联网的设置。

确认路由正常后,就可以开始常规的确认网络操作了。例如ping网关,ping 114.114.114.114,ping www.baidu.com。

查询当前IP地址:

$ curl cip.cc 创建wvdial服务

需要在加载完USB调制解调器后自动拨号,可以创建wvdial.service文件。

$ vim /etc/systemd/system/wvdial.service [Unit] Description=wvdial [Service] ExecStart=/usr/bin/wvdial Restart=on-failure RestartSec=5

将下述内容添加到99-com.rules文件中。wvdial.service加载USB调制解调器后,它将被自动调用。

$ vim /etc/udev/rules.d99-com.rules SUBSYSTEM=="tty", KERNEL=="ttyUSB1", TAG+="systemd", ENV{SYSTEMD_WANTS}+="wvdial.service" 其它Linux常规操作 # 启动wvdial服务 systemctl start wvdial # 关闭wvdial服务 systemctl stop wvdial # 查询是否存在wvdial进程 ps aux|grep wvdial # 关闭wvdial进程 killall wvdial # 查看wvdial服务日志 journalctl -u wvdial


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有