站点图标 AI技术聚合

2.树莓派4B 64位操作系统 从零搭建深度学习项目运行环境

树莓派的环境配置

文章目录

  • 树莓派的环境配置
    • 1.系统烧录
      • 1.1 系统选择
        • 1.1.1 Raspbian OS:官方的树莓派操作系统
        • 1.1.2 Ubuntu MATE:适合通用计算需求
        • 1.1.3 Ubuntu Server:把树莓派作为一台 Linux 服务器来使用
        • 1.1.4 LibreELEC:适合做媒体服务器
        • 1.1.5 OSMC:适合做媒体服务器
        • 1.1.6 RISC OS:最初的 ARM 操作系统
        • 1.1.7 Mozilla WebThings Gateway:适合 IoT 项目
        • 1.1.8 Kali Linux:适合低成本渗透
        • 1.1.9 OpenMediaVault:适合网络附加存储(NAS)
        • 1.1.10 ROKOS:适合加密挖矿
      • 1.2 烧录系统
        • 1.2.1 烧录工具
        • 1.2.2 系统选择
        • 1.2.3 烧录系统
        • 1.2.4 开机测试
    • 2.基础配置
      • 2.1更换镜像源
        • 2.1.1查看源版本
        • 2.1.2 更换镜像源
        • 2.1.3 更新镜像源
      • 2.2 网络自连
        • 2.2.1 有密码
        • 2.2.2 无密码
    • 3.开机连接
      • 3.1 HDMI有线连接
      • 3.2 VNC远程连接
        • 3.2.1 开启VNC服务器
        • 3.2.2 下载VNC查看器
        • 3.2.3 VNC连接
    • 4.文件传输
      • 4.1 U盘传输
      • 4.2 VNC传输
        • 4.2.1 VNC自启
        • 4.2.2 上传下载
      • 4.3 QQ传输
    • 5.软件安装
      • 5.1 Scim输入法
      • 5.2 Pycharm
        • 5.2.1 下载Pycharm
        • 5.2.2 解压安装
        • 5.2.3 运行Pycharm
        • 5.2.4 创建快捷方式
    • 6.运行环境
      • 6.1 Pytorch
        • 6.1.1 下载
        • 6.1.2 安装
        • 6.1.3 测试
      • 6.2 Torchvison
        • 6.2.1 下载
        • 6.2.2 安装
        • 6.2.3 测试
      • 6.3 Requestment
        • 6.3.1 下载
        • 6.3.2 安装
        • 6.3.3 测试
    • 7.测试运行
      • 7.1 解压项目
      • 7.2 测试运行
  • 参考文献

探索目标

  • 树莓派的系统烧录

  • 树莓派的基础配置

  • 树莓派的开机连接

  • 树莓派的文件传输

  • 树莓派的软件安装

  • 树莓派的运行环境

  • 树莓派的系统备份

  • 测试运行现有模型

1.系统烧录

1.1 系统选择

1.1.1 Raspbian OS:官方的树莓派操作系统

img

​ Raspbian OS 是官方支持的树莓派板卡操作系统。它集成了很多工具,用于教育、编程以及其他广泛的用途。具体来说,它包含了 Python、Scratch、Sonic Pi、Java 和其他一些重要的包。

​ 最初,Raspbian OS 是基于 Debian 的,并预装了大量有用的包。因此,当你安装 Raspbian OS 后,你可能就不需要特意安装基本工具了 — 你会发现大部分工具已经提前安装好了。

​ Raspbian OS 是被积极地维护着的,它也是最流行的树莓派操作系统之一。你可以使用 NOOBS 或参照官方文档来安装它。

  • Raspbian OS
1.1.2 Ubuntu MATE:适合通用计算需求

​ 尽管 Raspbian 是官方支持的操作系统,但它的特点不是最新、最大的软件包。因此,如果你想更快的更新,想用最新的包,你可以试试 Ubuntu MATE 的树莓派版本。

​ Ubuntu MATE 的树莓派定制版是值得安装的非常不错的轻量级发行版。它还被广泛用于 NVIDIA 的 Jetson Nano。换言之,你可以在树莓派的很多场景下使用它。

​ 为了更好地帮助你,我们还有一份详细的教程:怎样在树莓派上安装 Ubuntu MATE。

  • Ubuntu MATE for Raspberry Pi
