匿名
未登录
登录
丢石头百科
搜索
查看“Jetson Nano系列教程10:采用4G模块上网(NDIS拨号方式)”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
Jetson Nano系列教程10:采用4G模块上网(NDIS拨号方式)
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
== 说明 == 本章将介绍Jetson Nano/Raspberry Pi如何采用SIM7600 4G模块进行无线上网,并描述其相关细节,本章将先讲解NDIS拨号,本章教程同样适用于树莓派。 * 树莓派编译NDIS模块:在 4.19.97 内核版本环境下模块编译通过。之后的内核已经集成了RNDIS模块,无需手动编译。树莓派用户请跳过本文,改用 RNDIS。参见 [[树莓派RNDIS拨号上网]]。 == 采用4G模块的上网方式有哪些? == Jetson Nano 或Raspberry Pi通过SIM7600模组,可采用以下几种方式进行无线上网: * 采用AT指令使用封装好的TCP,MQTT,HTTP(S) <pre> 该方式适用于资源比较紧张的微处理器,如MCU等,或适用于对数据量比较少的应用场景,如通过http(s),MQTT给服务器,云平台等上传传感器数据。 对于Jetson Nano,如果网络应用不复杂,数据量比较小时(比如传输传感器数据至服务器,接收服务器下发的控制指令),采用AT指令即可快速使用功能。 </pre> * 采用NDIS驱动上网 <pre> 该方式必须依赖于Linux系统,适用于需要采用Linux网络套接字编程开发的应用场景,将驱动加载到内核后,将SIM7600和Jetson Nano采用USB线连接,待SIM7600开机后,即可识别到wwan0网口,可通过该网口上网。 该方式底层依赖于SIM7600的USB虚拟串口。 该方式为官方推荐的上网方式,同样,建议采用该种方式进行拨号上网。 </pre> * 采用ppp拨号上网 <pre> 该方式必须依赖于Linux系统,适用于需要采用Linux网络套接字编程开发的应用场景,配置并运行相关脚本后,将SIM7600和Jetson Nano采用USB线连接,待SIM7600开机后,即可识别到ppp0网口,可通过该网口上网。 该方式底层依赖于SIM7600的USB虚拟串口。 </pre> * 采用wvdial拨号上网 <pre> 该方式的底层实现同ppp拨号上网,不再阐述。 </pre> == 准备工作 == 接下来,将介绍Jetson Nano或Raspberry Pi采用NDIS驱动通过SIM7600 4G模块上网的过程。 === 硬件准备 === * SIM7600CE 4G HAT及其配件 * Jetson Nano及其配件,或Raspberry Pi 及其配件 * 可上网的4G SIM卡 === 硬件连接 === 硬件连接如下图所示: [[File:Jetson_Nano系列教程10_1.jpg]] 树莓派4B接上SIM7600CE 4G扩展板 '''注意:''' # 若接到40Pin引脚上使用,则注意将SIM7600的Flight Mode,PWR引脚拉低,即需要设计初始化脚本,详情见相关产品页面,否则将进入飞行模式。 # 若树莓派通过USB线单独给SIM7600供电,则可能出现供电不稳定,导致SIM7600开机后关机的现象。 # 若仅仅使用拨号上网功能,则可以不接到Jetson Nano或Raspberry Pi的40Pin上。 == 正式开始 == === 检查硬件连接,网络连接(该步骤必须检查并确认) === * 长按SIM7600CE 4G HAT上的PWKKEY键,使得SIM7600CE 4G HAT开机,正常开机后,NET灯应当闪烁(若未闪烁,请检查SIM卡是否可用,或是否进入了飞行模式)。 * 检查Jetson Nano的Ubuntu系统或树莓派的Raspbian系统是否内置了高通USB串口驱动,非新版本镜像系统可能未内置该驱动,查看方式如下图所示: <pre> # 查看Ubuntu版本 uname -a lsb_release -a cat /proc/version # 查看是否有高通USB虚拟串口驱动 lsusb </pre> 如果能看到Qualcomm/Option字样,则说明内置了高通USB虚拟串口驱动 * 输入AT指令,设置为4G上网,查看网络连接状态 <pre> # 关闭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? </pre> 至此,SIM7600CE和Jetson Nano或Raspberry Pi硬件连接正常,网络连接正常。 === 编译并安装驱动模块文件 === 在Jetson Nano的Ubuntu系统默认没有simcom的用于wwan0网口的驱动模块文件,可用以下命令查看 <pre> lsmod </pre> 但是对于Raspberry Pi的Raspbian系统,默认是安装了高通的用于wwan0网口的驱动模块文件,如下图: [[File:Jetson_Nano系列教程10_2.png]] 对于Raspberry Pi,需要先卸载该驱动(不然会与新装的驱动冲突),再安装上simcom的用于wwan0网口的驱动模块文件,卸载方式如下: <pre> sudo su rmmod qmi_wwan </pre> [[File:Jetson_Nano系列教程10_3.png]] 在此基础上,执行后续步骤。 将编译以下驱动模块源程序: * [[:File:simcom_wwan.c和Makefile.rar|驱动模块源程序]] 为了避免交叉编译的繁琐(交叉编译需要在虚拟机Ubuntu下编译Jetson Nano内核后,再编译驱动模块),可直接将以上两个文件保存到Jetson Nano文件系统中,再编译,注意该过程需要使用超级用户,如下图所示: <pre> make </pre> 由上图可查看到,已编译成内核驱动模块文件。 接下来,将安装该驱动模块文件,注意需要使用超级用户: <pre> insmod simcom_wwan.ko lsmod </pre> 此时,simcom_wwan驱动模块已安装上。 可查看到内核的打印信息: <pre> dmesg </pre> Raspberry Pi编译及安装驱动模块的操作同Jetson Nano。 === 开始拨号,并分配IP === 此时,可看到已经出现wwan0网口: <pre> ifconfig -a </pre> 但是该网口并未分配IP地址,如需分配IP,需要 * 首先开启网口 <pre> ifconfig wwan0 up </pre> * 然后拨号 <pre> minicom -D /dev/ttyUSB2 AT$QCRMCALL=1,1 </pre> * 最后,分配IP <pre> apt-get install udhcpc udhcpc -i wwan0 </pre> 此时,正常可以分配到IP。当然,没有绝对!如果一直出现“udhcpc: sending discover”,那么要反思是否没有听麻麻的话。比如树莓派下没有先按照上文卸载驱动 <code>rmmod qmi_wwan</code> 驱动,或者拨号时间太长又断开了,又或者上面其他步骤操作错了。。 接下来开始该网口进行测试: <pre> ifconfig -a ping -I wwan0 www.baidu.com </pre> 由上图可知,wwan0网口测试通过。 如果出现dns解析异常,输入以下命令可解决: <pre> route add -net 0.0.0.0 wwan0 </pre> == 测速 == 最后,对采用NDIS拨号上网进行测速: [[File:Jetson_Nano系列教程10_4.jpg]] 注意,以上数值仅供参考,不同地域,不同运营商,测速所得出的数据略有差距,在理想的情况下,在SIMCOM实验室测试,理想上行与下行速度为20Mbps。 == 驱动源码 == [[:File:simcom_wwan.c和Makefile.rar|simcom_wwan.c和Makefile.rar]]
返回至
Jetson Nano系列教程10:采用4G模块上网(NDIS拨号方式)
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志