Как наверняка определить номер моего USB устройства?
Проще всего по выводу команды
dmesg сразу после того, как это устройство вставили в порт. Открываем терминал, втываем устройство в порт, в терминале вводим dmesg, смотрим вывод (в примере вставляю флешку):
[10775.792801] usb 2-5: new SuperSpeed USB device number 4 using xhci_hcd
[10775.813914] usb 2-5: New USB device found, idVendor=0951, idProduct=1666
[10775.813920] usb 2-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[10775.813924] usb 2-5: Product: DataTraveler 3.0
[10775.813928] usb 2-5: Manufacturer: Kingston
[10775.813931] usb 2-5: SerialNumber: 60A44C3FAF75E0A13994021A
[10775.815286] usb-storage 2-5:1.0: USB Mass Storage device detected
[10775.815605] scsi host0: usb-storage 2-5:1.0
[10776.826874] scsi 0:0:0:0: Direct-Access Kingston DataTraveler 3.0 PMAP PQ: 0 ANSI: 6
[10776.827632] sd 0:0:0:0: Attached scsi generic sg3 type 0
[10776.828657] sd 0:0:0:0: [sdd] 60506112 512-byte logical blocks: (31.0 GB/28.9 GiB)
[10776.829212] sd 0:0:0:0: [sdd] Write Protect is off
[10776.829219] sd 0:0:0:0: [sdd] Mode Sense: 45 00 00 00
[10776.829798] sd 0:0:0:0: [sdd] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[10776.871257] sdd: sdd1
[10776.875110] sd 0:0:0:0: [sdd] Attached SCSI removable disk
На выделенное жирным обратите внимание.
Альтернативный способ, тоже рабочий:
Сперва ищем наше устройство в выводе lsusb. Пример для той же вышеуказанной флешки... >>> lsusb
Bus 002 Device 004: ID 0951:1666 Kingston Technology DataTraveler G4
Видим, что оно у нас имеет VID=0951 и PID=1666. Для определения адреса шины и адреса на шине можно теперь грепать. Либо по идентификатору производителя (VID):>>> grep 0951 /sys/bus/usb/devices/*/idVendor
/sys/bus/usb/devices/2-5/idVendor:0951
либо по идентификатору устройства (PID):grep 1666 /sys/bus/usb/devices/*/idProduct
/sys/bus/usb/devices/2-5/idProduct:1666
В обоих случаях получаем искомое 2-5, как видно из выводов терминала.
Раз уж собрались заниматься перепривязкой, в дополнение к найденному Вами топику рекомендую посмотреть еще и на
это сообщение (в сущности, на всю рассмотренную там тему - изыскания аналогичны Вашим, сколь я могу судить), там показывается сработавший на практике способ привязки устройства к драйверу (описанный в статье по приведенной Вами в начале топика ссылке способ на Ubuntu у меня ни с одним устройством не сработал). Назначение составных частей устройства как правило можно понять по модулю ядра, который система с этой частью увязала. Для той же флешки из примеров под спойлером, которая на шине как 2-5 определилась, вижу 1 устройство (2-5:1.0) и смотрю куда ведет символьная ссылка driver:
ls -l /sys/bus/usb/devices/2-5/*/driver
lrwxrwxrwx 1 root root 0 янв 16 11:43 /sys/bus/usb/devices/2-5/2-5:1.0/driver -> ../../../../../../bus/usb/drivers/usb-storage
Как видно, загружен модуль ядра
usb-storage, назначение которого гуглится [USB Mass Storage support].
Другой пример. Посмотрим состав имеющегося у меня сейчас составного модема с gps:
ls -l /sys/bus/usb/devices/1-8/*/driver
lrwxrwxrwx 1 root root 0 янв 16 12:02 /sys/bus/usb/devices/1-8/1-8:1.0/driver -> ../../../../../../bus/usb/drivers/option
lrwxrwxrwx 1 root root 0 янв 16 12:02 /sys/bus/usb/devices/1-8/1-8:1.1/driver -> ../../../../../../bus/usb/drivers/option
lrwxrwxrwx 1 root root 0 янв 16 12:02 /sys/bus/usb/devices/1-8/1-8:1.2/driver -> ../../../../../../bus/usb/drivers/option
lrwxrwxrwx 1 root root 0 янв 16 12:02 /sys/bus/usb/devices/1-8/1-8:1.4/driver -> ../../../../../../bus/usb/drivers/qmi_wwan
lrwxrwxrwx 1 root root 0 янв 16 12:02 /sys/bus/usb/devices/1-8/1-8:1.5/driver -> ../../../../../../bus/usb/drivers/option
Устройство 1-8:1.4, как видно, пользует модуль ядра qmi_wwan [QMI WWAN driver for Qualcomm MSM based 3G and LTE modems]. В общих чертах как-то так...
Возможно ли как-нибудь заблокировать первое устройство, чтобы сразу выходить на второе без eject и без скрипта?
Речь идет о составном устройстве (типа модем/gps/wifi/карт-ридер/флешка - все в одном). Если так, то зависит сильно от самого устройства. К примеру,
в данном случае устройство само позволяет выбрать режим, в котором работает, причем его переключение доступно "на горячую"; по этой же ссылке показано как этот режим перещелкивать. Когда определите каталог, через который с устройством ведется работа, - можно будет поискать там доступные для изменения файлы.
Тем не менее, лучше и правильнее будет подобрать адекватный рабочий драйвер, как мне кажется.