最近入手了树莓派 4B,打算基于树莓派做一些有趣&有用的项目,该系列笔记来记录个人树莓派学习和开发的历程。
连载确认!该系列文章将会从装机开始,介绍树莓派用于以下几个项目的开发和部署过程:
- 基于 Docker 的家庭服务器
- 智能家居控制中枢
- 影音中心 & 电视机顶盒
- 物联网 or AI 的衍生应用实践
本篇首先介绍亮机和开发环境设置过程,包含:组装、系统安装、远程开发环境设置(SSH、XRDP)
树莓派组装
树莓派组装上比较防呆接口,唯一需要注意的是散热块和风扇的安装:
- 在 CPU 和缓存等模块上装上散热片
- 风扇的固定位置在外壳上,接线如下图所示
- SD 卡的安装位置在背面
系统安装
该部分仅介绍我使用的系统安装和烧录软件,系统的选择需要根据自己所拥有的设备,以及目的去选择。
硬件准备:SD 卡,读卡器,一台正常运行的 PC,可外接的屏幕。
系统烧录软件安装
Raspberry-Software : 安装 Raspberry Pi Image 系统烧录软件
系统选择和安装
使用读卡器将 SD 卡连接至电脑,即可通过烧录软件选择系统进行安装:
耐心等待即可。
远程开发环境设置
开发环境主要需要注意的是以下几项设置,实现了如下的设置之后就可以在没有显示器的条件下实现对树莓派的开发和控制。
- SSH 开放远程连接,实现远程开发环境
- Proxy 设置,这里使用 Ubuntu 读取局域网代理服务器的方案。
- Docker 项目部署和实现
- 【optional】XRDP、VNC 远程桌面连接
- 【optional】Zerotier 等方案实现内网穿透
- 【optional】文件同步(rsync)、共享(smb)方案
SSH 的部分参考 [[Published发布/SSH]] 一文中的远程权限开放设置,以及免密登陆配置,方便对树莓派的远程连接,这里就不再赘述。
Proxy 部分可以参考本文的解决方案,基于 ubuntu 系统设置全局的网络代理服务器,减少在终端环境中需要为多个不同 CLI 工具设置代理的压力,需要注意的是,Docker 的代理设置还是需要独立进行配置,参考下面的 docker 一文。
Docker 安装的部分参考 [[Published发布/在Linux中安装Docker]] 一文进行 Linux 环境下的 Docker 和对应的 Dashboard:portainer 的安装和测试。
XRDP、VNC 设置
这里推荐 XRDP 做 Windows 和 Linux 之间的远程桌面连接,GUI 界面首选,我这里只简单介绍以下 XRDP 远程连接的方式。
参考连接:如何在Ubuntu 20.04上安装Xrdp服务器 | myfreax
Xrdp 是 Microsoft 远程桌面协议(RDP)的开源实现
安装 Xrdp 以及验证
直接使用 apt 安装xrdp
sudo apt-get install xrdp
安装完成后,服务应该会自动启动,可以输入下列的内容进行验证:
sudo systemctl status xrdp
输出将如下所示,则服务已经运行了:
如果服务还未运行,尝试将 xrdp 用户添加到 ssl-cert 组,然后重启服务
sudo adduser xrdp ssl-cert
sudo systemctl restart xrdp
至此已经安装完成了,其默认监听 3389 端口,如果系统上配备了防火墙,则需要打开其监听的端口,同时要允许从指定的 IP 地址和 IP 范围来访问其服务器。可以运行以下的命令
sudo ufw allow from 192.168.33.0/24 to any port 3389
xrdp 服务运行起来以后需要添加对应的用户用来登录:
sudo adduser aiken
这里可能会遇到使用 windows 远程登录之后,输入密码以后蓝屏没有进入主界面的现象,这可能是由于 Root 用户远程登录的默认问题 ,有以下两种方式可以解决:
- 可以通过使用别的账户进行登录即可。
sudo adduser others
- (推荐)修改远程连接的配置,实现主用户可正常登录远程桌面
sudo adduser xrdp ssl-cert
sudo vim /etc/X11/xrdp/xorg.conf
找到 Option DRMDevice 行,并将其选项修改为如下
Option "DRMDevice" ""
重启树莓派,即可实现远程桌面的正常连接。
Windows 连接远程桌面
- Win+S+‘mstsc’| 远程桌面连接 输入指定的 IP 即可打开对应的远程连接页面,输入 Ubuntu 的对应密码即可进入远程桌面。
内网穿透方案
使用 zerotier 执行初步的内网穿透方案,可以参考 [[Published发布/NAT穿透]]一文
文件同步&共享方案
该部分实际上主要介绍两种方案:RSYNC 文件夹同步 & SMB 文件共享
【不推荐】基于 RSYNC 和 SSH 免密登陆和计划任务,来进行文件夹的同步:这样会在两个系统上存有同个文件的备份,也可以选择同步删除和上传,保持文件夹的一致性。
但是该方案实际上不太符合树莓派的使用场景:除非需要做备份,否则通常仅有少量的文件传输场景,便于环境配置,因此跑计划任务算是比较多余的一件事。
如果有相关需求的话可以参考该文 [[Published发布/Transfer-Sync-Files]]
【推荐】使用 SMB 进行文件的共享:这种方案实际上就是 Windows 的共享文件夹策略,方便局域网内的各个设备进行访问。
windows 共享文件的设置和 Ubuntu 上访问共享文件夹的方式可以参考[[Published发布/局域网文件共享]]进行配置