Когда в компьютер, с установленным Linux, вставляется USB-флешка, происходит регистрация нового USB-устройства в каталоге /proc/scsi/usb-storage/, с каким-то порядковым номером.
Например, "/proc/scsi/usb-storage/7":
Host scsi7: usb-storage
Vendor: SMI Corporation
Product: USB DISK
Serial Number: AA04012703577
Protocol: Transparent SCSI
Transport: Bulk
Quirks:
Помимо этого, для данного устройства создается соответствующий ему файл в /dev/, например "/dev/sda". Вопрос заключается в том, как найти соответствующий данному устройству из каталога /proc/scsi/usb-storage/ файл устройства в каталоге /dev/?
Я пробывал искать файл, котороый содержит эти соответствия в каталоге /proc/, но так ничего и не нашел.
Думается (нескольких usb-storages нет, чтобы проверить), можно вычислить по времени создания файлов в /proc. По крайней мере, если не втыкать несколько устройств одновременно, они должны соответствовать sda, sdb... в хронологическом порядке.
Если на то пошло, то обычно в "/var/log/dmesg" Падает сообщение о том, что найдено некое устройство "[стока id устройства]", которое приаттачено к /dev/[имя нода]...
Если на то пошло, то обычно в "/var/log/dmesg" Падает сообщение о том, что найдено некое устройство "[стока id устройства]", которое приаттачено к /dev/[имя нода]...
На самом деле номер и имя в dmesg находятся в разных строках; и если устройства включаются подряд, сложно будет отследить, какая строка с номером соответствует какой строке с именем. Но вот упомянутую мною хронологию создания можно действительно отследить и по выводу dmesg.
В принципе, идея о том, что каждому файлу устройства (/dev/sda, /dev/sdb etc.) будет соответствовать файл из каталога /proc/scsi/usb-storage/ мне приходила в голову, и, собственно, я так и реализовал алгорит нахождения этого соответствия. Проблемы начались тогда, когда задача усложнилась, и в систему начали подряд добавлять несколько USB-устройств, затем извлекать некоторые из них, потом снова добалять и т.д. Вообщем, мой алгорит работать перестал.
Я думаю, что идеи о том, чтобы анализировать время создания файлов в /proc/ или анализировать сообщения в "/var/log/dmesg" совсем неплохие, но и они могут хромать при большом количестве USB-устройст и операций по их вставлению-удалению.
Неужели у Linux нет таблицы соответствия номера USB-устройства и его файла в "/dev/"??? Подскажите хотя бы где можно начать копать эту информацию.