linux下USB设备热插拔如何检测

gql1123 2009-02-11 10:53:32
现在做的项目中想实现USB设备插上以后自动挂载到/mnt/hd目录下。请问大侠们怎么实现。
如果拔出USB设备怎么检测到错误?假如我现在正在写U盘。突然U盘被拔出。我该怎么检测U盘被拔出的消息。我是在嵌入式linux下做的项目。请大家帮帮忙
...全文
9043 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanzi1225627 2012-08-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
udevmonitor 的原理也是捕捉 netlink 的 socket 消息,这个消息是内核发出的,打印出来的消息跟我上面的小程序一样,2.6内核支持udev,udev是在用户空间实现的程序,在终端输入 udevmonitor(有的版本或许是 udevadm -monitor) 然后插拔 USB 设备,可以看到提示信息。
[/Quote]
问题是,老大arm板子上没有啊!!!
yanzi1225627 2012-08-15
  • 打赏
  • 举报
回复
http://blog.csdn.net/yanzi1225627/article/details/7855124原来是用qt的dbus实现的,基于hal。但纠结了一个星期,程序到arm上没反应。好像arm不支持hal。文件系统是yaffs2,的所以udev也不支持。最后选择了hotplug。太蛋疼了!绕了一个大弯。。。。。。。。
9527 2012-07-25
  • 打赏
  • 举报
回复
学习了,感谢二楼 Breathomn 的分享
dddegtgtgth 2011-12-19
  • 打赏
  • 举报
回复
当U盘插进去后 出现add@/dev/sda1,当U盘拔了过后是remove@/dev/sda1之类的信息。
ly7969 2011-04-20
  • 打赏
  • 举报
回复
/* USB 设备的插拔会出现字符信息,通过比较不同的信息确定特定设备的插拔,在这添加比较代码 */

怎么对比这些信息,才能识别我的usb设备呢
gattso 2010-09-10
  • 打赏
  • 举报
回复
看看???????????????
jianfei111 2010-08-17
  • 打赏
  • 举报
回复
貌似时间很久,我也关注一下。
gql1123 2010-06-13
  • 打赏
  • 举报
回复
这个我说一下。我用的是二楼的方法。早已经实现功能了。
etrock 2010-05-12
  • 打赏
  • 举报
回复
mark
malajisi01 2009-11-18
  • 打赏
  • 举报
回复
顶一下~

继续讨论

我们也遇到个usb设备读取目录的问题,先检测后mount再读取目录...
yuxinyuan 2009-02-17
  • 打赏
  • 举报
回复
学习一下!
aility 2009-02-16
  • 打赏
  • 举报
回复
学习了。我原来都是写配置文件来实现的。。。
erigido 2009-02-13
  • 打赏
  • 举报
回复
楼上的意思是用户态驱动吧。
无论如何都需要有一个线程来监控设备的状态。比如,插槽上或下位产生的中断,这个型号可以通过很多方式,如netlink、内存映射、软中断等等方式,让用户态线程能够感知是否有USB设备上线,如果有则调用mount函数,否则的话umonut。
Breathomn 2009-02-13
  • 打赏
  • 举报
回复
udevmonitor 的原理也是捕捉 netlink 的 socket 消息,这个消息是内核发出的,打印出来的消息跟我上面的小程序一样,2.6内核支持udev,udev是在用户空间实现的程序,在终端输入 udevmonitor(有的版本或许是 udevadm -monitor) 然后插拔 USB 设备,可以看到提示信息。
gql1123 2009-02-12
  • 打赏
  • 举报
回复
楼上大侠。怎么用啊?能不能说详细点。刚学linux不久。我的内核是linux 2.6.14的。能不能用udev啊?
ddcien 2009-02-12
  • 打赏
  • 举报
回复
为什么不使用udev或mdev???
gql1123 2009-02-12
  • 打赏
  • 举报
回复
这样的话还是要建立一个线程监控它们。有没有中断机制啊。
如果建立一个线程监控的话。浪费的系统资源比较多。如果采用这种方法其实有个简单的方法就是判断U盘的文件夹
是否存在。如果插上U盘的话文件夹就会出现。否则的话没有文件夹。
netsocket 2009-02-12
  • 打赏
  • 举报
回复
mark
huli1516 2009-02-11
  • 打赏
  • 举报
回复
如果是驱动层的话肯定会有拔出来的消息的,那时候将设备删除
一楼的好像说的是网络层的吧
  • 打赏
  • 举报
回复
..学习
加载更多回复(1)

4,438

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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