一直想打造一个家庭工作助手——其实就是把杂七杂八的功能放到一台独立的主机上并全天候运行。虽然我有一台大服务器在家运行,但是我希望这些功能和它分开。

其实也不是没有这样的小主机,现在就两个香蕉派(Banana Pi)M3在运行着,但是其中一个经常死机,另外一个还算好用,但是系统好久没有更新了(官方弃管了)。
我还尝试过用一个NUC小主机来做这个小助手,又是升级BIOS,又是加内存,又是装系统,结果跑着没两天,SSD硬盘坏掉了,哎,想想就累。我一直想重新购买个高配的NUC来做这个助手,奈何钱包它不允许呀。
直到有一天,我注意我放在钢琴上方的树莓派4B(8G版),咦,这么强大的设备我竟然一直让它在那吃灰,简直就是造孽呀,必须、马上、立刻把它利用起来。
其实这个树莓派也不算闲置,我之前用它搞了个室内监控,全家出门旅游的时候可以远程连上来,查看家里(客厅)的情况。但是全家出门的情况毕竟不多,用上千元的设备做这个(可能一年就开三两下)实在是极大的浪费呀。
还有就是,就算我把它做成我的家庭工作助手,也不耽误它做监控呀?助手嘛,就是啥杂活都能干,都得去干,这样才算合格。嗯,就这么愉快地决定了。
可是当我再次把这个树莓派4B开机并连上去,才发现这上运行的竟然是十分老旧的Raspberry Pi OS 桌面版,基于Debian 11 (bullseye),属于OLDOLD版本(oldoldstable)啦。现在最新的稳定版则是Debian 13 (trixie/崔茜?)
所以我要做几件事:一,使用Lite版本而不是Desktop版(因为我不打算用桌面);升级到Raspberry Pi OS最新版本(trixie);还有就是将当前在用的32G闪迪TF卡换成128G的闪迪至尊超极速TF卡。
这样就没啥纠结的啦,必须用新的大容量闪迪至尊超极速TF卡重刷最新的Raspberry Pi OS Lite版本。
烧写Raspberry Pi OS Lite
因为当前工作机上没有Raspberry Pi Imager,所以先到这里下载一个:

软件安装使用几乎是傻瓜式的,所以就不逐步介绍了,这里需要说一下不同硬件与不同版本OS的适配情况,详情参考这里,选择硬件匹配且自己需要的版本就好。
我使用的是Raspberry Pi OS Lite(64-bit)


选择完版型、系统、存储

接下来会有一个设置选项

在这可以设置初始的用户名、WIFI网络等等

以及可以开启SSH服务

应用设置

开干

写卡中

搞定

遇到的问题
烧写完成之后,将写好的卡插入树莓派4B,上电,就等着一切OK了。结果却发现没那么简单,遇到了好些问题。
获取树莓派IP
虽然烧写的时候可以设置WIFI网络,但是并没有提供设置IP的功能,所以首先我们要找到树莓派的IP。尽管我路由器有网络MAP功能,但是刷新N次也没发现树莓派。
所以只好请出nmap大神啦;
nmap -sn 192.168.1.0/24
看,一下子就找到啦:

无法连接树莓派IP
烧写的过程还在感慨呢,现在软件都这么智能(傻瓜式)啦。
不用我再通过手工设置一些配置文件来实现网络连接之类的。甚至用户名密码也都不用我登录后手动改,还贴心地帮我启动了SSH服务。

结果我用Putty用相应的用户名去连树莓派,直接就给我踢出来,提示信息大概就是只支持密钥登陆,不支持用户名密码!
啥,我明明设置的是Use password authentication呀,难道要我重新烧写一遍,可是若是重新烧写后还无法登陆呢?
突然回想起,设置的时候,它好像自动读入了一个公钥,会不会是这个原因导致的呢?那我在Windows命令行里登陆一下试试呢?
结果竟然奇迹般的登陆上去啦,毫无疑问,这是Raspberry Pi Imager的一个大BUG,话说去报BUG会有奖金不?😍
只要能登陆上就一切好办了,我通过修改sshd_config,给相应用户增加了密码登陆的权限,一切OK了。
静态IP的问题
接下来要解决的是固定IP的问题啦,毕竟不能每次都去路由器中查看IP,抑或请出nmap大神呀。
以前的版本要搞定这个很简单,只需编辑/etc/dhcpcd.conf,添加类似如下内容并重启就好:
interface wlan0static ip_address=192.168.1.4/24static routers=192.168.1.254static domain_name_servers=192.168.1.254 8.8.8.8
但当我走完全部流程且重启之后,竟然发现我设置的IP根本没有生效!😡这又是怎么一回事呢?🧐
查了一下,原来编辑dhcpcd.conf的方式已经过时啦,新系统可能根本不启用dhcpcd,比如我这里:
sudo systemctl restart dhcpcd
会提示:
(Failed to restart dhcpcd.service: Unit dhcpcd.service not found.)
所以设置dhcpcd.conf当然就无效啦,与时俱进的方法是使用NetworkManager CLI (nmcli),操作步骤如下:
nmcli device status

sudo nmcli con mod "preconfigured" ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8,1.1.1.1"
对了,这个"preconfigured" 看着有点难受,可以用如下指令修改成自己喜欢的名字:
sudo nmcli connection edit preconfigured
详细步骤如下:
nmcli> set connection.id MyWIFI-5G nmcli> save Connection 'MyWIFI-5G' (9xxxxxxxx) successfully updated. nmcli> quit
搞定,这样看着舒服多啦

至此,之前要达成的三大目标(切换到Lite版,更新到最新版,使用128G TF卡)已经完成,并且可以正常连接操作了。
接下来就是将其仔细打磨,让它帮我干更多的事情,比如跑一些HIVE脚本之类的。当然了,之前的监控系统也要重新运行起来,不然岂不是白白地浪费了我的树莓派摄像头呢。
相关链接
- https://www.raspberrypi.com/software/
- https://www.raspberrypi.com/software/operating-systems/
- https://www.raspberrypi.com/documentation/computers/getting-started.html
- https://www.raspberrypi.com/documentation/computers/configuration.html#setting-up-a-headless-raspberry-pi
- https://www.raspberrypi.com/documentation/computers/remote-access.html
- https://www.debian.org/releases/