问题
鉴于 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() 等通常是一个坏主意。