专业术语

  • dt — 设备树(Device Tree)
  • dts — 设备树源码(Device Tree Source),一种 ASCII 文本格式,用于描述硬件布局
  • dtc — 设备树编译器(Device Tree Compiler),将源码文件转换为二进制文件
  • dtb — 设备树二进制文件(Device Tree Blob),由引导加载程序读入内存供内核解析

DSM 的设备树

近年来 Synology 新发布的机型已基本全面采用设备树架构。相比传统方式,设备树模型下磁盘序号的管理更加直观。但在 4.x 内核版本中,HBA 扩展卡的兼容性仍是一个需要注意的问题。

工具集

项目提供了多平台的 DTC 编译器(Windows x64、ARM、AArch64、i686、x86_64),可通过 GitHub Releases 下载。

自定义 DTS 文件

引导程序会根据实际硬件动态生成配置文件。安装系统后,操作系统会在 /etc/model.dtb 保留一份备份。以下是两种获取和编辑 DTS 文件的方法。

1. 获取当前的 DTS 文件

场景 A:系统尚未安装

通过 Telnet 连接到系统,运行以下命令将配置文件上传到临时文件服务,然后通过链接下载:

curl -sSL --insecure -w 'n' --upload-file /addons/model.dts https://transfer.sh
Telnet session
Upload result
Download link

场景 B:系统已安装

打开终端,运行以下脚本来下载编译器、解压、反编译备份文件并上传结果:

sudo -i
curl -kL https://github.com/RROrg/rr/files/14824625/dtc_x86_64.gz -o ~/dtc_x86_64.gz
gzip -dc ~/dtc_x86_64.gz >~/dtc
chmod +x ~/dtc
~/dtc -I dtb -O dts /etc/model.dtb >model.dts
curl -sSL --insecure -w 'n' --upload-file ~/model.dts https://transfer.sh
Terminal operation

2. 编辑 DTS 文件

使用以下命令获取存储设备信息:

SATA
cat /sys/block/sata*/device/syno_block_info

NVMe
cat /sys/block/nvme*/device/syno_block_info

Block info output

根据获取到的信息,手动为空闲的硬盘位补充配置。

3. 使用 DTS 文件

将修改后的 DTS 文件应用到你的引导配置中,完成设备树的自定义过程。

Apply DTS
注意事项

DT 型号目前不支持 HBA 扩展卡。编辑 DTS 文件时请仔细核对每个盘位对应的 PCIE 路径,错误的配置可能导致磁盘无法正确识别。