硬件接法
很多4G模块都是minipci-e的接口,但其实就是真正用到的就是usb接口,所以可以搞一个图中的这样一个usb转minipcie的转换板接入到树莓派
软件
树莓派使用的系统是这个,这里要说明的是,如果不是这个系统,很有可能会出现驱动的问题,那就需要手动添加启动了。
经测试在2020-08-20-raspios-buster-armhf-full.img系统下 EC20 CEFDKG这个模块是自带驱动的
而且默认是有工作在wwan模式,所以ifconfig里面会识别出一个新的网卡(不过我还没有研究明白这个模式怎么联网,其实wwan模式是一种比较新的模式,ppp模式兼容性好,缺点就是比较慢,后面搞好了wwan模式在做一个PPP模式的速度对比)
pi@raspberrypi:~ $ ls /dev/ttyU* -alh
crw-rw---- 1 root dialout 188, 0 Dec 4 02:29 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 Dec 4 02:34 /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 2 Dec 4 03:07 /dev/ttyUSB2
crw-rw---- 1 root dialout 188, 3 Dec 4 03:07 /dev/ttyUSB3
pi@raspberrypi:~ $ ls /dev/cdc* -alh
crw------- 1 root root 180, 176 Dec 4 01:17 /dev/cdc-wdm0
pi@raspberrypi:~ $
pi@raspberrypi:~ $
pi@raspberrypi:~ $ ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.188 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::4c5f:f4f5:8c3c:6596 prefixlen 64 scopeid 0x20<link>
ether b8:27:eb:78:c1:bc txqueuelen 1000 (Ethernet)
RX packets 42167 bytes 28394941 (27.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 13190 bytes 1573769 (1.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 32 bytes 1920 (1.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 32 bytes 1920 (1.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 10.240.158.142 netmask 255.255.255.255 destination 10.64.64.64
ppp txqueuelen 3 (Point-to-Point Protocol)
RX packets 18 bytes 1251 (1.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 19 bytes 1186 (1.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether b8:27:eb:2d:94:e9 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wwan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 169.254.174.201 netmask 255.255.0.0 broadcast 169.254.255.255
inet6 fe80::5126:bdc2:e090:fcbd prefixlen 64 scopeid 0x20<link>
ether 92:4b:d0:71:d8:1d txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 192 bytes 53966 (52.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
PPP拨号
ppp拨号需要3个工具
- chat 程序
- pppd 程序
- 拨号脚本
这个3个工具在树莓派上比较简单,直接用
sudo apt install ppp
chat默认有自带,所以可以先不管
拨号脚本其实在网上也可以下载到,虽然不同的脚本有一些小差别,但是使用基本不影响
将脚本cp到ppp下
然后用命令就可以联网了
sudo /etc/ppp/ppp-on *99# user 123 none /dev/ttyUSB3&
连接成功的输出提示如下
特别说明,有一些模块很有可能拨号tty不是 /dev/ttyUSB3,那就把/dev/ttyUSB2 /dev/ttyUSB1 /dev/ttyUSB0 都试一试,这个tty选错了一般都不会拨号成功的。
最后可能还需要一步,添加一个网关
注意命令后面的ip地址,是pppoe获取到的地址
在route -n里面可以看到
sudo route add default gw 10.64.64.64
感觉4G无线联网的延迟还是偏大