PHICOMM N1 盒子已经上市很多年了,虽然是一个矿渣产品,但是其优异的硬件配置,丰富的固件适配,目前还被广泛使用。在此首先对 webpad 等几位大佬致敬,由于他们的分享,使得很多人可以很方便的在 N1 盒子上实现自己所需的功能。
一、斐讯 N1 的硬件参数
产品类型:家庭网络存储,云存储
处理器:Amlogic S905D Cortex-A53,Mali-450 GPU
内存:RAM 2GB, ROM 8GB
接口:USB 2.0 * 2、HDMI * 1、RJ45 * 1(千兆网口)
无线连接:支持2.4G/5G WiFi,蓝牙BT 4.1 BLE低功耗
视频输出分辨率:最高支持到 4K 60 帧硬件解码
电源接口:12V/2A
尺寸与重量:产品尺寸为110mm x 110mm x 40mm,产品重量约为0.248kg
二、刷机准备
1、所需硬件
N1 盒子一个、8G 以上 U 盘一个、USB 接口键盘一个、USB 鼠标一块、HDMI 晶晨短接神器(作用为线刷时短接,很便宜,海鲜市场有卖,如果没有可以拆机手动短接)、HDMI 接口显示器 / HDMI 接口电视一台、网线一根、HDMI 线一根、路由器、电脑。
2、所需软件
为方便使用,我已经将所需要的软件整理好,放到了谷歌云盘,大家可以下载后使用。
https://drive.google.com/drive/u/1/folders/1QUhpnzm1CvFHkUh1904EN7QFaJBag8Vb
Bash
1 2 3 4 5 6 7 1. 解压使用-斐讯T1、N1官方系统降级工具.zip 2. 解压使用-N1U盘启动.zip 3. USB_Burning_Tools_v2.0.7.2_build2.exe 4. win32diskimager-1.0.0-install.exe 5. N1_mod_by_webpad_v2.2_20180920.img.7z 6. Reboot to LibreELEC_1.1_Apkpure.apk 7.Armbian_24.5.0_amlogic_s905d_jammy_6.6.28_server_2024.04.25.img.gz
谷歌云盘里提供的 Armbian 固件 kernel BPF 模块默认已打开, 经我测试可使用 dae ,来自于 ophub 的 GitHub 项目,如果你更习惯于使用 Debian 固件,请使用如下链接自行下载。
https://github.com/ophub/amlogic-s9xxx-armbian/releases/
Armbian 是基于 Debian 和 Ubuntu 的 Linux 发行版,专门为 ARM 开发板设计。Armbian 的版本命名通常遵循其基于的 Debian 或 Ubuntu 发行版。Armbian 的这四个版本(Noble、Jammy、Bullseye 和 Bookworm)分别基于不同的 Debian 或 Ubuntu 版本:
Armbian Noble - 这是基于 Ubuntu 22.04 LTS (代号 “Jammy Jellyfish”) 的版本。Ubuntu 22.04 是一个长期支持版本,提供了五年的安全更新和支持。Armbian 对这个版本进行了针对 ARM 设备的优化和定制。
Armbian Jammy - 也是基于 Ubuntu 22.04 LTS 的版本。这个版本名可能与 Noble 重复或是对同一基础版本的另一种命名方式。
Armbian Bullseye - 这是基于 Debian 11 (代号 “Bullseye”) 的版本。Debian 11 提供了多种软件的最新稳定版,并享有 Debian 社区的广泛支持和安全维护。Debian 版本的 Armbian 通常更倾向于稳定性和兼容性。
Armbian Bookworm - 基于 Debian 12 (代号 “Bookworm”)。这是 Debian 的测试版本,在正式成为稳定版前,它会包含最新的软件更新。使用这个版本的 Armbian 可能提供一些最前沿的特性,但也可能不如稳定版那么稳定。
三、降级关键分区
玩 N1 的朋友都知道第一步要对 N1 进行降级,但是却很少有人说明为什么要进行降级,降级针对盒子做了什么事情,这里我参考“if年少有为”在自己博文中的描述,希望大家能明白其中原理。
连接 HDMI、网线、电源后会进入斐讯自带的安卓系统,安卓系统的标准启动过程如下:
bootloader:斐讯针对该盒子硬件实现的类似 BIOS 的东西,它负责硬件的初始化,最终引导操作系统。
boot 分区:放着安卓操作系统的内核文件,由 bootloader 唤起,也就实现了进入操作系统的效果。
recovery 分区:类似于 WinPE 的东西,如果 boot 分区挂了,则可以通过 Recovery 方式进入一个临时的操作系统,然后恢复 boot 分区(类似于 ghost 做系统)。
问题就在于,bootloader 是斐讯针对盒子定制的,它设置了一些限制,比如:
所以呢,恩山论坛的 webpad 大佬,修改了斐讯的 bootloader,我们要做的就是把 webpad 大佬修改后的 bootloader 覆盖到盒子里面去,这个过程被称之为 N1 降级,一台 N1 这辈子只需要做一次降级操作,后续不需要再研究这个问题了。当然如果你的盒子到手时就已经被刷成了 TV 等其他系统,这一步骤就可以跳过了。
1、将 N1 接上网线,HDMI 线接显示器,离 HDMI 口远的那个 USB 口接一个鼠标。连上网以后,等个五分钟左右,待其自动升级到最新版,中间可能会多次重启升级,直到不再升级为准。否则如果正在刷的过程中 N1 重启可能会有点麻烦。记录一下屏幕上显示的 IP ,下一步会用到。接下来用鼠标点击屏幕上版本号的地方 4 次,屏幕中间会显示一下“开启adb”。
2、下载“1.解压使用-斐讯T1、N1官方系统降级工具.zip”文件并解压,运行 onekey 目录中的 run.bat 批处理文件,按照提示输入 2 选择 N1 降级。
按照提示输入 N1 的 IP 地址。
按照提示按任意键开始降级。
四、制作 Armbian U 盘
1、在电脑上下载并安装“4.win32diskimager-1.0.0-install.exe”写盘工具软件,同时下载并解压镜像文件“7.Armbian_24.5.0_amlogic_s905d_jammy_6.6.28_server_2024.04.25.img.gz”备用。
2、运行 win32diskimager 软件,如下图所示,选择上一步解压好的镜像文件,插入 U 盘后将镜像文件写入 U 盘。
有关网上流传的 armbian 5.77 版本的最稳定,meson-gxl-s905d-phicomm-n1-xiangsm.dtb 可以解决系统过高等问题,经过我的实际测试,目前 ophub 编译的镜像已经解决了上述问题,大家可以放心使用。
五、在 Android 系统里引导从 U 盘启动
1、下载“2.解压使用-N1U盘启动.zip”并解压,将显示器和键盘接入 N1 盒子,执行“N1-ADBU盘启动(傻瓜包)”文件夹下的“U盘启动.bat”,输入 N1 盒子的 IP 地址,地址可以从路由器管理界面看到。
2、N1 的两个 USB 口,离 HDMI口 远的接 USB 键盘,另一个接 U 盘。HDMI 线接显示器,加电冷启动。屏幕会先出现启动画面,之后会进入 U 盘的 armbian 系统。这里如果多次重复,还是只能进入 Android 的 recovery 模式,那么请换个 U 盘试试,基本这里不成功都是因为 U 盘兼容性问题导致的,建议最好使用 USB 2.0 的 U 盘。
3、进入 armbian 以后用 root:1234 登录,会被要求修改密码和创建普通用户,不想创建用户可以 Ctrl+C 跳过,完成以后会留在一个 shell 里面。
六、将 U 盘中的 Armbian 系统写入 N1 盒子的 EMMC
接上一步,使用 root 用户及密码登录 armbian 后,在 bash 下执行 armbian-install 命令。按照提示输入“101”,选择文件系统输入“1”(选择ext4),这时开始将 U 盘中的 armbian 系统 copy 到 emmc ,整个过程大概需要 2~3 分钟,等待文件 copy 完后,按照提示输入 poweroff 命令关机,然后移除盒子上的 U 盘,给盒子重新加电后会使用 emmc 进入 armbian 系统,到此刷机工作就完成了。
注意:在将 armbian 写入 emmc 成功后,引导的先后顺序为先从 U 盘引导进入系统,没有插 U 盘时才使用 emmc 引导进入系统,所有如果你要使用 emmc 中的系统,请务必拔掉 U 盘。
Bash
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 root@armbian:~# armbian-install [ STEPS ] Installing Armbian to internal eMMC... [ STEPS ] Checking dependencies... [ INFO ] Dependency check completed. Proceeding installation... [ STEPS ] Initializing the environment... [ INFO ] Use mainline u-boot: [ no ] [ INFO ] Use ampart tool: [ yes ] [ INFO ] Show all devices: [ no ] [ INFO ] Internal eMMC : [ /dev/mmcblk2 ] [ STEPS ] Start selecting device... -------------------------------------------------------------------------------------- ID SOC MODEL DTB -------------------------------------------------------------------------------------- 101 s905d Phicomm-N1 meson-gxl-s905d-phicomm-n1.dtb 102 s905d Phicomm-N1(DMA-thresh) meson-gxl-s905d-phicomm-n1-thresh.dtb 103 s905d MECOOL-KI-Pro meson-gxl-s905d-mecool-ki-pro.dtb 104 s905d SML-5442TW meson-gxl-s905d-sml5442tw.dtb 105 s905x HG680P meson-gxl-s905x-p212.dtb 106 s905x B860H meson-gxl-s905x-b860h.dtb 107 s905x Nexbox-a95x meson-gxl-s905x-nexbox-a95x.dtb 108 s905x TX9 meson-gxl-s905x-tx9.dtb 109 s905x T95,XiaoMI-3S,X96 meson-gxl-s905x-p212.dtb 110 s905x TBee meson-gxl-s905x-tbee.dtb -------------------------------------------------------------------------------------- 111 s905w TX3-Mini meson-gxl-s905w-tx3-mini.dtb 112 s905w W95 meson-gxl-s905w-p281.dtb 113 s905w X96-Mini meson-gxl-s905w-x96-mini.dtb 114 s905w X96W,FunTV,MXQ-Pro-4K meson-gxl-s905w-x96w.dtb 115 s905l UNT402A,M201-S,MiBox-4C meson-gxl-s905l3b-m302a.dtb 116 s905l MG101,Mibox-4 meson-gxl-s905l-venz-v10.dtb 117 s905l2 MGV2000,MGV3000,M301A,CM201-1 meson-gxl-s905l2-x7-5g.dtb 118 s905l2 E900v21E,MGV2000-K,e900v21d meson-gxl-s905l2-x7-5g.dtb 119 s905l2 Wojia-TV-IPBS9505 meson-gxl-s905l2-ipbs9505.dtb 120 s905l3 CM311-1,HG680-LC,M401A,UNT402A meson-gxl-s905l2-x7-5g.dtb -------------------------------------------------------------------------------------- 121 s905l3 CM211-1,M411A,B860AV3.2-M meson-gxl-s905l3b-m302a.dtb 122 s905l3 UNT400G1,E900V22D-2 meson-gxl-s905l2-x7-5g.dtb 123 s905l3b E900V22D,TY1608 meson-gxl-s905l2-x7-5g.dtb 124 s905l3b E900V21E,E900V22E,MGV2000 meson-gxl-s905l3b-e900v22e.dtb 125 s905l3b M302A,M304A,CM201-1,CM211-1,CM311-1 meson-gxl-s905l3b-m302a.dtb 126 s905l3b UNT403A meson-gxl-s905l3b-m302a.dtb 127 s905l3b RG020ET-CA meson-gxl-s905l3b-e900v22e.dtb 128 s905l3b IP103H,TY1608,BV310,B860AV-2.1M meson-gxl-s905l3b-m302a.dtb 129 s905lb BesTV-R3300L,SumaVision-Q7,MG101 meson-gxl-s905x-p212.dtb 130 s905lb Q96-mini meson-gxl-s905x-p212.dtb -------------------------------------------------------------------------------------- 131 s905mb S65 meson-gxl-s905x-p212.dtb 0 Other Customize Enter-custom-dtb-name -------------------------------------------------------------------------------------- [ OPTIONS ] Please Input ID: 101 [ INFO ] Input Box ID: [ 101 ] [ INFO ] Model Name: [ Phicomm-N1 ] [ INFO ] FDTFILE: [ meson-gxl-s905d-phicomm-n1.dtb ] [ INFO ] MAINLINE_UBOOT: [ ] [ INFO ] BOOTLOADER_IMG: [ u-boot-2015-phicomm-n1.bin ] [ INFO ] UBOOT_OVERLOAD: [ u-boot-n1.bin ] [ INFO ] NEED_OVERLOAD: [ no ] [ STEPS ] Which type of filesystem do you want for your root? ----------------------------------------------- ID TYPE ----------------------------------------------- 1 ext4 2 btrfs ----------------------------------------------- [ OPTIONS ] Please Input ID (1/2): 1 [ INFO ] Input Type ID: [ 1 ] [ INFO ] Type of filesystem: [ ext4 ] [ STEPS ] Partitioning eMMC... [ INFO ] Start backing up the default bootloader. 4+0 records in 4+0 records out 4194304 bytes (4.2 MB, 4.0 MiB) copied, 2.19803 s, 1.9 MB/s [ INFO ] Delete the existing [ 2 ] partitions. [ INFO ] Start create MBR and partittion. [ INFO ] 02. Write Android bootloader: [ u-boot-2015-phicomm-n1.bin ] 444+0 records in 444+0 records out 444 bytes copied, 0.00781175 s, 56.8 kB/s 8191+0 records in 8191+0 records out 4193792 bytes (4.2 MB, 4.0 MiB) copied, 0.450597 s, 9.3 MB/s [ STEPS ] Processing BOOTFS partition... [ INFO ] Formatting BOOTFS partition... mkfs.fat 4.2 (2021-01-31) [ INFO ] Copying BOOTFS ... [ INFO ] Update the [ uEnv.txt ] file. [ STEPS ] Start processing the rootfs partition... [ INFO ] Formatting ROOTFS ... /dev/mmcblk2p2 contains a btrfs file system labelled 'ROOTFS_EMMC' [ INFO ] Copying ROOTFS ... [ INFO ] Copying [ etc ] ... [ INFO ] Copying [ home ] ... [ INFO ] Copying [ opt ] ... [ INFO ] Copying [ root ] ... [ INFO ] Copying [ selinux ] ... [ INFO ] Copying [ srv ] ... [ INFO ] Copying [ usr ] ... [ INFO ] Copying [ var ] ... [ INFO ] Generate the new fstab file. [ INFO ] Update the relevant parameters. [ SUCCESS ] Installation successful. Run [ poweroff ], remove the installation media then re-insert the power supply to boot new system.
七、Armbian 的简单设置
1、将 armbian 的更新源修改为清华源
Armbian 操作系统默认使用的官方更新源(ports.ubuntu.com)服务器在海外,连接速度和国内镜像源比起来较慢,建议修改为清华大学提供的镜像源。
Bash
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 mv /etc/apt/sources.list /etc/apt/sources.list.bakcat > /etc/apt/sources.list <<EOF deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse #deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse #deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse #deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse #deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse EOF mv /etc/apt/sources.list.d/armbian.list /etc/apt/sources.list.d/armbian.list.bakcat > /etc/apt/sources.list.d/armbian.list <<EOF deb [signed-by=/usr/share/keyrings/armbian.gpg] https://mirrors.tuna.tsinghua.edu.cn/armbian jammy main jammy-utils jammy-desktop EOF
更新本机已安装的软件包
Bash
1 2 apt update apt upgrade -y
2、修改时区
Bash
1 2 3 4 5 6 7 8 9 date -R tzselectcp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimedate -R
3、为 N1 分配静态 IP 地址
参考以下示例,为 N1 分配同网段的静态 IP 地址,hwaddress 参数用于固定 Mac 地址,Mac 地址可以在盒子背后的标签上找到,或者使用 ifconfig 命令查询。修改完成后使用 reboot 命令重启盒子,然后使用新的 IP 地址连接盒子。
Bash
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 systemctl stop NetworkManager systemctl disable NetworkManagermv /etc/network/interfaces /etc/network/interfaces.bakcat > /etc/network/interfaces <<EOF source /etc/network/interfaces.d/* auto lo iface lo inet loopback auto eth0 allow-hotplug eth0 iface eth0 inet static hwaddress 88:88:88:88:88:88 address 192.168.0.2 netmask 255.255.255.0 gateway 192.168.0.1 iface eth0 inet6 auto EOF reboot
安装xfce桌面
1 apt -get install xfce4 xfce4-goodies xorg dbus-x11 x11 -xserver-utils
ubuntu的安装gdm3,
debian安装lightdm。
安装vnc server
1 apt-get install tightvncserver
中文字体
1 apt-get install fonts-wqy-zenhei
开机自启动vncviewer
在root或者普通用户下执行
1 /usr/bin/vncserver -depth 24 -geometry 1920 x1080 :1
设置密码
然后修改启动脚本
添加以下内容
1 2 3 su - root -c "/usr/bin/vncserver -depth 24 -geometry 1920x1080 :1 &" 或 su - yourusername -c "/usr/bin/vncserver -depth 24 -geometry 1920x1080 :1 &"
Phicomm-n1刷入后lightdm无法正常启动
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 cat << '_EOF_' > /etc/X11 /xorg.conf.d/02 -dietpi-aml-s905.confSection "OutputClass" Identifier "Amlogic" MatchDriver "meson" Driver "modesetting" Option "PrimaryGPU" "true" EndSection Section "Screen" Identifier "Default Screen" Device "Meson" Monitor "foo" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1920x1080" "1440x900" "1280x720" "1280x1024" "1280x960" "1024x768" "800x600" "640x480" "720x400" EndSubSectionEndSection _EOF_
如果还不行的话:
1 2 3 apt install accountsservice mkdir /var/lib/lightdm/data chmod 775 /var/lib/lightdm/data
八、从 Armbian 刷到 Android 固件
1、在电脑上下载并安装“3.USB_Burning_Tools_v2.0.7.2_build2.exe”烧录软件,同时下载并解压 android 固件“5.N1_mod_by_webpad_v2.2_20180920.img.7z”备用。
2、运行 USB_Burning_tools 软件,如下图所示,选择 android 固件后,去掉“擦除flash”和“擦除bootloader”前的对勾,然后点击“开始”按钮,将晶晨短接神器插在 HDMI 接口上,USB双公头线插到靠近 HDMI 接口的 USB 口上,然后给 N1 盒子接上电源,这时软件就识别到了 N1 盒子,开始写入固件。
3、大约等待 3~4 分钟,会提示“100%:烧录成功”,这时先点击“停止”按钮,关闭烧录软件,然后拔掉 USB 线,拔掉电源后再次开机就进入了 android 系统。
参考:https://www.hicairo.com/post/75.html
Armbian安装xfce桌面及其他的一些设置
https://github.com/ophub/amlogic-s9xxx-armbian/releases/