我正在尝试在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
我在设备上写了一个1024字节的数据包,但令我惊讶的是,写入失败了输入/输出错误。
# 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
当我写数据时,骨架驱动程序的写入函数甚至写入回调都被调用但IO仍然失败。
由于usb-skeleton.c附带Linux内核,我相信它会经过严格的测试和完美无缺。我必须做错事,并且在设备驱动程序编程方面是新手,我无法意识到错误。我很感激这方面的任何帮助。
谢谢。
答案 0 :(得分:0)
您可以使用
$ sudo chmod -R 777 /dev/skel0