ophub/fnnas README

上次拉取更新 2026-03-09 15:02:24 CST 拉取自 Github

为保证页面的相对可用性,本页面已将部分url内容进行了替换

FnNAS

查看英文说明 | View English description

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 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 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, AIO-3399B, AIO-3399C, AIO-3399C(AI), TaraM, NanoPC-T4, Firefly-Core-3399-JD4 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 fnnas
rk3566 Panther-X2, JP-TvBox, LCKFB-Taishan-Pi, WXY-OEC-turbo-4g, Station-M2, Orange-Pi-3B fnnas
rk3528 HLink-H28K, Radxa-E20C, H96-Max-M2 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 fnnas
💡 Tip
目前 s905 的盒子只能在 TF/SD/USB 中使用,其他型号的盒子支持写入 eMMC 中使用。更多信息请查阅 ✅支持的设备列表说明。可以参考说明文档中 12.15 章节的方法添加新的支持设备

安装及升级 FnNAS 的相关说明

选择和你的盒子型号对应的 FnNAS 系统,不同设备的使用方法查看对应的说明。

  1. Rockchip 平台的安装方法请查看说明文档中的 第 8 章节 的介绍,和 Armbian 的安装方法相同。

  2. AmlogicAllwinner 平台,使用 Rufus 或者 balenaEtcher 等工具将系统写入 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 系统 SSH 终端 → 输入命令:

sudo -i
fnnas-update
可选参数 默认值 选项 说明
-r ophub/fnnas / 设置从 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 来恢复系统内核。

如果你在使用 docker 等内存占用较大的应用时,觉得当前盒子的内存不够使用,可以创建 swap 虚拟内存分区,将磁盘空间的一定容量虚拟成内存来使用。下面命令输入参数的单位是 GB,默认为 1

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

fnnas-swap 1

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

fnnas-openvfd

根据 LED 屏显示控制说明 进行调试。

支持在 TF/SD/USB 中对盒子的 eMMC 分区进行备份/恢复。建议您在全新的盒子里安装 FnNAS 系统前,先对当前盒子自带的安卓 TV 系统进行备份,以便日后在恢复电视系统等情况下使用。

请从 TF/SD/USB 启动 FnNAS 系统 → 输入命令:

fnnas-ddbr

根据提示输入 b 进行系统备份,输入 r 进行系统恢复。

❗ Important
除此之外也可以通过线刷的方法,将安卓系统刷入 eMMC 中,安卓系统的下载镜像可在 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 命令即可生成指定 board 的 FnNAS 镜像文件。生成的文件保存在 ~/fnnas/out 目录里。

参数 含义 说明
-b Board 指定需要编译的设备代号。例如,-b s905x3 表示编译代号为 s905x3 的设备,多个设备可用下划线连接,如 -b s905x3_s905d。特殊值:all 表示编译全部设备,first50 表示编译设备库中的前 50 个,range50_100 表示从第 51 个开始至第 100 个,range100_150 表示从第 101 个开始至第 150 个,last20 表示最后的 20 个。设备代号列表详见 model_database.conf 中的 BOARD 配置项。默认值为 all
-r KernelRepo 指定 github.com 内核仓库的 /。默认值:ophub/fnnas
-k Kernel 指定 kernel 名称,如 -k 6.12.63 。多个内核使用 _ 进行连接,如 -k 6.12.63_6.18.3
-a AutoKernel 设置是否自动采用同系列最新版本内核。当为 true 时,将自动在内核库中查找在 -k 中指定的内核如 6.12.63 的同系列是否有更新的版本,如有 6.12.63 之后的最新版本时,将自动更换为最新版。设置为 false 时将编译指定版本内核。默认值:true
-s Size 对系统的镜像分区大小(单位:MiB)进行设置,只设置 ROOTFS 分区大小时可以只指定一个数值,例如: -s 6144。需要同时设置 BOOTFSROOTFS 分区大小时,使用 / 对两个数值进行连接,例如: -s 512/6144。默认值:512/6144
-e RootfsExpand 设置系统根分区自动扩容大小(单位:GiB)。默认值:16
-n BuilderName 设置 FnNAS 系统构建者签名。设置签名时请勿包含空格。默认值:

使用 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

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

参数 默认值 说明
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 内核仓库的 /,功能参考 -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
参数 含义 说明
-r debs_repo 指定 github.com 的 debs 内核仓库的 /。默认值: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

使用 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 内核仓库的 /,功能参考 -r
debs_install none 设置是否安装官方提供的不同平台的 debs 格式内核包。功能参考 -e
dtbs_install true 设置是否补充安装官方没有的 dtbs 文件。功能参考 -t
dtbs_version 6.12.y 设置内核版本号。功能参考 -k

飞牛镜像和内核使用的输出参数一样。

上传到 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-boot, kernelfirmware 等资源主要从 unifreq/openwrt_packit 的项目中复制而来,部分文件由用户在 amlogic-s9xxx-armbian / amlogic-s9xxx-openwrt / fnnas / luci-app-amlogic / kernel / u-boot 等项目的 PullIssues 中提供分享。为感谢这些开拓者和分享者,我统一在 CONTRIBUTORS.md 中进行了记录。再次感谢大家为盒子赋予了新的生命和意义。

其他发行版

链接

License

The fnnas © OPHUB is licensed under GPL-2.0