前言

最近攒钱攒的手痒痒, 一高兴就买了个树莓派3B, 刚好有段时间没折腾过了, 这次就先拿树莓派玩一下

首先给出一个介绍页面: 树莓派 - 维基百科. 总的来说, 你可以把树莓派理解成一台微型电脑, 理论上说家用 PC 能做的事情它都能做, 当然限于性能因素你不可能拿它来玩 3A 大作或者是 PS, 但是用来做一个微型的服务器/ NAS /路由器/物联网设备是完全可行的, 为了能顺利使用树莓派, 你可能需要一点点 Linux 基础, 当然你也可以选择 Windows 10 IOT, 这是巨硬出的物联网设备操作系统, 虽然我估计也没有比 Linux 易用到哪里去. 这次我主要参考了 老高的博客 中的教程以及 极客学院 中的部分内容, 使用的平台是 Windows.

先上一个全家福 (顺便说句存储卡涨价确实厉害, 记得很久以前 32G 存储卡只要四十多, 现在居然涨到 80 了): 树莓派 3B 本体, 5V2.5A 电源适配器, 带开关的电源线, SanDisk 32G class10 TF卡, TF 转 SD 卡卡套.

全家福

全家福

其实还有一个铝合金外壳快递还没到, 不过现在基本的设备也够凑合用了, 先玩起来再说, 东西都是从淘宝买的, 本体两百出头, 所有配件本体加起来不到四百, 一开始我还看了一个叫orange pi的产品, 不过貌似差评比较多, 为了省事最后还是买了树莓派, 毕竟社区大的话遇到问题也容易解决一些.

注意: 树莓派仅仅适合用来折腾, 专业性的服务应购买对应硬件.

系统安装

首先你需要一张不小于4G的TF卡, 最好是class10的, 毕竟这是系统盘速度还是很重要的. 到 官网下载页面 选择你想安装的系统并下载镜像, 然后把镜像刷入TF卡, 这里我选择的是Raspbian, 毕竟官方出的, 第一次玩还是走正常路线比较好, 也不用担心驱动之类的问题.

Windows下使用 Win32 Disk Imager刷入系统镜像, 注意待写入的盘符不要弄错了. 刚买来的TF卡建议先格式化一次, 如果使用的是转接器注意不要把写保护打开了. 最后的界面会是这样:

写入成功

写入成功

现在就可以把tf卡拿下来插入树莓派开机了, 树莓派3B是默认开启ssh(最新版本的系统没有开启, 请在boot分区目录下新建一个文件名为 ssh 的空文件以开启ssh)的, 把树莓派接上网线, 确保树莓派和你的电脑在同一个网络内, 登录路由器查询你的树莓派的IP地址, 在命令行内ssh登录树莓派(用户名 pi, 密码 raspberry):

1
ssh pi@192.168.1.123  #你的树莓派的IP地址

查找树莓派的ip地址可以利用 arp -a 命令, 树莓派的地址类型一般为动态.

请注意, 如果你发现无法登陆ssh, 有可能是路由器限制, 可以采用直接用网线连接树莓派的方法来配置树莓派, 具体操作点击这里. 此外,如果你的树莓派没有启用ssh, 你也是无法使用ssh登录树莓派的, 此时你需要把屏幕和键盘连接到树莓派上, 正常登录后, 输入:

1
sudo raspi-config

进入树莓派设置页面, 如图:

选择5 Interfacing Options, 进入如图界面:

选择SSH, 开启ssh, 此时就可以使用ssh登录到树莓派了, 其余重要选项请参考 这里.

配置

更改软件源

这一步不是必要的, 如果发现apt-get update或者apt-get upgrade命令运行过程中, 下载文件速度很慢, 那么就有必要修改了. 相关教程.

2018.3.23 更新

我收回上面的话, 更改软件源这一步还是很重要的, 否则有时甚至不能正常下载更新文件.

网上的教程大部分都是只更改了 /etc/apt/sources.list 文件, 然而你改完之后就会发现, 还是有一部分文件的下载来源不是你修改后的软件源. 经过查找, 这是因为除了上面的那个文件, 还有一个文件 /etc/apt/sources.list.d/raspi.list 需要修改.

修改方法就是把这两个文件里原来的网址更换成你打算使用的软件源网址即可, 软件源列表可以参考: RaspbianMirrors.

更改vim

Raspbian自带的vim比较难用, 因此重新安装vim.

1
2
sudo apt-get remove vim-common
sudo apt-get install vim

在终端内输入 sudo vi /etc/vim/vimrc, 在文件末尾添加:

1
2
3
set nu         # 显示行号
syntax on # 语法高亮
set tabstop=4 # tab宽度为4

中文支持

安装中文字体, 文泉驿正黑或者思源字体都可以, 因为我不需要图形用户界面, 平时使用也是通过ssh连接到树莓派上, 因此没有做这一步.

卸载wolfram与查看SD卡使用情况

如果你下载的是完整安装包, 系统安装好之后wolfram大约占用600M的SD卡空间, 如果空间比较少并且用不到wolfram的话可以删掉.

1
2
sudo apt-get purge wolfram-engine  # 卸载wolfram
df -h # 查看SD卡的使用分配情况

启用 root 账号 (2018.03.23 更新)

某些特定的软件在运行时要求你使用普通用户权限, 而在程序运行过程中又需要提升权限, 此时你可能会因为没有 root 密码而感到着急, 因此你可能需要启用 root 账户.

