mirror of
https://github.com/dongdigua/dongdigua.github.io
synced 2024-11-27 12:50:54 +08:00
3.2 KiB
3.2 KiB
在 NanoPi R2S 上运行 FreeBSD/OpenBSD
曾经有两个树莓派, Pi3 因为碰水, Zero 因为腐蚀, 都报废了
我想在 R2S 上运行 BSD, 因为:
- it's cool, 2) diff FreeBSD Linux | grep IoT
艰辛的历程
- 带上手套防止腐蚀, 用螺丝刀和弯头镊子 (文具盒里随手使用) 撬开外壳
- 缝合了一个 OpenBSD 镜像, 用 Arduino Uno 当串口连接 UART, 输出毫无意义的字符
- 运行 OpwnWRT, 依旧输出垃圾
- 运行 Armbian, 依旧输出垃圾, 弹了一会琴后开始思考是不是串口出错了
- 翻箱倒柜找到一个 USB Mini-B 线用于 Arduino Nano (山寨版 CH340 芯片)
- 重新烧写 OpenBSD 镜像, 成功启动, 但键盘无法输入, 无法安装
- 缝合 FreeBSD 镜像, 成功启动, ssh 登录 (user/passwd:freebsd), 耶!
- 合上外壳
关于镜像制作
- PersonalBSD.org 但是构建过程不知道, 不敢用
- asciinema: NanoPi r2s RK3328 with FreeBSD 13-CURRENT
- asciinema: NanoPi r2s RK3328 with OpenBSD 6
总的来说就是:
dd if=FreeBSD-13.2-RELEASE-arm64-aarch64-ROCK64.img of=root.img bs=1M
dd if=usr/lib/linux-u-boot-edge-nanopi-r2s_22.05.3_arm64/idbloader.bin of=root.img seek=64 conv=notrunc
dd if=usr/lib/linux-u-boot-edge-nanopi-r2s_22.05.3_arm64/uboot.img of=root.img seek=16384 conv=notrunc
dd if=usr/lib/linux-u-boot-edge-nanopi-r2s_22.05.3_arm64/trust.bin of=root.img seek=24576 conv=notrunc
doas dd if=root.img of=/dev/sda
开始
- 中国用户第一件事先换源: bjtu FreeBSD 镜像
- 然后像之前 OpenBSD 一样还是装机必备软件, 因为是服务器所以没几个
pkg install neofetch oksh sudo git fzf frp
- 改密码,
/usr/local/etc/sudoers
不用 doas 因为 persist 选项只在 OpenBSD 上可用 - 主机名, 路由器配置 DHCP 静态 IP, 本机
/etc/hosts
加入主机名解析
hostname freebsd-r2s
vi /etc/rc.conf
- 改 shell 配置, 基本还是之前那样
第一个服务: gopher
su
pkg add gophernicus
vi /etc/inetd.conf
echo 'inetd_enable="YES"' >> /etc/rc.conf
mkdir /var/gopher
# don't also chown nobody group so it belongs to wheel group
chown nobody /var/gopher
chmod 775 /var/gopher
service inetd onestart
TODO frpc daemon
frp 这完意好啊, 但是 Debian 搁置了挺长时间也没加入
我作为 RHEL7 入坑 Linux 的用户, 没有体验过 systemd 之前的服务管理, 这里可以体验一把.
(关于 systemd 有个不错的视频: 【人肉精翻】systemd的悲剧 YouTube)
/usr/local/etc/rc.d/frpc
:
别忘了把 gophernicus 的 host 和 port 改成远程主机的
TODO git 服务器
Ref
- FreeBSD on NanoPi R2S 提到网络有时会卡住, 我也遇到了