zhen's blog

编译思想,编译人生

树莓派3B上手一二

早些时间心血来潮买过一个树莓派,但是当时只是玩一玩,买来按照网上的教程摆弄了一下就闲置了。最近毕业设计,做时序数据分析的相关的工作,刚好想起能够用到树莓派+Node-RED来生成模拟的时序数据。于是开始搭建相关的环境。特此记录一下。

系统镜像下载

树莓派如今已是一个状态的生态圈。其本身有Linux定制的发行版树莓派系统。首先官网去下载系统系统镜像:
officialwebsite
上面有两个版本左边是带有图形界面的,右边是没有图形界面的。个人推荐不带图形界面的,既然是玩树莓派的,我想大多数还是有一定Linux基础的,真没有必要装图形界面。

下载好以后我们能够看到压缩包中存在一个.img后缀的文件,这个就是系统镜像。

系统烧录

由于本人使用的macOS,所以接下来实际操作的都是在macOS环境下进行的,在windows下进行系统烧录,可以参考这篇文章

1)格式化SD卡

这里我使用SD官方的SD格式化工具SD Card Formatter,下载地址

下载好以后,安装并打开该工具,然后插入SD卡,SD Card Formatter会自动识别插入的Sd卡,我们直接点击format进行格式化。
sdformat
formatsuccess

2)烧录系统镜像

在mac下烧录系统是很容易的,因为Linux/UNIX本身有相关的命令操作。

首先在命令行我们使用命令df -h来显示目前的挂载情况
这里稍微补充一下Linux/UNIX下的磁盘的命名规则:
本人的mac只有一块磁盘就像下面的disk1,而后面的s1、s4则代表这块磁盘上的分区

1
2
3
4
5
6
$ df -h  # 我只粘贴了有代表性的输出
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk1s1 234Gi 99Gi 132Gi 43% 1230474 9223372036853545333 0% /
/dev/disk1s4 234Gi 2.0Gi 132Gi 2% 2 9223372036854775805 0% /private/var/vm
# 重点是下面这一个条
/dev/disk3s1 15Gi 2.4Mi 15Gi 1% 0 0 100% /Volumes/BOOT

上面的disk3则是我们的SD的磁盘,并且,只有一个分区s1,我们还可以看到容量为15Gi就是我们预期的格式化好了之后的容量。当然,既然这里能够显示则说明,这些磁盘我们已经挂载好了。接下来首先需要取消挂载:

1
2
3
4
5
# 千万注意一定要取消挂载正确的磁盘!不要把你的mac磁盘给取消挂载了:)
# 另外,请记住disk3s1这个名称,后面要用
$ diskutil unmount /dev/disk3s1
Volume BOOT on disk3s1 unmounted
# 这个时候再df发现我们的SD已经不再显示里面了,说明卸载成功

接下来进行正式的烧录,使用dd命令将系统镜像写入,需要特别特别注意disk后的数字,不能搞错!/dev/disk3s1是分区,/dev/disk3是块设备,/dev/rdisk3是原始字符设备
我们接下来就是要吧镜像烧录到原始字符设备

1
2
3
4
5
6
7
8
9
# 下面dd用于将系统镜像写入
# bs代表了文件系统的页大小这里设置为4m
# if=后面接上镜像文件的对应路径
# of=后面接上原始字符设备的路径,因为上面是我们卸载之前是disk3s1,所以这里就是rdisk3

$ sudo dd bs=4m if=(镜像存放路径)/XXX.img of=/dev/rdisk3

# 不放心可以在命令行末尾双击tab会出现类似下面的输出
# rdisk3 rdisk3s1

回车开始烧录,这个过程按机器的差异时间会有所不同。烧录完成以后会出现下面的输出:

1
2
3
443+0 records in
443+0 records out
1858076672 bytes transferred in 237.453302 secs (7825019 bytes/sec)

至此,树莓派系统的烧录工作就完成了。补充:为了方便以后的SSH连接树莓派,完成树莓派的系统烧录之后,先别着急推出SD,打开SD卡(通常在桌面),我们在系统目录下创建一个名为SSH(大写,没有文件后缀)的文件,以供树莓派开启SSH。

命令行下如何进入SD卡?所有挂载的外部设备都会在/Volumes下查创建对应的文件夹:

