前言
N1 从去年中旬就有所耳闻,电视盒子?旁路由?下载机?没意思。大概半年前看到有大佬在玩 Armbian ,内心冲动了一下,但经过了解感觉问题还挺多的,就犹豫了。后来看着价格一天天的水涨船高,忍不住就先买了一台,然后就把它忘了,直到最近想起才打开包装。过了这么久大佬们应该都把坑填完了吧,然而面对一大波参差不齐的刷机教程,看得我一脸懵逼。其中的坑还是有不少的,所以写下了这篇文章,留给后来者作为参考。
准备工作
俗话说“万事俱备只欠东风”,现在已经有了东风(斐讯N1),但如果没有任何准备,即使有东风也无济于事。(好像哪里不对
硬件准备
- N1
- 电脑
- 路由器
- U盘(8G以上)
- 网线(也可用 WiFi)
- HDMI 线
- 双公头 USB 线
软件准备
- N1 降级文件(N1_V2.19_imgs、adb)
- Armbian 镜像
- rufus(写盘工具)
断网
断网的目的是防止官方强制升级导致变砖。
- 简单粗暴:拔 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.img
、bootloader.img
、recovery.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和T1降级关键分区恢复线刷功能, fastboot 烧录
本文作者:P3TERX
本文链接:https://p3terx.com/archives/n1-armbian.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。
请问你用的是3.0的U盘嘛
是的