三星PM9A1 通过RTL9210B NVMe转USB
这是一个曲折的过程,我不确定能否解决,逐步记录
我在 边缘云计算架构(旧版) 采用 Raspberry Pi 组件集群,想采用我之前购买的 三星PM9A1 NVMe存储 来作为USB外接存储,以解决默认TF卡读写缓慢问题,同时扩大存储空间。
我在淘宝上搜索找到了 JEYI佳翼领航员M.2移动硬盘盒U盘直插式
:
无需外接USB线,看起来比较整齐和美观 (之前我使用过西部数据的SSD移动硬盘,但是通过USB软连接线连接总觉得不美观)
支持NVMe和SATA双协议
主控芯片是RTL9210B
RTL9210B兼容性问题
我遇到一个异常问题,当 三星PM9A1 NVMe存储 安装到 佳翼M.2硬盘盒
中,插入到电脑上,没有任何反应。虽然U盘的电源指示灯是亮起(绿色),但是操作系统日志没有显示检测到任何USB设备。同时使用 fdisk -l
也看不到新增磁盘。
这个问题可能是 三星PM9A1
兼容问题:
我替换测试了其他
三星PM9A1
,也都无法检测到USB磁盘,就好像设备根本不存在一样但是使用了古旧的
三星PM871A
(SATA接口,非NVMe)是能够识别和正常使用的
SMART
Nvme to usb using Realtek RTL9210B and SMART status issue 提到了 Realtek RTL9210B 的NVMe存储SMART支持问题,其中一些检测命令可以借鉴使用
SMART检测:
smartctl -d test /dev/sda
输出显示
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.6.21-gentoo-dist] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org
/dev/sda [USB NVMe Realtek]: Device of type 'sntrealtek' [NVMe] detected
/dev/sda [USB NVMe Realtek]: Device of type 'sntrealtek' [NVMe] opened
然后尝试检测SMART,发现报错,显示不支持SCSI指令
smartctl -H -d sntrealtek /dev/sda
输出报错
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.6.21-gentoo-dist] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org
Read NVMe Identify Controller failed: scsi error unsupported field in scsi command
RTL9210B-CG 资料分析
根据 REALTEK官网资料: RTL9210B-CG 可以看到:
Realtek RTL9210B-CG 是USB桥接器,将USB设备与PCIe控制器和SATA控制器相结合
通过M.2机械的PEDET接口,RTL9210B-CG可以自动切换USB-to-PCIe模式或USB-to-SATA模式
RTL9210B-CG 支持 USB 3.1 GEN2(超高速),兼容 USB 3.1 GEN1(超高速)、USB 高速和全速
海量存储事务支持仅批量传输 (BOT) 和 USB 连接 SCSI 协议 (UASP)
对于USB,提供高达10Gbps 的带宽
USB 转 PCIe 模式下,RTL9210B-CG 支持 PCIe Gen3 x2 提供高达 16Gbps 的带宽 ; 向后兼容 PCIe Gen2/Gen1
为了进一步降低功耗,RTL9210B-CG 支持链路电源管理(PCIe L1.Off 和 L1.Snooze)、PCI MSI(消息信号中断)和 MSI-X
USB 转 SATA 模式下,RTL9210B-CG 支持 Gen3 速度的 SATA 主机 ; 6Gbps 的带宽,向后兼容 SATA Gen2/Gen1
备注
由于官方资料仅显示 RTL9210B-CG 支持 PCIe 3 ,而 三星 PM9A1 是一款 PCIe 4接口 NMVe ,所以推测可能存在不兼容问题