树莓派5G NR上网折腾记
背景
每年春节回老家过年的时候,都需要解决上网的问题。基本需求是, 需要通过路由器为家里的电视、手机等设备提供一个可靠的网络覆盖,
而且网络的质量需要满足要求。因为平时不在老家住,开通宽带一般需要按年计费,不太划算。所以之前也尝试过买流量卡, 一个月可能
有几十G流量,然后使用树莓派和4G模块上网,共享网络给路由器满足需求。2020年春节期间隔离在家,不得不在家办公一个月,
还开通过电信宽带。当时用的是电信129元十全十美套餐,绑定银行卡优惠30元(当时没想着长期用,就没绑定 :< ), 因为合约期两年
后面出去打工后就没管了,送的三张卡也没有用。后面却发现欠费好几百,考虑可能影响到个人征信,因此又补缴了费用。相当于没有使用
却给电信捐款, 略坑。 因此一直在调研其他的方案,来满足春节短期的上网需求。
由于宽带一般都需要长期开通,成本才会降低。而且在人口密集的城市和乡村地区,宽带价格差异很大。基层业务人员服务也不够好,
一不小心又会掉进坑里。所以宽带不是一个好的选择。
5G网络的全国覆盖已经比较广了,其实4G+的网速(150Mbps~300Mbps)已经可以满足绝大多数上网场景的需求。
而且国内的电信运营商, 如果设备支持5G的话,就算使用的是4G套餐,也会支持5G的网络。虽然会被限速,但网速依然会提升不少,延迟也相对较低。
毕竟5G设备已经安装在那里,不用的话也会浪费。
所以树莓派+5G上网模块就是一个好的选择。 剩下要做的事情就是选择一个可靠且实惠的5G上网模块和套餐资费了。
这里不进行比较,我选择的方案就是 Rapsberrry Pi 3 + RM500U-CN + 天际通卡.
作为一个树莓派粉,设备我当然有了,而且每一代都有(还是在低位入手的), 暂时不计成本。
RM500U-CN 大概需要 900块。
天际通卡一年资费500多,但有按月的套餐99/月, 一个月的流量2000GB。非常适合我的需求。
虽然整体成本要1000+, 比一年的100M宽带价格 800左右并没有便宜多少。 但是设备是买到是我自己的,我还可以继续折腾,
从物品和精神上也都保值呢。
这比开通了宽带但是没有使用依然扣费划算不少,可能只是心理舒坦 :>
RM500-CN
RM500U-CN是一款相对物美价廉的产品,微雪电子对其定制了扩展版和外壳天线等,简单的组装一下就可以比的上商业产品的质量。
天际通卡
天际通14001号码的卡支持SA网络, 14000的不支持。可以通过卡后面的号码区分。
为了保证能买到14001卡, 我从闲鱼上找卖家购买并确认。 一般来说,华为移动路由设备送的卡是14001卡。 我买的那张卡, 应该是闲鱼卖家从回收的华为设备里单独拿出来卖的; 一个技巧是, 确认这个卡没有人使用,自己可以实名认证,防止用别人的卡充值后被别人挂失找回,造成不必要的经济损失
组装
组装教程 https://www.waveshare.net/w/upload/8/8b/PI4-CASE-4G-5G-M.2-Assembly-cn.jpg
实际上按照从底部往上组装的顺序比较容易。
因为我们用的是RM500U-CN, 是通过usb(不是gpio)共享扩展版的网络到树莓派,所以需要插好A-to-A的USB接口.
调试和使用
这里推荐安装ubuntu-server 20.04, 经测试可以运行。而且ubuntu对树莓派本身也有良好的支持,是raspbian的近亲。
安装好ubuntu-server后,根据waveshare提供的补丁,添加USB设备描述符(vendor ID/product ID)
https://www.waveshare.net/w/upload/9/9e/RM500U_FOR_RPI_Ubuntu22.04.zip
IMEI设置和修改
# 设置AT命令回显
ATE1
# 查看IMEI
AT+SPIMEI?
# 修改IMEI
AT+SPIMEI=0,"xxx"
ECM拨号
# 检查SIM卡状态
AT+CPIN?
# 检查网络状态
AT+QENG="servingcell"
# ECM
AT+QCFG="usbnet",1
AT+QNETDEVCTL=2,3,1
# 重启设备
AT+CFUN=1,1
APN设置 5gscuiot, 可以在微信小程序切换网络类型
ubuntu server配置
netplan config
ubuntu 22.04版本默认使用systemd提供的networkd. 兼容性较差,这里我们改回使用NetworkManager.
sudo snap install network-manager
sudo apt install modem-manager
network:
version: 2
renderer: NetworkManager
wifis:
wlan0:
dhcp4: no
addresses: [192.168.11.1/24]
access-points:
"RPI":
password: "xxx"
mode: ap
modems:
usb0:
dhcp4: true
match:
macaddress: "72:cf:d3:08:d8:bf"
optional: true
set-name: "usb0"
auto-config: true
apn: "5gscuiot"
通过ethernet端口共享以太网 https://ubuntu.com/core/docs/networkmanager/configure-shared-connections
nmcli c add con-name lan type ethernet ifname eth0 ipv4.method shared ipv6.method ignore
nmcli c up lan
常用AT命令
APN设置 AT+CGDCONT=1,"IP","5gscuiot"
5G网络设置
可以在天际通小程序上选择网络类型。默认为优质网络, 即为5G网络。其余两种为低延迟网络和稳定网络(IPV6), 都是4G类型。
可以根据网络覆盖情况和使用场景选择。如果有良好的5G网络覆盖,优选选择5G网络。
通过AT命令AT+QENG="servingcell" 查询。
AT命令设置网络模式
# auto
AT+QNWPREFCFG="mode_pref"
# 5g
AT+QNWPREFCFG="nr5g_band"
# lte
AT+QNWPREFCFG="lte_band"