Skip to content

Latest commit

 

History

History
299 lines (219 loc) · 38.4 KB

File metadata and controls

299 lines (219 loc) · 38.4 KB
FnNAS

English Instructions | 中文说明

FnNAS 是一款基于最新 Linux 内核(Debian 发行版)深度定制的操作系统。它具备出色的硬件兼容能力,全面支持主流 x86 及 Arm64 设备,支持用户自主组建 NAS 并灵活扩展外部存储。现在,您可以轻松将电视盒子的 Android TV 系统替换为 FnNAS,将其打造为一台功能强大的私有数据存储服务器。

本项目得益于众多 贡献者 的持续贡献,并在 FnNAS 官方技术专家的指导下,为搭载 AmlogicRockchipAllwinner 芯片的电视盒子构建了 Arm64 架构适配的 FnNAS 系统。构建版本完整继承了官方系统的全部功能,支持写入 eMMC 启动以及内核在线更新。最新固件请前往 Releases 页面下载。欢迎 Fork 本项目进行个性化定制。如果本项目对您有所帮助,请点击仓库右上角的 Star ⭐ 以示支持!

FnNAS 固件默认信息

系统名称 默认账号 默认密码 SSH 端口 IP 地址
🛜 FnNAS.OS 自定义 自定义 22 从路由器获取 IP

支持的设备列表

⬆️ 各平台(晶晨/瑞芯微/全志)型号均按 SoC 性能由高至低排列。

SoC 设备 内核
a311d Khadas-VIM3, WXY-OES fnnas
s922x Beelink-GT-King, Beelink-GT-King-Pro, Ugoos-AM6-Plus, ODROID-N2, X88-King, Ali-CT2000, WXY-OES-Plus fnnas
s905x3 X96-Max+, HK1-Box, Vontar-X3, H96-Max-X3, Ugoos-X3, TX3(QZ), TX3(BZ), X96-Air, X96-Max+_A100, A95X-F3-Air, Tencent-Aurora-3Pro(s905x3-b), X96-Max+Q1, X96-Max+100W, X96-Max+_2101, Infinity-B32, Whale, X88-Pro-X3, X99-Max-Plus, Transpeed-X3-Plus, TOX1 fnnas
s905x2 X96Max-4G, X96Max-2G, MECOOL-KM3-4G, Tanix-Tx5-Max, A95X-F2, HG680-FJ fnnas
s905l3a E900V22C/D, CM311-1a-YST, M401A, M411A, UNT403A, UNT413A, ZTE-B863AV3.2-M, CM311-1a-CH, IP112H, B863AV3.1-M2 fnnas
s905l3b CM201-1, CM211-1, CM311-1, E900V21D, E900V22D, E900V21E, E900V22E, M302A/M304A, Hisense-IP103H, TY1608, TY1608, MGV2000, B860AV-2.1M, UNT403A, RG020ET-CA, M411A fnnas
s905l3 CM211-1, CM311-1, HG680-LC, M401A, UNT400G1, UNT400G, UNT402A, ZXV10-BV310, M411A, ZXV10-B860AV3.2-M, ZXV10-B860AV2.1-U, E900V22D-2, CM201-1-6-YS, IP108H, M301A fnnas
s912 Tanix-TX8-Max, Tanix-TX9-Pro(3G), Tanix-TX9-Pro(2G), Tanix-TX92, Tanix-TX9S, Nexbox-A1, Nexbox-A95X-A2, A95X, H96-Pro-Plus, VORKE-Z6-Plus, Mecool-M8S-PRO-L, Vontar-X92, T95Z-Plus, Octopus-Planet, Phicomm-T1, TX3-Mini, OneCloudPro-V1.1_V1.2 fnnas
s905d MECOOL-KI-Pro, Phicomm-N1, SML-5442TW fnnas
s905x HG680P, B860H, TBee-Box, T95, TX9, XiaoMI-3S, X96, Nexbox-a95x, BTV9 fnnas
s905mb S65 fnnas
s905l UNT402A, M201-S, MiBox-4, MiBox-4C, MG101, E900V21C, IP108H-53u1m, Tencent-Aurora-1s, B860AV2.1, B860AV2.1U, HM201 fnnas
s905l2 MGV2000, MGV2000-K, MGV3000, Wojia-TV-IPBS9505, M301A, E900v21E, e900v21d, CM201-1, IP108H, MGV2000-CW fnnas
s905lb Q96-mini, BesTV-R3300L, SumaVision-Q7, MG101, s65, IPBS9505 fnnas
s905w X96-Mini, TX3-Mini, W95, X96W/FunTV, MXQ-Pro-4K, MeCool-m8s-pro-W fnnas
s905 Beelink-Mini-MX-2G, Sunvell-T95M, MXQ-Pro+4K, SumaVision-Q5 fnnas
rk3588(s) Radxa-Rock5B, Radxa-Rock5C, Orange-Pi-5-Plus, Beelink-IPC-R, HLink-H88K, HLink-H88K-V3, NanoPC-T6, Smart-Am60, DC-A588, Orangepi-5B, CM3588-NAS, Rock-5-ITX, LZ-D3588, Boca-tcn100, Boca-tcn200, Firefly-ITX-3588J fnnas
rk3576 NanoPi-m5 fnnas
rk3399 EAIDK-610, King3399, TN3399, Kylin3399, ZCube1-Max, CRRC, SMART-AM40, SW799, ZYSJ, DG-3399, DLFR100, Emb3531, Leez-p710, tvi3315a, xiaobao, Fine3399, Firefly-RK3399, LX-R3S, Hugsun-x99, Tb-ls3399, Hisense-hs530r, Tpm312, ZK-rk39a, YSKJ, Fmx1-Pro, Fmx1-Pro-B, Sv-33a6x, Sv-33a6x(VPU), AIO-3399B, AIO-3399C, AIO-3399C(AI), TaraM, NanoPC-T4, Firefly-Core-3399-JD4, GEA-6319 fnnas
rk3568 FastRhino-R66S, FastRhino-R68S, Radxa-E25, NanoPi-R5S, NanoPi-R5C, HLink-H66K, HLink-H68K, HLink-H69K, Seewo-sv21, Mrkaio-m68s, Swan1-w28, Ruisen-box, DG-TN3568, Alark35-3500, MMBox-Anas3035, Wocyber-A3, Photonicat, NSY-G16-Plus, NSY-G68-Plus, BDY-G18-Pro, Gzpeite-P01, LZ-K3568, BDKJ-One, Station-P2, Lyt-t68m fnnas
rk3566 Panther-X2, JP-TvBox, LCKFB-Taishan-Pi, WXY-OEC-turbo-4g, Station-M2, Orange-Pi-3B, X88Pro20 fnnas
rk3528 HLink-H28K, Radxa-E20C, H96-Max-M2, HK1-Rbox-K8S, HT2, CD1000 fnnas
rk3328 BeikeYun, Chainedbox-L1-Pro, Station-M1, Bqeel-MVR9, Renegade/Firefly fnnas
rk3318 RX3318-Box fnnas
h6 Vplus, Tanix-TX6, TQC-A01 fnnas
h618 OrangePi-Zero3, H618-DevBoard, X98H fnnas

