【补档】树莓派折腾记录

2021 年初的时候入手了树莓派 4b,然后暑假的时候好好折腾了一下,留下了一些零散的记录,在这里整理起来,之后哪天重建的时候还能来参考一下。

由于距离记录已经有一段时间了,可能有些内容会有偏差。

初步尝试

参考:http://blog.dngz.net/RaspberryPiKodbox.htm

系统安装

尝试装了适配树莓派的 Ubuntu,后来还是为了更好的硬件兼容性换成官方系统了。

当时本着尝鲜的想法,选择了仍在 beta 测试中的官方 64-bit 系统 2021-05-07-raspios-buster-arm64-lite,由于计划作为服务器运行,不需要图形桌面,所以就选择了 lite。

注:现在官方 64-bit 系统已经正式发布了(https://www.raspberrypi.com/news/raspberry-pi-os-64-bit/)。

官网也给出了烧写 SD 卡的工具 Raspberry Pi Imager,GUI 好看,烧录系统非常方便。

初始配置

系统烧录完成后会有一个 boot 分区,做一些初始化的配置再进行第一次开机。

开启 ssh 服务

boot 分区下新建一个空文件,名为 ssh

开机自动连接 WIFI

boot 分区下新建 wpa_supplicant.conf 文件,内容如下:

1
2
3
4
5
6
7
8
9
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="wifi链接名"
psk="wifi密码"
key_mgmt=WPA-PSK
}

初次启动

插电开机~

ssh 可以连接,初始用户名 pi ,密码 raspberry

记得修改密码。

解锁root

sudo passwd root 修改 root 密码。

sudo passwd --unlock root 解锁 root 用户。

由于安全原因,默认情况下 root 是不能用 ssh 登录的,如果一定需要的话,编辑 /etc/ssh/sshd_config,将配置项 #PermitRootLogin prohibit-password 修改为 PermitRootLogin yes,然后 sudo systemctl restart sshd 重启 ssh 服务即可。

校正时区

sudo dpkg-reconfigure tzdata

选择 Asia/Shanghai 即可。

树莓派配置工具 raspi-config

sudo raspi-config

换源

参考:https://blog.csdn.net/baidu_26678247/article/details/108930421

