嵌入式Linux开发技术基础(第2版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 树莓派嵌入式系统的构建

1.2.1 树莓派嵌入式系统简介

树莓派(Raspberry Pi)是一款基于Linux系统的嵌入式开发板,以SD卡为硬盘,提供USB接口和以太网接口(A型没有网口),可连接键盘、鼠标和网线,同时拥有视频信号输出接口和HDMI高清视频输出接口,还提供40个用于硬件扩展开发的GPIO接口。本书的代码在树莓派4B上测试通过,使用的树莓派镜像是2022-01-28-raspios-bullseye-armhf-full.img。树莓派4B的实物及各部分说明如图1-40所示。

图1-40 树莓派4B的实物及各部分说明

1.2.2 构建树莓派嵌入式系统

1.2.2 构建树莓派嵌入式系统

树莓派开发板没有配置板载FLASH,因为它支持SD卡启动,所以需要下载相应镜像,并将其构建在SD卡上,这个镜像包含了通常所说的bootloader、Kernel、文件系统。

1)双击树莓派镜像软件Raspberry Pi Imager的安装包,出现如图1-41的安装界面,单击“Install”按钮进行安装。

图1-41 Raspberry Pi Imager安装界面

2)准备好系统镜像文件2022-01-28-raspios-bullseye-armhf-full.zip,解压后得到镜像文件2022-01-28-raspios-bullseye-armhf-full.img。

3)准备一张16GB以上的SD卡及读卡器,最好是高速卡,因为卡的速度直接影响树莓派的运行速度,推荐Class10的卡。将SD卡放入读卡器,连接计算机,单击运行树莓派镜像工具。如图1-42a所示,单击“选择操作系统”按钮;如图1-42b所示,选择“使用自定义镜像(使用下载的系统镜像文件烧录)”;如图1-42c所示,选择树莓派的镜像文件。

图1-42 选择镜像文件

4)如图1-43a所示,单击“SDHC CARD”按钮,选择其所在的盘符,如图1-43b所示。

图1-43 SD卡选择

5)单击如图1-44所示的右下角的“设置”按钮,进行相关设置。

6)如图1-45所示,分别设置系统账号及其密码、WiFi账号及其密码、SSH服务器开启等设置,设置完成后单击“保存”按钮。

7)单击“烧录”按钮,完成烧录后会弹出如图1-46所示的对话框。烧录成功后系统可能会因为无法识别分区而提示格式化分区,此时不要进行格式化。

图1-44 SD卡参数设置

图1-45 树莓派镜像烧录账号、WiFi参数设置

图1-46 烧录完毕

树莓派的IP地址都是通过路由器动态分配的,因此树莓派每次启动后其IP地址都有可能会变化。查看树莓派的IP地址有如下3种方法,首先确保开发平台与树莓派连接到同一个路由器上。

第一种方法是在Windows系统上按〈Win+R〉键,打开“运行”对话框,如图1-47所示,在其中输入“cmd”后按〈Enter〉键,调出cmd命令行窗口。

图1-47 “运行”对话框

在cmd命令行窗口输入“arp -a”,如图1-48所示,结果显示当前本网段所有活跃的IP地址。此时可以找到对应的树莓派IP地址,笔者的树莓派所对应的IP地址为192.168.0.103。

图1-48 树莓派IP地址

第二种方法是通过登录路由器查看树莓派的IP地址,如图1-49所示。

图1-49 查看树莓派的IP地址

第三种方法是通过Advanced IP Scanner软件来查看树莓派的IP地址,如图1-50所示。

图1-50 通过软件查看树莓派的IP地址

1.2.3 使用PuTTY远程登录树莓派

1.2.3 使用PuTTY远程登录树莓派

1)启动远程登录软件PuTTY,然后在“Host Name(or IP address)”文本框中输入之前查找到的树莓派的IP地址“192.168.0.103”,单击“Open”按钮,如图1-51所示。

