一代神机斐讯N1刷机
bsharkl / / / 阅读量 153
最近无意看到斐讯N1很火,本职是电视盒子,除了原厂系统,可以刷各种第三方的电视系统,也可以刷成BT下载机(其实linux部署个docker就可以跑aria2何必单单刷成BT下载机),最后就是能刷linux,看名字像是基于debian的arm分子不然这个名字也太误导了吧,有了armbian就可以部署docker咯,那么他就绝不不是一个电视盒子那么简单了。原来被拿来挖矿的矿机,最近居然还涨价了,果断入手。

文转自斐讯 N1 降级、刷入 Armbian经实践及参考其他资料对部分内容进行了修改。 文件重新打包并上传于我自己的服务器

准备工作

硬件准备

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

软件准备

断网

断网的目的是防止官方强制升级导致变砖。
  • 简单粗暴:拔 WAN 口网线、关闭拨号连接
  • 本人单独准备了树莓派,树莓派刷了openwrt,上有没用联网,制作内网路由链接使用。
  • 高端优雅:设置防火墙禁止设备联网
    iptables -I FORWARD  -m mac --mac-source 33:44:55:66:77:88 -j DROP

打开 adb

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

降级

我对一键脚本又爱又恨,它可以很方便的达成目的,节约时间。但如果没有经过严格的测试、不考虑各种系统环境和中间可能会出现的问题就成了一键翻车。而安卓刷机无非是几行 adb 和 fast­boot 命令,所以降级我全程采用的是命令行操作。 不建议一键脚本,直接手动刷,一键只刷boot.img
  • 插上网线或连接 WiFi,双公头 USB 线一头连接 HDMI 接口旁的 USB 接口,另一头连接电脑。
  • 把低版本的关键分区文件(boot.img、bootloader.img、recovery.img)放到adb.exe所在目录,在此目录按shift+鼠标右击点击在此处打开powershell窗口
  • 使用 adb 通过网络连接设备
    adb connect 192.168.x.x
这里的 IP 视实际情况而定.
  • 使设备重启至 fastboot 模式
    adb reboot fastboot
  • 查看设备是否识别。
    fastboot devices
无法识别的解决方案: 首先联网,如果是 Win­dows 10 进入设备管理器,更新驱动即可。而 Win­dows 7 需要找驱动包安装。最后记得断网。(此时防火墙禁网的优势就得到了体现)
  • 输入命令刷入低版本的关键分区文件。
    fastboot flash boot boot.img
    fastboot flash bootloader bootloader.img
    fastboot flash recovery recovery.img
  • 输入命令重启(此时应处于断网状态)或断电
    fastboot reboot
至此,降级操作完成。

制作 Armbian 启动U盘

把 U 盘插到电脑,把下载好的 Arm­bian 镜像(无需解压)直接拖入到 ru­fus 中,点击 “开始” 即可。
此操作会完全清除U盘中的数据,重要数据提前做好备份。

配置 dtb 文件

dtb 文件起到的是引导和硬件资源调度的作用(瞎猜,欢迎大佬指正),不同型号的设备所使用的 dtb 文件是不同的,如果没有正确配置,就无法正常进入到系统。 本文Armbian 5.77版本,使用xiangsm的dtb文件,见文章前半段 写盘完毕会在电脑上看到 BOOT 分区,使用文本编辑器(建议 VS­code、Notepad++)打开此分区中的 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盘,否则U盘中的文件权限会被安卓系统篡改!这不是一句废话! 千万不要在安卓系统开机的情况下插入U盘,否则U盘中的文件权限会被安卓系统篡改!这不是一句废话! 千万不要在安卓系统开机的情况下插入U盘,否则U盘中的文件权限会被安卓系统篡改!这不是一句废话!

方法一

断电后等待几秒钟,把 U 盘插入到 HDMI 接口旁的 USB 接口,然后插电,不出意外会进入到 U 盘中的 Arm­bian 系统。
如果你看到斐讯的 LOGO 在闪动,那说明意外发生了,这意味着你又进入到了官方的 An­droid 系统中,而U盘中的系统文件的权限会被污染,就需要重新写盘。

方法二

在设备开机在 An­droid 系统的情况下。
  • 使用 adb 通过网络连接设备
    adb connect 192.168.x.x
  • 在终端内输入以下命令,不要回车
    adb reboot update
  • 准备好U盘,按下回车,立刻插入U盘。
  • 斐讯 LOGO 常亮即为成功启动。

SSH 连接 N1

进入到 Arm­bian 系统后 IP 地址可能会发生改变,因为已知 Arm­bian 默认的用户名是 root、主机名是 aml、密码是 1234
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 工具取回到电脑进行保存。 这个方法还可以用来备份后续刷入的系统,通过恢复功能可以在任意系统之间方便的切换,所以准备一个 Arm­bian U 盘对于 N1 的玩家来说是非常有必要的。

