斐讯N1 – 完美刷机Armbian教程

怎么说呢?我被斐讯N1刷机Armbian活生生折腾了4个晚上,终于还是搞定了。

首先得恭喜你,运气好搜到了我的博客,否则你可能需要8个晚上,16个晚上,甚至绝望。

我先说一下网上教程都坑在哪里:

  • 搞不清楚到底哪个Armbian内核版本好用(好用是指:稳定、低负载、各硬件驱动正常)。
  • 搞不清楚所选内核应该配套哪个dtb文件(或者不知道dtb是啥)。
  • 刷到emmc遇到各种诡异现象(例如:偶然上不去网、readonly、拔掉U盘后无法启动)。
  • 刷到emmc不正常,不知道如何正确重刷。

没错,我把所有坑都踩了一遍,累的我死去活来。

所以,你搜到我的博客算是真的走运了:

我会告诉你每一步怎么做,用什么版本,为什么会被坑。

为什么买斐讯N1?

主要是因为它比树莓派好。

网上实测N1性能超过树莓派3B+,我觉得没必要实测了,因为计算性能本身就不是板子的强项,够用即可。

N1的优势在于:

  • ARM64主流架构,真64位linux系统,docker随便玩。(Armbian输出:Linux aml 5.0.2-aml-s905 #5.77 SMP PREEMPT Mon Apr 1 17:41:33 MSK 2019 aarch64 GNU/Linux)
  • 真千兆有线网口,2.4/5G双频wifi,可以作热点。
  • 自带8G的emmc存储,linux系统直接刷到盒子里,不用额外插SD卡,I/O性能好。
  • CPU 4核,2G内存。

唯一缺点:

  • USB2.0,显然是不配套千兆网口带宽的,磁盘将成为了下载电影的瓶颈。
  • 需要精力折腾,因为是小众社区来支持N1硬件适配到Armbian系统,安装过程缺乏标准化的方案。

购买斐讯N1

全网只有拼多多售卖。

截止2019年11月份,全新未开封未刮K码的全新N1,售价在130元左右,我建议大家还是买新的省心。

N1目前处于炒作阶段,价格持续攀升,建议趁早购买。

注意:不需要买USB双公头刷机线,无论刷机还是重刷都是用不到的!

降级关键分区

连接HDMI、网线、电源,你会进入斐讯自带的安卓系统。

安卓系统的标准启动过程如下:

  • bootloader:斐讯针对该盒子硬件实现的类似BIOS的东西,它负责硬件的初始化,最终引导操作系统。
  • boot分区:放着安卓操作系统的内核文件,由bootloader唤起,也就实现了进入操作系统的效果。
  • recovery分区:类似于WinPE的东西,如果boot分区挂了,则可以通过Recovery方式进入一个临时的操作系统,然后恢复boot分区(类似于ghost做系统)。

问题就在于,bootloader是斐讯针对盒子定制的,它设置了一些限制,比如:

  • 只能使用他家的安卓系统
  • 不支持U盘引导操作系统

所以呢,恩山论坛有一位叫做webpad的大神,修改了斐讯的bootloader。

我们要做的,就是把bootloader覆盖到盒子里面去。

webpad提供了工具,大家按照教程与工具:https://www.right.com.cn/forum/thread-340279-1-1.html,通过adb网络连接的方式刷入即可。

一台N1这辈子只需要做一次降级操作,后续不需要再研究这个问题了。

连接USB线刷的方式,除非你想玩电视系统,否则刷Armbian是不需要强制使用的。

制作Armbian U盘

刷armbian的整体逻辑如下:

  • 为了把armbian刷入emmc存储,我们首先得把armbian刷到U盘上,然后通过U盘引导进入armbian系统。
  • U盘进入系统后,我们执行一个命令就可以把armbian系统的boot分区以及rootfs等等都copy到emmc上。
  • 一旦完成emmc刷写,此后bootloader就会直接读emmc中的boot分区,直接引导进入armbian。

首先是选什么版本的Armbian,以及替换哪一个dtb文件,我直接告诉大家结论:

Armbian 5.77版本,使用xiangsm的dtb文件,这是恩山论坛的帖子:https://www.right.com.cn/forum/thread-510423-1-1.html

这是目前恩山论坛最新也是最广泛肯定的版本,大家就不要自己再折腾研究了。

至于armbian和dtb分别是什么来头,我简单说明一下:

  • armbian:直接来源于armbian的官方,armbian其实就是debian发行版为arm架构适配后的版本。也就是说,恩山论坛是没有人去改动armbian系统代码的,是非常可靠的。
  • dtb:各种品牌的盒子千千万,每个盒子使用的网卡啊、cpu芯片啊的型号千千万,armbian内核为了能够和这些外设正常工作,就要求提供一种叫做dtb的描述文件,我理解就是针对各个硬件的驱动程序。
    • 为了让斐讯N1的各个硬件可以被armbian正常调度,所以需要给斐讯N1适配一套dtb文件。
    • dtb文件需要随着内核编译,所以不同armbian内核版本必须使用配套的dtb文件。
    • 目前斐讯N1的dtb文件已经被armbian收录到官方源码库里,但是使用的时候linux负载会显示的很高,所以热心网友为armbian5.77编译了一个fix过的dtb文件。

armbian5.77大家直接走我的网盘下载即可,因为从armbian官方下载非常慢:

链接: https://pan.baidu.com/s/1-7AmPhRkP1LKtqb6X7s9IA 提取码: sjp9 复制这段内容后打开百度网盘手机App,操作更方便哦

现在将系统烧录到U盘。

armbian5.77修改过的dtb文件从上面的帖子里下载,然后打开我的电脑U盘:

将meson-gxl-s905d-phicomm-n1-xiangsm.dtb文件放到dtb/meson-gxl-s905d-phicomm-n1-xiangsm.dtb下面,修改一下uEnv.ini文件指向它:

dtb_name=/dtb/meson-gxl-s905d-phicomm-n1-xiangsm.dtb

进入U盘armbian

千万不要在安卓系统开机的情况下插入U盘,否则U盘中的文件权限会被安卓系统篡改!这不是一句废话!

千万不要在安卓系统开机的情况下插入U盘,否则U盘中的文件权限会被安卓系统篡改!这不是一句废话!

千万不要在安卓系统开机的情况下插入U盘,否则U盘中的文件权限会被安卓系统篡改!这不是一句废话!

补充:如果没有USB双公头线,那么将无法通过webpad降级工具的功能3)触发U盘启动。