1
2
sudo passwd root  # 此时会要求你输入两次密码
sudo passwd --unlock root

这是我根据网上的教程和我自己的记忆写出来的, 可能有些问题(因为我记得当时我也是抄袭网上的代码但是不能用, 后来应该是尝试了几次才成功)

安全地关闭树莓派

树莓派 raspberry安全关机命令重启命令:

1
2
3
4
5
6
7
8
9
10
# 关机
sudo shutdown -h now
sudo shutdown -h 20 # 设备在20分钟后关闭
sudo halt
sudo poweroff
sudo init 0
# 重启
sudo reboot
shutdown -r now
shutdown -r 04:00:00 #在凌晨四点重启

进阶

知乎关于树莓派的问题

有哪些对树莓派的有趣改造和扩展应用? - 56 个回答, 8166 人关注

「树莓派」是什么以及普通人怎么玩? - 48 个回答, 4695 人关注

利用树莓派搭建路由器与无线热点, 以及NAS

一 树莓派的配置与安装各类工具

二 用树莓派搭建路由器

三 搭建NAS(树莓派的以太网口和usb接口共享带宽,NAS性能可能较差)

搭建ngrok服务配合树莓派实现内网穿透

使用frp实现内网穿透

更换 shell (2018.03.23 更新)

如果你愿意折腾的话, 我十分建议你更换 bash shell 为 zshell (oh-my-zsh). 这部分内容主要参考了 Oh My Zsh 替换你的 Bash Shell.

首先你需要确保你已经安装了 git, 然后安装 zsh.

1
2
sudo apt install git
sudo apt install zsh

使用 wget 或者 curl 安装 oh-my-zsh:

1
2
3
4
# via curl
sudo sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# via wget
sudo sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

切换 shell:

1
chsh -s /bin/zsh

修改 oh-my-zsh 配置, 使用 sudo vi ~/.zshrc, 你可以在此修改主题和插件.

1
2
3
4
5
6
7
# 修改主题为 ys, 找到这句话
ZSH_THEME="ys"

# 添加插件, 你可以在互联网和我提供的链接上找到更多有用的插件.
plugins=(
git sudo extract
)

重新加载配置文件:

1
source ~/.zshrc

自此, 你就可以开始享受 zsh 给你带来的乐趣了.

使用密钥登陆 (2018.03.23 更新)

这部分内容可以参考 这里, 在这里我做一些补充.

首先需要注意的是在复制公钥那一段你可以直接把 id_rsa.pub 这个文件直接用粘贴到 shell 里的方式放到你的树莓派里, 然后再运行 cat id_rsa.pub >> ~/.ssh/authorized_keys 来把密钥写入配置文件. 这是因为如果你使用的是 Windows 系统, 它提供的命令可能无法正常运行.

此外, 当你完成密钥上传之后, 你还需要修改 /etc/ssh/sshd_config 文件, 使用管理员权限打开并修改内容:

1
2
3
4
5
6
7
# 一般你可以直接搜索到下面的几条句子, 如果前面有 "#" 的话去掉然后再修改就可以了.
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

# 完成上面两条命令修改并保存之后, 重启树莓派或 ssh 服务,
# 确保能重新登陆之后再修改下面这句
PasswordAuthentication no

接下来你就可以不使用密码直接登陆树莓派了, 同时请务必保存好你的私钥.

如果你觉得每次输入一大串名字很麻烦的话, 你可以通过配置 ssh 别名登陆的方法来减少键盘损耗.

在你的 .ssh 文件夹 (就是那个存密钥的地方) 新建一个名为 config 的文档并输入如下内容

1
2
3
4
Host <别名>
Hostname <主机名或 IP>
Port 22 # 默认为 22
User <用户名>

这样你就可以直接在 shell 里使用 ssh <别名> 的方法来访问树莓派了.

启用 Jupyter Notebook 服务 (2019.05.30 更新)

最近为了做树莓派的串口开发需要使用 Python 开发环境, 然而命令行界面的 Python 解释器实在是过于难用, 因此在网上找了一下, 发现 Jupyter Notebook 已经支持了树莓派 (而 Jupyter Lab 还没有), 因此尝试安装了一下.

第一步自然是安装 Python, 由于我目前仅使用 Python3, 因此还需要另外安装 Python3 的环境 (包括 pip3), 不过这些网上都有了完整的教程了, 基本没有什么难度, 因此这里不再赘述.

安装完成后记得更换 pypi 源, 不然后续安装中可能会出现网络异常. 接下来使用 pip3 安装 jupyter, 也是基本一行命令pip3 install jupyter就能搞定.

由于需要在其他机器上访问, 因此还要创建 Jupyter 配置文件 (知乎相关问题).

为了方便管理 Jupyter, 还需要把它做成服务. 输入sudo vi /etc/systemd/system/jupyter.service, 写入下列内容并保存.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Unit]
Description=Jupyter Notebook

[Service]
Type=simple
PIDFile=/run/jupyter.pid
ExecStart=/usr/local/bin/jupyter-notebook --config=/home/pi/.jupyter/jupyter_notebook_config.py
User=pi
Group=pi
WorkingDirectory=/home/pi/notebooks
Restart=always
RestartSec=10
#KillMode=mixed

[Install]
WantedBy=multi-user.target

最后, 使用sudo systemctl start jupyter来启动你的 Jupyter 服务, 此时你就可以在局域网内的机器上访问到树莓派提供的 Jupyter 服务了.