arthur05611
驱动牛犊
驱动牛犊
  • 注册日期2009-02-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望81点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:4669回复:7

linux下如何打开读写usb设备,请教啦

楼主#
更多 发布于:2010-05-31 10:49
做了一个无驱usb设备,把设备模拟为一个光盘,通过发送自定义的scsi指令进行设备操作,在Windows下已经开发完成,是通过CreatFile 和DeviceIoControl进行操作的,现在要在linux下编写应用程序,查了很多资料,没找到什么头绪,在linux下将设备枚举成mass storage类的scsi CDrom,通过什么函数进行打开设备 读写?谢谢大侠啦
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
沙发#
发布于:2010-05-31 17:42
把设备当作文件操作就可以
走走看看开源好 Solaris vs Linux
arthur05611
驱动牛犊
驱动牛犊
  • 注册日期2009-02-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望81点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-06-01 09:44
谢谢,我是枚举成一个光盘,今天试了下可以用open("/dev / sg1 ",0_RDWR)打开,显示成功。如何发送命令呢?我试了ioctl,发送自己的命令不能成功,请问是否需要自己写驱动,而且光盘对应的设备sg1是否在所有电脑上都会是sg1,sg2...?谢谢大侠啦
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
地板#
发布于:2010-06-01 12:53
1 ioctrl

2 read/write

3 要不就看看内核带码
走走看看开源好 Solaris vs Linux
arthur05611
驱动牛犊
驱动牛犊
  • 注册日期2009-02-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望81点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2010-06-02 10:02
我用ioctrl 发送带SG结构的命令可以啦,可是发送自定义的命令时不能够发送下去,在linux层就被屏蔽掉啦,不知道如何处理,谢谢
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
5楼#
发布于:2010-06-02 13:55
自定义命令,内核应该没有处理。唯一能做的就是编辑内核代码,增加自定义ioctl命令
走走看看开源好 Solaris vs Linux
arthur05611
驱动牛犊
驱动牛犊
  • 注册日期2009-02-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望81点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2010-06-02 16:02
SCSI指令是不是内核要先检测下指令格式,不符合的就不往下发?其实我就是想让内核给我把自定义的SCSI指令发下去就行了,难道真需要编内核么?谢
rootlife
驱动牛犊
驱动牛犊
  • 注册日期2008-01-27
  • 最后登录2021-03-25
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望82点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2011-02-06 16:45
LINUX对USB,HID之类的支持非常不完善, 如果不开发驱动, 很难做到自己想要的程序.
游客

返回顶部