替代方法是下载adb工具,然后执行如下2个命令,即可确保支持U盘启动:

adb connect 斐讯IP

adb shell reboot update

先让N1断电,然后插上U盘到靠近HDMI的USB口,然后通电即可进入armbian系统,启动过程中有一些看似报错的东西不需要理睬,属于正常。

默认root 1234登录即可。

ls -l /确认一下目录权限没有被安卓篡改,都是root用户即可:

刷armbian到emmc

这一步非常坑!

网上都说执行/root/install.sh刷写U盘中的armbian到emmc,但实际上这个脚本存在严重问题:

拔掉U盘后,首次emmc启动可以成功,再重启一次就无法进入系统了,应该是boot分区的处理存在bug。

如果你此前已经install.sh被坑了,你必须再次插入U盘来引导系统,然后继续往下读。

真正有效的刷写方式是执行如下命令:

nandsata-install

它可以完成所有刷写emmc所需的事情,完成后halt关机拔掉U盘,所有刷机工作就结束了。

如果你想重刷armbian系统,那么还是U盘启动armbian,重新执行nand-sata-install即可完整覆盖掉emmc中的数据,网上的教程一般是教你ddbr或者线刷先恢复到安卓系统再重来,这都是胡扯。

坑爹问题-1

我遇到的第一个问题就是开机后,偶尔无法联通外网。

后来我发现,只需要开机后多等一会,外网就会联通了,所以这个问题就不纠结了。

另外,armbian启动的时候没有等待网卡分配到IP,会导致一些监听网络的程序无法正常工作,需要大家修改一下网卡的模式为auto,即可强制开机等待网络分配(当然太久分配不到也会超时进入系统):

修改/etc/network/interfaces,注释hotplug热插拔模式,换成auto即可:

坑爹问题-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命令显示如下,的确诡异:

经过查实,armbian官方也有人反馈,只需要改一下/etc/environment中的LC_ALL:

root@aml:~# cat /etc/environment
ARCH=arm64
LC_ALL=”en_US.utf-8″

配置时区

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

换apt源

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

连接wifi

当你完成了上述所有步骤,如果你对网速没有太高要求,那么就可以让N1联无线网。

这样的话,N1就可以放在任何有电源的地方,当一个小型linux服务器了。

执行armbian-config,选择network -> wlan0,选择wifi信号输入账号密码即可。

修改vim粘贴模式

默认debian的vim右键没法粘贴内容,需要改一下模式:

 

至此,斐讯N1刷armbian就完成了,一个可靠稳定的盒子,祝大家玩的愉快。

如果帮助到你,不要吝啬你的打赏,钱不在多少心意最重要。

如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~

