本帖最后由 halleyhuang 于 2016-7-19 18:22 编辑
ECOS系统:
HB 区分usb port 方法如下: 在usb callback 内 static void _SysInitUSBCallback(MS_U8 u8Event, MS_U32 u32Para, char* s) { HB_printf("USB Call Back Event %.2x Parameter %lx %s \n", u8Event, u32Para, s); // Control USBInsertFlag MS_U8 usbnum = 0xff;
if (s == NULL || strlen(s) < 6) // s = "/dev/sdx/", at least should be "/dev/x" { HB_printf("[%s][%d]invalid mount device:%s\n", (s == NULL) ? "NULL" : s); return ; } MS_U8 _u8hostId=0xff; _u8hostId = MDrv_USB_MscLookupHostID(s); printf("\033[1;33m""[NMGR][%s][%d] usb host is %ld \n \033[m", __FUNCTION__,__LINE__,_u8hostId);
也就是调用MDrv_USB_MscLookupHostID 将 /dev/sda/ 传进来就可以得到是那个port 口。
supernova: ls /sys/bus/usb/drivers/usb ls /sys/bus/usb/drivers/usb | grep -E '^[1-9]-[1-9](.[1-9])?'
命令可以显示u盘端口:
比如说:
插上u盘,在/sys/bus/usb/drivers/usb目录下会生成1-1文件夹
把u盘插入到另一个usb口,在/sys/bus/usb/drivers/usb目录下会生成2-1文件夹 检测方法:
1.检查/dev/sda是否存在,存在即有u盘插入
2.读取/sys/bus/usb/drivers/usb下端口文件,如1-1,或者1-1.1,若存在,默认为第一个usb口,即显示usb1合格
2.读取/sys/bus/usb/drivers/usb下端口文件,如2-1,或者1-1.2,若存在,即显示usb2合格
/sys/bus/usb/drivers/usb/
u盘:
/dev/sda1 识别u盘:
/sys/bus/usb/drivers/usb/1-1
/sys/bus/usb/drivers/usb/2-1 或者:
/sys/bus/usb/drivers/usb/1-1.1
/sys/bus/usb/drivers/usb/1-1.2
stat检查 |