mdev如何区分不同的USB设备

    使用过busybox的mdev来动态挂载和卸载U盘的都知道。当我们想让mdev动态识别U盘,我们只需要在mdev.conf中指定下面这么一行

例如:
sdb 0:0 660 /usr/scripts/hotplug_usb.sh
其中 /usr/scripts/hotplug_usb.sh脚本只需要通过$MDEV环境变量和获取设备名称来挂载就好了。

可是!
当我们想识别不同的USB设备,并且分别要做不同的处理。例如不同产商的LTE模块,他们的AT调试串口是不一样的,我们应用运行前就想知道模块的型号,以便不需要再做任何串口扫描检测的工作。想用mdev识别到LTE模块是哪个产商的。
这个时候,我们就需要获取到LTE模块的产商ID和产品ID,以此区分不同模块。

那要怎么做呢?
busybox在1.20版本后就支持mdev处理指定环境变量的设备,USB有一些独有的环境变量,如PRODUCT,这是内核里面指定的,下次写篇文章补充,现在我们可以这么写
$PRODUCT=. 0:0 660 /usr/scripts/hotplug_usb.sh
意思是匹配有PRODUCT环境变量的设备,其实就是USB设备,不同的USB产商的这个ID是唯一的。
/usr/scripts/hotplug_usb.sh中在获取PRODUCT的值,例如,EC25模块的PRODUCT值为2c7c/125/318。
这样就能做到对USB设备的区别处理了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值