Tip

目前 s905 系列的盒子仅支持从 TF/SD/USB 启动使用,其他型号的盒子均支持写入 eMMC 运行。更多信息请查阅 ✅支持的设备列表说明。如需添加新设备,可参考说明文档 12.15 章节的方法添加新的支持设备

安装及升级 FnNAS 的相关说明

选择与您的设备型号对应的 FnNAS 系统,不同设备的使用方法请参阅相应说明。

  • 安装 FnNAS 到 eMMC

  1. Rockchip 平台的安装方法请参阅说明文档 第 8 章节 的介绍,安装流程与 Armbian 相同。

  2. AmlogicAllwinner 平台,使用 RufusbalenaEtcher 等工具将系统镜像写入 USB 设备,然后将写好的 USB 插入盒子。在路由器管理界面中查找新上线的名为 debian 的设备,获取其 IP 地址(例如:192.168.1.15),然后通过浏览器访问 http://192.168.1.15:5666 进入飞牛账号创建界面。创建自定义账号后登录飞牛系统,在 系统设置SSH 中开启 SSH 功能,随后使用 SSH 客户端连接系统终端,执行以下命令:

sudo -i
fnnas-install
可选参数 默认值 选项 说明
-m no yes/no 使用主线 u-boot
-a yes yes/no 使用 ampart 分区表调整工具
-l no yes/no 显示全部设备列表

举例:fnnas-install -m yes

Tip

分区选项说明:当磁盘可用空间大于 16GiB 时,支持自定义系统根分区大小(默认 16GiB)。