如果遇到 The repository 'http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian buster InRelease' is not signed 错误,可以按如下操作添加公钥(参见:https://www.jianshu.com/p/c64deffb1308

1
2
gpg --keyserver  keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E
gpg --export --armor 9165938D90FDDD2E | sudo apt-key add -

一些杂项

GPIO

使用 raspi-config 打开 GPIO

sudo apt-get install wiringpi

按照 http://wiringpi.com/wiringpi-updated-to-2-52-for-the-raspberry-pi-4b/ 更新 wiringpi 版本

gpio readall 即可查看 GPIO 概况

进一步配置 WIFI

参考:https://www.cnblogs.com/zhangyuejia/p/8945354.html

然后 sudo ifconfig wlan0 down 关闭 wifi,sudo ifconfig wlan0 up 启动 wifi。

超频

参考:https://cyfeng.science/2020/06/26/Unboxing-Raspberry-Pi-4B-8GB-and-Overclocking/

注意默认情况下 over_voltage 最大为 6

查看CPU频率:sudo watch -n 1 cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq

查看CPU温度:sudo watch -n 1 cat /sys/class/thermal/thermal_zone0/temp

CPU 电源计划

echo "powersave" | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 可以将CPU设为省电模式,固定600MHz

echo "ondemand" | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 设置回默认模式

风扇控制

风扇一直开着噪声大,也影响风扇寿命,设置一下温控。

为了美观,网购了一个插在 GPIO 座上的风扇插座,勉强塞进了外壳。

使用 raspi-config 自带的风扇控制需要注意,若使用 i2c 端口作为控制口,需要将 i2c 关闭。

使用 sudo -E rpi-eeprom-config --edit 设置 WAKE_ON_GPIO=0POWER_OFF_ON_HALT=1 可以在 shutdown 之后使风扇也关闭(否则关机后风扇会开始一直转)。

通过蓝牙 ssh 连接

即通过蓝牙连接创建局域网。

参考:

连接操作:更改适配器选项 -> 蓝牙网络连接 -> 查看蓝牙网络设备 -> 选中,连接时使用 -> 接入点

后来不知道装了啥蓝牙连不上了,排查之后发现似乎是 /usr/bin/bt-agent -c NoInputNoOutput 失效了,并不会自动配对,需要手动配对。(仍未解决,但也不怎么用蓝牙连接了)

OLED 显示屏

低价搞到一个小的 OLED 显示屏,装上。

由于风扇座占掉了 i2c1,只能通过奇技淫巧使用 i2c0 ,参考 https://blog.csdn.net/weixin_46145842/article/details/106128144 设置

驱动和使用参考:https://shumeipai.nxez.com/2019/04/29/use-the-ssd1306-oled-display-on-the-raspberry-pi.html

持续连接校园网

在 Github 上找了各种连校园网的轮子,试到最后只有这个能够稳定使用:

使用 https://github.com/z4yx/GoAuthing 对应程序和 service。

无线 AP 与路由

使用 RaspAP 创建无线 AP(已弃用)

RaspAP

手动安装教程:https://docs.raspap.com/manual/

开启 802.11ac

参考 https://docs.raspap.com/faq/#80211ac

信道选择 36 ,实测 48 无法开启,40 速率较慢。

流量监控问题

参考 https://github.com/RaspAP/raspap-webgui/issues/689 末尾。

sudo apt-get purge vnstat 卸载原来的 vnstat。

curl -O https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/pool/universe/v/vnstat/vnstat_1.18-1_arm64.deb 下载旧版 vnstat。

sudo dpkg -i vnstat_1.18-1_arm64.deb 安装。

echo "vnstat hold" | sudo dpkg --set-selections 禁用更新。

使用 OpenWrt-Docker(也已弃用)

安装 docker:参考 https://openwrt.club/93.html

增加用户权限:https://www.cnblogs.com/codeaaa/p/9041533.html

hostapd + dnsmasq + OpenWrt-Dockerhttps://zhuanlan.zhihu.com/p/163827788

使用的 OpenWrt-Docker

注意: 设置 dnsmasq 配置文件的时候一定要反注释bind-interfaces,不然会出现地址占用错误。

Openwrt 配合 AdGurad Home 屏蔽广告和 ShadownSocksR Plus 用于翻墙,参考:https://blog.zfdang.com/2020/07/adguard-home-work-with-ssr-plus-in-openwrt/

板载 WLAN 优化

sudo iw wlan0 set power_save off 关闭节能可以提高速度与稳定性。

使用 USB 网卡

板载网卡性能和稳定性还是不足的,于是入手了一个 USB 无线网卡。

由于预算有限,又想要 867Mbps 的 5G 频段支持,于是入手的网卡是 RTL8812BU 芯片,在驱动方面问题多多,悲。

驱动安装

支持 RaspberryOS(64bit) 的驱动地址:https://github.com/morrownr/88x2bu

关于 iw phy 输出参数的具体说明:https://c4pr1c3.github.io/cuc-mis/chap0x02/rt3572l_explained.html

优化WiFi睡眠:https://github.com/fastoe/RTL8812BU_for_Raspbian

关于 /etc/modprobe.d/88x2bu.conf 的一点额外说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
There's four parms listed in the document you cite.
Code: Select all

rtw_power_mgnt=0|1|2
0 == disable power saving
1 == power saving on, minPS
2 == power saving on, maxPS
Code: Select all

rtw_enusbss=0|1
0 == disable auto suspend
1 == enable auto suspend
Code: Select all

rtw_hwpwrp_detect=0|1
0 == disable HW power pin detection
1 == enable HW power pin detection
Code: Select all

rtw_ips_mode=0|1
0 == low power, IPS_NORMAL
1 == higher power, IPS_LEVEL2
The conventional wisdom, because we're running our RPis as server systems not clients, is to set rtw_power_mgnt=0 and rtw_enusbss=0 to prevent the dongle going into power saving and to ignore the other two parms because they don't make any difference. If the server goes into power saving we'd need a process to wake it up. That's different from a client system where interaction from a keyboard user will trigger a request to wake up and associate the dongle.

最终配置文件为:

1
options 88x2bu rtw_drv_log_level=2 rtw_led_ctrl=1 rtw_vht_enable=2 rtw_power_mgnt=0 rtw_switch_usb_mode=1 rtw_ips_mode=1 rtw_enusbss=0 rtw_beamform_cap=11

由于购买的网卡为 USB2.0 接口,不支持 USB3.0,需要 rtw_switch_usb_mode=0/2 才能正常使用。

一些关于 RTL8812BU 驱动 / hostapd 的问题

hostapd 完整配置文件注释:https://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf

配置文件中最好去除注释,可能会有奇怪的问题

这张网卡无法在初始启动时应用 ht_capab=[HT40-][HT40+][SHORT-GI-40][DSSS_CCK-40] 设置 40/80MHz 带宽,似乎是网卡直接 UNINITIALIZED->HT_SCAN 有问题,会进行 neighbor scanning ,然后出现 hostapd[10529]: Failed to request a scan of neighboring BSSes ret=-16 (Device or resource busy) 错误。必须先以普通 20MHz 模式启动,然后转为(restart) 40/80MHz

启动时配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
interface=wlx1cbfce82adb3

bridge=brlan

hw_mode=a
channel=149
ieee80211n=1
wmm_enabled=1

ssid=RASPNET_402

auth_algs=1

wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

wpa_passphrase=密码

修改为如下配置后 restart :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
interface=wlx1cbfce82adb3

bridge=brlan

hw_mode=a
channel=149
ieee80211n=1
ieee80211ac=1
wmm_enabled=1
ht_capab=[HT40-][HT40+][SHORT-GI-40][DSSS_CCK-40]
vht_capab=[VHT80][SHORT-GI-80]

ssid=RASPNET_402

auth_algs=1

wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

wpa_passphrase=密码

Updated 似乎是因为放在5G路由器旁边的原因…

一些没什么效果的尝试

> 换驱动

https://github.com/cilynx/rtl88x2bu,在 arm64 系统上编译所需的额外操作:https://github.com/PieGuy314/RTL88x2BU-RPi4-arm64-Driver-Patch

> 修改 hostapd 源码重新编译

hostapd 编译方式:https://leux.cn/doc/hostapd.html

在源码中找到 neighboring BSSes 的对应部分,修改返回值。

1
2
install -D hostapd /usr/local/bin//hostapd
install -D hostapd_cli /usr/local/bin//hostapd_cli

2.9 版本似乎有点问题,目前在用 2.8 版本。

新网卡

原来的网卡是 USB2.0 的网卡,退货换了一个 3.0 的。

然而最终发现,新的网卡在运行在使用 rtw_switch_usb_mode=1 运行在 USB3.0 模式时会发生各种错误,且不稳定;而使用 rtw_switch_usb_mode=1 运行在 USB2.0 模式(插在哪个物理口都行)时会保持稳定。

Update 2022.02.15:相关问题也已经在驱动存储库的说明中提及了,见 88x2bu-20210702

只能跑在 2.0 模式了,速度大概在 200Mbps 左右。

最终配置文件:

/etc/modprobe.d/88x2bu.conf
1
options 88x2bu rtw_drv_log_level=3 rtw_led_ctrl=1 rtw_vht_enable=2 rtw_power_mgnt=1 rtw_switch_usb_mode=0 rtw_ips_mode=1 rtw_enusbss=0 rtw_beamform_cap=11
/etc/hostapd/hostapd.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
interface=wlx1cbfceb110dc
driver=nl80211

country_code=CN
hw_mode=a
channel=149
ieee80211n=1
ieee80211ac=1
wmm_enabled=1
ht_capab=[HT40-][HT40+][SHORT-GI-40][DSSS_CCK-40]
vht_capab=[HTC-VHT][MAX-MPDU-11454][SHORT-GI-80]

ssid=RASPNET_402

wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

wpa_passphrase=密码

使用的 hostapd 版本: hostapd v2.8

Clash 代理 + AdGuardHome 广告屏蔽

配置 Clash

Clash 部署:https://cherysunzhang.com/2020/05/deploy-clash-as-transparent-proxy-on-raspberry-pi/

关于代理与 DNS 解析的原理说明:https://blog.skk.moe/post/what-happend-to-dns-in-proxy/

DNS 配置可参考:http://blog.joylau.cn/2020/05/01/Clash-Config/

Clash 可以配置 proxy-providers 订阅代理,使用 https://github.com/Loyalsoldier/clash-rules 配置 rules

可以使用 subconverter 筛选处理订阅节点:https://www.10101.io/2020/02/12/use-clash-proxy-provider-with-subconverter

subconverter 中文文档:https://github.com/tindy2013/subconverter/blob/master/README-cn.md

后续:发现机场提供了 subconverter ,不需要本地部署啦~

开启终端代理

方法一

设置 clash 配置文件 mixed-port: 7890 ,在终端中运行(或添加到 ~/.bashrc):

1
2
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890

方法二

使用 Proxychains

安装后设置配置文件 /etc/proxychains.conf ,在最后一行设置本地代理服务器和端口 http 127.0.0.1 7890 ,在 /usr/lib/proxychains3/proxyresolv 中将原有的 DNS 4.2.2.2 改为本机的 DNS 服务器

然后使用 proxychains + 指令 进行代理,或者直接 proxychains bash 开启全代理的终端

使用 sudo 时会报错:ERROR: ld.so: object 'libproxychains.so.3' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

解决方法:使用 find /usr/ -name libproxychains.so.3 -print 找到库的位置,然后参考:https://parrotsec-cn.org/t/proxychains/3012 修改文件

配置 AdGuardHome

最终决定将 Clash 作为 AdGuardHome 的上游服务器

/etc/dnsmasq.conf 中设置 port=0 关闭 dnsmasq 的 DNS 服务

安装 AdGuardHomehttps://github.com/AdguardTeam/AdGuardHome#installation

配置 AdGuardHome DNS 服务端口为 53,上游 DNS 服务器为 Clash 的 DNS 服务(Clash 需开启 DNS 服务)

透明代理:假设 Clash 的 redir-port7891iptable 进行以下设置:

Update 2022.04.23: 由于校园网分配的是公网IP,所以需要设置防火墙,限制 Clash 服务只能被内网访问,防止端口被扫到被攻击(会导致大量连接和高 CPU 占用)。iptables 也做了更新,增加了简单的防护。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 防止外网使用内网 IP 欺骗
iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DROP
# 允许已建立的连接通过
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允许本机和内网 IP 的所有访问
iptables -A INPUT -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/16 -j ACCEPT
# 允许来自无线 AP 的 DHCP 请求, wlx1cbfceb110dc 为网卡名
iptables -A INPUT -i wlx1cbfceb110dc -p udp --dport 67 -j ACCEPT
# 开放外网 SSH, HTTP, HTTPS 连接
iptables -A INPUT -p tcp -m multiport --dport 22,80,443 -j ACCEPT
# 若不是允许内网 IP 的所有访问, 则需添加该规则允许内网对 Clash 的访问
# iptables -A INPUT -s 192.168.0.0/16 -p tcp -m tcp --dport 7891 -j ACCEPT
# 丢弃其他所有请求
iptables -P INPUT DROP

# 将转发后的包源地址修改为本机地址
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

iptables -t nat -N clash
# 内网 TCP 请求转发给 clash 链
iptables -t nat -A PREROUTING -s 192.168.0.0/16 -p tcp -j clash

# 访问内网不经过 clash
iptables -t nat -A clash -d 10.0.0.0/8 -j RETURN
iptables -t nat -A clash -d 127.0.0.0/8 -j RETURN
iptables -t nat -A clash -d 169.254.0.0/16 -j RETURN
iptables -t nat -A clash -d 172.16.0.0/12 -j RETURN
iptables -t nat -A clash -d 192.168.0.0/16 -j RETURN
iptables -t nat -A clash -d 224.0.0.0/4 -j RETURN
iptables -t nat -A clash -d 240.0.0.0/4 -j RETURN

# 其余请求重定向至 clash 端口
iptables -t nat -A clash -p tcp -j REDIRECT --to-ports 7891

/etc/dnsmasq.conf 中将默认网关和默认 DNS 服务器设为本机,例如:

1
2
3
4
interface=wlx1cbfceb110dc
dhcp-range=192.168.22.100,192.168.22.200,255.255.255.0,24h
dhcp-option=3,192.168.22.1
dhcp-option=6,192.168.22.1

如上,连入树莓派网络即可走代理访问。

回环问题

Clash 做透明代理时访问对应端口会产生回环,有时候这个问题会莫名其妙地出现。

解决尝试一

解决方案:https://github.com/Dreamacro/clash/issues/425#issuecomment-566982655

1
2
3
4
iptables -A INPUT -p tcp -m tcp --dport 7891 -m connmark ! --mark 500 -j REJECT
...
iptables -A CLASH -p tcp -j CONNMARK --set-mark 500
iptables -A CLASH -p tcp -j REDIRECT --to-ports 7891

解决尝试二

似乎去除 udp 相关 iptables 可以解决,已将上面的配置文件更新,有待观察。UPD:未解决

解决尝试三

似乎改端口可能解决,有待观察。

Update 2022.02.15:暂时还没有遇到问题。

文件存储服务器

USB 移动硬盘

硬盘处理:使用 DiskGenius 软件将硬盘分区为 ext4。

插入硬盘,sudo fdisk -l 查看硬盘设备号,如 /dev/sda1

sudo mount /dev/sda1 /data 进行挂载,挂载完后可通过 df -hT 查看空间使用情况。

永久挂载:在 /etc/fstab 中加入:

1
/dev/sda1       /data           ext4    defaults          0      0

sudo mount -a 检查是否有问题。

重要:为了防止关机时直接对硬盘断电损伤硬盘,参考如下设置(似乎只对 shutdown 后手动重启有用,reboot 没用):https://iovxw.net/p/park-external-hdd/

SMB 服务器

(已弃用)使用 Openwrt 的 SMB 服务,在 网络存储->网络共享 里设置共享目录,在 网络存储->挂载 SMB 网络共享 里开启 SMB 服务。

直接在树莓派原系统内开设 Samba 服务器:https://zhuanlan.zhihu.com/p/266495858

testparm –v 检查 smb.conf 配置是否正确。

rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) 的解决方法:https://ixnfo.com/en/samba-warning-solution-rlimit_max-increasing-rlimit_max-1024-to-minimum-windows-limit-16384.html

