前言
Phicomm N1是非常热门的盒子,该盒子的OpenWrt和Armbian系统资源非常丰富。之前我的N1盒子一直运行OpenWrt,但OpenWrt内核无法运行dae(至少我没能打包出支持bpf的内核),sing-box的前端luci-app-homeproxy我不太喜欢,且自己又不会开发,因此有了更换系统的想法。
整体思路
因为s905的分区比较复杂,我不敢直接操作,因此想先在emmc上安装Armbian,保留启动文件,删除其他文件,再将ArchLinuxARM的文件解压到相应位置,完成安装。
制作U盘
可以在ophub上下载Armbian镜像,比如:Armbian_24.2.0_amlogic_s905d_jammy_6.6.11_server_2024.01.13.img.gz,解压后DD到U盘
| |
写入EMMC
插入U盘后通电,盒子会正常启动并进入系统,默认用户名:root,默认密码:1234,然后通过Armbian自带的命令写入EMMC
| |
保留必要文件
写入完成后,挂载EMMC
| |
保留/mnt/etc/fstab和/mnt/boot/uEnv.txt文件,其余文件全部删除
解压ArchLinuxARM压缩包
下载ArchLinuxARM-aarch64-latest.tar.gz并解压到挂载位置
| |
并用保留的/mnt/etc/fstab替换当前的,文件内容大概如下所示:
| |
下载new-uboot-for-N1的启动文件,实测需要emmc_autoscript和boot,放到/mnt/boot目录,并创建/mnt/boot/extlinux/extlinux.conf文件,内容大概如下所示,主要是APPEND字段内容要参考/mnt/boot/uEnv.txt文件。
| |
启动新系统
关机后断电,然后拔出U盘后通电,盒子会启动进入ArchLinuxARM系统。

遇到的坑
1、进入ArchLinuxARM系统后没有网络,需要连接键盘,对系统进行初始化
| |
之后才能联网,通过ssh连接。
2、Armbian系统/boot分区仅保留dtb、emmc_autoscript、extlinux、u-boot.emmc、uInitrd、zImag是可以正常启动的,但使用Armbian的emmc_autoscript、u-boot.emmc无法启动ArchLinuxARM,而使用new-uboot-for-N1的emmc_autoscript和boot就能正常启动,原因未知。
下一步计划
ArchLinux是我很久之前使用的系统,现在我已经转为使用NixOS,所以希望N1盒子也能运行NixOS,目前还在摸索中。