作者简介:
HashJeremy,合宙Luat社群新生派工程师,个性活跃乐于钻研,善于发现问题解决问题。
本文是HashJeremy针对树莓派使用合宙4G模块环境搭建所写的指南文章,希望对你有帮助。
上期抽奖活动中奖名单在文末公布,同时继续送出五折券及流量卡福利,敬请关注!
1
相信很多朋友都陆续收到了团购的Air724UG开发板,笔者之前经常用Ubuntu使用合宙的4G模块,正好最近同时在研究树莓派的各种用法,不如一起研究下如何在树莓派上使用合宙4G模块:
通过树莓派向模块发送AT命令,通过模块的RNDIS或ECM网卡让树莓派网上冲浪。
- 关于本文的特别说明 -
笔者文中使用的树莓派型号为树莓派3B,其他树莓派型号操作大同小异。
笔者编译的是树莓派官方系统Raspbian,内核版本为4.19.x,其它系统以及其他内核情况不在本文中描述。
建议输入命令部分全程使用root用户操作,配置root密码方式为sudo passwd。
笔者也是在很多人的帮助下,参考了很多教程才总结出的这篇文章。感谢帮助笔者完成这篇文章的朋友们!
2
树莓派准备流程
本文需要用到的物品列表如下:
树莓派 1台;
树莓派可以使用的SD卡 1张;
读卡器 1个;
USB数据线 1根;
合宙Air724UG开发板 1个;
合宙Air724UG开发板配送的4G天线 1根。
首先将树莓派刷入官方最新Raspbian系统:
Raspbian下载地址:
https://www.raspberrypi.org/downloads/raspbian/
下载好之后会得到一个格式为zip的压缩包,其实就是官方系统的镜像,使用镜像写入工具写入树莓派使用的SD卡。写入SD卡前,如果SD卡没有重要数据需要备份的话,建议先使用SDFormat格式化一下。
SDFormat下载地址:
https://www.sdcard.org/downloads/formatter/
接下来到了写入镜像的环节,笔者这里使用的工具是balenaEtcher,界面好看还傻瓜式。
balenaEtcher下载地址:
https://www.balena.io/etcher/
选好刚刚下载好的镜像和要写入的SD卡即可Flash,这里要做的就是等待写入完成就好了。
镜像写入完成之后,不要急着弹出SD卡,打开SD卡在Windows资源管理器中挂载的boot分区,新建一个名字为ssh的空白文件。
划重点:文件的名字只有ssh,不要任何后缀,新建好之后就可以把SD卡插入树莓派了。
接下来,笔者建议大家使用网线连接树莓派到路由器,因为树莓派的Wi-Fi不是那么稳定,所以保险起见,笔者选择了网线连接。
由于上一步新建了空白ssh文件的操作,现在我们使用任意SSH工具就可以连接到树莓派终端了,在路由器的后台查看一下树莓派的IP地址。
Raspbian默认的用户名为pi,密码为raspberry,至此你手里的树莓派已经具备了我们编译内核的环境了!
3
编译内核
不做任何修改的树莓派官方系统,在将树莓派与Air724UG开发板通过USB连接之后,只能使用RNDIS功能,并不能正确识别到开发板USB枚举出的所有端口。
为了能让树莓派通过usb_AT端口发送AT命令,通过usb_modem端口进行PPP的拨号上网,通过usb_diag端口进行trace的捕捉,我们有必要对内核中的USB驱动进行一些修改来正确识别USB枚举的端口。
首先要安装一些必备的工具:
树莓派默认的apt源不是很快,这里建议大家更换为清华源。
清华源使用帮助:
https://mirrors.tuna.tsinghua.edu.cn/help/raspbian/
然后我们去获取一下树莓派内核的源代码,放在用户目录即可:
这里clone速度应该会很慢,建议大家通过代理的方式clone。Linux如何设置代理,大家可以百度搜索相关教程。
这里获取到的内核版本为默认分支上的4.19.x,笔者在写这篇文章时的获取到的内核版本为4.19.115-v7+。
获取到内核源代码之后就进入了最为关键的配置内核环节,根据你手中的树莓派型号执行相应的命令,比方说笔者这里的3B,执行的就是中间的那三条命令。
执行结束之后,当前内核源代码已经进行了最基本的配置,之后我们要修改两个内核文件以实现合宙4G模块的支持。
考虑到这两个文件修改起来比较麻烦又容易写错,所以这里笔者直接提供了这两个修改后的文件:
https://pan.baidu.com/share/init?surl=h2_kBvFp-U1DQo2BwhilXg
提取码:yr13
首先要修改的是drivers/usb/serial/option.c这个文件,具体修改位置见以下图示:
其次要修改的文件为:
drivers/usb/serial/usb_wwan.c,具体修改位置见下图。
至此,内核文件的修改已完成。
接下来需要在make menuconfig的界面进行图形化修改配置。
回到内核源代码的根目录,执行make menuconfig进入内核配置的图形界面。
首先我们先开启RNDIS相关的支持,在menuconfig界面按下键盘上的/输入RNDIS进行搜索,请确保搜索结果中与RNDIS相关的选项状态为y或m。
如果这里状态不是y或m说明此项功能并没有打开,请根据相应的没有打开的Symbol的Location找到相关选项,相关选项的名称为Prompt后面的名称,通过按下键盘上的空格(Space)启用,或在展开相关选项之后,在相关选项中找到要打开的选项再次按下空格打开。
有使用ECM网卡需求的朋友,可以参考RNDIS的内容打开ECM相关的支持,这里给一张参考图:
打开PPP相关也是同理:
使用CMUX功能的同学一定要注意打开N_GSM这一项:
经过上面的操作,内核就已经全部修改完成。接下来要进行编译操作了,回到内核源代码根目录,通过以下命令进行内核的编译和安装:
make -j4 zImage modules dtbs
make modules_install
cp arch/arm/boot/dts/*.dtb /boot/
cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
cp arch/arm/boot/dts/overlays/README /boot/overlays/
cp arch/arm/boot/zImage /boot/$KERNEL.img
经过大概一个多小时的编译,执行成功之后重启你的树莓派,重新登陆,键入uname -a查看内核版本,是不是已经更新到了我们修改后编译的版本!
4
成果验证
连接合宙4G Cat.1模块Air724UG开发板USB接口,给模块开发板上电开机,等待模块开机完成之后,在树莓派终端键入ls /dev/ttyUSB*看看是不是已经能够成功识别到模块枚举的三个USB端口了!按照枚举顺序依次为AT、modem、diag。
键入ifconfig查看是否有rndis网卡:
关于CMUX以及PPP的使用方法就不在本篇赘述了,之后会再出一篇使用说明。
迫不及待地尝试一下AT口功能是否正常,这里使用minicom,没有安装的朋友可以通过apt install minicom安装,使用minicom -D /dev/ttyUSB0打开AT口发送AT命令测试。
5
总结以及参考资料
至此,树莓派已经可以使用合宙4G模块的所有功能了,不一样的体验,快来试试吧!
比较值得注意的地方是内核文件的修改,以及menuconfig的配置,一定要细心又有耐心哦,如果读者有任何问题可以在文后留言与我交流。
ask.openluat.com相关文章
https://ask.openluat.com/article/37
https://ask.openluat.com/article/79
https://ask.openluat.com/article/1043
树莓派官方教程:
https://www.raspberrypi.org/documentation/linux/kernel/building.md
特别鸣谢@小神龙,@nerv.
欢迎文末留言或加入合宙4G Cat.1新品模组QQ技术交流群:1092305811,与HashJeremy及众多业内人士共同探讨。
4月21日合宙Cat.1技术群中奖名单
在上一期推文《合宙Cat.1|等不及了,快来参加抽奖》推出后,共有447位朋友参与了合宙技术群的抽奖活动,在欢乐有趣的氛围中,本次共有60位朋友幸运获奖。
请上下滑动查看所有中奖名单
一等奖:合宙Cat.1新品Air720UH开发板 10名
二等奖:合宙Cat.1新品Air723UG模组 20名
三等奖:原19.9元团购订单免单 30名
奖品发放:
1. 一二等奖共计30名,奖品已于4月22日全部发出,中奖的朋友敬请留意快递信息;
2. 三等奖共计30名,目前仍有15位朋友尚未通过合宙Luat公众号后台留言获奖及原团购订单信息,请朋友们相互转告,尽快登记哦~