鉴于SCSI设备作为输入,我正在尝试实现一个可以的内核模块:
获取发送到该特定设备的SCSI命令列表,并计算该命令的给定次数。
如何继续实施?
我是编程内核模块的初学者,事实上我只写了一个" Hello,World"程序到现在。
答案 0 :(得分:2)
我相信设备驱动程序端已经有调试和日志记录支持。
作为一个起点,你应该调查从这里开始的linux内核中的驱动程序:
https://github.com/torvalds/linux/blob/master/drivers/scsi/scsi_module.c
对于调试,您可以找到这个:
https://github.com/torvalds/linux/blob/master/drivers/scsi/scsi_logging.c
首先阅读本手册总是一个好主意!给它一个机会:
https://www.kernel.org/doc/Documentation/scsi/
如果您无法激活日志记录,则应该回来询问更具体的问题。但我相信你根本不需要自己编写记录器。
来自http://www.theunixway.com/2013/10/ol56-enable-additional-scsi-logging-or.html
在内核上启用scsi日志记录:
sysctl -q -w dev.scsi.logging_level=<N>
或
echo <N> > /proc/dev/scsi/logging_level
N是包含不同类别的日志记录信息的位字段。请参阅您使用的实际内核驱动程序版本的文档。