前言

树莓派前段时间出了官方的64位系统,代号 bullseye,虽然之前装了ubuntu也支持64位,但是兼容性和友好性上总感觉没有Raspberry Pi OS来的好,ssh等操作总是会莫名卡顿,有时断电重启还会无法自动联网,终于还是抽出时间更新了下。

结果没让我失望,流畅性和稳定性上确实比ubuntu版要好上许多,但也有些问题,这里记录一下。

烧录工具

强烈推荐官方的烧录工具Raspberry Pi Imager,在没有显示器、键鼠的情况下,基本上所有的初始化设置如ssh、wifi、用户账户等都可以在烧录时一个简单的勾选搞定。

不用再像网上那些使用第三方工具烧录的那么折腾,开机前各种配置。

磁盘爆满

一段时间后发现磁盘爆满(系统tf卡),排查后发现以下日志文件居然有50G:

~/.cache/lxsession/LXDE-pi/run.log

删掉后一天时间又爆满,日志内容都是:

** (pcmanfm:1861): WARNING **: 11:05:09.336: got unmount for unknown desktop item
** (pcmanfm:1861): WARNING **: 11:05:09.336: got unmount for unknown desktop item
** (pcmanfm:1861): WARNING **: 11:05:09.336: got unmount for unknown desktop item
** (pcmanfm:1861): WARNING **: 11:05:09.336: got unmount for unknown desktop item
** (pcmanfm:1861): WARNING **: 11:05:09.336: got unmount for unknown desktop item

查询之后发现pcmanfm是linux的文件管理器,最初用建立软连接的方式解决:

rm ~/.cache/lxsession/LXDE-pi/run.log
ln -s /dev/null ~/.cache/lxsession/LXDE-pi/run.log

可是后来查看资源情况,发现pcmanfm始终占用了10%左右的cpu,这就不能接受了。

直接把它卸载吧,毕竟我也不用桌面UI:

sudo apt-get remove pcmanfm

之后一切清静了。

风扇控制

针脚的控制,之前32位系统时使用的是wiringpi,但是这位作者老哥好像对于被白嫖意见很大,目前不再开源,官网也不再提供下载,也就是新系统不能用了。

这上面其实列出了各种方案:https://elinux.org/RPi_GPIO_Code_Samples

在使用ubuntu时,使用的是pigpio,也比较方便,目前新系统已自带安装(默认不启动)。但是在查看资源占用时,pigpio的进程居然差不多要占用掉6%的CPU,比我部署的Java应用还多,这是无法接受的。

最后决定还是直接用Shell来进行控制吧。

优点:方便,不需要安装任何包,自然也就没任何资源占用

缺点:必须要root用户执行,sudo也不行,命令上来说比安装软件包相对复杂一点

以下是官方示例,只要搞清楚针脚编号,应该没啥问题:

#!/bin/sh

# GPIO numbers should be from this list
# 0, 1, 4, 7, 8, 9, 10, 11, 14, 15, 17, 18, 21, 22, 23, 24, 25

# Note that the GPIO numbers that you program here refer to the pins
# of the BCM2835 and *not* the numbers on the pin header. 
# So, if you want to activate GPIO7 on the header you should be 
# using GPIO4 in this script. Likewise if you want to activate GPIO0
# on the header you should be using GPIO17 here.

# Set up GPIO 4 and set to output
echo "4" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio4/direction

# Set up GPIO 7 and set to input
echo "7" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio7/direction

# Write output
echo "1" > /sys/class/gpio/gpio4/value

# Read from input
cat /sys/class/gpio/gpio7/value 

# Clean up
echo "4" > /sys/class/gpio/unexport
echo "7" > /sys/class/gpio/unexport

例如我的风扇插在18号针脚,要控制它:

# 打开针脚控制,这两行命令只需要执行一次
echo "18" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio18/direction

#开启风扇
echo "1" > /sys/class/gpio/gpio18/value

#关闭风扇
echo "0" > /sys/class/gpio/gpio18/value

#清理针脚控制
echo "18" > /sys/class/gpio/unexport

实际操作下来效果也是可以,可以写成脚本,在/etc/rc.local文件的 exit 0 之前添加一行,让脚本开机启动:

exec nohup /home/pi/fan.sh > /home/pi/fan.log &
你可能感兴趣的内容
树莓派的首次使用 收藏,3315 浏览
在树莓派中安装docker 收藏,2083 浏览
0条评论

selfly

交流QQ群:32261424
Owner
今日推荐