1
2
3
4
5
$ cd /Volumes
$ ls -l
lrwxr-xr-x 1 root wheel 1 4 8 10:59 Macintosh HD -> /
drwxr-xr-x+ 3 root wheel 96 11 11 15:22 Preboot
drwxrwxrwx@ 1 zhen staff 2560 4 12 10:30 boot # 这个boot名称的设备就是SD卡

至此,系统初始化工作完全搞定。

登陆系统

以下的操作我们都是在没有显示器的情况下进入树莓派系统,如果你本身有外接显示器,自然不需要这么麻烦,连接然后开机就行了:)

树莓派3B本身带有wifi模块,但是,如果要开启首先你需要进入系统进行配置:),所以最开始你需要有线连接树莓派

理论上,mac在有以太网转雷电或者是转USB情况下,我们可以通过网线直连树莓派和mac,但是本身尝试了多次发现就是发现不了同一网段的树莓派(树莓派都给mac分配了IP地址了),猜测macOS High Serria安全性增强了?这个坑以后在研究一下,填了。

另外一种是路由器组网方式
topology
按照这样的连接,你的mac和树莓派都在同一网段中,同时你还可以登陆路由器的管理界面去查看树莓派分配到的IP地址,然后通过ssh连接树莓派。

组网完成以后,登陆网关,找到设备管理(不同品牌的路由器界面不同,道理上类似)
alldevice
netgate
可以看到我们的树莓派已经分配到了IP,然后我们直接通过命令行登陆:

1
2
3
4
5
6
7
8
9
10
$ ssh [email protected]
# 注意默认的用户名和密码分别为pi和raspberry

# 将树莓派加入到已识别的主机中
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:p1UPTb5aXIOUiiqdpdaP/e2MV+vbkZJVey0wCYOUEJE.
Are you sure you want to continue connecting (yes/no)? yes

# 输入密码,看到一堆信息之后,我们成功进入系统
pi@raspberrypi:~ $

注意:由于我们使用的lite版的树莓派系统,vi使用过程中会出现上下左右方向键成为ABCD等字符,同时mac上的delete(windows上是backspace)都会失效,我们要进行如下的操作:

1
2
3
4
5
# 1、编辑/etc/vim/vimrc.tiny
$ sudo vi /etc/vim/vimrc.tiny
# set compatible 改为 set nocompatible 这里解决方向键ABCD问题
# 2、依旧在该文件中添加 set backspace=2 解决删除问题
# :wq保存

打开wifi模块

首先我们扫描当前环境中能够找到的wifi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$ sudo iwlist wlan0 scan # 此步骤非必须,如果你本来就知道wifi名称就可以不用扫描
# 如果当前环境中有很多会出现类似下面的格式的信息:
Cell 10 - Address: 94:D9:B3:15:7F:28
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=70/70 Signal level=-16 dBm
Encryption key:on
ESSID:"210"
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s
Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
Mode:Master
...
# 我删除很多不重要的输出信息,这里重点看ESSID,这个就是wifi名称。
# 接下来我们需要在下面的文件中开启它:

$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
# 添加如下的信息
network={
ssid="你的Wi-Fi名称"
psk="Wi-Fi密码"
}
# 如果有多个wifi,你可以创建多个network

最后一步,首先请重启($ sudo reboot)树莓派,然后拔掉网线,通过mac登陆网关,你会发现树莓派已经通过wifi连接到了。下面两款设备都是wifi连接的。
twowifi
此外,由于lite版本,树莓派不具备vim,所以需要我们手动下载:

1
2
3
4
# 首先移除掉旧的vi
$ sudo apt-get remove -y vim-common
# 然后安装vim
$ sudo apt-get install -y vim

接下来在用户目录下打开(没有就创建).vimrc,并添加如下的vim配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ vim ~/.vimrc
# 添加:
set nocompatible "不兼容vi
set nu "显示行号
set nowrap "不自动折行
set scrolloff=3 "距离顶部底部3行
hi MatchParen ctermbg=DarkRed guibg=lightblue
set encoding=utf-8 "编码方式
set fenc=utf-8 "存储时候的编码方式
set hlsearch "搜索高亮
syntax on "语法高亮
set ts=4 "一个tab长度为4
set expandtab "tab替换为空格(配合上面即一个tab四个空格)
set autoindent "自动缩进

至此,树莓派的初始环境已经OK!