1.1.3 Ubuntu Server:把树莓派作为一台 Linux 服务器来使用

​ 如果你计划把你的树莓派当作项目的某个服务器来使用,那么安装 Ubuntu Server 会是一个不错的选择。

​ Ubuntu Server 有 32 位和 64 位的镜像。你可以根据你的板卡类型(是否支持 64 位)来选择对应的操作系统。

​ 然而,值得注意的一点是 Ubuntu Server 不是为桌面用户定制的。因此,你需要留意 Ubuntu Server 默认不会安装图形用户界面。

  • Ubuntu Server
1.1.4 LibreELEC:适合做媒体服务器

​ 我们已经有一个 Linux 下可用的媒体服务器软件,LibreELEC 在列表中。

​ 它是一个很棒的轻量级操作系统,让你可以在树莓派上安装 KODI。你可以尝试使用树莓派镜像工具来安装它。

​ 你可以很容易地找到他们的官方下载页面,并找到适合你板卡的安装镜像。

  • LibreELEC
1.1.5 OSMC:适合做媒体服务器

​ OSMC 是另一个 Linux 下流行的媒体服务器软件。如果要把树莓派板作为媒体中心设备,那么 OSMC 是你可以向他人推荐的操作系统之一。

​ 类似 LibreELEC,OSMC 也运行 KODI,可以帮助你管理你的媒体文件和欣赏你已有的素材。

OSMC 没有正式提及对树莓派 4 的支持。因此,如果你的树莓派是树莓派 3 或更早的版本,那么应该没有问题。

  • OSMC
1.1.6 RISC OS:最初的 ARM 操作系统

​ RISC OS 最初是为 ARM 设备打造的,至今已有近 30 年左右的历史。

​ 如果你想了解,我们也有篇详细介绍 RISC OS 的文章。简而言之,RISC OS 也是为诸如树莓派的现代基于 ARM 的单板计算机定制的。它的用户界面很简单,更专注于性能。

​ 同样的,这并不是为树莓派 4 量身定做的。因此,如果你的树莓派是 3 或更早的版本,你可以试一下。

  • RISC OS
1.1.7 Mozilla WebThings Gateway:适合 IoT 项目

​ 作为 Mozilla 的 IoT 设备的开源实现的一部分,WebThings Gateway 让你可以监控和控制所有连接的 IoT 设备。

​ 你可以参考官方文档来检查所需的环境,遵照指导把安装到树莓派上。它确实是适合 IoT 应用的最有用的树莓派操作系统之一。

  • WebThings Gateway
1.1.8 Kali Linux:适合低成本渗透

​ 想要在你的树莓派上尝试和学习一些道德黑客技巧吗?Kali Linux 会是最佳选择。是的,Kali Linux 通常在最新的树莓派一发布就会支持它。

​ Kali Linux 不仅适合树莓派,它也支持很多其他设备。尝试一下,玩得愉快!

  • Kali Linux
1.1.9 OpenMediaVault:适合网络附加存储(NAS)

​ 如果你想在极简的硬件上搭建 NAS 解决方案,树莓派可以帮助你。

​ OpenMediaVault 最初是基于 Debian Linux 的,提供了大量功能,如基于 Web 的管理能力、插件支持,等等。它支持大多数树莓派型号,因此你可以尝试下载并安装它!

  • OpenMediaVault
1.1.10 ROKOS:适合加密挖矿

​ 如果你对加密货币和比特币很感兴趣,那么 ROKOS 会吸引你。

​ ROKOS 是基于 Debian 的操作系统,基本上可以让你把你的树莓派变成一个节点,同时预装了相应的驱动程序和软件包。当然,在安装之前你需要了解它是怎么工作的。因此,如果你对此不太了解,我建议你先调研下。

  • ROKOS

1.2 烧录系统

1.2.1 烧录工具

下载:烧录工具版本选择按照下载设备的操作系统选择。

  • Raspberry Pi OS官网下载

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查看源版本

查看清华源选择源的版本

  • [清华源官网](raspbian | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror)
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 然后注册登录下载

  • VNC官网
  • VNC Connect(Windows)

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

  • linuxQQ

由于树莓派是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传到树莓派上。

  • Pycharm官网

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是可以的。

根据这个规则从官网上下载下面的版本

  • torch/torchvison源链接
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博客

文章出处登录后可见!

已经登录?立即刷新
退出移动版