usb-skeleton.c不起作用

我正在尝试在Linux中编写一个基本的设备驱动程序来在USB大容量存储设备上执行IO。 我正在使用2.6.34内核。 我使用了内核附带的usb-skeleton.c来理解USB核心API的正确工作。 我编译它,插入它为我的USB闪存驱动器生成/ dev / skel0设备。

http://lxr.free-electrons.com/source/drivers/usb/usb-skeleton.c?v=2.6.34

我在设备上写了1个1024字节的数据包,但令我惊讶的是写入input/输出错误失败。

# insmod usb-skeleton.ko # ls /dev/skel0 /dev/skel0 # dd if=/dev/urandom of=/dev/skel0 bs=1024 count=1 dd closing output file `/dev/ask0': Input/Output error 

当我写数据时,骨架驱动程序的写function,甚至写callback都被调用,但仍然是IO失败。

由于usb-skeleton.c附带了Linux内核,我相信它会经过严格的testing和完美的。 我一定是做错了,做设备驱动程序devise的新手,无法实现这个错误。 我希望在这个问题上有任何帮助。

谢谢。