2)输入用户名和密码,树莓派官方镜像默认的用户名是pi,密码是raspberry。如果读者在之前使用树莓派Imager烧录镜像时设置了账号、密码,输入正确的账号、密码,按〈Enter〉键即可远程登录到树莓派,如图1-52所示。

图1-51 PuTTY登录界面

图1-52 通过PuTTY远程登录树莓派界面

1.2.4 使用VNC远程登录树莓派图形界面

1.2.4 使用VNC远程登录树莓派图形界面

很多时候也需要用到树莓派中的图形应用,如人脸识别、目标检测等,这时就需要使用VNC登录到树莓派的图形界面。开启树莓派的远程桌面需要执行以下操作。

1)首先按照1.2.3节介绍的方法,使用PuTTY远程登录树莓派。

在终端输入“sudo raspi-config”进行树莓派的设置,依次选择“Interface Options”→“VNC”→ “Yes”→“OK”,如图1-53所示。之后系统会提示是否要安装VNC服务,输入“y”之后按〈Enter〉键,等待系统自动下载安装完成。

图1-53 打开树莓派的VNC远程登录功能

2)重启树莓派系统后,打开VNC Viewer软件,如图1-54所示。选择“File”→“New connection”命令,新建一个VNC窗口,并在“VNC Server”文本框中输入树莓派的IP地址“192.168.0.103”,在“Name”文本框中输入树莓派的用户名“pi”,最后单击“OK”按钮。

图1-54 VNC配置树莓派远程界面

3)弹出登录界面如图1-55所示,输入树莓派的登录密码后单击“OK”按钮,即可远程登录到树莓派。

图1-55 VNC远程登录树莓派界面

4)如果是首次登录,需要一些初始化的设置,如设置语言、更改密码、更新系统等,按如图1-56a~h所示的顺序进行初始化设置。

图1-56 树莓派的初始化设置

图1-56 树莓派的初始化设置(续)

1.2.5 开发平台与树莓派之间的文件传输

1.2.5 开发平台与树莓派之间的文件传输

(1)Windows平台与树莓派之间的文件传输——使用WinSCP工具

Windows平台使用WinSCP工具在开发平台与树莓派之间传输文件,WinSCP工具的登录界面如图1-57所示,输入IP地址、端口号、账号、密码后,单击“Login”按钮。

图1-57 WinSCP工具的登录界面

出现如图1-58的界面,左右两列分别显示了Windows系统和树莓派的目录情况。

图1-58 WinSCP传输文件

(2)Linux平台与树莓派之间的文件传输——使用SCP工具

Linux开发平台使用SCP工具在开发平台与树莓派之间传输文件。

如图1-59所示就是使用scp命令将开发平台下的“dataset.zip”文件上传到树莓派的“/home/pi/”目录下,“pi”是账号,“192.168.1.7”是树莓派的IP地址,“/home/pi/”是目标目录。

图1-59 使用scp命令将文件上传到树莓派

使用scp命令将文件从树莓派开发板下载到Linux开发平台下。先删除本地的“dataset.zip”文件,使用scp命令从树莓派上下载,然后用ls命令查看是否成功从树莓派上下载了“dataset.zip”文件到本地,如图1-60所示。

图1-60 使用scp命令将文件从树莓派下载到本地

(3)Linux平台与树莓派之间的文件传输——使用FileZilla工具

在Linux开发平台上安装可视化的文件传输工具FileZilla,在开发平台与树莓派之间传输文件,具体步骤如下。

1)安装FileZilla,命令如下。

2)运行FileZilla,出现如图1-61所示的界面,单击“确定”按钮。

图1-61 启动FileZilla界面

3)在图1-62中,输入树莓派的IP地址、用户名、密码、端口号。端口如没有更改过,则是22号端口。

图1-62 FileZilla界面输入连接参数

4)在图1-63中选择“总是信任该主机,并将该密钥加入缓存”后,单击“确定”按钮。

图1-63 连接信任确认

5)传输文件。在图1-64中,选中文件并按住鼠标不释放,在左右两边拖动完成文件在开发平台与树莓派开发板之间的传输。

图1-64 FileZilla文件传输