Aria2 下载机

新建用户:sudo adduser aria2 并进行相关用户组设定。

https://li-aaron.github.io/2019/01/aira2-on-raspberry/ ,将命令和配置文件中的 ~ 都换为绝对路径。

配置文件参考:http://ivo-wang.github.io/2019/04/18/%E5%85%B3%E4%BA%8Earia2%E6%9C%80%E5%AE%8C%E6%95%B4%E7%9A%84%E4%B8%80%E7%AF%87/

Update 2021.09.27:现在使用的是 Aria2 Pro

MC 服务器配置

MC1.16 及以前 && Ubuntu

依照 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu-ports/ 换源,sudo apt update (或sudo apt-get full-upgrade)进行更新。

sudo apt install openjdk-8-jre-headless 安装 java8

于是直接按照正常 Ubuntu 情况配置 MC 服务器即可。

MC1.17 && Raspberry OS 64it

截至 2021.08.06openjdk-16debian 下只有 unstable(sid) 版,所以需要一些额外的配置来安装。

参考:https://packages.debian.org/sid/arm64/openjdk-16-jdk/download

/etc/apt/sources.list 中添加 deb http://ftp.de.debian.org/debian sid main (用完后记得注释掉)。

执行 sudo apt install openjdk-16-jre-headless 安装 java16

