Има ли начин да се направи разлика между USB памети (флаш памет) и USB твърди дискове чрез libudev / sysfs в Linux? Ако не, има ли начин за директно запитване до хардуера? Благодаря ти.
Linux, sysfs, usb памети и usb твърди дискове
Отговори (1)
Може би бихте могли да проверите подкласа на устройството с udev правило като това: ATTRS{bDeviceSubClass}=="xx"
. Не знам дали можете точно да различите стикове от истински устройства, като използвате само подкласа.
person
kouk
schedule
13.02.2013
За съжаление този не работи добре :( Например опитайте да включите USB стик и
lsusb --verbose
- дава bInterfaceSubClass 6 SCSI
за Kingston Datatraveller 8GB стик.
- person Zaur Nasibov; 13.02.2013
какво ще кажете за bDeviceSubclass?
- person kouk; 13.02.2013
Доколкото знам, не можете да различите стик от USB твърд диск, като използвате подкласа.
- person fpmurphy; 13.02.2013
този отговор помага ли? unix.stackexchange.com/questions/10755/
- person kouk; 13.02.2013
hdparm -I
, така че ако получите грешкаSG_IO
, това обикновено означава, че това е флаш устройство, а не въртяща се плоча (не ме е SSD, за да тествам тази теория на банкомат) - person Petesh   schedule 14.02.2013hdparam -I
даде почти същата информация, както при заявка за USB флаш :( - person Zaur Nasibov   schedule 14.02.2013SG_IO: bad/missing sense data, sb[]...
както за SSD, така и за флаш памети. Доколкото разбирам, имате същия резултат вhdaparam -I
. Нитоsg_inq
резултат (pastebin.com/0H8LCqmG) не показва някаква особена разлика. - person Zaur Nasibov   schedule 14.02.2013