斐讯 n1 折腾记录

本来想等自己有钱的时候再买一个性能强悍啥都能干的 x86 软路由的。。。

然而最近折腾加速器,实在受不了这帮硬路由的憨憨性能了:明明 ac86u 性能还凑合但内存只有 512m 结果刷了梅林各种问题各种崩,其他 mt7621 就更不用说了。我也考虑其他设备,比如 r2s,s905x 盒子之类的,但

  • r2s 体积小但性能比 n1 还要差;
  • s905x 盒子就只能做软路由,做电视盒子差点。

所以最后决定还是先买个 n1 顶着。以后换成高端一线的虚拟机软路由,再拿来当电视盒子。

开箱

购入渠道有两个,拼夕夕和转转(淘宝系禁 fx),我同学 1 月初在转转买了个仅拆箱的 k2p a1 才用了 180 搞得我有点心动(现在这玩意最少要 220 起步,也是个理财产品),但我看了一眼转转的 n1 ,当时没有同城同省,而且成色不知道,带不带码可能也不知道,算了,省省直接拼夕夕了,带盒子不带遥控器准新机 155 到手。

买到手的时候才二月份,但那时一直没得空研究,所以一直拖到现在。现在到同一家店看,涨到 165 了。。。真-理财产品。

到手的 n1 成色尚可

不过还是有两个令人遗憾的地方:

  1. 盒子上没有 s/n 码,也就无法验证是否三码合一了:

  2. 带的电源是 12v 1.5a 的,肯定不是 n1 原装,多半是 k2p a2 原装。

当时这俩不大不小的问题搞得我想退了。。。算了,先试试,跑个分备个份,就算后续要退也有办法还原。

准备工作

相比于刷路由器,刷 n1 要准备的东西多多了~

  1. hdmi 线
  2. 显示器
  3. 笔记本 / 台式机 / 平板
  4. 一个口为 USB-A 的线
  5. 网线一根
  6. (可选)一个中继路由
  7. 一到两个 U 盘 / tf + 读卡器,一个容量最好是 8g(可选),另一个要 16g 以上
  8. (可选,要备份系统的话必选)usb hub
  9. 鼠标和键盘

「一个口为 USB-A 的线」是因为 n1 上的 usb 接口是两个 USB-A 口。而这根线的另一头是啥就取决于你的笔记本 / 台式机 / 平板有什么口。大多数笔记本 / 台式机都只有 USB-A 口,这就是许多卖家捆绑销售双头 USB-A 的原因;但新一代的笔记本,特别是轻薄本都标配了两个 usb type-c 口;而旧一点的平板用的是 micro-usb 口,这两种线大家手上都不少,这种情况下就不用买卖家的双公口 USB 线了。不过平板有可能遭遇供电不足的情况,不太建议使用;有种说法是最好用 usb 2.0 线刷,但我用 type-c 3.1 口刷也没问题。

用中继路由的原因是我的笔记本都是靠无线连接路由器的,路由器本身离设备比较远无法通过有线连接;而进入 fastboot 的时候又需要 n1 和笔记本在同一个子网,所以就需要一个中继路由才能实现。

还有这个 hub,在一种情况下是必选的,待会我会提到。

刷点啥呢

n1 可以刷那么几个 rom:

  • openwrt
  • armbian
  • yyf
  • 等等等

主要是我只用得着我提到的这三个。

前两个可以通过 u 盘直接引导。yyf 只能直接刷入。

yyf 主要用来看电视,openwrt 是做软路由,armbian 则是做纯粹的 linux 开发系统。

openwrt 能拿来跑个分,armbian 能拿来备份 rom。

所以我们大致的刷机路线就是先刷 openwrt 做测试,如果盒子发热不严重并且跑分正常,那就暂时不退了,直接用 armbian 做个备份,之后刷入 yyf 玩一会电视功能,最后刷入 openwrt 做软路由。

测试 + 备份

降级

要想从 u 盘启动,必须先把机器降级到 2.19 版本。我的 n1 拿到手就是 2.22 版本,铁定得降级。

推荐使用[2018-9-28]斐讯T1和N1降级恢复线刷功能 , adb脚本工具 - 斐讯无线路由器以及其它斐迅网络设备 - 恩山无线论坛 - Powered by Discuz!,这玩意可以通过网络进行降级,不需要因为驱动问题大费周章。不过得安装 adb,请出老伙计 chocolatey:

