用树莓派4b构建深度学习应用(2) 软件篇

这篇我们来搭建一下树莓派的系统,并安装一些必要的工具软件。

前言

上回把硬件都准备好了,这篇我们来搭建一下树莓派的系统,并安装一些必要的工具软件。

树莓派镜像烧录

树莓派上的操作系统选择很多,我们这里以主电脑为Win10系统,官方最新的2020.8.20的版本为例。

先在官网下载烧录软件 Raspberry Pi Imager,然后下载系统的镜像文件带推荐的软件。

//www.raspberrypi.org/downloads/https:

安装 Raspberry Pi Imager后,插入MircoSD,在 Operating System --> Use custom 选择刚才下载好的镜像文件,然后在 CHOOSE SD CARD 中选择对应的 SD 卡,最后点击 WRITE 进行烧录。

开启ssh 和 配置Wifi

如果没有配置键盘和屏幕,那第一次启动OS前需要先新建两个文件来配置wifi连接和开启ssh。

1. 开启ssh

在刚才烧录完成的 MircoSD 中 boot 分区的根目录下,新建一个空白文件,并重命名为ssh,全部小写且无扩展名。

2. 配置Wifi

同样在根目录下,新建 wpa_supplicant.conf 文件,内容如下:

country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
 
network={
  ssid="SSID"
  psk="PASSWORD"
  key_mgmt=WPA-PSK
  priority=1
}

其中,

ssid 为 Wifi网络的ssid;

psk 为连接密码;

key_mgmt为加密方式:

WPA-PSK = WPA 预共享密匙 (这需要‘psk’字段)
WPA-EAP = WPA 使用 EAP 认证
EEE8021X =IEEE 802.1X 使用EAP 认证并动态生成密匙
NONE = 没有使用 WPA ;可以使用明码密匙或者静态WEP
WPA-PSK-SHA256 = 类似 WPA-PSK 但是使用增强型的SHA256-based加密算法
WPA-EAP-SHA256 = 类似 WPA-EAP 但是使用增强型的SHA256-based加密算法
如果没有设置,将会模式设置为 WPA-PSK WPA-EAP

priority 为优先级,数字越大代表优先级越高;

根据自己路由配置的情况,修改对应的 ssid , psk 和 key_mgmt 值。

以上两个文件,开机后 wpa_supplicant.conf 文件会自动转移到 /etc/wpa_supplicant 目录下,ssh文件会转化为开启ssh服务的指令后被删除。所以如果要更改配置,下一次要重新添加这个文件。

配置树莓派

现在可以拔出MircoSD卡,插入树莓派,然后正常上电开机了。

Tip:

注意观察树莓派上的两个指示灯,红色代表电源,绿色一般代表SD读写。正常情况下,红灯常亮,绿色每隔几秒闪一次,表示网络连接成功;而绿灯有规律的闪烁,表示SD没有插好或者是无效的SD卡。

1. 查询树莓派 IP 地址

有显示器的话,可以直接用 ifconfig 来获取 IP 地址;

若没有显示器的话,那可以用局域网扫描工具 Advanced IP Scanner 来获取对应的信息:

2. ssh 登录

有了 IP 地址,那就可以用ssh登录了。输入命令

ssh pi@192.168.1.62

然后输入默认密码 raspberry,就能正常登录了。

3. 配置树莓派

在登录的ssh连接中,输入命令

sudo raspi-config

选择 1 Change User Password,修改当前用户密码;

选择 5 Interfacing Options --> P1 Camera 启用摄像头;

选择 5 Interfacing Options --> P2 SSH 启用SSH(已经开启);

选择 5 Interfacing Options --> P3 VNC 启用VNC;

选择 7 Advanced Option --> A1 Expand Filesystem 扩展可用空间;

选择 7 Advanced Option --> A5 Resolution 修改屏幕分辨率。

远程连接树莓派

1. 使用 VNC 远程桌面

安装 VNC-Viewer-6.20.113-Windows,新建连接,填入树莓派的IP地址,输入用户名 pi,密码 raspberry登录。

Tip:

VNC 连接后显示 “Cannot currently show the desktop” 的话,重新修改一个屏幕分辨率后重启就行。

2. 修改树莓派为固定 IP 地址

每次树莓派上电后,由路由器 DHCP 分配的 IP 地址有时候会变化,这里我们设置固定地址,方便下次连接。

用 VNC 连接后,就能看见树莓派的桌面了,在屏幕右上角 Wifi 图标上右键,选择 Wireless & Wired Network Settings。

Configure 项选择 SSID,仅绑定指定的 Wifi 连接,填入对应的网段:

IPv4 地址:192.168.1.101

Router:192.168.1.1

DNS Servers: 192.168.1.1

3. 使用 PuTTY 访问树莓派

修改树莓派的 IP 地址后,重启树莓派,就可以用PuTTY 通过 192.168.1.101 来连接了。

PuTTY 不光有ssh,还自带了 pscp 和 psftp 方便在主电脑和树莓派之间传输文件。

4. 使用 pscp 传输文件

  • 把windows系统的文件/文件夹上传到树莓派