MC服务器的剩余步骤照常,可参考:https://blog.csdn.net/qq_36290650/article/details/106978441

同步照片

Lomorage (已弃用)

使用 Lomorage,使用 apt 安装。

文档:https://docs.lomorage.com/zh/docs/Installation/lomorage-service/installation-raspbian/

apt 安装后来出现了一些依赖问题,且 APP 实在有些丑,于是弃用。

Syncthing

syncthing

安卓客户端:https://github.com/syncthing/syncthing-android

安卓客户端增强版:https://github.com/catfriend1/syncthing-android

sudo apt install syncthing 安装,sudo systemctl enable [email protected] 启动服务。

apt 安装的版本过于老旧,需要从 github 上下载最新版本,扔到 /usr/bin/ 里替换掉。

可以在云服务器上搭建发现服务器和中继服务器。

功能杂项

同步百度云

使用 bypy

给装在树莓派上的 TF 卡续命

参考:https://raspberrypi.stackexchange.com/questions/169/how-can-i-extend-the-life-of-my-sd-card

省电

USB供电控制

USB 硬盘使用 udisksctl 安全移除,USB 端口使用 uhubctl 断电。

udisksctl: sudo apt install udisks2

uhubctl: https://github.com/mvp/uhubctl

usb-down.sh
1
2
3
4
5
6
7
8
9
10
#!/bin/sh

