工具与软件:
我很抱歉打扰您。
问题如下:
我必须使用存储并转发功能来禁用换行窗口。 然后、TUSB9261演示有一个64KB (受硬件限制)缓冲区、用于缓存读/写、这意味着它最多只能缓存128块(512Byte)的内存。
但是、SCSI Write-10和 Read-10命令具有 Total Blocks 字段、对于 USB2.0、最多可以包含240个块(120KB)。 最初在 Windows 11上测试产品时、一次写入的数据不会超过128个块。 但是、在 Linux 上进行测试时、它有时会写入超过128个块、这会导致 USB 存储设备崩溃。 Linux 源代码显示、对于 USB2.0、默认为 max_sectors=240个块
是否有办法告诉 Linux 主机操作系统请求的块不超过128个?
我知道 TUSB9261固件实现了块限制 VPD 页面、在 Windows 10/11上运行良好。 我甚至将块限制设置为64块、也没问题。 因为在数据传输之前、Windows 主机发出 SCSI 查询顺序、VPD 页代码为0xB0、因此器件可以将块限制信息传输到主机。 然后、Windows 主机可以调整传输的数据量。
但是、在 Linux 或 MacOS 上、主机似乎未运行 block limits 命令。 因此可能主机不知道什么是块限制。 写入/读取块的数量超出了缓冲区大小。
这真的让我困扰了很多。 我该怎么办?