Back
Featured image of post 斐讯N1装Ubuntu(Armbian)+尴尬复活记录

斐讯N1装Ubuntu(Armbian)+尴尬复活记录

知名倒闭厂商之光,超划算小电视/服务器(不是

点这里开始抄袭本文

Google对feixun的联想
Google对feixun的联想

众所周知斐讯是一个慈善机构通信大厂

0. 前言

某讯 N1 作为一个假电视、真挖矿设备。作为一台电视盒子,它有千兆网口,HDMI,支持双频(5G)Wi-Fi。作为矿机,ARM64 架构,自带 4 核心 CPU,2G 内存,8G eMMC (embedded Multi-Media Controller) ,可以直接上 linux+docker,可玩性请自己发挥想象。N1 玩法过于多样,各路文章就连系统安装都说法不一,文章根据个人经验(遇到的坑)写成,尽量考虑多种情况,可能还会有未知的 bug 或不清楚的 issues 出现,有错的地方敬请指正,欢迎留言或直接和我交流。

看雷军出对

CPU: Amlogic S905D Cortex-A53(ARM) 四核 1.5GHz

GPU: ARM Mali™-450,五核[email protected]硬件解码,HDMI 2.0

RAM: 2G DDR3 K4B4G1646E 512MB,共4颗,总内存2GB

ROM: 8G eMMC5.1 KLM8G1GEME,三星MLC

LAN: RTL8211F 千兆

Wi-Fi/蓝牙: 1x1mimo, 2.4G 65Mbps 5G 390Mbps IEEE 802.11n/ac, Bluetooth 4.1

接口: USB2.0 x2、HDMI x1、千兆LAN口 x1、12V/2A DC

本文主要介绍如何在 N1 上用 U 盘安装 Linux 和如何救砖,安装 Docker 等玩法将在日后的文章中体现😋

同比最新的树莓派 4B/2G,某🍔上大约 300 大洋,​ 比 N1 强的应该是这个 USB3.0 了 (口出狂言) ,但数据传输咱可以不用 USB呀,千兆以太网口摆在那呢。

某🍔某🐟都是没法直接关键搜到 N1 的,某讯的产品现在还都得在并夕夕上买。N1 二手的有七八十到一百多不等,我入手的是 120 大洋全新未刮🐴,可惜 K🐴已经没用了。想要直接玩上的也可以买刷好机的版本,价格会略贵(不值)。

阿曾搞了个 N1 来替代废旧笔记本的作用,N1 的性能强劲,价格还挺划算,于是我也顺便入了一台。恰逢阿曾的那一台因为 iptables 不良设置导致无法 ssh,本文一并介绍如何将「崭新出厂」的 N1 盒子刷成 Linux 系统(Ubuntu)以及在没有键盘的情况下复活 N1。

1. 预备工作

1.1. 硬件

斐讯 N1 电视盒子

可选 一条网线

必须 一条 HDMI 线 + 一个显示屏 🖥️ 📺

必须 一个 USB 鼠标

必须 一个大于等于 4G 的 U 盘

可选 USB 双公头线

1.2. 软件

必须 斐讯 T1、N1 官方系统降级工具(by webpad) 原帖地址 微云 密码: yaefa9

必须 Armbian 镜像文件 我要下载哪一个? Yandisk 1 Yandisk 2

我们要刷入的是 Armbian 系统,如果你想要继续当作电视盒子(官改)用请看这篇文章

可选 Etcher(Mac) 下载地址

可选 Rufus (Win) 下载地址

可选 Homebrew

可选 VMware Fusion (Mac)

2. 启动盘制作

考虑到烧录 U 盘需要花上一定的时间,为了节省时间,我们先进行启动盘的制作。

图形界面:Mac 上可以直接使用Etcher进行启动盘制作,Win 上可以用Rufus

首先是选择你要装的系统,一共分为 Debian(bullseye)Ubuntu(eoan) 两种,两个系统有分有带桌面和不带桌面版,不带桌面版也可以之后再安装桌面。

我选择的是 Armbian(Ubuntu_eoan)带桌面,压缩文件名叫 Armbian_20.02.0-rc1.038_Aml-s9xxx_eoan_current_5.5.0-rc6_desktop_20200205.img.xz,解压出的镜像文件有 3.95GB。镜像在哪下载?

接下来介绍的方法是在 Mac 上用命令行写盘的办法。

先确定下插入的 U 盘路径,使用diskutil list

一定要记清楚哪一个是你的 U 盘,如图我的是/dev/disk2,如果有重新插拔 U 盘请一定再用一次diskutil list来确定路径,之后的烧录命令是不可逆的。

你的 TYPE 和我大概不一样,我的 U 盘本身是一个 Ubuntu 的 LiveCD

$ diskutil list
...
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     Apple_partition_scheme                        *16.0 GB    disk2
   1:        Apple_partition_map                         4.1 KB     disk2s1
   2:                  Apple_HFS                         2.5 MB     disk2s2
...
$ diskutil unmountDisk /dev/disk2

接下来用 dd 烧录,if 是镜像路径,of 是 U 盘路径

sudo dd if=~/img/Armbian_20.02.0-rc1.038_Aml-s9xxx_eoan_current_5.5.0-rc6_desktop_20200205.img of=/dev/disk2 bs=1m

一定要确认清楚 of(output file)是你要烧的 U 盘,if 后面的文件路径可以直接将文件拖入到终端中完成填写

dd 命令需要用sudo,会让用户输入 root 的 Password,输入后回车自动开始烧录 U 盘,该过程是不会有任何进度提示的,你可以像我一样泡一杯咖啡耐心等待。

bs(block size)我也不确定具体要指定多少,一般不要过大,单位 mega 的 m 要小写

...
3768+0 records in
3768+0 records out
3951034368 bytes transferred in 4943.135178 secs (799297 bytes/sec)

特里劳妮教授怎么没有咖啡占卜课呢
特里劳妮教授怎么没有咖啡占卜课呢

这咖啡喝了我一个半小时…

Macbook 在不合盖的情况下锁屏时dd命令也是照常进行的

系统有一个防睡命令caffeinate,可以让command 在 active 时候,系统不会睡眠

caffeinate -i make

当 make 在 active 状态时,系统不会睡眠。实际上caffeinate的用法有很多,还可以防止硬盘休眠,这里有一篇14 年的指南,当然你可以直接man caffeinate来查看命令手册。其他情况我就 8 懂了,也可以直接设置一下 never sleep.

2.1. 修改 BOOT

启动盘制作完后再来看这一部分内容

刚烧完的 U 盘是不能直接拿来给 N1 用的,可能会出现各种奇怪的兼容性问题。

首先是打开你的 U 盘,找到根目录下的uEnv.txtuEnv.ini,用任何一种代码编辑器打开。永远不要用 Windows 记事本打开编辑,不然指不定何时出现莫名其妙的错误。

我的是在第 18 行,修改为如下所示的 devices tree

# aml s9xxx
FDT=/dtb/amlogic/meson-gxl-s905d-phicomm-n1.dtb

Armbian 可以运行在很多种设备上,不同设备采用的硬件都不同,为了更好的协调所以就有了这里出现了后缀.dtb的文件,这是 Armbian 用来管理具体设备硬件的配置文件。修改为meson-gxl-s905d-phicomm-n1.dtb可以避免诸如过热的问题。

如果没有这个 dtb 文件 下载传送门

某山论坛的这篇文章里的做法和我有点不同,楼主是改成meson-gxl-s905d-p230.dtb(截至我写到这的时候最后更新时间是 2019-2-25),这个 dtb 在 18 年就有了,经过查证是因为 n1 和 p230 设计基本一致。

3. 连接设备

节约时间,烧盘的过程中就可以把 N1 上电连接屏幕和鼠标了

从上往下看 N1 的 I/O 应该是这样的

#12345
接口USBUSB(BOOT)HDMI千兆网口电源
I/O鼠标烧录后的 U 盘HDMI 线网线 可选电源线

可以不连网线,有条件的还是建议连接,把除了 2 以外的口全部按照升序依次插满,等待开机。

3.1. 打开 ADB

曲面电视屏,看起来有点奇怪
曲面电视屏,看起来有点奇怪

先记下网络信息中的 IP 地址,用鼠标点击4 次固件版本,屏幕下方会出现打开adb字样(再点 4 下会关闭,不要多点)

如果没有连接网线,网络信息下会出现连接 Wi-Fi 提示,点开连接到你的 Wi-Fi 并使其处于和你电脑在同一局域网下,并记录该设备 IP 地址。

4. 设备降级

这里用到的工具是 斐讯 T1、N1 官方系统降级工具,webpad 制作的工具好处在于降低了操作成本,人人都可以按照提示快速进行降级和线刷。

现在到手的 N1 设备基本都需要给 bootloader 进行降级,只需要降级一次,降级后就没这一步什么关系了

我的系统是 macOS,为了更舒服的操作我将使用 VMware Fusion 来虚拟 Windows

同时将虚拟机的网络调整为桥接,因为待会儿要把 Windows 和 N1 放在同一个局域网

 

解压文件后运行run.bat,选择N1 降级,通过网络进行 ADB 连接并按提示继续操作。

 

5. 进入线刷模式

我们选择的方式是U 盘启动 Armbian,不需要用到双公线来刷机。直接通过本地局域网用 adb 进入线刷模式

有的固件刷入的时候需要用到双公线直接从电脑刷入,比如 webpad 的 N1 魔改版固件

斐讯T1、N1官方降级工具
斐讯T1、N1官方降级工具

我这里的操作是很成功,但是后来重新启用线刷模式一直失败(找不到 server),不知道具体原因,反正我们通过局域网来调试。

5.1. 安卓调试桥

首先是确定你有没有 adb(Android Debug Bridge),直接在终端/命令行中键入adb看看是否正常反馈就好。没有的话需要安装 (或者不用,先接着往下看) ,在这里通过 Homebrew(macOS)(万岁!

macOS:

# 如果你的电脑上没有 Android Studio
brew cask install android-platform-tools

如果有装 Android Studio,但 adb 命令提示 command not found 把下面这几行加入你的 shell rc 文件下即可(注意修改用户名),譬如我的在 ~/.zshrc

# Android Debug Bridge
export ANDROID_HOME=/Users/你的用户名/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools

安装完后连接到 N1:

$ adb connect 192.168.66.120 #这里的IP地址是前面记录下的IP地址
connected to 192.168.66.120:5555 #表明连接成功

关于 Windows 下的使用说明:

webpad 的降级工具包里已经附带了必要的 adb,所以直接 cd 到降级工具里的 onekey/data 文件夹下,然后再把命令行中的 adb 全部换成 ./adb.exe 就行了,譬如 ./adb.exe connect 192.168.66.120

然后可以使用adb devices来查看连接上的设备:

$ adb devices
List of devices attached
192.168.66.120:5555	device

如果要手动降级就需要输入adb shell reboot fastboot进入 fastboot 模式进行固件刷入,N1 降级的话一共需要刷入这三项:

fastboot flash boot boot.img
fastboot flash bootloader bootloader.img
fastboot flash recovery recovery.img

但我们前面已经完成了降级的操作,就直接进入线刷模式

adb shell reboot update

注意 先别急着执行命令,准备好你的 U 盘,在掐下命令后等屏幕黑掉的那一瞬间,插入你的 U 盘。

U 盘只能插在前文提到的能 boot 的的 USB 口上,即为 HDMI 相邻的那个 USB 口。

在 Android 下插入 U 盘会导致文件权限被改写,造成不必要的麻烦

我可能就是犯了这个错误,导致一直在开机界面无法启动,也可能是我的 U 盘太老旧了,于是我换了个 USB3.0 的 U 盘,直接用 Etcher…

懒狗用了都说好!
懒狗用了都说好!

还等什么赶快去下载:brew cask install balenaEtcher或者点击手动下载

6. 进入系统

我的键盘落在学校了,没有外接键盘下要完成调配系统的操作。一般来说这个设备的 IP 地址不会轻易被路由的 DHCP 变更,并且 ssh 服务开机启动。所以直接通过终端用 ssh 进行连接。

默认的密码是1234,连接成功后开始初启动配置。

 

连接成功后系统会要求你重设 root 的密码,按照提示输入

要看英文,要看英文,要看英文!要坚持看英文!不要一路[y/n]按下去!!!——养成良好习惯

由于我下载的是 desktop 版,还会询问你新加一个用户,可以选择按Ctrl+C不加,我选择新增。我的 N1 还连着屏幕,完成后可以看到屏幕上的桌面成功加载,默认是 xfce desktop

 

有可能是新增的用户问题,没过一会我在输入各种命令(除了 logout)的时候出现了 IO error,鼠标点击 menu bar 出现了乱码的 error popever,只能重新上电。

刷入eMMC就不再出现这个问题
刷入eMMC就不再出现这个问题

7. 刷入 eMMC

现在的 U 盘是载入到了 N1 内存,我们要给 eMMC (embedded Multi-Media Controller) 刷上 armbian。

当然你可以选择不这么干,仍旧从 U 盘启动,缺点是启动速度慢,并且可能会出现之前提到的问题。优点是你可以给 N1 刷上不同的系统,根据需求切换。

网上普遍提到用nand-sata-install这个命令来刷入 eMMC,但在我的系统上不管用。我们先来看一下用户(root)目录下有什么

 

这个install-aml.sh其实就是我们的安装脚本,直接执行./install-aml.sh。如果已经刷入 eMMC 是不会有这个文件的。

然后我在输出Copy USR这边卡了好久,颇为担心是出现了和前面几次一样的毛病(可能是 desktop user 的问题,但 desktop user 后来救了我一命),新建了一个 tab 连接机器发现一切安好,只是还在执行中。

使用cat ./install-aml.sh查看一下这里的输出结构,完成后应该像是下图右边这样的输出。

 

完整的输出是这样的:

[email protected]:~# ./install-aml.sh
Start script create MBR and filesystem
/dev/mmcblk1
Start backup u-boot default
4+0 records in
4+0 records out
4194304 bytes (4.2 MB, 4.0 MiB) copied, 0.0397989 s, 105 MB/s
Start create MBR and partittion
Start restore u-boot
442+0 records in
442+0 records out
442 bytes copied, 0.0149788 s, 29.5 kB/s
8191+0 records in
8191+0 records out
4193792 bytes (4.2 MB, 4.0 MiB) copied, 0.513858 s, 8.2 MB/s
Done
Start copy system for eMMC.
Formatting BOOT partition...mkfs.fat 4.1 (2017-01-24)
done.
Cppying BOOT...done.
Edit init config...done.
Formatting ROOT partition...
e2fsck 1.45.3 (14-Jul-2019)
ROOT_EMMC: clean, 11/419328 files, 50073/1675008 blocks
done.
Copying ROOTFS.
Copy BIN
Create DEV
Copy ETC
Copy HOME
Copy LIB
Create MEDIA
Create MNT
Copy OPT
Create PROC
Copy ROOT
Create RUN
Copy SBIN
Copy SELINUX
Copy SRV
Create SYS
Create TMP
Copy USR
Copy VAR
Copy fstab
*******************************************
Complete copy OS to eMMC
*******************************************

结束之后就可以执行poweroff下电,然后拔出 U 盘,重插电源线来重新上电,之后就会自启动 Armbian

启动后我点开了桌面上的Test.mp4来循环播放以便系统故障的时候我会立刻知道,是一段战斗民族风情的视频,本文封面图就是出自这。(晚一点再上传,咕咕咕)

8. Armbian-config

Armbian 的具体玩法详见Armbian 官方文档,这里提几个装机完后一般都会做的常用操作。

8.1. 更换软件源

我寻思着没有键盘,但想玩玩远程桌面,自然想到用 terminal 装 VNC 然后连接。那安装 VNC 的第一步是先修改软件源方便后续的操作。这里介绍两种方法,第一种是自然的如下的命令行修改,还有一种更方便的 伪 GUI 修改(建议)

vim /etc/apt/sources.list然后把原先的内容都注释掉,加入

deb [ arch=arm64,armhf ] https://mirrors.tuna.tsinghua.edu.cn/debian/ stretch main contrib non-free
#deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ stretch main contrib non-free

deb [ arch=arm64,armhf ] https://mirrors.tuna.tsinghua.edu.cn/debian/ stretch-updates main contrib non-free
#deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ stretch-updates main contrib non-free

deb [ arch=arm64,armhf ] https://mirrors.tuna.tsinghua.edu.cn/debian/ stretch-backports main contrib non-free
#deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ stretch-backports main contrib non-free

deb [ arch=arm64,armhf ] https://mirrors.tuna.tsinghua.edu.cn/debian-security/ stretch/updates main contrib non-free
#deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security/ stretch/updates main contrib non-free
#deb [ arch=arm64,armhf ] https://mirrors.tuna.tsinghua.edu.cn/debian/ sid main contrib non-free

之后再执行

apt-get update #更新软件源
apt-get upgrade #更新软件

8.2. 伪图形界面配置

在终端输入arabian-config打开伪图形界面,通过键盘上的方向键、Tab、空格、回车进行操作。

 

选择 Personal 可以进行软件源的设置

 

在做这些设置的时候要格外小心,我在这里选择安装了 ZSH 导致后面 root 登录屡次出现 Permission Denied 和不认密码,幸好还有一个 Desktop User(也可能就是这个 Desktop User 让我前面出现了系统错误)

 

赶紧用 Desktop User 登录,查看了/etc/passwd一下,问题果然在这,第一行的末尾应该是...root:/bin/bash 但是bin/bash莫名变成了 Desktop user 的 username,改回来就行了

8.3. 网络设置

N1 支持接的 Wi-Fi

居然连信号值都有
居然连信号值都有

这个 GUI 直接提供了网络选项,可以直接从此处连接 Wi-Fi

9. 变砖后复活

我自己是没有经历过变砖的情况,但对于阿曾那台 N1 在没有外接键盘的情况下的修复流程和变砖救砖是一致的。

还没复活呢! 这两天考试 quq 晚点再写 (复活,可以骂我标题党了)

估计是咕咕了

10. 参考链接

没有,都是自己想的!

希望本文对你有所帮助 ;)

  1. Armbian Documentation - 官方文档
  2. 斐讯 T1 和 N1 降级恢复线刷功能 - webpad
  3. 斐讯天天链 N1 官改 v2.0 线刷包, 补丁 patch1 - webpad
  4. yangxuan8282 的 Github Repo