【发布时间】:2013-02-01 23:46:10
【问题描述】:
问题
鉴于 udev 传递给我的内核模块(可能是块设备路径)的信息,我可以向块设备发送 SCSI 命令吗? (但要让它正常运行,否则意味着分区已安装,没有数据丢失等)
我要做什么
我有一个 USB 大容量存储设备,它具有通过 SCSI 命令控制的 LED。 我想写一个 LED 驱动来为其提供 /sys/class/leds/* 条目。
这里的目标是让设备正常运行(分区安装和运行等),但也允许发送 SCSI 命令来控制 LED 的 /sys/class/leds/* 交互。
使用 sg_raw 在用户空间发送我需要的 SCSI 命令很容易。但我需要一个 kmod 来提供 /sys/class/leds/...
基本上我需要的是 ioctl()。但是,我知道从 kmod 中调用 open()、ioct() 等通常是个坏主意。
【问题讨论】:
标签: linux linux-device-driver kernel-module scsi usb-mass-storage