Як визначити модуль, який повинен претендувати на пристрій, лише за ідентифікатором продавця / продукту?


14

Припустимо, я знаю числові ідентифікатори продукту / постачальника обладнання, яких у мене немає, і я хочу знати, чи є підтримка мені в ядрі, я можу це зробити (приклад Bluetooth приймача Bluetooth):

modinfo btusb
filename:       /lib/modules/3.7.5-030705-generic/kernel/drivers/bluetooth/btusb.ko
[...]
alias:          usb:v0A5Cp*d*dc*dsc*dp*icFFisc01ip01in*
alias:          usb:v0489p*d*dc*dsc*dp*icFFisc01ip01in*
alias:          usb:v413Cp8197d*dc*dsc*dp*ic*isc*ip*in*
[...]

З цього я бачу, на які пристрої потрібно претендувати, btusbі мені потрібно заздалегідь знати ім'я модуля. Однак у деяких випадках у мене немає поняття про назву (-и) модуля, що підтримують такий пристрій.

Мережеве обладнання - одна з тих категорій, про яку здається дуже важкою. Крім того , lspciі lsusbімена іноді безрезультатним або просто неправильно. Наразі я проглядаю все дерево джерела ядра, яке не таке елегантне.

  • Чи є спосіб перерахувати всі модаліаси всіх модулів (включаючи вбудоване ядро) за один раз, щоб я міг знайти збіг?
  • Або, альтернативно, чи є спосіб запити ядро, щоб надати мені модулі ядра, що претендують на такий пристрій, яким я фактично не володію?

Користувачі:

  • Користувачі, які задають тут питання, на які я можу відповісти / відповісти, фактично переконавшись, що "підтримується, якщо ви оновите до ..." або "Спробуйте rmmod module1; modprobe module2 як module2, здається, також підтримує ваш пристрій".
  • Перевірка підтримки перед покупкою обладнання з попереднім знанням ідентифікаторів. Окрім пошуку з ідентифікаторами, я можу шукати звіти про помилки в самому модулі ядра.

Насправді непростий спосіб отримати цю інформацію. Не всі USB-пристрої заявлені на основі своїх ідентифікаторів. Пристрої на основі класу (накопичувач, HID та багато послідовних та мережевих пристроїв) визначаються на основі того, який інтерфейс вони надають.
Алістер Бакстон

можливо, usb-modewitch може допомогти у цьому. якщо у вас його немає:sudo apt-get install usb-modeswitch
Димитріс Теодорідіс

наберіть lsusb і ви побачите ID
Dimitris Theodoridis

з вашого запитання я щойно побачив, що ви хочете побачити id і змінити його, я помиляюся?
Димитріс Теодорідіс

тепер я насправді не розумію тебе. поясніть, будь ласка, своє питання, ніж я можу зрозуміти це краще, і подивіться, чи я насправді можу вам допомогти
Димитріс Теодорідіс,

Відповіді:


3

Якщо ви перезапустите проблему як "Як я можу запустити modinfoвсі (або деякі) модулі та вибрати деякий вихід для подальшого використання?", Ви можете використати цей трюк (я залишив команди, які використовував, щоб зрозуміти, як отримати до кінцевого результату):

ls /lib/modules
ls /lib/modules/$(uname -r)
ls /lib/modules/$(uname -r)/kernel
find  /lib/modules/$(uname -r)/kernel -type f -name '*.ko' -print
for i in $( !! ) ; do
for i in $( find  /lib/modules/$(uname -r)/kernel -type f -name '*.ko' -print ) ; do
   j=${i##.*/}
   j=${j%%.ko}
   echo $j
   modinfo $i | egrep 'filename:|alias:'
   echo ""
   done

Цей трюк можна використовувати в іншому місці, весело провести час!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.