本系列作为树莓派上手记录,同时将本人的踩坑以及参考进行记录汇总,必要时罗列出小组分工,作为《嵌入式软开》小组参考文件。
名称 | 描述 |
---|---|
树莓派3B | 支持wifi,包含了散热器、外壳、电源线等配件 |
网线 | 感谢王emo同学提供的网线,用于SSH连接 |
TF卡 | 闪迪32GB,可用16GB,这里用来存储树莓派系统 |
读卡器 | 用来通过usb读写SD卡 |
PC一台 | 最好是有网线插口的 |
USB扩网线口扩展坞(可选) | 轻薄本用,用来扩展出网线插口 |
显示屏HDMI(可选) | 经费原因,暂时没有 |
名称 | 描述 |
---|---|
windows系统 | win10 or 11 |
linux系统 | 这里是ubuntu18.04 |
putty | 用于SSH连接 |
mobaxterm | 用于windows下SSH图形化SSH连接 |
交叉编译工具链 | 具体见之后交叉工具链小节 |
进入树莓派软件下载网站https://www.raspberrypi.com/software/
点击
下载官方安装器的安装文件,
点进去然后下载,
下载完成后直接安装,安装好之后就有了Raspberry Pi Imager
这样一个树莓派安装工具。
此时,插入TF卡和TF卡读写器,然后首次使用先格式化TF卡,具体步骤如下
选择擦除,然后选择SD卡选项选择我们的TF卡,最后点击写入就可以完成擦除。
之后再进行系统安装,没有特殊需要就选择第一个
目标选择TF卡,然后点击小齿轮进行高级设置
在这里可以先把SSH勾选上,填入SSH登录的用户名和密码,默认的用户名是pi,如果不想忘记就别改了
然后点击Write就可以写入了。等待10~20分钟,就可以为TF卡写入树莓派操作系统,这个时候如果询问是否要格式化磁盘,选择否。
这个时候拔出并用读卡器重新插入TF卡,这时只有boot磁盘可见。打开boot磁盘,创建ssh(注意是小写,并且没有后缀),告诉系统需要开启SSH。
然后点击弹出磁盘,拔出TF卡。
这时就可以把TF卡插入到树莓派上了,注意卡槽的正反与形状是匹配的。
为树莓派接上电源线,按下电源线上的开关,这时候树莓派就已经打开了。
据说正在装系统,需要等待10分钟左右,等绿灯不再亮时系统就安装完毕了(这一点有待验证,反正我等了10分钟绿灯仿佛确实不亮了)
至此我们的树莓派系统已经安装完成。
下面我们拿出网线和USB转网口扩展坞(因为我是轻薄本),开始实现树莓派SSH连接。这是因为我们没有屏幕,需要通过命令行来操控系统,而SSH就是一种方式来将树莓派的命令行投影到PC上,使得PC可以通过屏幕上的命令行来对树莓派进行文件读写访问、状态查看与操控。
SSH连接之前,需要让树莓派连上网络,从而让树莓派拥有IP地址。下面讲述如何让树莓派通过有线连接访问网络。
这里的教程是在windows上通过SSH访问树莓派的方法,参考了
https://blog.csdn.net/qq_49895299/article/details/119456981的方法。首先打开网络设置,
点击"更改适配器选项"
然后用网线连接树莓派和电脑,为树莓派上电,我这里因为是轻薄本,所以网线通过扩展坞和电脑接在一起,网线另一端接在树莓派网口上。
插上网线后与树莓派连接后,下面的更改适配器选项界面除了你的wifi应该会出现新的一个没有打叉的网络,比如我是在下图的基础上出现了一个以太网3(图上暂时没有显示出来)
记住这个新出现的没有打叉的有线连接的名字(我这里叫以太网3),然后双击上图中的WLAN,选择属性
在共享中把两个框都打上勾,并选择与树莓派有线连接的以太网名称
配置完成后点击确定。下面来寻找树莓派的IP
win+R键输入cmd来运行cmd,windows11可以试试右键打开powershell
输入arp -a
如图中所示,10.0.225.16是本机(PC)的地址。而图上10.0.224.1是网关地址,10.0.231.255是广播地址。如果之前的都配置无误并且连着已经上电的树莓派,这时应该会出现以10.0.225开头的其他地址(除了本机地址、网关地址和广播地址之外的其他地址)。注意,由于网络连接的原因,你的网络不一定是10.0.225,可能是192.168.xxx,但是不影响,就按照以上步骤来做,找到树莓派的地址,ping一下,看看通不通,比如树莓派地址是10.0.224.30,在cmd中输入
ping 10.0.224.30
看一下ping通不通,如果通的话会有响应,而不会一直卡着。如果不通就是前面步骤出问题了。
找到树莓派网络地址之后,(这里假设是10.0.225.16,由于默认是DHCP动态分配地址,因此树莓派每次连上网线或者PC更换网络时需要重新查看地址),我们就可以使用SSH进行连接。
NOTE:有时候重启PC会发现不了树莓派IP,这时候关闭网络共享,然后重新按照以上步骤设置一遍即可。
关于寻找树莓派IP:
上面一段是WIFI的,打红圈的是PC ip,可以ipconfig查看,而下面一段是以太网的,打红圈的是树莓派ip,.1和.255结尾的是网关和广播,不是设备ip
参考这篇文章https://blog.csdn.net/yuejia2907/article/details/111569486
在linux下也是通过在terminal中输入arp -a找到树莓派开发板的地址。
去mobaxterm官网下载mobaxterm
对于mobaxterm软件的简单解释,还有SSH的简单解释,以及后文所示的如何传输文件等操作,这里交给负责的同学详述
保持对树莓派的网线连接,假如按照上一节中,查询到树莓派的网络地址为192.168.137.4,打开mobaxterm,点击session
按顺序如下图操作,最后点击ok打开SSH
打开之后输入用户名pi,密码123456,这是我们在第一节安装系统中设置的。成功之后我们就可以看到类似linux系统的树莓派的控制台了,可以在这里进行命令输入。此外,左侧是文件系统,可以为树莓派通过网络上传下载文件。至此,在windows PC上结合mobaxterm就完成了对树莓派的SSH连接。
这里请负责的同学记录一下再linux下安装putty的记录和putty的简介。由于putty在windows和linux都可以用,但是windows上我们有更好的mobaxterm,因此只要在linux下安装一下putty即可。需要参考3.2节,在 linux有线连接的基础上进行探索。在linux中获取树莓派ip后再进行putty SSH连接。
由于putty没有文像mobaxterm一样的文件传输UI,因此需要探索一下如何linux下使用putty传输文件到树莓派上。同时探索一些Linux其他的SSH工具(毕竟Putty显得太简陋了),这里尝试了FinalShell,安装的参考如下(介绍一下安装过程)
Linux安装FinalShell
参考这篇:树莓派使用MobaXterm实现SSH和VNC
实现效果如下
交叉编译的定义是什么?这里不详述了,交给负责的同学。树莓派的交叉编译工具链有哪些,他们各自有什么不同,怎么安装,需要探索。我本人亲测arm-linux-eabi-gcc可用,但是树莓派提供的其他工具链可以用嘛?介绍树莓派github上所有的工具链,并尝试使用它们有什么区别,特别是arm-linaro-linux和arm-linux有什么区别等。负责的同学探索一下,可以参考以下内容并进一步探索。
https://blog.csdn.net/qq_48458789/article/details/123414776?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%A0%91%E8%8E%93%E6%B4%BE%E4%BA%A4%E5%8F%89%E7%BC%96%E8%AF%91%E5%B7%A5%E5%85%B7%E9%93%BE&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-2-123414776.142v59js_top,201v3control,213v1t3_esquery_v2&spm=1018.2226.3001.4187
进入到数莓派工具github中,https://github.com/raspberrypi/tools,发现如下说明
大意就是这个工具链已经不用了,现在仅仅需要gcc-arm-linux-gnueabihf就可以实现开发
首先使用linux下简单建立一个hello.c文件,选择不同的工具链对其进行交叉编译。输入指令
file <目标文件>
来查看交叉编译生成文件类型(截图),目标文件是交叉编译时-o所指定的文件名。
然后将生成文件传到树莓派中,这里参考4.2的步骤.
需要探索一下windows下如何安装使用交叉编译器(即上述的树莓派的交叉编译器arm-linux-eabi-gcc),环境变量如何添加,如何在windows下进行交叉编译,下载到板子上,验证结果。
关于上次qemu-arm的交叉调试可以参考这篇,需要注意,树莓派的交叉调试可能与qemu有差别,负责的同学可以叙述一下大概区别
https://www.cnblogs.com/liuhanxu/p/16245816.html
在树莓派探索交叉调试之前,需要先建立一个文件用来交叉调试。你可以用arm-linux-eabi-gcc编译一个较为复杂的文件,比如编写几个函数,这样在交叉调试时不会太过于简单。此外,需要注意编译时加入什么参数让其可以输出调试信息,回顾 -g -Wal等参数。
gdb交叉调试用的是什么工具?是不是gdb-multiarch?需要在树莓派上安装gdb-server吗?同时需要回顾gdb调试的一些常见的指令,如r,b,s等,这些不再赘述,由负责的同学实现。
(最好是双系统的同学负责)这里还未探索,交给负责的同学。可以与我交流,我有安装过qemu的linux服务器和linux早期版本的虚拟机。
分工 | 详述 | 姓名 |
---|---|---|
第二节+PPT汇总+展示 | 有空试试看VNC连接,这个好像是基于图形化界面的 | 我 |
第三节 | 有线连接以及Linux下有线连接探索,包括对应内容文档和PPT,+报告汇总 | |
第四节 | 软件与SSH,文件传输及其探索,包括对应内容文档和PPT | |
第五节 | 交叉编译,包括对应内容文档和PPT | |
第六节 | 交叉调试,包括对应内容文档和PPT | |
第七节 | 最好是双系统的同学,虚拟机探索,包括对应内容文档和PPT |