在系统重装过程中,脚本会自动检测 eMMC 上的分区结构。若发现存在个人数据分区(P3),分区菜单将激活选项 3。选择该选项可严格保留当前分区表布局,从而确保 P3 分区内的数据不被覆盖。 系统安装完毕后,您可以在飞牛系统的 存储空间管理 界面中直接挂载并使用该分区。

选项 说明
1 系统分区(Rootfs) 限制为 16GiB
2 [默认] 系统分区扩容至全盘 (100%)。
3 继承当前系统分区大小 (保留 P3 分区的个人数据)。
≥16 输入数字 (GiB) 以自定义系统分区大小。
  • 更新 FnNAS 内核

登录 FnNAS 系统 SSH 终端 → 输入命令:

sudo -i
fnnas-update
可选参数 默认值 选项 说明
-r ophub/fnnas <owner>/<repo> 设置从 github.com 下载内核的仓库
-k 最新版 内核版本 设置内核版本
-b yes yes/no 更新内核时自动备份当前系统使用的内核
-m no yes/no 使用主线 u-boot
-s 无/磁盘名称 [SOS] 恢复 eMMC/NVMe/sdX 等磁盘中的系统内核
-h 查看使用帮助

举例: fnnas-update -k 6.12.63

通过 -k 参数指定内核版本号时,可以准确指定具体版本号,例如:fnnas-update -k 6.12.63,也可以指定内核系列前缀,例如:fnnas-update -k 6.12,指定系列前缀时将自动采用该系列的最新版本。

更新内核时会自动备份当前系统使用的内核,备份文件存储在 /ddbr/backup 目录下,保留最近 3 个历史版本的内核。若新内核运行不稳定,可随时回滚至备份的内核版本。若内核更新导致系统无法启动,可通过 fnnas-update -s 恢复系统内核。

  • 为 FnNAS 创建 swap

当运行 docker 等内存占用较大的应用时,如果设备内存不足,可创建 swap 分区,将部分磁盘空间用作虚拟内存。以下命令的参数单位为 GB,默认值为 1

登录 FnNAS 系统 SSH 终端 → 执行以下命令:

fnnas-swap 1
  • 控制 LED 显示

登录 FnNAS 系统 SSH 终端 → 执行以下命令:

fnnas-openvfd

请参阅 LED 屏显示控制说明 进行配置。

  • 备份/还原 eMMC 原系统

支持通过 TF/SD/USB 启动系统后对盒子的 eMMC 进行备份与恢复。建议在全新设备上安装 FnNAS 前,先备份原厂 Android TV 系统,以便后续需要时恢复原系统。

请从 TF/SD/USB 启动 FnNAS 系统 → 执行以下命令:

fnnas-ddbr

根据提示输入 b 执行备份,输入 r 执行恢复。

Important

此外,也可通过线刷方式将 Android 系统写入 eMMC。Android 系统镜像可在 Tools 中获取。

  • 同步最新服务脚本

将系统中的所有服务脚本更新至最新版本,请登录 FnNAS 系统 SSH 终端 → 执行以下命令:

fnnas-sync

本地化打包

  1. 克隆仓库到本地 git clone --depth 1 https://github.com/ophub/fnnas.git

  2. 安装必要的依赖包(以 Ubuntu 24.04 为例)

sudo apt-get update -y
sudo apt-get full-upgrade -y
# For Ubuntu-24.04
sudo apt-get install -y $(cat make-fnnas/script/ubuntu2404-make-fnnas-depends)
  1. 进入 ~/fnnas 根目录,创建 fnnas-arm64 文件夹,并将 FnNAS 镜像文件(如 fnos_arm_1.0.0_258.img)放入 ~/fnnas/fnnas-arm64 目录。

  2. ~/fnnas 根目录下运行 sudo ./renas -b s905x3 -k 6.12.63 命令,即可生成指定设备的 FnNAS 镜像文件。生成的文件存储在 ~/fnnas/out 目录下。

  • 本地化打包镜像参数说明

