Jetson Nano系列教程10:采用4G模块上网(一)
目录
1.说明
本章将介绍Jetson Nano如何采用SIM7600 4G模块进行无线上网,并描述其相关细节,本章将先讲解NDIS拨号。
2.采用4G模块的上网方式有哪些?
Jetson Nano 通过SIM7600模组,可采用以下几种方式进行无线上网:
该方式适用于资源比较紧张的微处理器,如MCU等,或适用于对数据量比较少的应用场景,如通过http(s),MQTT给服务器,云平台等上传传感器数据。 对于Jetson Nano,如果网络应用不复杂,数据量比较小时(比如传输传感器数据至服务器,接收服务器下发的控制指令),采用AT指令即可快速使用功能。
该方式必须依赖于Linux系统,适用于需要采用Linux网络套接字编程开发的应用场景,将驱动加载到内核后,将SIM7600和Jetson Nano采用USB线连接,待SIM7600开机后,即可识别到wwan0网口,可通过该网口上网。 该方式底层依赖于SIM7600的USB虚拟串口。 该方式为官方推荐的上网方式,同样,建议采用该种方式进行拨号上网。
该方式必须依赖于Linux系统,适用于需要采用Linux网络套接字编程开发的应用场景,配置并运行相关脚本后,将SIM7600和Jetson Nano采用USB线连接,待SIM7600开机后,即可识别到ppp0网口,可通过该网口上网。 该方式底层依赖于SIM7600的USB虚拟串口。
该方式的底层实现同ppp拨号上网,不再阐述。
3. 准备工作
接下来,将介绍Jetson Nano采用NDIS驱动通过SIM7600 4G模块上网的过程。
3.1 硬件准备
- 可上网的4G SIM卡
3.2 硬件连接
4. 正式开始
4.1 检查硬件连接,网络连接
<syntaxhighlight lang="python">
# 查看Ubuntu版本
uname -a
lsb_release -a
cat /proc/version
# 查看是否有高通USB虚拟串口驱动
lsusb
<syntaxhighlight lang="python">
# 关闭ModemManager进程,以防止minicom调试AT串口时,显示没用的数据
sudo su
killall ModemManager
# 安装minicom串口工具
apt-get install minicom
# 查看串口设备,AT指令串口,为/dev/ttyUSB2
ls /dev/ttyUSB*
# 用minicom打开串口
sudo minicom -D /dev/ttyUSB2
# 强制设置为4G上网
AT+CNMP=38
# 查询网络质量
AT+CSQ
# 查询网络注册状
AT+CREG?
# 查询网络运营商
AT+COPS?
# 查询网络波段
AT+CPSI?

至此,SIM7600CE和Jetson Nano连接正常,网络连接正常。
4.2 编译并安装驱动模块文件
在Jetson Nano默认没有simcom的用于wwan0网口的驱动模块文件,可用以下命令查看
<syntaxhighlight lang="python">
lsmod
</syntaxhighlight>
将编译以下驱动模块源程序:
该源程序及其Makefile将在文章末尾出给出
为了避免交叉编译的繁琐(交叉编译需要在虚拟机Ubuntu下编译Jetson Nano内核后,再编译驱动模块),可直接将以上两个文件保存到Jetson Nano文件系统中,再编译,注意该过程需要使用超级用户,如下图所示:
<syntaxhighlight lang="python">
make
</syntaxhighlight>
由上图可查看到,已编译成内核驱动模块文件。
接下来,将安装该驱动模块文件,注意需要使用超级用户:
<syntaxhighlight lang="python">
insmod simcom_wwan.ko
lsmod
</syntaxhighlight>
此时,simcom_wwan驱动模块已安装上
可查看到内核的打印信息
<syntaxhighlight lang="python">
dmesg
</syntaxhighlight>
4.3 开始拨号,并分配IP
此时,可看到已经出现wwan0网口:
<syntaxhighlight lang="python">
ifconfig -a
</syntaxhighlight>
但是该网口并未分配IP地址,如需分配IP,需要
- 首先开启网口
<syntaxhighlight lang="python">
ifconfig wwan0 up
</syntaxhighlight>
- 然后拨号
<syntaxhighlight lang="python">
minicom -D /dev/ttyUSB2
AT$QCRMCALL=1,1
</syntaxhighlight>
- 最后,分配IP
<syntaxhighlight lang="python">
apt-get install udhcpc
udhcpc -i wwan0
</syntaxhighlight>
此时,已经分配到IP,可对该网口进行测试:
<syntaxhighlight lang="python">
ifconfig -a
ping -I wwan0 www.baidu.com
</syntaxhighlight>
由上图可知,wwan0网口测试通过。
如果出现dns解析异常,输入以下命令可解决:
<syntaxhighlight lang="python">
route add -net 0.0.0.0 wwan0
</syntaxhighlight>
5 测速
最后,对采用NDIS拨号上网进行测速:
6 驱动源码
simcom_wwan.c&Makefile:<a class="attach" href="portal.php?mod=attachment&id=1894" target="_blank">simcom_wwan.c和Makefile.rar