1
choco install adb -y

给 n1 插上鼠标,通过中继路由或者在 n1 界面中登录无线网络,点击四次版本号开启开发者模式,因为此时在官方系统中可以直接通过 wifi 连接自己的路由器,所以还暂时用不到中继路由。

n1 和电脑同时连上路由后,按提示降级即可。降级完毕后,官方系统中显示的估计版本还是 2.22,但实际上内部固件版本已降级。

之后,去 Tony 的交流群中,找一个叫做「N1盒子激活U盘启动」的软件,解压密码就是 Tony。按照提示开启 u 盘启动即可。

给 u 盘刷入 openwrt

有三个工具可以用

  • etcher
  • USB Image Tool(usbit)
  • Win32DiskImager

这几个都能通过 chocolatey 安装。etcher 的界面不错,另外就算 img 打包在压缩文件中,它也能准确识别并刷入。但这玩意有个 bug,挺多时候进度条跑完会报错,但其实已经刷进去了。

usbit 需要手动用解压 img.xz 压缩包的内容(内容是一个 img 文件),而且需要先 reset 再刷入。但好处是不会报错,而且刷写速度还比 etcher 快。

Win32DiskImager 有中文。

自己选择吧。

openwrt 的镜像可以从这些地方获取:

固件有 +o 和 + 两种版本,不同地方在 +o 用的是旧版本 5.4.93 内核,新版本用的是 5.10 新版本内核(以前还有个区别,那就是 +o 用的 flow offloading 加速而 + 版本用 sfe 加速,但现在统一都用 flow offloading 加速了)。新版本内核有个弊端:

  1. amlogic已支持 5.10内核,但是需要从 u盘或 tf卡启动,可以刷入emmc(仅数据分区),boot分区还是只能在 u盘或tf卡上面。
  2. 5.10内核的副作用是 905x3、922x等机型 hdmi 绿屏、启动时间较长、mac地址会发生变化等

还有 + 版本似乎界面炫酷一点。。。不在意界面的话用 +o 版本就好了(虽然下面测试的截图我用的是 + 版本)。

进入 openwrt web 并跑分

刷入后,开 n1 前插入 u 盘启动,顺利的话屏幕显示是这样子的

此时敲一下回车就会进入熟悉 linux 命令提示界面。

同时能看到一个叫 openwrt 的 wifi 信号被发射出来,连接上去,并进入 192.168.1.1,就能看到 openwrt 的 web 界面。

but。。。这里有一个非常神秘的现象会出现:

如果你刷入 openwrt 的 u 盘大小不是 8g 的话,就没法正常的启动,具体表现在:

  • 不断弹出 reset high-speed xxx 的错误提示;
  • linux 命令提示界面的提示符后面带一个 none 的标记
  • 没有 wifi 信号被发射出来

具体界面类似于这样:

我估计是因为 n1 的 rom 是 8g 的所以也要求启动 u 盘的容量也是 8g。。。

但,其实还有一个解决方案,那就是搭配 usb-hub 使用。hub 接上 n1,u 盘再接上 hub 就能正常识别了。话说回来,我想到 hub 的原因,源自于我一开始以为是供电问题,于是拿了一个带供电口的 hub 接上。果然 16g 和 32g 的 u 盘就都能正常启动 openwrt,后续拔掉供电后反复启动都能够正常工作,拔掉 hub 就立即歇菜。甚至就算是 8g 卡,第一次进入可能也要和 usb-hub 配合连接才能成功进入。具体原因我到现在都还没想清楚。。。

在 web 来到系统 -> ttyd 终端,或者直接在 n1 的 linux cli 中输入测试指令都可以。

测试命令参照 (50) 2021今年买啥软路由?新年度软路由测试总结与推荐!!! - YouTube,一共有两个:

1
2
coremark
openssl speed -evp aes-256-gcm

对下效果:

差不多哦。。。

而且持续运行时机子并没有严重发热。看起来没啥问题。

最后最好使用 poweroff 命令关机,再进行下一步。

备份

备份就需要刷 armbian 了,因为 openwrt 里面没带有全盘备份工具。

