使用过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装备的区别处置了