我是稍息,今天给大脚带来一个铁威马家用arm架构的nas,f2-212,对标某晖ds223j
一、简介
2023年底,铁威马退出了新升级的F2-212,取代原来的双盘位F2-210,从配置和外壳进行了全新设计
与上一代相比,F2-212采用了性能更强悍的ARM V8.2 Cortex-A55 64位 1.7 GHz四核处理器瑞昱 1619B 处理器,内置浮点运算单元与NEON SIMD引擎,1GB DDR4,视频DSP硬件加速,具有更强劲的4K视频编解码能力,兼容 uPnP / DLNA 协议,搭配铁威马“多媒体服务器”或者第三方多媒体服务器(Emby、Plex),可以将视频串流到各种多媒体设备,适合应用于家庭文档备份与多媒体娱乐。
支持安装两个 3.5 英寸硬盘,搭载最新的 TOS 5 系统。接口包括一个千兆网卡和两个 USB 接口。
新款 F2-212 NAS 采用全新硬盘支架设计接口,而且比上一代更加安静。最大支持22TB的硬盘,总容量可达44TB。
rtd1619B集成1.6T的npu,与常见的RK3568对比如下
二、拆机
1.仅需取消后侧面板靠近主板侧两个螺丝
2.按图示轻退机箱侧面板,可以取下侧面板
3.主板图和有关说明
-
机器由主板、led小板、背板和硬盘笼组成
-
主板背面没有主要原件,硬盘笼为金属结构
-
小板和主办靠排线连接,两个板子均靠硬盘笼固定
取下主板四个螺丝反转后看到主板正面
-
主板较为简单,因为soc集成度极高,集成了cpu、gpu、npu、网卡、sata、usb等几乎所有外设,是标准的soc片上系统
-
搭配两片ddr4内存组成1G内存
-
搭配spi nor flash作为系统引导基本存储,存放uboot、内核、ramdisk,其它与群晖一样内核模块和标准rootfs都放在硬盘
-
主板上仅有电源供电等基础芯片
-
TTL标注了GND TX RX VCC,方便调试,默认波特率460800(可更改,群晖就是115200)
-
风扇采用标准四线风扇,支持调速和转速检测
三、软件机制及运行ds223J的试验
(一)DS223J的启动和更新原理及存储结构
有了移植rtd129x的ds218的经验可知:
-
所有arm群晖都是spi启动
-
spi除了uboot,还有kernel、ramdisk、dtb、vendor必不可少 uboot是引导程序,kernel是内核,ramdisk是最小rootfs的内存镜像,启动后切换到硬盘rootfs,dtb描述板级硬件信息差异,vendor控制sn和mac也就是洗白
-
某晖安装系统过程就是将完整系统rootfs写入硬盘,同时更新spi中对应的kernel、ramdisk镜像 需要注意的是硬盘系统和spi中的kernel和ramdisk是对应的,如果安装过程不能更新spi或者再次启动不能读取spi,均无法完成群晖安装和升级
DS223J(rtd1619b)的spi存储结构
该部分是通过spi镜像最后一个0x1000大小就是FIS分区表描述,某晖内核会自动读取fis分区表并创建以下mtd设备,分别对应mtd0-mtd7

-
每个分区表项大小是0x100
-
前16字节(0x00-0x0f)是分区名
-
地址是两个4字节,小端序,比如zImage其实地址0x190000,在分区表中是00001900 00001900
-
分区大小是1个4字节,小端序
-
实际大小是镜像实际占用空间大小,比如uboot实际占用0x181000,所以小端序为00101800
经过分析总结分区布局如下:
其中uboot所在分区还有细致划分,这种划分是二进制分析结合启动日志分析得来,如果你想进一步研究可以看看启动日志,在启动过程中会有读取和加载地址的提示。
(二)铁威马f2-212移植群晖可行性
1. arm设备运行与某晖同芯片型号的系统要点:
-
同样的soc,这样内核和rootfs基本都能运行
-
有可以使用uboot修改启动参数且支持lzma解压,这样可以读取某晖采用lzma压缩的内核,或者能直接运行群晖同型号boot
-
必须使用spi方案,这样群晖安装能写入spi,在类似存储布局下可以制作可升级群晖
-
修改dtb达到适配板级差异的目的
2. 铁威马f2-212运行ds223j的可行性
-
满足同ds223j一样soc的条件,都是rtd1619b
-
uboot可用, 一是212使用跟223j一样的两片ddr4内存,内存相同情况下,两者uboot可以通用,且212的原厂boot本身就支持lzma,可以换群晖的uboot也可以使用铁威马自己的 如果使用铁威马自己的,需要修改成223j的启动参数,从上面分析可知0x000000-0x010000是env和factory,0x180000-0x190000是固件描述表,都可以分开使用群晖的,只需要将223j群晖uboot的0x10000-0x180000替换成212的boot即可实现在212上运行原厂boot和223J参数的效果
-
212使用跟223J完全一致的spi方案,且spi大小均为16M(w25q64)
-
只需要适当修改dtb,就可以移植223J的群晖给212使用
(三)测试刷机及效果
通过可行性探讨,我实际就做了几件事:
-
完全备份ds223J的spi镜像(ds223j-spi.bin),并提取223j的dtb(位于0x08c0000-0x08d0000)ds223j.dtb
-
使用dtc工具反编译ds223j.dtb得到ds223j.dts,按照212的硬件修改dts并编译得到ds223j-f2-212.dtb
-
备份铁威马212的spi并提取0x10000到0x180000的uboot镜像([email protected])
-
使用winhex将[email protected]文件覆盖ds223j-spi.bin的0x10000位置,用ds223j-f2-212.dtb覆盖0x8c0000位置,修改后文件保存为ds223j-f2-212.bin 使用编程器将ds223j-f2-212.bin写入212的spi,插入硬盘即可在线安装并启动群晖
支持docker,可以在线升级最新版
(四)关于成果
先上传ds223j.bin,[email protected],(下载地址)
各位值友可以按照上述教程自行修改dtb,并组装某晖系统
积赞200发我修改后的文件ds223j-f2-212.bin
声明:移植过程和文件仅供学习交流,请勿用于商业用途,责任自负
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~