一直想打造一个家庭工作助手——其实就是把杂七杂八的功能放到一台独立的主机上并全天候运行。虽然我有一台大服务器在家运行,但是我希望这些功能和它分开。
其实也不是没有这样的小主机,现在就两个香蕉派(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 wlan0
static ip_address=192.168.1.4/24
static routers=192.168.1.254
static 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/
后续查看文档时,发现树莓派支持mDNS
可以直接通过如下指令获取IP:
又学到了
人工置顶
啊哈哈 就认出了发错的那个截图 😆😆
哈哈,弄了一整天,晕头转向的
不小心发群里去了😳
👍🏻👍🏻
谢谢
O哥厉害👍
就是折腾
看不懂,但觉得很厉害,懂程序编程这些技术的都莫名的崇拜🤩
其实非常简单的
最近o哥走修理工风格啦🤣
啊,这咋就成修理工了呢?
傻瓜式的安装使用招人喜欢,看到树莓很容易想到之前友哥分享的水果,看标题时差点儿以为吃的嘞
这真是应了那句话:仁者见仁智者见智。
These little machines are so useful. I have a few around here.
My only complaint is the ARM architecture. Some apps won't run on it without a special port for the raspberry pi. So using x86 processors is preferred.
In addition to this Raspberry Pi 4B and the two Banana Pi M3 boards I’m currently using, I’ve got a whole bunch of other single-board computers lying around — they’re just so much fun to play with. It’s a pity I don’t have enough time and energy these days to really make good use of them.
The ARM architecture does make some apps incompatible, so pairing them with an Intel NUC mini PC makes for a perfect setup.