udisksctl unmount -b /dev/sda1 # 将硬盘卸载
udisksctl power-off -b /dev/sda # 将硬盘数据断电,表现为硬盘停转
systemctl stop hostapd.service # 将网卡的 AP 服务停止

sleep 2 # 延迟一会儿防止服务未关闭

uhubctl -l 2 -a off # 关闭USB电源
# 由于只有当四个USB端口都关闭时才会断电,索性直接全部断了
usb-up.sh
1
2
3
4
5
6
7
8
#!/bin/sh

uhubctl -l 2 -a on # 打开USB电源

sleep 5 # 延迟一会儿等待USB设备识别

mount -a # 恢复硬盘挂载
systemctl start hostapd.service # 开启 AP 服务

其它

https://www.raspberrypi.org/forums/viewtopic.php?t=257144

https://learn.pi-supply.com/make/how-to-save-power-on-your-raspberry-pi/

可以参考上面关闭 HDMI,LED 等。

相机

参考:https://www.raspberrypi.org/forums/viewtopic.php?t=285868

vcgencmd get_camera 检查相机是否开启。

sudo modprobe bcm2835-v4l2

vcgencmd

参考:

DDNS

使用 Cloudflare 的 DNS 托管。

参考:https://blog.wardchan.com/posts/use-ddclient-to-automatically-update-cloudflare-dns-record.html