把 Armbian 写入 eMMC

当一切准备就绪,执行命令把系统写入到 eMMC 。
nand–sata-install #推荐此命令
它可以完成所有刷写emmc所需的事情,完成后
halt
关机拔掉U盘,所有刷机工作就结束了。
如果你想重刷armbian系统,那么还是U盘启动armbian,重新执行nand-sata-install即可完整覆盖掉emmc中的数据,网上的教程一般是教你ddbr或者线刷先恢复到安卓系统再重来,这都是胡扯。
./install.sh #不推荐
不要强行拔电关机,因为可能会导致文件丢失或储存介质损坏。
最后拔掉电源线和 U 盘,再插上电源开机,此时Armbian系统就可以脱离U盘运行了。

坑爹问题-1

我遇到的第一个问题就是开机后,偶尔无法联通外网。 后来我发现,只需要开机后多等一会,外网就会联通了,所以这个问题就不纠结了。 另外,armbian启动的时候没有等待网卡分配到IP,会导致一些监听网络的程序无法正常工作,需要大家修改一下网卡的模式为auto,即可强制开机等待网络分配(当然太久分配不到也会超时进入系统): 修改
/etc/network/interfaces
,注释hotplug热插拔模式,换成auto即可:
root@aml:~# cat /etc/network/interfaces 
source /etc/network/interfaces.d/* 
# Wired adapter #1 
auto eth0 
#allow-hotplug eth0

坑爹问题-2

我在路由器上给N1分配静态IP的时候发现,armbian的有线网卡每次重启后MAC地址都会变,解决方法也不复杂。 打开
/etc/network/interfaces
文件,在eth0网卡上写死一个mac地址即可:
root@aml:~# cat /etc/network/interfaces  
source /etc/network/interfaces.d/*

# Wired adapter #1  
allow-hotplug eth0  
no-auto-down eth0  
iface eth0 inet dhcp
hwaddress 4e:03:88:54:39:93

坑爹问题-3

发现ssh终端无法显示中文,也无法输入中文。 输入
armbian-config
命令,选择personal,locales,确认locale配置了en_US.utf-8,但仍旧无法使用中文。 执行locale命令显示如下,的确诡异:
 root@aml:~ # locale -a
 C
 C.UTF-8
 en_US.utf8
 POSIX
 root@aml:~ # locale
 LANG = en_US .UTF - 8
 LANGUAGE =
 LC_CTYPE = "en_US.utf-8"
 LC_NUMERIC = "en_US.utf-8"
 LC_TIME = "en_US.utf-8"
 LC_COLLATE = "en_US.utf-8"
 LC_MONETARY = "en_US.utf-8"
 LC_MESSAGES = "en_US.utf-8"
 LC_PAPER = "en_US.utf-8"
 LC_NAME = "en_US.utf-8"
 LC_ADDRESS = "en_US.utf-8"
 LC_TELEPHONE = "en_US.utf-8"
 LC_MEASUREMENT = "en_US.utf-8"
 LC_IDENTIFICATION = "en_US.utf-8"
 LC_ALL = en_US .utf - 8
经过查实,armbian官方也有人反馈,只需要改一下
/etc/environment
中的LC_ALL:
root@aml:~# cat /etc/environment  
ARCH=arm64  
LC_ALL=”en_US.utf-8″

配置时区

执行
armbian-config
选择
personal
然后配置
Timezone
shanghai即可。

换apt源

执行
armbian-config
选择
personal
选择Mirror中清华大学的即可。

连接wifi

当你完成了上述所有步骤,如果你对网速没有太高要求,那么就可以让N1联无线网。 这样的话,N1就可以放在任何有电源的地方,当一个小型linux服务器了。 执行
armbian-config
选择
network -> wlan0
选择wifi信号输入账号密码即可。

修改vim粘贴模式

默认debian的vim右键没法粘贴内容,需要改一下模式:
 vim  / usr / share / vim / vim80 / defaults .vim
查找  set mouse
 if  has ( 'mouse' )
  set mouse = a
 endif
将值从 "a" 改成 "r"
 if  has ( 'mouse' )
  set mouse = r
 endif
至此,斐讯N1刷armbian就完成了,一个可靠稳定的Linux盒子,祝大家玩的愉快。

参考资料

斐讯 N1 降级、刷入 Armbian 斐讯N1 – 完美刷机Armbian教程 斐讯T1和N1降级恢复线刷功能, adb脚本工具 斐讯N1和T1降级关键分区恢复线刷功能, fastboot 烧录 我购买了斐讯N1做电视盒子,发现它远比想象的...
支付宝捐赠
请使用支付宝扫一扫进行捐赠
微信捐赠
请使用微信扫一扫进行赞赏
有 0 篇文章