小编Pae*_*els的帖子

如何(真正)在 Linux 中禁用 NCQ

我在 VHDL 中实现了我自己的串行 ATA 主机总线适配器 (HBA) 并将其编程到 FPGA 上。FPGA是可以用任何数字电路编程的芯片。它还配备了串行收发器,可为 SATA 或 PCIe 生成高速信号。

此 SATA 控制器支持 SATA 6 Gb/s 线速,并使用 ATA-8 DMA-IN/OUT 命令以高达 32 MiB 的数据块与设备传输数据。该设计已被证明可以以最大速度运行(例如三星 SSD 840 Pro -> 超过 550 MiB/s)。

在对几个 SSD 和 HDD 设备进行了一些测试之后,我购买了一个新的希捷 6 TB Archive HDD ( ST6000AS0002 )。这款硬盘的读取性能高达 190 MiB/s,但写入性能只有 30 到 40 MiB/s!

所以我深入挖掘并测量了传输的帧(是的,FPGA 设计可以实现)。据我所知,希捷硬盘已准备好一次性接收传输的前 32 MiB。此传输以 580 MiB/s 的最大线路速度进行。之后,硬盘将剩余字节停止超过800 毫秒!然后 HDD 准备好接收下一个 32 MiB 并再次停止 800 毫秒。总而言之,1 GiB 传输需要超过 30 秒,相当于大约 35 MiB/s。

我假设这个 HDD 有一个 32 MiB …

linux drivers kernel sata

20
推荐指数
2
解决办法
2万
查看次数

在哪里指定了默认设备名称(例如 /dev/ttyUSBx)?

我正在通过 udev 调查动态设备名称映射。

目标:

在多用户系统上,每个用户都可以分配和释放 USB 串行转换器或 PCIe 卡 (FPGA) 等设备。如果用户分配了设备,/dev/<user>/<device>则应使用动态名称和分配用户的权限创建节点。如果用户释放设备,则需要删除/重命名 devfs 节点并撤销权限。

现在的情况:

我正在试验/dev/ttyUSB1- 一个 USB 串行转换器。我编写了一个 Python 脚本,该脚本在创建 dev-node 时从 udev 调用。它需要 USB 设备的 VendorID、ProductID 和 SerialNo,并返回 devfs 节点名称:例如paebbels/ttyUSB。这适用于符号链接,因此原始 devfs 节点ttyUSB1仍然存在。

如何使用我的脚本更改原始 devfs 名称?

我试图在我的 udev 规则中使用 NAME 命令,但它不起作用。文档指出:NAME 只能使用一次。udev 中是否有默认规则在我的规则之前使用 NAME? /etc/udev/...不包含这样的规则。

在后面的阶段,我的脚本还将返回 devfs 节点的用户名、组和权限。

次要问题:

我应该按计划在/dev/<user>/<device>或 中创建设备文件~/fpga1/<device>吗?

debian udev python devices

5
推荐指数
1
解决办法
412
查看次数

标签 统计

debian ×1

devices ×1

drivers ×1

kernel ×1

linux ×1

python ×1

sata ×1

udev ×1