https://github.com/ophub/fnnas
Supports running FnNAS on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588, rk3568, rk3399, rk3328, h6, etc.
https://github.com/ophub/fnnas
a311d allwinner amlogic arm64 debian fnnas fnos nas rk3399 rk3528 rk3566 rk3568 rk3588 rockchip s905d s905x3 s912 s922x
Last synced: about 2 months ago
JSON representation
Supports running FnNAS on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588, rk3568, rk3399, rk3328, h6, etc.
- Host: GitHub
- URL: https://github.com/ophub/fnnas
- Owner: ophub
- License: gpl-2.0
- Created: 2026-01-06T13:44:30.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-04-10T04:44:21.000Z (2 months ago)
- Last Synced: 2026-04-10T06:33:51.715Z (2 months ago)
- Topics: a311d, allwinner, amlogic, arm64, debian, fnnas, fnos, nas, rk3399, rk3528, rk3566, rk3568, rk3588, rockchip, s905d, s905x3, s912, s922x
- Language: Shell
- Homepage:
- Size: 9.02 MB
- Stars: 2,898
- Watchers: 16
- Forks: 522
- Open Issues: 434
-
Metadata Files:
- Readme: README.cn.md
- License: LICENSE
Awesome Lists containing this project
README
[English Instructions](README.md) | [中文说明](README.cn.md)
[FnNAS](https://fnnas.com/) 是一款基于最新 Linux 内核(Debian 发行版)深度定制的操作系统。它具备出色的硬件兼容能力,全面支持主流 x86 及 Arm64 设备,支持用户自主组建 NAS 并灵活扩展外部存储。现在,您可以轻松将电视盒子的 Android TV 系统替换为 FnNAS,将其打造为一台功能强大的私有数据存储服务器。
本项目得益于众多 [贡献者](https://github.com/ophub/amlogic-s9xxx-armbian/blob/main/CONTRIBUTORS.md) 的持续贡献,并在 FnNAS 官方技术专家的指导下,为搭载 `Amlogic`、`Rockchip` 和 `Allwinner` 芯片的电视盒子构建了 Arm64 架构适配的 FnNAS 系统。构建版本完整继承了官方系统的全部功能,支持写入 eMMC 启动以及内核在线更新。最新固件请前往 [Releases](https://github.com/ophub/fnnas/releases) 页面下载。欢迎 `Fork` 本项目进行个性化定制。如果本项目对您有所帮助,请点击仓库右上角的 `Star` ⭐ 以示支持!
## FnNAS 固件默认信息
| 系统名称 | 默认账号 | 默认密码 | SSH 端口 | IP 地址 |
| -------------- | ------- | ------- | ------- | ------- |
| 🛜 [FnNAS.OS](https://github.com/ophub/fnnas/releases) | 自定义 | 自定义 | 22 | 从路由器获取 IP |
## 支持的设备列表
⬆️ 各平台(晶晨/瑞芯微/全志)型号均按 SoC 性能由高至低排列。
| SoC | [设备](https://github.com/ophub/fnnas/releases) | [内核](https://github.com/ophub/fnnas) |
| ---- | ---- | ---- |
| a311d | [Khadas-VIM3](https://github.com/ophub/amlogic-s9xxx-openwrt/issues/99), [WXY-OES](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2666) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| s922x | [Beelink-GT-King](https://github.com/ophub/amlogic-s9xxx-armbian/issues/370), [Beelink-GT-King-Pro](https://github.com/ophub/amlogic-s9xxx-armbian/issues/707), [Ugoos-AM6-Plus](https://github.com/ophub/amlogic-s9xxx-openwrt/issues/464), [ODROID-N2](https://github.com/ophub/amlogic-s9xxx-openwrt/issues/201), [X88-King](https://github.com/ophub/amlogic-s9xxx-armbian/issues/988), [Ali-CT2000](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1150), [WXY-OES-Plus](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3029) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| s905x3 | [X96-Max+](https://github.com/ophub/amlogic-s9xxx-armbian/issues/351), [HK1-Box](https://github.com/ophub/amlogic-s9xxx-armbian/issues/414), [Vontar-X3](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1006), [H96-Max-X3](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1250), [Ugoos-X3](https://github.com/ophub/amlogic-s9xxx-armbian/issues/782), [TX3(QZ)](https://github.com/ophub/amlogic-s9xxx-armbian/issues/644), [TX3(BZ)](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1077), [X96-Air](https://github.com/ophub/amlogic-s9xxx-armbian/issues/366), [X96-Max+_A100](https://github.com/ophub/amlogic-s9xxx-armbian/issues/779), [A95X-F3-Air](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2282), [Tencent-Aurora-3Pro(s905x3-b)](https://github.com/ophub/amlogic-s9xxx-armbian/issues/506), [X96-Max+Q1](https://github.com/ophub/amlogic-s9xxx-armbian/issues/788), [X96-Max+100W](https://github.com/ophub/amlogic-s9xxx-armbian/issues/909), [X96-Max+_2101](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1086), [Infinity-B32](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1181), [Whale](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1166), [X88-Pro-X3](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1621), [X99-Max-Plus](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1621), [Transpeed-X3-Plus](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1621), [TOX1](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3441) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| s905x2 | [X96Max-4G](https://github.com/ophub/amlogic-s9xxx-armbian/issues/453), [X96Max-2G](https://github.com/ophub/amlogic-s9xxx-armbian/issues/95), [MECOOL-KM3-4G](https://github.com/ophub/amlogic-s9xxx-armbian/issues/79), [Tanix-Tx5-Max](https://github.com/ophub/amlogic-s9xxx-openwrt/issues/351), [A95X-F2](https://github.com/ophub/amlogic-s9xxx-armbian/issues/851), [HG680-FJ](https://github.com/ophub/amlogic-s9xxx-armbian/pull/3089) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| s905l3a | [E900V22C/D](https://github.com/Calmact/e900v22c), [CM311-1a-YST](https://github.com/ophub/amlogic-s9xxx-armbian/issues/517), [M401A](https://github.com/ophub/amlogic-s9xxx-armbian/issues/732), [M411A](https://github.com/ophub/amlogic-s9xxx-armbian/issues/517), [UNT403A](https://github.com/ophub/amlogic-s9xxx-armbian/issues/970), [UNT413A](https://github.com/ophub/amlogic-s9xxx-armbian/issues/970), [ZTE-B863AV3.2-M](https://github.com/ophub/amlogic-s9xxx-armbian/issues/741), [CM311-1a-CH](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1508), [IP112H](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1520), [B863AV3.1-M2](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2292) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| s905l3b | [CM201-1](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2209), [CM211-1](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1180), [CM311-1](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1268), [E900V21D](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2447), [E900V22D](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1256), [E900V21E](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1514), [E900V22E](https://github.com/ophub/amlogic-s9xxx-armbian/issues/939), [M302A/M304A](https://github.com/ophub/amlogic-s9xxx-armbian/pull/615), [Hisense-IP103H](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1154), [TY1608](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1332), [TY1608](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1568), [MGV2000](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1613), [B860AV-2.1M](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1598), [UNT403A](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1712), [RG020ET-CA](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1860), [M411A](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3272) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| s905l3 | [CM211-1](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1318), [CM311-1](https://github.com/ophub/amlogic-s9xxx-armbian/issues/763), [HG680-LC](https://github.com/ophub/amlogic-s9xxx-armbian/issues/978), [M401A](https://github.com/ophub/amlogic-s9xxx-armbian/issues/921#issuecomment-1453143251), [UNT400G1](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1277), [UNT400G](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2625), [UNT402A](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1481), [ZXV10-BV310](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1512), [M411A](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1817), [ZXV10-B860AV3.2-M](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2012), [ZXV10-B860AV2.1-U](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2273), [E900V22D-2](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2058), [CM201-1-6-YS](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2539), [IP108H](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2539), [M301A](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3055) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| s912 | [Tanix-TX8-Max](https://github.com/ophub/amlogic-s9xxx-armbian/issues/500), [Tanix-TX9-Pro(3G)](https://github.com/ophub/amlogic-s9xxx-armbian/issues/315), [Tanix-TX9-Pro(2G)](https://github.com/ophub/amlogic-s9xxx-armbian/issues/740), [Tanix-TX92](https://github.com/ophub/amlogic-s9xxx-armbian/issues/72#issuecomment-1012790770), [Tanix-TX9S](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3282), [Nexbox-A1](https://github.com/ophub/amlogic-s9xxx-openwrt/issues/260), [Nexbox-A95X-A2](https://www.cafago.com/en/p-v2979eu-2g.html), [A95X](https://github.com/ophub/amlogic-s9xxx-openwrt/issues/260), [H96-Pro-Plus](https://github.com/ophub/amlogic-s9xxx-armbian/issues/72#issuecomment-1013071513), [VORKE-Z6-Plus](https://github.com/ophub/amlogic-s9xxx-armbian/issues/72), [Mecool-M8S-PRO-L](https://github.com/ophub/amlogic-s9xxx-armbian/issues/158), [Vontar-X92](https://github.com/ophub/amlogic-s9xxx-armbian/issues/525), [T95Z-Plus](https://github.com/ophub/amlogic-s9xxx-armbian/issues/668), [Octopus-Planet](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1020), [Phicomm-T1](https://github.com/ophub/amlogic-s9xxx-armbian/issues/522), [TX3-Mini](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1882), [OneCloudPro-V1.1_V1.2](https://github.com/ophub/amlogic-s9xxx-armbian/pull/2241) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| s905d | [MECOOL-KI-Pro](https://github.com/ophub/amlogic-s9xxx-armbian/issues/59), [Phicomm-N1](https://github.com/ophub/amlogic-s9xxx-armbian/issues/925), [SML-5442TW](https://github.com/ophub/amlogic-s9xxx-openwrt/issues/451) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| s905x | [HG680P](https://github.com/ophub/amlogic-s9xxx-armbian/issues/262), [B860H](https://github.com/ophub/amlogic-s9xxx-armbian/issues/60), [TBee-Box](https://github.com/ophub/amlogic-s9xxx-armbian/issues/98), [T95](https://github.com/ophub/amlogic-s9xxx-armbian/issues/285), [TX9](https://github.com/ophub/amlogic-s9xxx-armbian/issues/645), [XiaoMI-3S](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1405), [X96](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1480), [Nexbox-a95x](https://github.com/ophub/amlogic-s9xxx-armbian/pull/1714), [BTV9](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3256) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| s905mb | [S65](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1644) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| s905l | [UNT402A](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1481), [M201-S](https://github.com/ophub/amlogic-s9xxx-openwrt/issues/444), [MiBox-4](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2101), [MiBox-4C](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1826), [MG101](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1912), [E900V21C](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2341), [IP108H-53u1m](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2357), [Tencent-Aurora-1s](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2465), [B860AV2.1](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2491), [B860AV2.1U](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2499), [HM201](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2585) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| s905l2 | [MGV2000](https://github.com/ophub/amlogic-s9xxx-armbian/issues/648), [MGV2000-K](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1839), [MGV3000](https://github.com/ophub/amlogic-s9xxx-armbian/issues/921), [Wojia-TV-IPBS9505](https://github.com/ophub/amlogic-s9xxx-armbian/issues/648), [M301A](https://github.com/ophub/amlogic-s9xxx-openwrt/issues/405), [E900v21E](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1278), [e900v21d](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2127), [CM201-1](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2188), [IP108H](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2598), [MGV2000-CW](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2616) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| s905lb | [Q96-mini](https://github.com/ophub/amlogic-s9xxx-armbian/issues/734), [BesTV-R3300L](https://github.com/ophub/amlogic-s9xxx-armbian/pull/993), [SumaVision-Q7](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1190), [MG101](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1570), [s65](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2128), [IPBS9505](https://github.com/ophub/amlogic-s9xxx-armbian/pull/993#issuecomment-2276804591) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| s905w | [X96-Mini](https://github.com/ophub/amlogic-s9xxx-armbian/issues/621), [TX3-Mini](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1062), [W95](https://github.com/ophub/amlogic-s9xxx-armbian/issues/570), [X96W/FunTV](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1044), [MXQ-Pro-4K](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1140), [MeCool-m8s-pro-W](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3245) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| s905 | [Beelink-Mini-MX-2G](https://github.com/ophub/amlogic-s9xxx-armbian/issues/127), [Sunvell-T95M](https://github.com/ophub/amlogic-s9xxx-openwrt/issues/337), [MXQ-Pro+4K](https://github.com/ophub/amlogic-s9xxx-armbian/issues/715), [SumaVision-Q5](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1175) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| rk3588(s) | [Radxa-Rock5B](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1240), [Radxa-Rock5C](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2324), [Orange-Pi-5-Plus](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2400), [Beelink-IPC-R](https://github.com/ophub/amlogic-s9xxx-openwrt/issues/415), [HLink-H88K](https://github.com/ophub/amlogic-s9xxx-armbian/pull/1726), [HLink-H88K-V3](https://github.com/ophub/amlogic-s9xxx-armbian/pull/1726), [NanoPC-T6](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2453), [Smart-Am60](https://github.com/ophub/amlogic-s9xxx-armbian/pull/2817), [DC-A588](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2988), [Orangepi-5B](https://github.com/ophub/amlogic-s9xxx-armbian/pull/3052), [CM3588-NAS](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3306), [Rock-5-ITX](https://github.com/ophub/fnnas/issues/355), [LZ-D3588](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3328), [Boca-tcn100](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3437), [Boca-tcn200](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3461), [Firefly-ITX-3588J](https://github.com/ophub/fnnas/issues/194) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| rk3576 | [NanoPi-m5](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3207) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| rk3399 | [EAIDK-610](https://github.com/ophub/amlogic-s9xxx-armbian/pull/991), [King3399](https://github.com/ophub/amlogic-s9xxx-armbian/pull/1080), [TN3399](https://github.com/ophub/amlogic-s9xxx-armbian/pull/1094), [Kylin3399](https://github.com/ophub/amlogic-s9xxx-armbian/pull/1132), [ZCube1-Max](https://github.com/ophub/amlogic-s9xxx-armbian/pull/1247), [CRRC](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1280), [SMART-AM40](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1317), [SW799](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1326), [ZYSJ](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1380), [DG-3399](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1492), [DLFR100](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1522), [Emb3531](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1549), [Leez-p710](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1609), [tvi3315a](https://github.com/ophub/amlogic-s9xxx-armbian/pull/1687), [xiaobao](https://github.com/ophub/amlogic-s9xxx-armbian/pull/1698), [Fine3399](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1790), [Firefly-RK3399](https://github.com/ophub/amlogic-s9xxx-openwrt/issues/491), [LX-R3S](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2026), [Hugsun-x99](https://github.com/ophub/amlogic-s9xxx-armbian/pull/2050), [Tb-ls3399](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2146), [Hisense-hs530r](https://github.com/ophub/amlogic-s9xxx-openwrt/issues/572), [Tpm312](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2403), [ZK-rk39a](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2446), [YSKJ](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2673), [Fmx1-Pro](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2691), [Fmx1-Pro-B](https://github.com/ophub/fnnas/issues/250), [Sv-33a6x](https://github.com/ophub/amlogic-s9xxx-openwrt/issues/748), [Sv-33a6x(VPU)](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3372), [AIO-3399B](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3185), [AIO-3399C](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3339), [AIO-3399C(AI)](https://github.com/ophub/fnnas/issues/108), [TaraM](https://github.com/ophub/u-boot/pull/28), [NanoPC-T4](https://github.com/ophub/u-boot/pull/30), [Firefly-Core-3399-JD4](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3354), [GEA-6319](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3383) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| rk3568 | [FastRhino-R66S](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1061), [FastRhino-R68S](https://github.com/ophub/amlogic-s9xxx-armbian/issues/774), [Radxa-E25](https://wiki.radxa.com/Rock3/CM/CM3I/E25), [NanoPi-R5S](https://github.com/ophub/amlogic-s9xxx-armbian/pull/1217), [NanoPi-R5C](https://github.com/ophub/amlogic-s9xxx-armbian/pull/1217), [HLink-H66K](https://github.com/ophub/amlogic-s9xxx-armbian/pull/1726), [HLink-H68K](https://github.com/ophub/amlogic-s9xxx-armbian/pull/1726), [HLink-H69K](https://github.com/ophub/amlogic-s9xxx-armbian/pull/1726), [Seewo-sv21](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2017), [Mrkaio-m68s](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2155), [Swan1-w28](https://github.com/ophub/amlogic-s9xxx-armbian/pull/2407), [Ruisen-box](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2508), [DG-TN3568](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2661), [Alark35-3500](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2911), [MMBox-Anas3035](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2995), [Wocyber-A3](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2978), [Photonicat](https://github.com/ophub/amlogic-s9xxx-openwrt/pull/827), [NSY-G16-Plus](https://github.com/ophub/amlogic-s9xxx-openwrt/issues/845), [NSY-G68-Plus](https://github.com/ophub/amlogic-s9xxx-openwrt/issues/845), [BDY-G18-Pro](https://github.com/ophub/amlogic-s9xxx-openwrt/issues/847), [Gzpeite-P01](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3221), [LZ-K3568](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3304), [BDKJ-One](https://github.com/ophub/u-boot/pull/29), [Station-P2](https://github.com/ophub/fnnas/pull/350), [Lyt-t68m](https://github.com/ophub/fnnas/issues/435) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| rk3566 | [Panther-X2](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1319), [JP-TvBox](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1867), [LCKFB-Taishan-Pi](https://github.com/ophub/amlogic-s9xxx-armbian/pull/2538), [WXY-OEC-turbo-4g](https://github.com/ophub/amlogic-s9xxx-armbian/pull/2736), [Station-M2](https://github.com/ophub/amlogic-s9xxx-openwrt/issues/744), [Orange-Pi-3B](https://github.com/ophub/fnnas/issues/261), [X88Pro20](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3443) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| rk3528 | [HLink-H28K](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1726), [Radxa-E20C](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2324), [H96-Max-M2](https://github.com/ophub/amlogic-s9xxx-armbian/issues/2404), [HK1-Rbox-K8S](https://github.com/ophub/fnnas/issues/464), [HT2](https://github.com/ophub/fnnas/issues/464), [CD1000](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3302) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| rk3328 | [BeikeYun](https://github.com/ophub/amlogic-s9xxx-armbian/issues/852), [Chainedbox-L1-Pro](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1680), [Station-M1](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1313), [Bqeel-MVR9](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1313), [Renegade/Firefly](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1861) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| rk3318 | [RX3318-Box](https://github.com/ophub/amlogic-s9xxx-armbian/pull/2129) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| h6 | [Vplus](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1100), [Tanix-TX6](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1120), [TQC-A01](https://github.com/ophub/amlogic-s9xxx-armbian/pull/1638) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| h618 | [OrangePi-Zero3](https://github.com/ophub/fnnas/issues/158), [H618-DevBoard(PCDN)](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3479), [X98H](https://github.com/ophub/amlogic-s9xxx-armbian/issues/3434) | [fnnas](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
> [!TIP]
> 目前 [s905 系列的盒子](https://github.com/ophub/amlogic-s9xxx-armbian/issues/1173)仅支持从 `TF/SD/USB` 启动使用,其他型号的盒子均支持写入 `eMMC` 运行。更多信息请查阅 [✅支持的设备列表说明](make-fnnas/fnnas-files/common-files/etc/model_database.conf)。如需添加新设备,可参考说明文档 12.15 章节的方法[添加新的支持设备](https://github.com/ophub/amlogic-s9xxx-armbian/blob/main/documents/README.cn.md#1215-如何添加新的支持设备)。
## 安装及升级 FnNAS 的相关说明
选择与您的设备型号对应的 FnNAS 系统,不同设备的使用方法请参阅相应说明。
- ### 安装 FnNAS 到 eMMC
1. `Rockchip` 平台的安装方法请参阅说明文档 [第 8 章节](https://github.com/ophub/amlogic-s9xxx-armbian/blob/main/documents/README.cn.md) 的介绍,安装流程与 Armbian 相同。
2. `Amlogic` 和 `Allwinner` 平台,使用 [Rufus](https://rufus.ie/) 或 [balenaEtcher](https://www.balena.io/etcher/) 等工具将系统镜像写入 USB 设备,然后将写好的 USB 插入盒子。在路由器管理界面中查找新上线的名为 debian 的设备,获取其 IP 地址(例如:`192.168.1.15`),然后通过浏览器访问 http://192.168.1.15:5666 进入飞牛账号创建界面。创建自定义账号后登录飞牛系统,在 `系统设置` → `SSH` 中开启 SSH 功能,随后使用 SSH 客户端连接系统终端,执行以下命令:
```shell
sudo -i
fnnas-install
```
| 可选参数 | 默认值 | 选项 | 说明 |
| ------- | ------- | ------ | -------------- |
| -m | no | yes/no | 使用主线 u-boot |
| -a | yes | yes/no | 使用 [ampart](https://github.com/7Ji/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 终端 → 输入命令:
```shell
sudo -i
fnnas-update
```
| 可选参数 | 默认值 | 选项 | 说明 |
| -------- | ------------ | ------------- | -------------------------------- |
| -r | ophub/fnnas | `/` | 设置从 github.com 下载内核的仓库 |
| -k | 最新版 | 内核版本 | 设置[内核版本](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) |
| -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 终端 → 执行以下命令:
```shell
fnnas-swap 1
```
- ### 控制 LED 显示
登录 FnNAS 系统 SSH 终端 → 执行以下命令:
```shell
fnnas-openvfd
```
请参阅 [LED 屏显示控制说明](https://github.com/ophub/amlogic-s9xxx-armbian/blob/main/documents/led_screen_display_control.md) 进行配置。
- ### 备份/还原 eMMC 原系统
支持通过 `TF/SD/USB` 启动系统后对盒子的 `eMMC` 进行备份与恢复。建议在全新设备上安装 FnNAS 前,先备份原厂 Android TV 系统,以便后续需要时恢复原系统。
请从 `TF/SD/USB` 启动 FnNAS 系统 → 执行以下命令:
```shell
fnnas-ddbr
```
根据提示输入 `b` 执行备份,输入 `r` 执行恢复。
> [!IMPORTANT]
> 此外,也可通过线刷方式将 Android 系统写入 eMMC。Android 系统镜像可在 [Tools](https://github.com/ophub/kernel/releases/tag/tools) 中获取。
- ### 同步最新服务脚本
将系统中的所有服务脚本更新至最新版本,请登录 FnNAS 系统 SSH 终端 → 执行以下命令:
```shell
fnnas-sync
```
## 本地化打包
1. 克隆仓库到本地 `git clone --depth 1 https://github.com/ophub/fnnas.git`
2. 安装必要的依赖包(以 Ubuntu 24.04 为例)
```shell
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)
```
3. 进入 `~/fnnas` 根目录,创建 `fnnas-arm64` 文件夹,并将 FnNAS 镜像文件(如 `fnos_arm_1.0.0_258.img`)放入 `~/fnnas/fnnas-arm64` 目录。
4. 在 `~/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 个。此外,支持按硬件平台(`amlogic`、`rockchip`、`allwinner`)进行分类编译,直接输入平台名称即可编译对应的所有镜像,例如 `-b amlogic`;若在平台名称后附加数值,则可指定编译该平台列表中的特定范围,例如 `-b amlogic50` 表示编译 Amlogic 平台支持列表中的前 50 个设备,`-b amlogic50_100` 表示编译从第 51 个至第 100 个设备。具体的设备代号支持列表,请详见 [model_database.conf](make-fnnas/fnnas-files/common-files/etc/model_database.conf) 中的 `BOARD` 配置项。默认值:`all` |
| -r | KernelRepo | 指定 github.com 内核仓库的 `/`。默认值:`ophub/fnnas` |
| -k | Kernel | 指定 [kernel](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) 名称,如 `-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`。需同时设置 `BOOTFS` 和 `ROOTFS` 分区大小时,使用 / 连接两个数值,例如:`-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](.github/workflows) 目录下。
2. 在 [Actions](https://github.com/ophub/fnnas/actions) 页面选择 ***`Build FnNAS Image`***,即可使用 [build-fnnas-image.yml](.github/workflows/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](https://github.com/ophub/fnnas/releases/tag/fnnas_base_image) 中存储的官方镜像进行编译。
```yaml
- 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 内核仓库的 `/`,功能参考 `-r` |
| fnnas_kernel | 6.12.y | 设置内核 [版本](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas),功能参考 `-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 内核仓库的 `/`。默认值:`ophub/fnnas` |
| -e | debs_install | 设置是否安装官方提供的不同平台 debs 格式内核包。可选值:`amlogic` / `rockchip` / `allwinner` / `none`。默认值:`none` |
| -t | dtbs_install | 设置是否补充安装官方缺失的 dtbs 文件。可选值:`true` / `false`。默认值:`true` |
| -k | dtbs_version | 指定 [kernel](https://github.com/ophub/fnnas/releases/tag/kernel_fnnas) 名称,如 `-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](.github/workflows/build-fnnas-kernel.yml) 的说明。
```yaml
- 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` |
- ### GitHub Actions 输出变量说明
飞牛镜像和内核使用相同的输出参数。
上传至 `Releases` 需要为仓库设置 `Workflow 读写权限`,详见[使用说明](https://github.com/ophub/amlogic-s9xxx-armbian/blob/main/documents/README.cn.md#2-设置隐私变量-github_token)。
| 参数 | 默认值 | 说明 |
|----------------------------------|---------------|----------------------------|
| `${{ env.PACKAGED_OUTPUTPATH }}` | fnnas/out | FnNAS 系统及内核文件输出路径 |
| `${{ env.PACKAGED_OUTPUTDATE }}` | 04.13.1058 | 打包日期(月.日.时分) |
| `${{ env.PACKAGED_STATUS }}` | success | 打包状态:success / failure |
## FnNAS 贡献者
首先感谢 [coolsnowwolf](https://github.com/coolsnowwolf/lede) 和 [unifreq](https://github.com/unifreq/openwrt_packit) 等专家对本项目适配 FnNAS 提供的技术指导,同时感谢众多 [贡献者](https://github.com/ophub/amlogic-s9xxx-armbian/blob/main/CONTRIBUTORS.md) 对 Armbian/OpenWrt 系统的支持。本项目在适配 FnNAS 的过程中直接继承和使用了这些项目的资源与技术方案。感谢各位的贡献与分享,让我们能够在更多设备上运行 FnNAS 系统。
本系统所使用的 [u-boot](https://github.com/ophub/u-boot)、[kernel](https://github.com/ophub/kernel) 和 [firmware](https://github.com/ophub/firmware) 等资源主要来源于 [unifreq/openwrt_packit](https://github.com/unifreq/openwrt_packit) 项目,部分文件由用户通过 [amlogic-s9xxx-armbian](https://github.com/ophub/amlogic-s9xxx-armbian) / [amlogic-s9xxx-openwrt](https://github.com/ophub/amlogic-s9xxx-openwrt) / [fnnas](https://github.com/ophub/fnnas) / [luci-app-amlogic](https://github.com/ophub/luci-app-amlogic) / [kernel](https://github.com/ophub/kernel) / [u-boot](https://github.com/ophub/u-boot) 等项目的 [Pull](https://github.com/ophub/fnnas/pulls) 和 [Issues](https://github.com/ophub/fnnas/issues) 贡献分享。为感谢这些先行者和分享者,已统一在 [CONTRIBUTORS.md](https://github.com/ophub/amlogic-s9xxx-armbian/blob/main/CONTRIBUTORS.md) 中进行记录。再次感谢大家为设备赋予了新的生命与价值。
## 其他发行版
- [amlogic-s9xxx-armbian](https://github.com/ophub/amlogic-s9xxx-armbian) 项目提供了适用于盒子的 `Armbian` 系统,在支持 FnNAS 的相关设备上同样适用。
- [amlogic-s9xxx-openwrt](https://github.com/ophub/amlogic-s9xxx-openwrt) 项目提供了适用于盒子的 `OpenWrt` 系统,在支持 FnNAS 的相关设备上同样适用。
- [unifreq](https://github.com/unifreq/openwrt_packit) 为晶晨、瑞芯微和全志等更多盒子制作了 `OpenWrt` 系统,是盒子社区的标杆项目,推荐使用。
- [cooip-jm](https://github.com/cooip-jm) 在其 [wiki](https://github.com/cooip-jm/About-openwrt/wiki) 中分享了许多关于 Armbian、OpenWrt、LXC、Docker、AdGuard 等应用的使用方法,推荐参考学习。
## 链接
- [fnnas.com](https://fnnas.com)
- [unifreq](https://github.com/unifreq)
- [coolsnowwolf](https://github.com/coolsnowwolf/lede)
## License
The fnnas © OPHUB is licensed under [GPL-2.0](LICENSE)