斐讯N1 – 完美刷机Armbian教程》有120个想法

    1. 匿名

      纠正一个错误, n1的uboot只是新版本不支持启动到linux而已, 需要降级到老版本的uboot, 不存在破解修改的说法, 因为n1是有安全启动的, 只能启动签名后的uboot, 任何修改原则上都是不可能的

      回复
  1. 有所思

    我也踩了个坑。我原本想最大化利用emmc空间,结果出现多次无法启动情况,后来发现这货uboot启动要读600M后面的部分内容,如果这部分内容被破坏了,就无法启动了,这个问题是可以复现的。估计这也就是为什么 nand–sata-install 会在前面留700MB了吧。最后用标记坏块的形式跳过了uboot要读取的区域。

    回复
      1. Hex

        博主大大,现在最新版本的 19.11.x 的 nand-sata-install 也不好使了,也是只能启动一次,再启动就进不去了,看着好像是因为一个提示 resizing filesystem 造成的破坏了 emmc 内容,博主知道具体原因么?谢谢博主

        回复
  2. 乐只君子

    卡在【进入U盘armbian】这一步了
    adb shell reboot update 之后进入 recover,插入U盘,选择 reboot,最终进入原系统
    😭

    回复
    1. 尤文

      试试 adb reboot update 。我也是多次重启都没有进入 U 盘启动,最后去掉 shell 试了一次却成功了。并且,我还是插的远离 HDMI 端口的 USB ,都成功了。(真的是碰运气)

      回复
  3. lvfei

    您好,我按照你的方法刷了5.77,现在N1盒子通过有线和无线的局域网都可以被win10主机ping到,但是现在的问题是,我用盒子使用无线方式访问不了外网,dns填的是114.114.114.114 8.8.8.8,在N1上ping 百度也ping不通,请问怎么解决这个问题?

    回复
  4. sanbrother

    关于Mac地址、我正好看到了“正规”方案

    To change the used MAC address.

    1 options
    You can add the required parameter to the startup files (uEnv.ini and extlinux.conf). To do this, at the end of the line with the launch parameters, you need to add a parameter specifying the desired MAC address.

    For example,
    mac=xx:xx:xx:xx:xx
    or
    ethaddr=xx:xx:xx:xx:xx

    回复
  5. Pingback引用通告: N1盒子Armbian折腾记 - SunSeekerX

  6. 匿名

    您给的armbian帖子中,5.77的已经没有了,5.76或5.78直到5.90还有S905的镜像,更新就没有了。

    下了个5.90的试试。。。。

    回复
  7. jujuju

    线刷回安卓再u盘重刷armbian绝对是一个干净彻底重装armbian好方法 而且绝对不会出现mac地址重启变化问题。 至于ddbr 那个是真的扯淡 很多人听信了这个方法 mac就再也固定不住了 也不知道是谁想出来的

    回复
  8. Pingback引用通告: 斐讯 N1简单记录 – 折腾笔记

  9. 匿名

    /etc/environment 不是用来设置 locale的,正确的做法应该是

    sudo dpkg-reconfigure locales
    sudo locale-gen

    然后重启。当然,root就不用sudo了

    回复
  10. Z Z

    博主你好,请教一下armbian想换系统的时候执行nand-sata-install 发现emmc存储满了 ,可以直接删除/ddbr/install里面的文件吗,正确的删除方式是什么呀

    回复
  11. 凝血

    真正有效的刷写方式是执行如下命令:
    nand–sata-install

    这里的连字号错了,应该是nand-sata-install

    回复
    1. 匿名

      是的,我直接复制博主的命令直接提示“Could not find the database of available applications, run update-command-not-found as root to fix this
      nand–sata-install: command not found”

      仔细看才发现符号有问题

      回复
  12. Pingback引用通告: N1 降级刷机救砖总结 | 盆盆罐罐

  13. dqyuan

    在第一次启动要求修改 root 密码时每次输入新密码都会报 “Authentication token mnipulation error”,要怎么解决呢?

    回复
  14. 匿名

    遇到的几个坑问题:
    1. debian里问题竟然比ubuntu多,比如作者提到的WiFi配置,我刷了几次都遇到相同问题:通过armbian-config配了WiFi账号密码,然后退出armbian-config就会断掉(有毒

    回复
  15. 匿名

    遇到的几个坑问题:
    1. debian里问题竟然比ubuntu多,比如作者提到的WiFi配置,我刷了几次都遇到相同问题:通过armbian-config配了WiFi账号密码,然后退出armbian-config就会断掉(有毒
    2. auto eth0的问题,如果走无线最好不要这么配置,就hotplug 就挺好的。不然这货如果得不到IP会阻碍开机(起码150s,无法忍受
    3. 同问题2,如果走的无线,把no-auto-down eth0给注释掉,同样的,它会阻碍关机(起码90s,继续无法忍受

    回复
  16. 匿名

    补一个:
    除了清华的tuna源,之外,其他默认的source里,国内源是没有arm版本的,我自己用反代+写死hosts的方式加速了源里的地址,不然没法用

    回复
  17. max

    博主,我刷openwrt在把镜像扔进/root目录总是传到一般就断开连接,要重启才能重新连接,你知道是什么问题吗

    回复
  18. 高山

    那个,op写u盘,刷入emmc,只用了sh inst-to-to-emmc.sh。不稳定、设置正常却没网。想从u盘启动再次./inst-to-emmc.sh完整覆盖,一直进不去,u盘也挂载不了。很烦了,试了一下午很烦。

    回复
  19. 泪与潇湘

    老哥,怎么装图形桌面啊。。你提供的版本在armbian-config里system里面安装桌面,重启后会报错failed to start lightdisplay manager 桌面启动不了

    回复
  20. 破碎锝冰

    博主挂载移动硬盘成功没有,我现在其他的基本都没问题了,挂载u盘也没问题,就是移动硬盘死活都不能识别。

    回复
  21. xm

    我的N1是有桌面的,就像WIN7一样,放在55寸电视下面,分辨率3840X2048,安装好宝塔面板了,建好了自己的网站,可以当网站服务器用,第二个USB口接了一个2T硬盘,存放影片,各个房间的电视机顶盒、手机、电脑都可以同时、随时看电影。紧急的时候也可以当电脑用,毕竟桌面里面有OFFICE、QQ、谷歌浏览器、游戏。拔掉第一个USB口的系统U盘后,还能当电视盒子,YY的电视盒没有广告很好的。

    回复
  22. xm

    我的N1是有桌面的,就像WIN7一样,放在55寸电视下面,分辨率3840X2048,安装好宝塔面板了,建好了自己的网站,可以当网站服务器用,第二个USB口接了一个2T硬盘,存放影片,各个房间的电视机顶盒、手机、电脑都可以同时、随时、随地看电影。紧急的时候N1也可以当电脑用,毕竟桌面里面有OFFICE、QQ、谷歌浏览器、游戏等等。拔掉第一个USB口的系统U盘后,N1还能当电视盒子,YY的电视盒没有广告很好的。插上系统U盘后,N1又变成WEB、FTP服务器和Armbian小电脑了。

    回复
  23. 匿名

    你好,开机后输入了root和1234,然后提示修改密码,按着步骤操作输入一次旧密码和两次新密码还是提示 “Authentication token mnipulation error”,请问是什么原因呢

    回复
  24. Pingback引用通告: 一代神机斐讯N1刷机 - VPS-树莓派-建筑设计-CAD

  25. 匿名

    按照博主方法安装成功了,然后22端口映射到公网10022上了,然后ssh请求通了,然后用了一段时间就xshell断开了,再也连不上了,有人碰到过吗

    回复
  26. Pingback引用通告: 一代神机斐讯N1刷机 - VPS-树莓派-建筑设计-CAD

  27. 好慢啊

    实测armbian官网下载5秒完成,百度云还在安装客户端中,实在想不明白还有哪里能和百度云的速度比,20kb/s
    而且官网还有清大的镜像站,跑满带宽都不是问题

    回复
  28. p9s

    请问, 我的盒子被刷了小融系统, 我现在想刷回 armbian 系统.

    请问该怎么操作?
    我现在的情况是: 做了 armbian 的u盘, 插上后, 再插电源, hdmi 黑屏, 无输出.

    回复
  29. 匿名

    nand–sata-install这一步没有讲清楚到底是在哪里运行这个命令????
    是在Armbian系统下哪个程序输入还是怎么样?这关键的没写清楚。垃圾

    回复
  30. bill

    楼主,你好啊!一直研究你精彩的帖子!先生遇到一个问题,armbian 查看齿盘有两个分区,一个一个是系统本身,一个是未分配。我的是32g U盘 不打算装入emmc。问题来了,系统分区空间只有1g不到 ,就算re我将另外的24g分配过去,也是无法扩容。用了resize2fs命令也没用。所以系统更新后很快提示空间不足,不能进入系统。
    楼主没遇到这样的问题吗?怎么解决好呢?我不打算写入emmc

    回复
  31. 匿名

    你好博主 我之前刷了小钢炮 写入了emmc ,现在想刷OP。 用U盘启动可以进入OP 但再次写入emmc后 也是无法进入系统。 写入方式是在OP的TTYD 终端里 通过./inst-to-emmc.sh 命令。 提示成功, 但重启进不了系统, 还是只能通过U盘来启动。 博主知道解决方法吗?

    回复
  32. N

    很有用的经验分享,感谢博主!
    不过想问下为啥博主网盘里这个5.77的映像文件这么大(1.9G…),其他一般是300-600M?

    回复
  33. 匿名

    (select(0)from(select(sleep(15)))v)/*’+(select(0)from(select(sleep(15)))v)+'”+(select(0)from(select(sleep(15)))v)+”*/

    回复

发表评论

您的电子邮箱地址不会被公开。