备份

额外购置了一张与原来同款的 32G TF 卡,本来打算升级/重装系统和网卡驱动,但是驱动上遇到了稳定性问题,就懒得重装系统了,于是当作备份卡吧。

创建镜像备份法

使用 win32diskimager,把 TF 卡插到电脑上,可以生成整个卡的镜像文件。

接着使用 PiShrink 裁剪镜像。需要使用 Linux, WSL 实测没问题。

在线拷卡备份法

使用 rpi-clone,可以进行增量备份,适合使用另一张卡定期备份。

1
2
3
git clone https://github.com/billw2/rpi-clone.git
cd rpi-clone
sudo cp rpi-clone /usr/local/bin/

安装完成后,sudo fdisk -l 找到 USB 口上的备份卡,如 /dev/sdc 然后 sudo rpi-clone /dev/sdc 即可进行增量备份。

UART 与蓝牙

树莓派与 UPS 间的通讯使用 UART 串口通信。

参考:https://zhuanlan.zhihu.com/p/106904186

本文介绍在Raspberry Pi 3、3+,4和Raspberry Pi Zero W上配置串行端口。
上述的几种树莓派包含两个可用于串行通信的UART控制器,也就是常说的串口:mini UART和PL011 UART。默认情况下,mini UART映射到40引脚GPIO连接器的TXD(GPIO 14)和RXD(GPIO 15)上,PL011 UART用于蓝牙模块​​,但是任何一个模块都可以映射到GPIO端口。

额外参考:

问题杂项

systemctl status 不显示内存占用

https://dmesg.app/systemd-accounting.html (似乎还是不行)

VsCode 远程连接

出现 command: '_workbench.downloadResource' failed 错误。

解决方法:本地的梯子(远程端不需要梯子)开成全局代理。

在使用充电宝/UPS单独供电时,通过AP满负荷读写移动硬盘可能导致USB接口掉电

换用电源供电暂未发现问题。

Update 2021.09.11: 换用电源供电也会出现问题,于是加了一个带独立供电的 USB 拓展坞,由于手头只有一个 USB2.0 的拓展坞,所以只将无线网卡接到拓展坞上,实测减轻了约 0.3A 的树莓派 USB 负载,是否可以有效防止掉盘还待检验。

硬盘维护

fsck -f /dev/sda1 检查文件系统。

fsck -c /dev/sda1 扫描。

sudo smartctl -a /dev/sda 查看 S.M.A.R.T. 信息。

使用 smartctl 进行硬盘测试。

修复:https://www.smartmontools.org/wiki/BadBlockHowto

作者

Centaurus99

发布于

2021-07-11

更新于

2022-09-06


评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×