当前位置: 代码迷 >> 综合 >> SATA 接口功能测试
  详细解决方案

SATA 接口功能测试

热度:85   发布时间:2024-02-06 11:12:51.0

缘由

早先做的测试程序是扫描所有挂载点,确定接入的固态硬盘的路径,然后进行数据读写校验。这要求预先在固态硬盘上创建一个标记文件,如 here_sata_ssd.flag。这对于测试准备来说很不友好,尤其是需要测试的板卡多了起来。维护测试专用固态硬盘增加了工作量。

改进

我们这里根本是为了验证板卡的 SATA 接口功能,当接入 SATA 盘时,系统会对设备进行识别。这里识别就可以验证通道正常了。挂载那是后话,不用管了。如果是人工检测,执行以下命令即可。

cat /proc/scsi/scsi

这将会列出 scsi 总线上的设备,厂商、类别型号都有,自己前面接入了什么固态硬盘,一看便知。

问题

上面的方法对于自动化测试来说,还有一个问题。自动化测试程序预先不知道接入的是什么 SATA 盘,也就不好判断程序扫描到的是 SATA 盘还是 U 盘。固定下来就又走了早先的老路了。

直接算数量是一个思路,但出现问题时,USB 接口、SATA 接口具体是谁出问题分不清。

再改进

这里使用到一个较 lsscsi 的工具,有些系统已经有内置。执行以下命令进行查看:

lsscsi -t

可以看到列出的 USB、SATA 设备,自动化测试程序里再用一个 grep 就可以确认 SATA 盘的识别了。

lsscsi 编译

官网:http://sg.danny.cz/scsi/lsscsi.html

下载源码包后解压,进入源码包执行以下命令:

source  ~/57x/ti-processor-sdk-linux-rt-am57xx-evm-04.03.00.05/linux-devkit/environment-setup
./configure --host=arm-linux
make

上面第一条命令是加载 57x 平台的开发环境,主要是交叉编译器。make 完成后在 src 目录生成 lsscsi 可执行程序,复制到板卡即可使用。

陷阱

在执行 lsscsi -t 命令时,还可以添加 -H 选项,按照说明是可以列出其 HOST 相关信息。但是,前面说的通过 grep sata 字符串的方式,会出现缺陷。因为此时拔下 SATA 数据线,依然列出了 sata 字符。

以上编译、运行基于广州创龙的 TL5728 板卡测试。

2020年8月4日