5

问题

鉴于 udev 传递给我的内核模块的信息(可能是块设备路径),我如何向块设备发送 SCSI 命令?(但让它正常运行,否则意味着分区已安装,没有数据丢失等)

我想做的事

我有一个 USB 大容量存储设备,它具有通过 SCSI 命令控制的 LED。我想编写一个 LED 驱动程序为其提供 /sys/class/leds/* 条目。

这里的目标是让设备正常运行(分区安装和运行等),但也允许 /sys/class/leds/* 交互,这些交互将发送 SCSI 命令来控制 LED。

使用 sg_raw 在用户空间发送我需要的 SCSI 命令很容易。但我需要一个 kmod 来提供 /sys/class/leds/...

基本上我需要的是ioctl()。但是,我知道从 kmod 中调用 open()、ioct() 等通常是一个坏主意。

4

1 回答 1

2

它可以通过一些在 USB 和 SCSI 之间模拟的伪驱动程序来实现。我认为当您通过SCSI 访问 USB 设备时,您可能会遇到什么问题。


定义了这些低级和中级 scsi 驱动程序

于 2013-03-21T07:13:53.860 回答