树莓派的环境配置
探索目标
树莓派的系统烧录
树莓派的基础配置
树莓派的开机连接
树莓派的文件传输
树莓派的软件安装
树莓派的运行环境
树莓派的系统备份
测试运行现有模型
1.系统烧录
1.1 系统选择
1.1.1 Raspbian OS:官方的树莓派操作系统
Raspbian OS 是官方支持的树莓派板卡操作系统。它集成了很多工具,用于教育、编程以及其他广泛的用途。具体来说,它包含了 Python、Scratch、Sonic Pi、Java 和其他一些重要的包。
最初,Raspbian OS 是基于 Debian 的,并预装了大量有用的包。因此,当你安装 Raspbian OS 后,你可能就不需要特意安装基本工具了 — 你会发现大部分工具已经提前安装好了。
Raspbian OS 是被积极地维护着的,它也是最流行的树莓派操作系统之一。你可以使用 NOOBS 或参照官方文档来安装它。
1.1.2 Ubuntu MATE:适合通用计算需求
尽管 Raspbian 是官方支持的操作系统,但它的特点不是最新、最大的软件包。因此,如果你想更快的更新,想用最新的包,你可以试试 Ubuntu MATE 的树莓派版本。
Ubuntu MATE 的树莓派定制版是值得安装的非常不错的轻量级发行版。它还被广泛用于 NVIDIA 的 Jetson Nano。换言之,你可以在树莓派的很多场景下使用它。
为了更好地帮助你,我们还有一份详细的教程:怎样在树莓派上安装 Ubuntu MATE。
1.1.3 Ubuntu Server:把树莓派作为一台 Linux 服务器来使用
如果你计划把你的树莓派当作项目的某个服务器来使用,那么安装 Ubuntu Server 会是一个不错的选择。
Ubuntu Server 有 32 位和 64 位的镜像。你可以根据你的板卡类型(是否支持 64 位)来选择对应的操作系统。
然而,值得注意的一点是 Ubuntu Server 不是为桌面用户定制的。因此,你需要留意 Ubuntu Server 默认不会安装图形用户界面。
1.1.4 LibreELEC:适合做媒体服务器
我们已经有一个 Linux 下可用的媒体服务器软件,LibreELEC 在列表中。
它是一个很棒的轻量级操作系统,让你可以在树莓派上安装 KODI。你可以尝试使用树莓派镜像工具来安装它。
你可以很容易地找到他们的官方下载页面,并找到适合你板卡的安装镜像。
1.1.5 OSMC:适合做媒体服务器
OSMC 是另一个 Linux 下流行的媒体服务器软件。如果要把树莓派板作为媒体中心设备,那么 OSMC 是你可以向他人推荐的操作系统之一。
类似 LibreELEC,OSMC 也运行 KODI,可以帮助你管理你的媒体文件和欣赏你已有的素材。
OSMC 没有正式提及对树莓派 4 的支持。因此,如果你的树莓派是树莓派 3 或更早的版本,那么应该没有问题。
1.1.6 RISC OS:最初的 ARM 操作系统
RISC OS 最初是为 ARM 设备打造的,至今已有近 30 年左右的历史。
如果你想了解,我们也有篇详细介绍 RISC OS 的文章。简而言之,RISC OS 也是为诸如树莓派的现代基于 ARM 的单板计算机定制的。它的用户界面很简单,更专注于性能。
同样的,这并不是为树莓派 4 量身定做的。因此,如果你的树莓派是 3 或更早的版本,你可以试一下。
1.1.7 Mozilla WebThings Gateway:适合 IoT 项目
作为 Mozilla 的 IoT 设备的开源实现的一部分,WebThings Gateway 让你可以监控和控制所有连接的 IoT 设备。
你可以参考官方文档来检查所需的环境,遵照指导把安装到树莓派上。它确实是适合 IoT 应用的最有用的树莓派操作系统之一。
1.1.8 Kali Linux:适合低成本渗透
想要在你的树莓派上尝试和学习一些道德黑客技巧吗?Kali Linux 会是最佳选择。是的,Kali Linux 通常在最新的树莓派一发布就会支持它。
Kali Linux 不仅适合树莓派,它也支持很多其他设备。尝试一下,玩得愉快!
1.1.9 OpenMediaVault:适合网络附加存储(NAS)
如果你想在极简的硬件上搭建 NAS 解决方案,树莓派可以帮助你。
OpenMediaVault 最初是基于 Debian Linux 的,提供了大量功能,如基于 Web 的管理能力、插件支持,等等。它支持大多数树莓派型号,因此你可以尝试下载并安装它!
1.1.10 ROKOS:适合加密挖矿
如果你对加密货币和比特币很感兴趣,那么 ROKOS 会吸引你。
ROKOS 是基于 Debian 的操作系统,基本上可以让你把你的树莓派变成一个节点,同时预装了相应的驱动程序和软件包。当然,在安装之前你需要了解它是怎么工作的。因此,如果你对此不太了解,我建议你先调研下。
1.2 烧录系统
1.2.1 烧录工具
下载:烧录工具版本选择按照下载设备的操作系统选择。
1.2.2 系统选择
系统:选择的系统是Raspberry Pi OS(64-bit)由于我们选择树莓派4B 8G版本选择64位的系统能够更好的发挥树莓派的性能。
虽然 Raspberry Pi 3 具有 64 位 Cortex CPU 内核,甚至 Raspberry Pi Zero 2 也支持 64 位,但作为 Raspberry Pi 官方操作系统的 Raspbian OS 仍然是 32 位的系统。终于在 2022 年,Raspbian OS 推出了正式的 64 位版本。
这款 64 位 Raspberry Pi 操作系统在过去一年中进行了测试,现在确定其状态良好,可供客户在较新的 Raspberry Pi 板上使用,作为其 32 位版本的替代品。
之所以开发 64 位的 Raspbian OS,兼容性是一个关键问题:许多闭源应用程序仅适用于 arm64,而开源应用程序并未针对 armhf 端口进行完全优化。
除此之外,A64 指令集还有一些内在的性能优势,32 位指针只允许寻址 4GB 的内存。但在 Raspberry Pi 4 上需要使用 ARM 大型物理地址扩展 (LPAE) 来访问高达 8GB 的内存,因此 64 位系统的寻址能力,为那些需要消耗大量内存的单进程应用提供更好的性能。
更多内容可在树莓派官方博客查看。
1.2.3 烧录系统
镜像文件默认设置
烧录完成!
1.2.4 开机测试
树莓派成品
开机成功!
2.基础配置
2.1更换镜像源
2.1.1查看源版本
查看清华源选择源的版本
cat /etc/os-release
从红色框信息我们可以看出清华源的版本应该选bullseye11,如果你是stretch,buster版本,想要更换清华源,可以参考这篇文章,博主这边就不一一赘述了
2.1.2 更换镜像源
在命令行中输入该命令。
sudo nano /etc/apt/sources.list
将原有的所有原始源前面都加个#
注释掉换成下列清华源。
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
改完按ctrl+s
保存,ctrl+x
退出。
更换后修改配置文件。
sudo nano /etc/apt/sources.list.d/raspi.list
也是将原有的东西都注释掉,加上以下内容。
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main
2.1.3 更新镜像源
换完源之后记得要更新源,输入命令进行更新。
sudo apt update
显示以上内容说明换源成功。
2.2 网络自连
用户可以在未启动树莓派的状态下单独修改 /boot/wpa_supplicant.conf
文件配置 WiFi 的 SSID 和密码,这样树莓派启动后会自行读取 wpa_supplicant.conf 配置文件连接 WiFi 设备。
操作方法:将刷好 Raspbian 系统的 SD 卡用电脑读取。在 boot 分区,也就是树莓派的 /boot
目录下新建 wpa_supplicant.conf
文件,按照下面的参考格式填入内容并保存 wpa_supplicant.conf
文件。
2.2.1 有密码
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="WiFi-A"
psk="12345678"
key_mgmt=WPA-PSK
priority=1
}
network={
ssid="WiFi-B"
psk="12345678"
key_mgmt=WPA-PSK
priority=2
scan_ssid=1
}
说明以及不同安全性的 WiFi 配置示例:
#ssid:网络的ssid
#psk:密码
#priority:连接优先级,数字越大优先级越高(不可以是负数)
#scan_ssid:连接隐藏WiFi时需要指定该值为1
2.2.2 无密码
如果你的 WiFi 没有密码
network={ssid="你的无线网络名称(ssid)"key_mgmt=NONE}
如果你的 WiFi 使用WEP加密
network={ssid="你的无线网络名称(ssid)"key_mgmt=NONE wep_key0="你的wifi密码"``}
如果你的 WiFi 使用WPA/WPA2加密
network={ssid="你的无线网络名称(ssid)"key_mgmt=WPA-PSK psk="你的wifi密码"``}
如果你不清楚 WiFi 的加密模式,可以在安卓手机上用 root explorer 打开
/data/misc/wifi/wpa/wpa_supplicant.conf,查看 WiFi 的信息。
3.开机连接
3.1 HDMI有线连接
树莓派上有HDMI线的接口通过HDMI线就可以轻松的让树莓派连接到各种显示屏上。
3.2 VNC远程连接
3.2.1 开启VNC服务器
在树莓派中的菜单栏中可找到Raspberry Pi Configuration
。
修改树莓派配置,输入以下命令进去树莓派配置界面。
sudo raspi-config
选择第三个Interface Options
按回车进入。
依旧选择第三个vnc
回车进入。
回车同意开启VNCserver。
3.2.2 下载VNC查看器
进入官网点击product找到VNC connect 然后注册登录下载
3.2.3 VNC连接
在树莓派的命令行中输入以下命令开启服务获得IP地址然后在笔记本的VNC查看器中连接树莓派。
vncserver
将IP地址输入电脑端的VNCviewer.
连接成功!
注意:这里的连接地址如果加了:1
则树莓派的状态栏会显示不出来所以不建议使用的,上图就是无状态栏的效果图
4.文件传输
4.1 U盘传输
笔记本和树莓派都有USB接口可以通过U盘进行文件的传输。
4.2 VNC传输
4.2.1 VNC自启
VNC都要先在树莓派上打开VNCserver,要不然就有可能无法正常的使用VNCviewer连接树莓派,这样太麻烦了,可以将VNCserver设置为开机自启。
首先编辑vncserver文件。
打开终端窗口,输入命令。
sudo nano /etc/init.d/vncserver
将如下代码写入到配置信息中。
#!/bin/sh
### BEGIN INIT INFO
# Provides: vncserver
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/stop vncserver
### END INIT INFO
export USER='pi' #用户名 pi
eval cd ~$USER
case "$1" in
start)
# 启动命令行。此处自定义分辨率、控制台号码或其它参数。
su $USER -c '/usr/bin/vncserver -depth 24 -geometry 1024x768 :1'
echo "Starting VNCServer for $USER "
;;
stop)
su $USER -c '/usr/bin/vncserver -kill :1'
echo "VNCServer stopped"
;;
*)
echo "Usage: /etc/init.d/vncserver {start|stop}"
exit 1
;;
esac
exit 0
按下ctrl+s
保存文件,在按下再按ctrl+x
退出当前编辑界面。
然后我们将这个文件加上权限,输入命令。
sudo chmod 755 /etc/init.d/vncserver
加完权限之后就可以将它设置为开机自启。
输入命令。
sudo update-rc.d vncserver defaults
最后我们让树莓派重启一下。
输入命令:
sudo reboot
你会发现你的远程控制页面没了,重新连接一下就行了。
等待树莓派重启完成,我们的VNCserver就已经开机自启了。
4.2.2 上传下载
通过VNC可以让笔记本和树莓派间轻松的进行文件传输
上传
下载
4.3 QQ传输
在树莓派自带的谷歌浏览器中搜索Linux版的QQ
由于树莓派是ARM架构的所以我选择arm64版下载.deb文件
安装成功后,就可以正常登录QQ进行使用了
5.软件安装
5.1 Scim输入法
输入以下命令安装输入法
sudo apt-get install scim-pinyin
安装后重启使用
sudo reboot
5.2 Pycharm
5.2.1 下载Pycharm
官网下载社区版的pycharm(需arm64架构的安装包)这边建议在笔记本上下载好安装包再通过VNC传到树莓派上。
5.2.2 解压安装
到下载压缩包的目录下将压缩包解压,由于pycharm的版本会不断地更新,所以下面命令用到的压缩包名要根据你下载的包名来改
cd /home/pi/Downloads
sudo tar -zxvf pycharm-community-2023.1-aarch64.tar.gz
转移安装位置
sudo mv pycharm-community-2023.1 /opt/
运行 PyCharm 需要 Java 环境,如果树莓派上还没有安装过 JRE,可以使用以下命令安装即可:
sudo apt install default-jre -y
5.2.3 运行Pycharm
先将转移到pycharm的bin目录下,再运行启动文件
cd /opt/pycharm-community-2022.3.2/bin/
sudo ./pycharm.sh
安装完成之后可以把安装包删除,因为这个安装包有0.5个G还是蛮大的。
sudo rm pycharm-community-2022.3.2-aarch64.tar.gz
5.2.4 创建快捷方式
在Pycharm的设置中可以找到创建快捷方式的选项
在Programming
长按Pycharm将其拖到桌面上即可,或者可以右键有个添加到桌面的选项。
6.运行环境
6.1 Pytorch
6.1.1 下载
pip安装whl文件时,需要根据操作系统的配置来选择whl文件。
whl文件的名称可分为5部分:
- 库的名称(torch)
- 版本号(1.10.0)
- python编译器(cp39)
- 编译标志(cp39m)
- 操作系统(linux_arrch64)
其中,编译标志常见的有两种:m和mu(比如cp39m和cp39mu)。
两者区别在于:cp39m是ucs2,cp39mu是ucs4
UCS2认为每个字符占用2个字节,UCS4认为每个字节占用4个字符,都是UNICODE的编码形式。
在不同平台上,pip支持的whl文件类型也不同。可以通过以下代码查看pip支持的whl文件类型:
# python2
import pip._internal
print(pip._internal.pep425tags.get_supported())
# python3
import wheel.pep425tags as w
print(w.get_supported('./'))
每个文件类型由一个三元组表示,三个元素分别表示:python编译器,编译标志,操作系统。
可以看到,cp27-cp27m-linux这样的组合是不合法的,而cp27-cp27mu-linux是可以的。
根据这个规则从官网上下载下面的版本
wget https://github.com/KumaTea/pytorch-aarch64/releases/download/v1.10.0/torch-1.10.0-cp39-cp39-linux_aarch64.whl
6.1.2 安装
pip install torch-1.10.0-cp39-cp39-linux_aarch64.whl
6.1.3 测试
用Python引用torch是否会报错
6.2 Torchvison
6.2.1 下载
torchvison安装受pytorch版本限制,版本对应关系
wget https://github.com/KumaTea/pytorch-aarch64/releases/download/v1.10.0/torchvision-0.11.0-cp39-cp39-linux_aarch64.whl
6.2.2 安装
pip install torchvision-0.11.0-cp39-cp39-linux_aarch64.whl
6.2.3 测试
用python引用torchvison看是否会报错
6.3 Requestment
6.3.1 下载
项目对某些第三方库有要求需按照requestment里的版本号进行下载
6.3.2 安装
使用普通的pip install就可以安装了。
pip install matplotlib==3.5.1
pip install numpy==1.23.5
pip install Pillow==9.3.0
pip install tqdm==4.64.1
pip install wandb==0.13.5
除此之外,还需再安装openCV
sudo apt install python3-opencv -y # 只支持python3
如果有些库安装不下来可以尝试,将版本号的最后一位数字改大或改小一点。
6.3.3 测试
如果全部安装完成requestment里会是这样的颜色。
7.测试运行
7.1 解压项目
unzip [项目名称] -d [解压位置]
7.2 测试运行
python predict.py -i 0.png -o output0.png
参考文献
- 树莓派|用于各种用途的最佳树莓派操作系统
- [无屏幕和键盘配置树莓派WiFi和SSH | 树莓派实验室 (nxez.com)](https://shumeipai.nxez.com/2017/09/13/raspberry-pi-network-configuration-before-boot.html#:~:text=操作方法简单:将刷好 Raspbian 系统的 SD 卡用电脑读取。 在 boot,分区,也就是树莓派的 %2Fboot 目录下新建 wpa_supplicant.conf 文件,按照下面的参考格式填入内容并保存 wpa_supplicant.conf 文件。)
- 给树莓派配置VNC,设置开机自启_9677的博客-CSDN博客_树莓派开机启动vnc
- 树莓派换源教程_萌新源的博客-CSDN博客_树莓派换源
- 【树莓派】树莓派安装中文输入法_GEEK.攻城狮的博客-CSDN博客_树莓派中文输入法安装
- 树莓派下载及安装PyCharm软件_树莓派安装pycharm_qq_755682240的博客-CSDN博客
- 树莓派 vnc Cannot currently show the desktop_树莓派vnc无法看到桌面_领风者的博客-CSDN博客
- 解决树莓派4b开发板报错,ERROR: the system appears to be configured for the legacy camera stack_一个月球上的人的博客-CSDN博客_树莓派4b开发系统
- 树莓派上如何安装anaconda/miniconda环境配置_别出BUG求求了的博客-CSDN博客_树莓派安装anaconda
- 树莓派64位系统安装pytorch & torchvision_Robohaha的博客-CSDN博客