因为是做全盘备份,所以 8g 的 u 盘那肯定是木大了,就必须得 16g u 盘 + usb-hub 一起上。

armbian 参考文章:

备份 - ddbr 参考文章:

同样,armbian 有这么几个版本可选:

  • 参考文章的 5.77 版
  • 上面提到的 openwrt 网盘中的 5.4 和 5.10 内核两种(两种内核的区别我在 openwrt 那里提过了)

另外还有 dtb 上的讲究。dtb 可以视为 armbian 驱动一类的东西,使用正确的 dtb 能让 armbian 系统获得更好的性能。不过既然我们只是用来备份系统的,其实没啥讲究,可以略过。dtb 有两种选择:参考文章 2 的 meson-gxl-s905d-phicomm-n1-xiangsm.dtb 和 openwrt 那边的 N1_35+o_dtb_fixspeed。使用方法参见参考文章 2,放入改名指向,一气呵成:

  1. 此时,armbian 用的是 kdahas-vim 开发板的 dtb,所以不完全适配 n1,一些设备不工作,这是正常的,我们只需修改 /boot/uEnv.ini 指向 n1 的 dtb 即可。
    \- 修改前的 uEnv.ini:    dtb_name=/dtb/meson-gxl-s905x-khadas-vim.dtb
    \- 修改后的 uEnv.ini:    dtb_name=/dtb/meson-gxl-s905d-phicomm-n1.dtb

刷写好接上 hub 和 u 盘开机。如果一切顺利的话,需要先新建一个密码和用户名才能成功进入系统。然后输入 ddbr,按照提示备份:

备份完输入 poweroff 关机。把 u 盘插回电脑,下载并打开 diskgenius,在 rootfs 分区的 ddbr 文件夹里找到备份拖出,保存即可。

话说回来,如果第一次进入系统因为各种原因报错,可能需要重新制作 armbian u 盘,因为刚开始制作完后 rootfs 其实只分到 1g 多一点大小,只有成功第一次启动成功才会把分区扩大到整个 u 盘,没有成功执行这一步的话,后面再怎么启动可能都无法成功执行了(

刷入 yyf 系统

用 win7 成功几率会高的多,而且 vmware 可以指定使用 usb2.0 的驱动,usb2.0 口刷机成功概率更高。不过我最后还是在 win10 实机下用 usb3.0 的线刷成功了(

参考文章:

  1. 下载 YYFROM-N1-无语音实用版 190420 刷机包。这东西在官网网盘已经失效了,所以我备份了一份到网盘,放到文末;

  2. 安装 Amlogic_USB_Burning_Tool,建议不要装太新的版本,装 2.16 就好了:Amlogic_USB_Burning_Tool_v2.1.6.zip - Android Data Host。2.16 中的一个 libsub-win32 在安装时会附带安装,但需要手动添加到设备管理器:

    打开设备管理器,随便选择一个设备。

    操作 - 添加过时硬件

    安装我手动从列表选择的硬件

    选择 libsub-win32 Usb Devices,一路下一步即可

  3. 通过前面提到的降级软件,按照提示进入 bootloader (线刷)模式。在进入 fastboot 前如果接上屏幕的话,会看到画面定格在 n1 的开始画面中。将 usb 线接入靠近 hdmi 一端的 usb 口,连接电脑会发现一个新硬件名为 usb download gadget,但这东西驱动没法自己安装。下一个驱动精灵之类的软件,检查后根据提示安装相应的 Android adb Interface,安装完再接上 n1 的话,会发现在设备管理器中 n1 被命名为 Lemobile Android Device。

  4. 接下来严格按照步骤走!

    1. 打开 Amlogic_USB_Burning_Tool,加载刷机包,擦除 FLASH 和擦除 Bootloader 前面的 √ 去掉,加载完成点击开始;
    2. 确保 n1 和电脑已通过 usb 线连接
    3. 通过降级软件,进入线刷模式。如果顺利的话,设备已经开始刷写了。稍微晚一点,或者线没接好,Amlogic_USB_Burning_Tool 都可能识别不到设备。
  5. 刷写成功就可以直接关闭关键拔线重启了。后续可以通过鼠标跳过初始流程,登录家中 wifi 后用刷机包里带的斐讯 app 控制盒子。

盒子资源体验

再说

openwrt 刷入 emmc 和体验

再说

其他参考文章