参数 含义 说明
-b Board 指定目标设备代号。您可以指定具体设备进行编译(如 -b s905x3),或使用下划线连接多个设备代号同批编译(如 -b s905x3_s905d)。本参数还支持通过特殊关键字进行批量编译:all 表示编译全部设备,first50 表示编译设备库中的前 50 个,range50_100 表示编译从第 51 个至第 100 个设备(range100_150 同理),last20 表示最后 20 个。此外,支持按硬件平台(amlogicrockchipallwinner)进行分类编译,直接输入平台名称即可编译对应的所有镜像,例如 -b amlogic;若在平台名称后附加数值,则可指定编译该平台列表中的特定范围,例如 -b amlogic50 表示编译 Amlogic 平台支持列表中的前 50 个设备,-b amlogic50_100 表示编译从第 51 个至第 100 个设备。具体的设备代号支持列表,请详见 model_database.conf 中的 BOARD 配置项。默认值:all
-r KernelRepo 指定 github.com 内核仓库的 <owner>/<repo>。默认值:ophub/fnnas
-k Kernel 指定 kernel 名称,如 -k 6.12.63 。多个内核使用 _ 进行连接,如 -k 6.12.63_6.18.3
-a AutoKernel 设置是否自动采用同系列最新版本内核。当为 true 时,将自动在内核库中检查 -k 指定的内核(如 6.12.63)同系列是否存在更新版本,若存在则自动切换至最新版本。设置为 false 时将编译指定版本的内核。默认值:true
-s Size 设置系统镜像分区大小(单位:MiB)。仅设置 ROOTFS 分区大小时可只指定一个数值,例如:-s 6144。需同时设置 BOOTFSROOTFS 分区大小时,使用 / 连接两个数值,例如:-s 512/6144。默认值:512/6144
-e RootfsExpand 设置系统根分区自动扩容大小(单位:GiB)。默认值:16
-n BuilderName 设置 FnNAS 系统构建者签名。签名中请勿包含空格。默认值:
  • sudo ./renas : 使用默认配置,对全部型号的电视盒子进行打包。
  • sudo ./renas -b s905x3 -k 6.12.63 : 推荐使用。使用默认配置打包指定内核。
  • sudo ./renas -b s905x3 -k 6.12.y : 使用默认配置打包,内核自动采用 6.12.y 系列的最新版。
  • sudo ./renas -b s905x3_s905d -k 6.12.63_6.18.3 : 使用默认配置,同时打包多个内核。使用 _ 连接多个内核参数。
  • sudo ./renas -b s905x3 -k 6.12.63 -s 6144 : 使用默认配置,指定单个内核和单个型号进行打包,系统分区大小设定为 6144 MiB。
  • sudo ./renas -b s905x3_s905d : 使用默认配置,对多个型号的电视盒子进行全部内核打包,使用 _ 连接多个型号。
  • sudo ./renas -k 6.12.63_6.18.3 : 使用默认配置,指定多个内核,对全部型号电视盒子进行打包,内核参数使用 _ 连接。
  • sudo ./renas -k 6.12.63_6.18.3 -a true : 使用默认配置,指定多个内核,对全部型号电视盒子进行打包,内核参数使用 _ 连接。自动升级至同系列最新内核。
  • sudo ./renas -b s905x3 -e 32 : 使用默认配置,打包 s905x3 固件,系统根分区自动扩容大小设定为 32 GiB。

使用 GitHub Actions 进行镜像编译

  1. Workflows 配置文件位于 .github/workflows 目录下。

  2. Actions 页面选择 Build FnNAS Image,即可使用 build-fnnas-image.yml 进行编译。点击 Run workflow 按钮启动编译。在选项面板中,可通过 Custom fnnas image download url 设置 FnNAS 镜像文件的下载地址,例如:https://fnnas.com/.../fnos_arm_1.0.0_258.img.xz 等网络地址。若未设置,将默认使用 fnnas_base_image 中存储的官方镜像进行编译。

