关于linux对usb端口管理的问题

ilk801015 2003-08-28 03:52:08
linux里对usb设备的处理是使用一个虚拟的usb root hub,当接上一个usb设备后,hub会调用相应的设备驱动程序,再使用在/dev目录里相应的文件(sda*,scd*等等)读取它。

我现在想绕过这个虚拟的usb hub,直接对usb端口进行管理。
就比如:假设主板后有四个usb端口,按位置编号为1,2,3,4,就让它们分别对应死/dev下的四个文件:usb1,usb2,usb3,usb4。
当1口接有一个usb光驱时,用mount /dev/usb1 /some/place就可以读取;
亦或当只有3口接有usb光驱时,用mount /dev/usb3 /some/place就可以读取;
而且我的主板上usb口只用来接光驱,不会接其他设备了。(项目这样子要求的)

这里面的关键就是如何做到让这些物理端口可以直接映射到/dev下相应的文件
现在因为有了这个hub的存在,当四个usb口接一样的设备时,就完全不知道那个设备对应的是/dev下那个文件

说了这么多也不知道说清楚了没有,呵呵
大家有没有作过类似工作的,教小弟一下该怎样实现,多谢多谢
...全文
367 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zeng_xiangyang 2003-09-03
  • 打赏
  • 举报
回复
up
wide288 2003-09-03
  • 打赏
  • 举报
回复
就是我还有时间看电视。有空的话就读内核,也应牛的。有空看内核,写驱动。:)
filler 2003-08-29
  • 打赏
  • 举报
回复
小弟就是发贴人。这是刚申请的id,上面那个是借的别人的,呵呵
可能我还是没说清楚,再补充一些。

因为我要在机箱后面的四个usb端口上接四个一模一样的usb光驱。还要对这些光驱写个
小软件进行管理。比如那个口上接有光驱,那个口上没有光驱,那个光驱读了多少次光
盘啊,等等之类的

结果发现linux对多个usb光驱的使用,是按设备插上的顺序分配盘符的。
第一个接上的光驱,linux会用/dev/scd?(dev下面有scd0到scd7,用那个并不固定)来读
取,并做一个/dev/cdrom1到/dev/scd1的软链接。再在fstab中加上一条/dev/cdrom1 /
mnt/cdrom1的条目。于是就可以用mount /mnt/cdrom1来读取第一个接上的usb光驱。
第二个,linux会用/dev/scd?,做/dev/cdrom2到/dev/scd0的软链接,等等,最后用mo
unt /mnt/cdrom2读取。
按照光驱通电的顺序依次分配cdrom1,cdrom2,cdrom3,cdrom4。
这样盘符和光驱的对应就是随机的,不是固定的。
这个关系不固定下来,我的下面工作就没法做了。

我的疑问如下∶
1. 其中,我发现linux并不是用/dev下的scd几来对应第几个接上的光驱,这个对应关系
是不规则的,linux具体是怎么选择scd几的呢?
2. 盘符与光驱的对应关系能固定下来吗?要是能的话,我该怎么做?

大家帮帮忙啊
filler 2003-08-29
  • 打赏
  • 举报
回复
多谢大家了.
主要还是自己不牛.如果对内核很熟的话,想达到我的目的,应该也不是很难的事情.想想牛人把linux都写出来了,我们还只是在它上面应用而已。
汗.......
只怪自己有空的时间都去玩去了
pandeng711 2003-08-29
  • 打赏
  • 举报
回复
好像没有什么办法。
wide288 2003-08-29
  • 打赏
  • 举报
回复
啊,很好玩的东西 ,听你说了这么多,也受些益处,因为我只是用linux 还不会写驱动也没读过内核,所以只能帮你顶一下了。

不过听你说了这么多。我想你可以让那个虚拟的hub 不随机分配usb 口号,而你指定分配。也就是你改它的分配原则。什么从左到右之类的。这样分完之后,也只有你知道了。:)

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