树莓派4的操作系统安装烧录、设置SSH、WIFI、VNC及备份

这篇文章的内容你在网上有一半都可以单独搜索到,但另一半来自于探索和创作。

整个内容的介绍,我用一张图来概括如下

所有的操作步骤,我录制了视频并上传至微信公众号,请点击下图直接观看。

相关的步骤及命令,我也整理到下面

1、烧录工具:官方推荐的Raspberry Pi Imager

2、树莓派OS:官网有4个版本,其中32位有3个,我们演示的安装是Desktop版本,就是介于Full和Lite之间的版本。64位的系统还是Beta版,可从论坛下载,也可以到https://downloads.raspberrypi.org/找。

3、开启SSH:这个是为了在没有额外鼠标、键盘和显示器的情况下,方便远程连接的。只要创建一个名为ssh的文件,没有内容,没有文件后缀。放入烧录上的TF卡根目录即可。

4、配置Wifi:同上,使用命令行去配置,并写到TF卡根目录。文件名为wpa_supplicant.config,内容格式的示例如下

country=CN

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1

network={
ssid="cuiwenyuan.com"
psk="cuiwenyuan.com"
priority=5
}
network={
ssid="wangcaisoft.com"
psk="wangcaisoft.com"
priority=4
}

5、使用路由器的管理界面查看树莓派获取的IP地址,以便远程SSH控制

6、开启VNC:使用raspi-config命令打开图形化配置界面开启VNC,并配置显示分辨率,重启后即可通过VNC进行远程控制。

7、备份系统:使用树莓派自带的SD Card Copier功能进行复制,注意保证两张卡的容量一致。

如何在树莓派4B上设置EMQX开机自启动

上一篇文章《如何在树莓派4B上安装EMQ X Broker》中所提及的EMQX编译安装成功后,还想要让它开启自动启动,这样才能作为一个MQTT服务器来使用。

那怎么办呢,怪我Linux基础太差,找了好多教程,试了不下十遍,终于成功了。首次成功是在Ubuntu下,因为Ubuntu也是树莓派官网推荐的OS之一,所以先从这个基于Debian的流行操作系统开始的。网上很多都是针对Ubuntu 18及老版本的,找了好久因为新版本是用SystemD来管理服务了。

设置操作视频

已上传至微信公众号,请直接点击文章链接观看:https://mp.weixin.qq.com/s/8naZNoS87yZN7r26Qfo7bw

准备工作

因为树莓派默认没有安装VIM,需要自行安装sudo apt install vim,本部分的VIM功能,记住i是进入编辑模式,ESC退出编辑模式,:是进入命令号模式,进入命令行后w是写入,q是退出。

开始设置

第一步在rc-local.service增加服务

sudo vim /lib/systemd/system/rc-local.service

VIM打开后,在最下面增加如下代码

[Install]
WantedBy=multi-user.target
Alias=rc-local.service

第二步是在rc.local增加emqx启动命令

sudo vim /etc/rc.local

打开后,在exit 0前面增加以下代码

echo "EMQX auto starting" > /usr/local/emqx.log
cd /home/pi/emqx-rel/_build/emqx/rel/emqx/bin && sudo ./emqx start

第三步给rc.local增加可执行权限

sudo chmod +x /etc/rc.local

第四步给EMQX目录增加权限

sudo chmod -R 777 /home/pi/emqx-rel/_build

最后一步启动服务

sudo systemctl enable rc-local.service

设置完毕重启后,就应该能看到服务的日志

服务的状态也可以看到如下

服务相关命令

启动服务
sudo systemctl start rc-local.service
禁用服务
sudo systemctl disable rc-local.service
服务状态
sudo systemctl status rc-local.service
重新加载服务
sudo systemctl daemon-reload

如何在树莓派4B上安装EMQ X Broker

跟师新生命的创始人大石头玩树莓派下的.NET Core有几个月时间了,一直想从零开始写一些入门的东西,但看了淘宝、京东还有哔哩哔哩等平台上很多入门的教程了,就一直没动手。

这不因为要在物联网方面做些探索,遇到第一个问题就是MQTT的服务器端的安装,但官网没有针对树莓派版本的下载,只能自己编译。

EMQ X Broker 是基于高并发的 Erlang/OTP 语言平台开发,支持百万级连接和分布式集群架构,发布订阅模式的开源 MQTT 消息服务器。

EMQ X Broker 在全球物联网市场广泛应用。无论是产品原型设计、物联网创业公司、还是大规模的商业部署,EMQ X Broker 都支持开源免费使用。

我先是在4B 1G的版本下编译,遇到了OTP的版本问题,以为升级一下树莓派的OS就行了,没想到在4B 4G版本安装了2020-05-27的full版本之后,还是默认版本达不到Erlang OTP版本21.3以上的编译要求。

OTP release 21.3 or later is required. Version in use: 21.2.6。

就只好先安装OTP了,这个倒是很快,不过如果你网络慢可能会在安装时失败,这时就再执行一下安装就行了

wget https://packages.erlang-solutions.com/erlang/debian/pool/esl-erlang_22.1.6-1~raspbian~buster_armhf.deb
sudo dpkg -i esl-erlang_22.1.6-1~raspbian~buster_armhf.deb

因为当前EMQX的版本是V4.1.1,所以我就用以下命令进行下载和编译了,大概半小时就可以完成。

sudo git clone -b v4.1.1 https://github.com/emqx/emqx-rel.git
cd emqx-rel && sudo make
cd _build/emqx/rel/emqx && sudo ./bin/emqx console

安装成功,可以用以下命令进行服务和仪表盘的查看

Quick Start
# 启动emqx
./bin/emqx start

# 检查状态
./bin/emqx_ctl status

# 停止emqx
./bin/emqx stop

启动后可以通过浏览器访问仪表盘:http://localhost:18083
默认用户名是 admin,密码是 public

现在划重点了,上述步骤在树莓派的Raspberry Pi OS (32-bit) with desktop and recommended software版本(Full)下很顺畅,但Raspberry Pi OS (32-bit) Lite那可是千辛万苦,因为很多依赖项都没有安装。

如果你是lite版本,可能这一行(sudo dpkg -i esl-erlang_22.1.6-1~raspbian~buster_armhf.deb)命令会报依赖错误,

请按建议使用sudo apt –fix-broken install,此时需要漫长的等待,下载600多M的文件。

如果一次不成功,继续使用sudo apt –fix-broken install直到成功。

成功后再执行上一行erlang安装命令,安装成功后,还得安装Git,使用命令sudo apt-get install git,可能编译的时候,会报错,需要重新编译一下,我是编译了两次才成功,要下载下来编译好的文件到本地,还需要手动安装sfp:sudo apt-get install vsftpd。

目前还没有在2020-05-27 64位版本和2020-05-27 Raspberry Pi OS (32-bit) with desktop下进行编译,有兴趣的朋友可以自己尝试。

当然了,我也附上EMQ X Broker V4.1.1 树莓派版本的编译压缩包,可自行下载解压缩研究。

wget http://raspberrypi.cuiwenyuan.com/emqx-raspberrypi-v4.1.1.zip
sudo unzip emqx-raspberrypi-v4.1.1.zip
cd emqx-raspberrypi-v4.1.1
sudo ./bin/emqx start