之前一直有听说过斐讯N1这款硬件产品,但直到最近才入手了一台,今天折腾了一阵子,写下此文记录一下(′▽`〃)。
降级操作
如果机器的官方操作系统版本较高(版本号2.22以上)的话,需要先把boot、bootloader等关键分区降级到低版本,才能引导和启动非官方的操作系统;但因为我手上这台斐讯N1到手前被卖家刷入了OpenWrt,关键分区已经被降级到低版本,而一台机器只需进行一次降级操作,所以我就不需要再对其进行降级操作了。
刷入Armbian
Armbian是一款基于Ubuntu和Debian开发,可运行于ARM开发板上的操作系统。我选择这个操作系统是因为想把这台斐讯N1作为一台轻量级的ARM服务器来玩玩φ(≧ω≦*)♪。
我选用的镜像是Armbian_5.77_Aml-s905_Ubuntu_bionic_default_5.0.2_20190401.zip(提取码:518d),Armbian版本5.77,内核版本5.0.2,目前来说是较新但又相对省心的版本。
写入U盘 & 导入.dtb文件
镜像解压后,使用工具balenaEtcher写入U盘。因为这个镜像包含的操作系统原本是运行在一款与斐讯N1存在硬件差异的ARM开发板上的,如果直接由该操作系统驱动斐讯N1,会带来各种兼容问题;所以需要一个记录了斐讯N1的硬件信息(例如CPU、RAM等详细信息)的.dtb
文件(.dtb
文件需要随着内核编译,同一设备不同内核所对应的.dtb文件也不同,不能混用)向内核传递相关的硬件信息,内核根据这些信息对CPU、RAM等斐讯N1的硬件进行调度和管理,最终实现该操作系统相对完美地在斐讯N1上运行。
我把文件meson-gxl-s905d-phicomm-n1-xiangsm.dtb
放入U盘的BOOT
分区根目录下,随后使用文本编辑器打开文件uEnv.ini
,修改dtb_name
一项,使其指向meson-gxl-s905d-phicomm-n1-xiangsm.dtb
,即修改为dtb_name=/meson-gxl-s905d-phicomm-n1-xiangsm.dtb
。然后就能让斐讯N1从U盘启动操作系统了。
写入eMMC
将U盘插入靠近HDMI接口的USB接口,连接显示器,给斐讯N1通电,即可从U盘启动Armbian。Armbian启动后,登录默认的root用户(用户名:root,密码:1234);首次登录,需要先输入一次默认的密码,然后系统要求修改root用户的密码。
接着使用以下命令,即可把U盘中的Armbian写入斐讯N1的eMMC(原有的操作系统和数据将会被覆写),写入完成后,使用命令poweroff
关机并拔出U盘。下一次给斐讯N1通电就能直接从eMMC启动Armbian。
nand-sata-install |
更改软件源
Armbian的默认软件源位于境外,国内的访问速度实在是一言难尽╮(╯▽╰)╭,所以需要使用国内的软件源,通过国内的服务器来更新软件列表和升级软件包。我一般用的是清华大学开源软件镜像站。
使用文本编辑器vim打开/etc/apt/sources.list
:
vim /etc/apt/sources.list |
写入以下的软件源信息,但多个软件源应该不能共存(具体我没尝试过),所以需要用#
把原有的软件源信息注释(也可以删除,但如果软件源信息写入错误,那就没退路了|(*′口`)),原有的软件源信息中的注释内容可删除。
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse |
更改后如下:
按i
键进入编辑模式,更改完后,按ESC
键,接着输入:wq
即为保存并退出。
另外,还需要更改/etc/apt/sources.list.d/armbian.list
:
vim /etc/apt/sources.list.d/armbian.list |
内容如下:
deb http://mirrors.tuna.tsinghua.edu.cn/armbian/ bionic main bionic-utils bionic-desktop |
中文显示和输入
使用SSH协议连接斐讯N1,在终端中无法显示和输入中文,需要修改/etc/environment
中的内容LC_ALL="C"
,如下:
LC_ALL="en_US.utf-8" |
然后关机再通电重启。
解决负载过高的问题
由于网卡驱动的问题,在启用有线网络的时候,系统负载较高,真正解决问题就需要修改.dtb
文件。
进入目录/boot
,首先需要把.dtb
文件反编译为.dts
文件并命名为n1.dts
dtc -I dtb -O dts -o n1.dts meson-gxl-s905d-phicomm-n1-xiangsm.dtb |
使用vim编辑器打开n1.dts
,找到interrupt-controller@9880
一项,将其下的phandle
一项使用#
注释,如下:
interrupt-controller@9880 { |
修改完成后,把.dts
文件编译为.dtb
文件,并命名为n1.dtb
dtc -I dts -O dtb -o n1.dtb n1.dts |
接着,修改文件uEnv.ini
中dtb_name
一项,指向n1.dtb
dtb_name=/n1.dtb |
重新启动,即可使系统负载回复到正常水平。
reboot |
参考文章
[T1] [2018-9-28]斐讯T1和N1降级恢复线刷功能, adb脚本工具
[N1盒子] Armbian-5.77 on N1, so far so good
资源出处