logo

帮助中心

  • 从这里开始
  • 如何安装和初始化飞牛 fnOS?
  • 如何安装 App 并连接到飞牛 NAS?
  • 如何安装飞牛 TV 并连接到影视服务器?
  • 如何在虚拟机安装飞牛 fnOS?
  • 安装系统异常情况处理
  • 存储管理
  • 如何创建存储空间?
  • 硬盘会自动休眠吗?
  • 如何使用 SSD 缓存加速?
  • 飞牛影视
  • 如何安装飞牛影视和创建媒体库?
  • 如何为家人朋友开通影视账号?
  • Apple TV 上如何通过 Infuse 使用飞牛影视?
  • Apple TV 上如何通过 VidHub使用飞牛影视?
  • 创建媒体库时无法选择文件夹?
  • 电视直播 Web 端播放帮助
  • 相册
  • 如何备份手机照片?
  • 如何共享相册给设备内其他用户?
  • AI 相册功能说明
  • 纯血鸿蒙设备如何备份手机照片?
  • 如何将 Google Photos 导入到飞牛?
  • 网页相册播放视频画面黑屏但是有声音?
  • 远程访问
  • 如何远程访问到飞牛 NAS?
  • 如何管理 FN Conncet权益?
  • 系统设置
  • 如何创建新用户?
  • 如何使用无线网卡?
  • 关于蓝牙配网
  • 如何修改飞牛系统的端口?
  • 如何使用系统配置的备份还原功能?
  • 系统设置经常出现网络异常?
  • 如何启用账号双重验证(2FA)
  • 无法完成账号双重验证(2FA)?
  • 如何启用邮件通知服务
  • 文件管理
  • 如何将我的文件共享给其他用户?
  • 如何共享团队文件?
  • 文件权限如何设置和生效?
  • 如何创建文件的外部分享链接?
  • 文件共享协议
  • Windows 通过 WebDAV 挂载飞牛注意事项
  • Windows 通过 NFS 挂载飞牛注意事项
  • SMB 3 多通道生效条件
  • DLNA 支持的媒体文件格式
  • 虚拟机
  • 如何安装和使用虚拟机?
  • 如何使用虚拟机硬件直通?
  • 飞牛同步
  • 飞牛同步功能介绍
  • 如何使用按需同步
  • 常见使用问题说明
  • 备份
  • 加密备份功能介绍
  • iSCSI
  • iSCSI 名词介绍
  • iSCSI 基础功能介绍
  • 用户组配置说明
  • CHAP 配置说明
  • 常见使用问题说明
  • 飞牛素材库 Seek
  • 飞牛素材库 Seek 支持预览哪些格式?
  • 如何授权文件夹给飞牛素材库 Seek
  • 如何导入 Eagle 资源到飞牛素材库 Seek
  • 如何将评论导入到剪辑工具?
  • 如何通过 Seek 给客户分享审阅?
  • 如何管理多版本素材
  • 如何使用飞牛素材库 Seek 的 AI 搜索功能?
  • 如何自定义品牌展示?
  • 如何自定义飞牛素材库 Seek 的域名?
  • 如何添加资产水印?
  • 飞牛素材库 Seek 许可证相关问题
  • 硬件
  • 飞牛官方
  • 零刻×飞牛
  • AI & OpenClaw
  • 飞牛 OpenClaw 配置微信 ClawBot 教程
  • 飞牛 OpenClaw 配置钉钉机器人教程
  • 飞牛 OpenClaw 配置飞书机器人教程
  • 安全性
  • 如何设置和使用访问码?
  • 安全漏洞基本原则与测试规范
  • 安全漏洞报告处置规则
  • 安全漏洞报告书写模板
  • 安全披露
  • ARM 刷机
  • Rockchip 瑞芯微系列 eMMC USB 线刷教程
  • Rockchip 瑞芯微系列 TF 卡刷教程
  • Rockchip 设备从 NVMe 启动 fnOS:将 U-Boot 写入 SPI
  • Amlogic 利用 USB U盘刷机教程
  • 更多
  • 联系我们
  • 本地账号与云端账号的区别?
  • 管理员和普通用户权限的区别?
  • 飞牛 ARM 版本公测声明
  • 关于飞牛 fnOS 系统后续盈利说明
  • Rockchip 设备从 NVMe 启动 fnOS:将 U-Boot 写入 SPI

    本教程用于为受支持的 Rockchip 设备写入 SPI 启动固件,使设备能够从 NVMe 启动 fnOS。请先将 fnOS 安装到 NVMe;本文写入的 U-Boot 只负责引导,不会把 fnOS 安装到硬盘。

    重要: 写错固件、选错存储设备或在写入过程中断电,都可能导致设备无法启动。开始前请备份重要数据,并准备好该设备的 Maskrom/Recovery 操作方法。

    1. 确认设备型号

    在设备现有的 Linux 系统中运行:

    tr -d '\0' </proc/device-tree/model; echo
    tr '\0' '\n' </proc/device-tree/compatible
    

    将输出与下表核对。只有下表中的型号支持使用本教程提供的 U-Boot 写入 SPI,并从 NVMe 启动 fnOS。 型号不一致时不要尝试刷写;名称相近也不代表固件兼容。

    设备型号飞牛OS U-Boot 下载SHA-256
    ROCK 5 ITX下载ce16775346accdbeb6e14e128df5af6a66d8a9fc06199eef214bd81396ff1011
    Orange Pi 5 Plus下载17cb94f87b724fdf7945033cb05042afb0d70bd87cec0cbb82d3c7b8d02a87b3
    Orange Pi 3B下载4e9bca18e7fc1892aa02fd89c62e1961186b7be7e2d95bbb5daacf58978a5d3f
    NanoPi M5(UFS)下载d1c9769ce46a2537aa6bcb847b2687ddc3c41a8dee244c44f23616e8f90cdb96
    ROCK 5B Plus下载0e5bbfaae3ccdc40aa3b057ec71e9d40a83cf5c7d8b0e87da94b0d09aa6cb656
    NanoPi M5下载2225cd2aed512c508196d89ea0e93a8787aeb2b1e6f3ab5be27d42d3670b4b94
    HinLink HNAS下载0f4b7fe08fe74544c3c91923924cc96608695b230fded4434881d8f127cb332a
    ROCK 4D下载ae9338235d0e9baacc1176af21b6c5e964c99830f5010fba71a34dd8975d6390
    NanoPC T6下载eecff0a98277daa1b33ccc7f4f3c7e8eb7433d7a4277993a3abde4ac6cbedf82
    ROCK 4D(UFS)下载9cfeda0ef08b064a822420c36db7457be5d82209de1667ede60524a2ff89e82f
    ROCK 5B / 5B Plus / 5T 通用版下载08e35a6a0eae97a1ba017ca4f0221b56601fa5359542f2e970668579471648eb
    Orange Pi 5下载8e5756fc7fa990d0cc6c68b5c743da08092a2a0a09a06accc906ec824a83a5a2
    ROCK 5B下载cb0ff7a51fd53196be55951f3ae4a8f51c6ece3f18c3d0916c3543f4030b7dcb
    ROCK 5T下载20ce57b9325bdbf3be17f9033f24e35c57fbfbdad27a75d41458c83fae2fa6a0

    下载后将文件保存为 u-boot-rockchip-spi.bin。建议先确认文件不是下载失败产生的 HTML 页面:

    file u-boot-rockchip-spi.bin
    stat -c '%n: %s bytes' u-boot-rockchip-spi.bin
    

    接下来任选一种方式写入 SPI:使用电脑刷写,或者在设备当前运行的 Linux 系统中刷写。不要重复执行两种方式。

    2A. 通过电脑写入 SPI

    Linux:使用 rkdeveloptool

    准备以下文件:

    • 本教程中与设备型号完全对应的 u-boot-rockchip-spi.bin
    • 与设备 SoC 完全匹配、且支持 SPI NOR 的 Rockchip Loader(通常名为 MiniLoaderAll.bin*loader*.bin)。Loader 只用于初始化设备,不是要写入 SPI 的 U-Boot,不能跨 SoC 混用。

    先获取 rkdeveloptool 源码(例如 rockchip-linux/rkdeveloptool),在 Debian/Ubuntu 上进入源码目录后编译:

    sudo apt update
    sudo apt install -y build-essential autoconf automake libtool pkg-config \
      libusb-1.0-0-dev libudev-dev zlib1g-dev
    ./autogen.sh
    ./configure
    make -j"$(nproc)"
    
    1. 断开设备电源,按设备说明进入 Maskrom 模式,并通过 USB OTG/升级口连接电脑。

    2. 确认工具检测到设备,输出末尾应为 Maskrom

      sudo ./rkdeveloptool ld
      
    3. 将匹配的 Loader 临时下载到设备内存,使设备进入 Loader 模式:

      sudo ./rkdeveloptool db /path/to/MiniLoaderAll.bin
      sudo ./rkdeveloptool ld
      
    4. 切换目标存储为 SPI NOR。9 代表 SPINOR

      sudo ./rkdeveloptool cs 9
      sudo ./rkdeveloptool rfi
      

      cs 9 必须显示 Change Storage OK,并且 rfi 应显示合理的 SPI 容量。若切换失败,请立即停止,不要执行下一步。

    5. 从 SPI 起始位置写入对应的 U-Boot,然后重启设备:

      sudo ./rkdeveloptool wl 0 u-boot-rockchip-spi.bin
      sudo ./rkdeveloptool rd
      

    wl 成功完成前不要拔线或断电。这里的 0 是 SPI 的起始扇区,不是电脑上的磁盘编号。

    Windows:使用 RKDevTool 图形工具

    以下步骤以 RKDevTool_Release_v3.28 为例:

    1. 打开瑞芯微开发工具

      执行 RKDevTool_Release_v3.28\RKDevTool.exe,让设备进入 Maskrom 模式,再将设备的 USB OTG 接口连接到电脑。界面底部应显示“发现一个 MASKROM 设备”。

      • 如果设备有多个 USB 接口,请依次尝试,直到工具正确识别设备;也可以参考设备制造商的 Wiki 确认 USB OTG 接口。
      • 部分使用 Type-C 供电的设备会复用供电口作为 OTG 接口。如果其他 USB 接口均无法识别,请尝试将供电口连接到电脑。
    2. 配置烧录镜像

      ARM 刷机 - Rockchip 设备从 NVMe 启动 fnOS:将 U-Boot 写入 SPI - 配置烧录镜像操作截图

      • Loader:根据设备的实际芯片选择 Loader。工具所需的 Loader 均放在 Firmware 目录中。例如,RK3399 使用 .\Firmware\rk3399_loader_v1.30.130.bin,RK3588 使用 .\Firmware\rk3588_spl_loader_v1.10.112.bin。Loader 必须与设备 SoC 匹配。
      • System:选择与设备型号对应的 u-boot-rockchip-spi.bin,可以使用相对路径或绝对路径;然后在“存储”列选择 Flash。不同版本的工具也可能将其显示为 SPI 或类似名称。
      • 其余项目无需配置,也不要勾选。
    3. 烧录镜像

      勾选“强制按地址写”,然后点击“执行”。工具会自动开始烧录,并在烧录完成后自动重启设备。在工具显示烧录成功前,不要拔出 USB 线或断开设备电源。

      如果烧录失败,请先检查 Loader 是否与设备芯片匹配。也可以改用 RKDevTool_Release_v2.86,配置方法相同,但该版本不需要勾选“强制按地址写”。

    如果工具没有提供 Flash/SPI 存储选项,或显示的目标存储仍为 eMMC,请停止操作,不要点击“执行”。

    Windows 刷机工具也可参考 Rockchip 瑞芯微系列 eMMC USB 线刷教程 中的驱动与 RKDevTool 下载。

    2B. 在设备当前系统中写入 SPI

    这种方式适用于设备已经能从 SD 卡、eMMC 或其他介质启动 Linux,并且内核已将 SPI NOR 暴露为 /dev/mtdblock0 的情况。

    1. 下载与设备型号对应的 U-Boot。例如,下面以 ROCK 5B 为例;其他设备必须替换为表格中的对应地址:

      curl -fL --retry 3 \
        -o /tmp/u-boot-rockchip-spi.bin \
        https://help-static.fnnas.com/arm/uboot/rock-5b/u-boot-rockchip-spi.bin
      
    2. 确认 SPI 设备。/proc/mtd 中的 mtd0 必须明确对应 SPI NOR;若文件不存在、容量小于镜像,或无法确认用途,请停止:

      cat /proc/mtd
      ls -l /dev/mtd0 /dev/mtdblock0
      image_size=$(stat -c %s /tmp/u-boot-rockchip-spi.bin)
      flash_size=$(($(cat /sys/class/block/mtdblock0/size) * 512))
      printf 'image=%s bytes, spi=%s bytes\n' "$image_size" "$flash_size"
      test "$image_size" -le "$flash_size"
      
    3. 备份当前 SPI 内容。请把备份复制到另一台电脑或其他不会被本次操作影响的存储介质:

      sudo dd if=/dev/mtdblock0 of="$HOME/spi-backup.bin" \
        bs=1M status=progress
      sync
      
    4. 写入并校验。整个过程必须保持稳定供电:

      sudo dd if=/tmp/u-boot-rockchip-spi.bin of=/dev/mtdblock0 \
        bs=1M conv=fsync,notrunc status=progress
      sync
      sudo cmp -n "$(stat -c %s /tmp/u-boot-rockchip-spi.bin)" \
        /tmp/u-boot-rockchip-spi.bin /dev/mtdblock0
      

    cmp 没有输出且退出码为 0 表示写入内容一致:

    echo $?
    sudo reboot
    

    3. 验证从 NVMe 启动

    重启后登录 fnOS,确认根文件系统所在设备:

    findmnt -no SOURCE /
    lsblk -o NAME,TYPE,SIZE,FSTYPE,MOUNTPOINTS,MODEL
    

    NVMe 根设备通常显示为 /dev/nvme0n1p...。应以 findmnt 的实际输出为准。

    如果设备无法启动,请先断电,移除 NVMe 后重试;仍无法恢复时,进入 Maskrom 模式,使用此前备份或设备厂商提供的恢复固件还原 SPI。

    此文章对您是否有帮助?