前言

N1 从去年中旬就有所耳闻,电视盒子?旁路由?下载机?没意思。大概半年前看到有大佬在玩 Armbian ,内心冲动了一下,但经过了解感觉问题还挺多的,就犹豫了。后来看着价格一天天的水涨船高,忍不住就先买了一台,然后就把它忘了,直到最近想起才打开包装。过了这么久大佬们应该都把坑填完了吧,然而面对一大波参差不齐的刷机教程,看得我一脸懵逼。其中的坑还是有不少的,所以写下了这篇文章,留给后来者作为参考。

准备工作

俗话说“万事俱备只欠东风”,现在已经有了东风(斐讯N1),但如果没有任何准备,即使有东风也无济于事。(好像哪里不对

硬件准备

  • N1
  • 电脑
  • 路由器
  • U盘(8G以上)
  • 网线(也可用 WiFi)
  • HDMI 线
  • 双公头 USB 线

软件准备

断网

断网的目的是防止官方强制升级导致变砖。

  • 简单粗暴:拔 WAN 口网线、关闭拨号连接
  • 高端优雅:设置防火墙禁止设备联网
iptables -I FORWARD  -m mac --mac-source 33:44:55:66:77:88 -j DROP

打开 adb

N1 接显示器和鼠标,点击“固件版本”4次,屏幕中下方显示“打开adb”即成功。

降级

我对一键脚本又爱又恨,它可以很方便的达成目的,节约时间。但如果没有经过严格的测试、不考虑各种系统环境和中间可能会出现的问题就成了一键翻车。而安卓刷机无非是几行 adb 和 fastboot 命令,所以降级我全程采用的是命令行操作。

  • 插上网线或连接 WiFi,双公头 USB 线一头连接 HDMI 接口旁的 USB 接口,另一头连接电脑。
  • 把低版本的关键分区文件(boot.imgbootloader.imgrecovery.img)放到adb.exe所在目录,在资源管理器地址栏输入cmd后回车。
  • 使用 adb 通过网络连接设备
adb connect 192.168.50.131:5555
这里的 IP 视实际情况而定,不要瞎跟着输入一样的。
  • 使设备重启至 fastboot 模式
adb reboot fastboot
如果你的电脑有扬声器(废话,此时你会听到设备连接音。
  • 查看设备是否识别。
fastboot devices
无法识别的解决方案: 首先联网,如果是 Windows 10 进入设备管理器,更新驱动即可。而 Windows 7 需要找驱动包安装。最后记得断网。(此时防火墙禁网的优势就得到了体现)
吐槽: 如果使用的是一键脚本,进行到这里会因为没有驱动导致无法识别,它提示让你重启设备,从头开始,如果对刷机不了解的小伙伴就陷入了往复循环,直到爆炸(雾
  • 输入命令刷入低版本的关键分区文件。
fastboot flash boot boot.img
fastboot flash bootloader bootloader.img
fastboot flash recovery recovery.img
  • 输入命令重启(此时应处于断网状态)或断电
fastboot reboot

至此,降级操作完成。

制作 Armbian 启动U盘

把U盘插到电脑,把下载好的 Armbian 镜像(无需解压)直接拖入到 rufus 中,点击“开始”即可。

此操作会完全清除U盘中的数据,重要数据提前做好备份。

配置 dtb 文件

dtb 文件起到的是引导和硬件资源调度的作用(瞎猜,欢迎大佬指正),不同型号的设备所使用的 dtb 文件是不同的,如果没有正确配置,就无法正常进入到系统。

写盘完毕会在电脑上看到BOOT分区,使用文本编辑器(建议 VScode、Notepad++、Windows 10 1903 后的记事本)打开此分区中的uEnv.ini文件。

修改第一行:

dtb_name=/dtb/amlogic/meson-gxl-s905d-phicomm-n1.dtb
这里的路径视情况而定,这取决于相关 dtb 文件的实际位置。比如5.98之前的版本为/dtb/meson-gxl-s905d-phicomm-n1.dtb

由于镜像自带的 dtb 文件会导致高负载,建议替换为大佬们编译的低负载 dtb,使用 Google 搜索能找到。需要注意的是不同系统或内核版本的 dtb 文件可能不通用。最新版本的固件往往不会那么快有大佬去跟进,所以要么选择弃坑,要么自己编译

从U盘启动 Armbian

方法一

断电后等待几秒钟,把U盘插入到 HDMI 接口旁的 USB 接口,然后插电,不出意外会进入到U盘中的 Armbian 系统。

如果你看到斐讯的 LOGO 在闪动,那说明意外发生了,这意味着你又进入到了官方的 Android 系统中,而U盘中的系统文件的权限会被污染,就需要重新写盘。

方法二

在设备开机在 Android 系统的情况下。

  • 使用 adb 通过网络连接设备
adb connect 192.168.50.131:5555
  • 在终端内输入以下命令,不要回车
adb reboot update
  • 准备好U盘,按下回车,立刻插入U盘。
  • 斐讯 LOGO 常亮即为成功启动。

SSH 连接 N1

进入到 Armbian 系统后 IP 地址可能会发生改变,因为已知 Armbian 默认的用户名是root、主机名是aml、密码是1234(5.98版本,其它版本可能不同),所以 IP 是多少无所谓了,可直接使用 SSH 工具连接或者在终端内输入下面的命令。

ssh root@aml

(此处应有一张连接成功的截图

ddbr 备份 eMMC

备份是后悔药,原厂的 eMMC 数据中包含有分区信息,对后续换回安卓,刷其它系统可能有用。

  • 输入ddbr命令
  • 提示DO YOU WANT TO BACKUP OR RESTORE ?(备份还是恢复?),输入b进行备份。
  • 提示DO YOU WANT COMPRESSION ?(是否压缩?),输入y进行压缩。
恢复操作同样是输入ddbr,只不过是把b换成r

备份文件路径在/ddbr/BACKUP-s9xxx-emmc.img.gz,可以使用 SFTP 工具取回到电脑进行保存。

这个方法还可以用来备份后续刷入的系统,通过恢复功能可以在任意系统之间方便的切换,所以准备一个 Armbian U盘对于 N1 的玩家来说是非常有必要的。

把 Armbian 写入 eMMC

当一切准备就绪,执行命令把系统写入到 eMMC 。

./install.sh
提示Complete copy OS to eMMC即写入完成。

然后输入关机命令。

poweroff
不要强行拔电关机,因为可能会导致文件丢失或储存介质损坏。

最后拔掉电源线和U盘,再插上电源开机,此时 Armbian 系统就可以脱离U盘运行了。

尾巴

刷完 Armbian 脑子一片空白,不知道要拿它来干嘛,那么就让它继续吃灰吧。没钱人的生活也能朴实无华且枯燥~

参考资料

N1教程

斐讯N1和T1降级关键分区恢复线刷功能, fastboot 烧录