mdev如何区分不一样的USB设备

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

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

但是!
当咱们想识别不一样的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设备的区别处理了code

相关文章
相关标签/搜索