- name: Build FnNAS Image
  uses: ophub/fnnas@main
  with:
    build_target: fnnas
    fnnas_path: fnnas/*.img.xz
    fnnas_board: s905d_s905x3_s922x_s905x
    fnnas_kernel: 6.12.y
    rootfs_expand: 16
  • GitHub Actions 制作 fnnas 镜像参数说明

相关参数与本地打包命令相对应,请参考上面的说明。

参数 默认值 说明
fnnas_path 设置官方 Arm64 原版 FnNAS 镜像文件的路径。支持使用当前工作流中的文件路径(如 fnnas/*.img.xz),也支持网络下载地址(如 https://fnnas.com/.../fnos_arm_1.0.0_258.img.xz
fnnas_board all 设置打包盒子的 board ,功能参考 -b
kernel_repo ophub/fnnas 指定 github.com 内核仓库的 <owner>/<repo>,功能参考 -r
fnnas_kernel 6.12.y 设置内核 版本,功能参考 -k
auto_kernel true 设置是否自动采用同系列最新版本内核,功能参考 -a
fnnas_size 512/6144 设置系统 BOOTFS 和 ROOTFS 分区的大小,功能参考 -s
rootfs_expand 16 设置系统根分区自动扩容大小,功能参考 -e
builder_name 设置 FnNAS 系统构建者签名,功能参考 -n
  • 本地化制作 fnnas 内核参数说明

参数 含义 说明
-r debs_repo 指定 github.com 上 debs 内核仓库的 <owner>/<repo>。默认值:ophub/fnnas
-e debs_install 设置是否安装官方提供的不同平台 debs 格式内核包。可选值:amlogic / rockchip / allwinner / none。默认值:none
-t dtbs_install 设置是否补充安装官方缺失的 dtbs 文件。可选值:true / false。默认值:true
-k dtbs_version 指定 kernel 名称,如 -k 6.12.63。默认值:6.12.y
  • sudo ./rekernel : 使用默认配置。不安装 debs 内核包也不补充 dtbs 文件,直接对当前 FnNAS 镜像中的内核进行打包。
  • sudo ./rekernel -e amlogic : 先将 amlogic 的 debs 内核包安装到当前系统,然后进行内核打包。
  • sudo ./rekernel -t true : 先将官方缺失的 dtbs 文件补充安装到当前系统,然后进行内核打包。
  • sudo ./rekernel -e allwinner -t false : 先将 allwinner 的 debs 内核包安装到当前系统,不补充安装 dtbs 文件,然后进行内核打包。

使用 GitHub Actions 编译 fnnas 内核

飞牛专用内核的编译方法详见 build-fnnas-kernel.yml 的说明。

- name: Build FnNAS Kernel
  uses: ophub/fnnas@main
  with:
    build_target: kernel
    fnnas_path: fnnas/*.img
    debs_repo: ophub/fnnas
    dtbs_install: true
    dtbs_version: 6.12.y

相关参数与本地打包命令相对应,请参考上面的说明。

参数 默认值 说明
fnnas_path 设置官方 Arm64 原版 FnNAS 镜像文件的路径。
debs_repo ophub/fnnas 指定 github.com 的 debs 内核仓库的 <owner>/<repo>,功能参考 -r
debs_install none 设置是否安装官方提供的不同平台的 debs 格式内核包。功能参考 -e
dtbs_install true 设置是否补充安装官方没有的 dtbs 文件。功能参考 -t
dtbs_version 6.12.y 设置内核版本号。功能参考 -k
  • GitHub Actions 输出变量说明

飞牛镜像和内核使用相同的输出参数。

上传至 Releases 需要为仓库设置 Workflow 读写权限,详见使用说明

参数 默认值 说明
${{ env.PACKAGED_OUTPUTPATH }} fnnas/out FnNAS 系统及内核文件输出路径
${{ env.PACKAGED_OUTPUTDATE }} 04.13.1058 打包日期(月.日.时分)
${{ env.PACKAGED_STATUS }} success 打包状态:success / failure

FnNAS 贡献者

首先感谢 coolsnowwolfunifreq 等专家对本项目适配 FnNAS 提供的技术指导,同时感谢众多 贡献者 对 Armbian/OpenWrt 系统的支持。本项目在适配 FnNAS 的过程中直接继承和使用了这些项目的资源与技术方案。感谢各位的贡献与分享,让我们能够在更多设备上运行 FnNAS 系统。

本系统所使用的 u-bootkernelfirmware 等资源主要来源于 unifreq/openwrt_packit 项目,部分文件由用户通过 amlogic-s9xxx-armbian / amlogic-s9xxx-openwrt / fnnas / luci-app-amlogic / kernel / u-boot 等项目的 PullIssues 贡献分享。为感谢这些先行者和分享者,已统一在 CONTRIBUTORS.md 中进行记录。再次感谢大家为设备赋予了新的生命与价值。

其他发行版

  • amlogic-s9xxx-armbian 项目提供了适用于盒子的 Armbian 系统,在支持 FnNAS 的相关设备上同样适用。
  • amlogic-s9xxx-openwrt 项目提供了适用于盒子的 OpenWrt 系统,在支持 FnNAS 的相关设备上同样适用。
  • unifreq 为晶晨、瑞芯微和全志等更多盒子制作了 OpenWrt 系统,是盒子社区的标杆项目,推荐使用。
  • cooip-jm 在其 wiki 中分享了许多关于 Armbian、OpenWrt、LXC、Docker、AdGuard 等应用的使用方法,推荐参考学习。

链接

License

The fnnas © OPHUB is licensed under GPL-2.0