# 复制整个目录
pscp -r d:\raspi pi@192.168.1.101:/home/pi 
# 复制单个文件
pscp d:\raspi\test.txt pi@192.168.1.101:/home/pi 
  • 从树莓派上下载文件/文件夹到windows系统
# 复制整个目录
pscp -r pi@192.168.1.101:/home/pi d:\raspi
# 复制单个文件
pscp pi@192.168.1.101:/home/pi/test.txt d:\raspi

详细参数:

用法: pscp [选项] [用户名@]主机:源 目标
pscp [选项] 源 [其他源...] [用户名@]主机:目标
pscp [选项] -ls [用户名@]主机:指定文件
选项:
-V        显示版本信息后退出
-pgpfp    显示 PGP 密钥指纹后退出
-p        保留文件属性
-q        安静模式,不显示状态信息
-r        递归拷贝目录
-v        显示详细信息
-load 会话名  载入保存的会话信息
-P 端口   连接指定的端口
-l 用户名 使用指定的用户名连接
-pw 密码  使用指定的密码登录
-1 -2     强制使用 SSH 协议版本
-4 -6     强制使用 IPv4 或 IPv6 版本
-C        允许压缩
-i 密钥   认证使用的密钥文件
-noagent  禁用 Pageant 认证代理
-agent    启用 Pageant 认证代理
-hostkey aa:bb:cc:...
手动指定主机密钥(可能重复)
-batch    禁止所有交互提示
-proxycmd 命令
使用 '命令' 作为本地代理
-unsafe   允许服务端通配符(危险操作)
-sftp     强制使用 SFTP 协议
-scp      强制使用 SCP 协议
-sshlog 文件
-sshrawlog 文件 记录协议详细日志到指定文件

5. 使用 PSFTP 传输文件

psftp与pscp类似,速度更快些,但没有进度条显示。

psftp 192.168.1.101
# 输入 pi 和 raspberry
# 上传文件
put d:\raspi\test.txt 
# 下载文件
get /home/pi/test.txt

常用命令:
cd 切换目录。
ls 查看目录文件。
get  [fileName]下载文件到当前本地目录 。
get -r  [dir] 递归下载远程某个目录下的所有文件到当前本地目录即下载文件夹。
put [fileName] 长传文件到远程当前目录。
put -r [dir] 递归上传本地某个文件夹的所有文件到远程目标目录即上传文件夹。
delete [fileName/dir] 删除某个文件或者文件夹

6. 使用 WinSCP 传输文件

上面两种都是命令行方式的,也可以安装一个WinSCP,建立连接以后,用类似文件管理器的方式,更方便的进行文件传输。

更新树莓派系统

1. 换镜像源

由于众所周知的原因,国内无法访问树莓派的更新服务器,所以可以换国内的镜像站作为更新点。

sudo nano /etc/apt/sources.list

注释第一行,然后 添加清华源,文件内容如下:

#deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

按 ctrl + o 写入,再按 ctrl + x 退出。

2. 更换 pip 源

同样给 pip 更换阿里源和豆瓣源。

sudo mkdir ~/.pip
ls .pip
sudo nano pip.conf

将以下内容写入配置文件:

[global]
timeout = 10
index-url =  http://mirrors.aliyun.com/pypi/simple/
extra-index-url= http://pypi.douban.com/simple/
[install]
trusted-host=
    mirrors.aliyun.com
    pypi.douban.com

3. 用 VPN 连接官方源

国内镜像采用异步更新的方式更新,有时候某些第三方库文件还是不能访问,特别是 github 上的 raw 资源,用 VPN 的话会更方便些。这里以我用的expressVPN为例,其他的 VPN 也雷同。

  • 用WinSCP把安装包上传到树莓派的 Download 目录中;
  • 进入目录后,安装vpn客户端;
cd Downloads/
sudo dpkg -i expressVPN_xv_2.6.3.3-1_armhf.deb
  • 激活软件
expressvpn activate
  • 连接 VPN
expressvpn connect  # 连接VPN
expressvpn list  # 查看服务器可用列表
expressvpn status  # 查看连接状态
expressvpn disconnect  # 断开链接

4. 更新系统

解决连接问题后,就可以进行系统更新了。

sudo apt-get update
sudo apt-get upgrade
pip3 install -U pip

5. 安装中文字库和中文输入法

# 安装中文字库
sudo apt-get install fonts-wqy-zenhei
# 安装中文输入法fcitx及Google拼音输入法
sudo apt-get install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin

工具软件

1. Linux_Reader

在 Windows 下可以直接读取树莓派MircoSD里的文件。

2. Teamviewer

VNC需要在同一个局域网中才能远程连接,安装 Teamviewer 可以在任何地方通过 Internet 来访问到树莓派。特别在AIoT的应用中,通过4G网络来访问设备。

  • Windows下安装 TeamViewer_Setup.exe 客户端即可;
  • 树莓派上将安装包 teamviewer-host_15.9.4_armhf.deb 上传到 Downloads 目录下。
cd Downloads/
sudo dpkg -i teamviewer-host_15.9.4_armhf.deb

有出错缺失 teamviewer-host 的依赖,修复一下

