阅读:4749回复:7
linux下如何打开读写usb设备,请教啦
做了一个无驱usb设备,把设备模拟为一个光盘,通过发送自定义的scsi指令进行设备操作,在Windows下已经开发完成,是通过CreatFile 和DeviceIoControl进行操作的,现在要在linux下编写应用程序,查了很多资料,没找到什么头绪,在linux下将设备枚举成mass storage类的scsi CDrom,通过什么函数进行打开设备 读写?谢谢大侠啦
|
|
沙发#
发布于:2010-05-31 17:42
把设备当作文件操作就可以
|
|
|
板凳#
发布于:2010-06-01 09:44
谢谢,我是枚举成一个光盘,今天试了下可以用open("/dev / sg1 ",0_RDWR)打开,显示成功。如何发送命令呢?我试了ioctl,发送自己的命令不能成功,请问是否需要自己写驱动,而且光盘对应的设备sg1是否在所有电脑上都会是sg1,sg2...?谢谢大侠啦
|
|
地板#
发布于:2010-06-01 12:53
1 ioctrl
2 read/write 3 要不就看看内核带码 |
|
|
地下室#
发布于:2010-06-02 10:02
我用ioctrl 发送带SG结构的命令可以啦,可是发送自定义的命令时不能够发送下去,在linux层就被屏蔽掉啦,不知道如何处理,谢谢
|
|
5楼#
发布于:2010-06-02 13:55
自定义命令,内核应该没有处理。唯一能做的就是编辑内核代码,增加自定义ioctl命令
|
|
|
6楼#
发布于:2010-06-02 16:02
SCSI指令是不是内核要先检测下指令格式,不符合的就不往下发?其实我就是想让内核给我把自定义的SCSI指令发下去就行了,难道真需要编内核么?谢
|
|
7楼#
发布于:2011-02-06 16:45
LINUX对USB,HID之类的支持非常不完善, 如果不开发驱动, 很难做到自己想要的程序.
|
|