sudo apt-get -f install
sudo apt-get install gdebi
sudo gdebi teamviewer-host_armhf.deb

接受协议,在桌面的右上角就能看见 teamviewer 的图标了。点击轻松访问,然后登陆账号后,就能远程连接了。

3. Win32DiskImager

除了树莓派官网的烧录工具外,也可以使用 Win32DiskImager 来进行镜像写入,小巧方便绿色,无需安装。

这个软件不光可以进行写入,还能进行镜像导出,这样就便于我们保存多个开发环境,特别在之后配置 OpenCV 和 PyTorch 的过程很繁琐,可以避免每次都重做这些系统和配置。

系统备份

Win32DiskImager 备份出的文件大小取决于MircoSD的大小,所以推荐在 Linux系统下用 dd 命令进行备份后,再对镜像进行压缩。

1. 查看设备名

用 lsblk 查看MircoSD的盘符,一般为 sdb。

lsblk

2. dd 命令备份SD卡

用 dd 命令复制 SD 卡的数据保存为 img 镜像文件。

sudo dd if=/dev/sdb of=./rpi_backup.img bs=8M

3. 备份镜像压缩

使用 PiShrink 缩小镜像尺寸

git clone https://github.com/Drewsif/PiShrink.git
cd PiShrink
chmod +x pishrink.sh
sudo mv pishrink.sh /usr/local/bin
sudo pishrink.sh -s rpi_backup.img new_rpi_backup.img

更多参数如下:

Usage: $0 [-adhrspvzZ] imagefile.img [newimagefile.img]
  -s         Don't expand filesystem when image is booted the first time
  -v         Be verbose
  -r         Use advanced filesystem repair option if the normal one fails
  -z         Compress image after shrinking with gzip
  -Z         Compress image after shrinking with xz
  -a         Compress image in parallel using multiple cores
  -p         Remove logs, apt archives, dhcp leases and ssh hostkeys
  -d         Write debug messages in a debug log file

Tip:

若遇到以下错误:
**pishrink.sh: ERROR occured in line 275: resize2fs failed
mount: /tmp/tmp.Sj9Z4EXlzV: wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.
mv: 无法获取'/tmp/tmp.Sj9Z4EXlzV/etc/rc.local.bak' 的文件状态(stat): 没有那个文件或目录
umount: /tmp/tmp.Sj9Z4EXlzV: 未挂载.
losetup: /dev/loop0:断开失败: 没有那个设备或地址**

**设置环境变量,可修复bug:
set var LANG=en_US.UTF-8 could fix it.**

4. SD 卡克隆备份

用 Win32DiskImager(备份文件大速度快),还是 dd 命令后压缩(时间长文件小),还有一种方式就是直接在树莓派里做 SD 卡克隆。还记得硬件篇里推荐多买几张 MircoSD 卡吧,这里就有用了。

# 查看磁盘空间和 SD卡挂载信息
df -h 

空白卡以 usb 读卡器方式插入树莓派,然后在主菜单里 --> 附件 --> SD Card Copier,源选择 /dev/mmcblk0,目标盘选择 /dev/sda,点击 Start 开始复制。

插入另一个树莓派直接可用,插 2 个 usb 读卡器可以相互还原镜像。

- 本文内容来自网络,如有侵权,请联系本站处理。

2023-01   阅读(108)   评论(0)
 标签: 人工智能

涨知识
EDA

电子设计自动化(英语:Electronic design automation,缩写:EDA)是指利用计算机辅助设计(CAD)软件,来完成超大规模集成电路(VLSI)芯片的功能设计、综合、验证、物理设计(包括布局、布线、版图、设计规则检查等)等流程的设计方式。

评论:
相关文章
《人工智能基础(高中版)》

《人工智能基础(高中版)》是面向高中学生的教材。讲授人工智能的发展历史、基本概念以及实际应用,使学生理解人工智能的基本原理,特别是数据、算法与应用之间的相互关系。


Sora冲击下的中国教育优势荡然无存?脑科学研究:不想和AI抢工作,就要让大脑赢在起跑线

2024年2月16日,OpenAI公司发布了首个文本生成视频的模型Sora。


用树莓派4b构建深度学习应用(8) Openvino篇

这一篇我们介绍一下在树莓派上部署 OpenVINO 神经棒,进一步提升AI的推理速度。


艾伦·图灵 –人工智能之父

Sometimes it is the people who no one imagines anything of who do the things that no one can imagine.




用树莓派4b构建深度学习应用(3) OpenCV篇

这一篇主要介绍一下最新版的 OpenCV 4.4 在树莓派上的编译,安装与使用。


用树莓派4b构建深度学习应用(9) Yolo篇

这篇主要介绍 Tensorflow 和 Pytorch 两种主流框架的模型转换到 OpenVINO模型的方式。


可视化解释11种基本神经网络架构

随着深度学习的飞速发展,已经创建了完整的神经网络体系结构主机,以解决各种各样的任务和问题。 尽管有无数的神经网络架构,但对于任何深度学习工程师来说,这里有11种必不可少的知识,它们分为四大类:标准网络,递归网络,卷积网络和自动编码器。