Làm cách nào để xác định mô-đun được yêu cầu chỉ yêu cầu một thiết bị theo ID nhà cung cấp / sản phẩm?


14

Giả sử tôi biết ID sản phẩm / nhà cung cấp số của phần cứng tôi không có ở đây và tôi muốn biết nếu có hỗ trợ cho tôi trong kernel, tôi có thể làm điều này (ví dụ về bộ nhận bluetooth USB):

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*
[...]

Từ đó tôi có thể thấy thiết bị nào sẽ được yêu cầu btusbvà nó yêu cầu tôi phải biết tên mô-đun trước. Tuy nhiên, trong một số trường hợp, tôi không có manh mối về (các) tên mô-đun hỗ trợ một thiết bị như vậy.

Phần cứng mạng là một trong những loại dường như rất khó tìm hiểu. Ngoài ra, tên lspcilsusbđôi khi không kết luận hoặc đơn giản là sai. Tôi hiện đang đi qua toàn bộ cây nguồn nhân, điều đó không thanh lịch.

  • Có cách nào để liệt kê tất cả các mô-đun của tất cả các mô-đun (bao gồm cả tích hợp vào kernel) trong một lần để tôi có thể tìm thấy kết quả khớp không?
  • Hoặc, thay vào đó, có cách nào để truy vấn kernel để cung cấp cho tôi các mô-đun kernel yêu cầu một thiết bị như vậy mà tôi không thực sự sở hữu?

Trường hợp sử dụng:

  • Người dùng đặt câu hỏi ở đây mà tôi có thể trả lời / lừa đảo bằng cách thực sự xác minh rằng "hỗ trợ là nếu bạn nâng cấp lên ..." hoặc "Hãy thử rmmod module1; modprobe module2 vì module2 dường như cũng hỗ trợ thiết bị của bạn."
  • Kiểm tra hỗ trợ trước khi mua phần cứng với kiến ​​thức trước về ID. Bổ sung cho việc tìm kiếm bằng ID, sau đó tôi có thể tìm kiếm các báo cáo lỗi trên chính mô-đun hạt nhân.

Thực sự không có cách nào dễ dàng để có được thông tin này. Không phải tất cả các thiết bị USB đều được yêu cầu dựa trên ID của chúng. Các thiết bị dựa trên lớp (lưu trữ, HID và nhiều thiết bị nối tiếp và mạng) được xác định dựa trên giao diện mà chúng cung cấp.
Alistair Buxton

có lẽ usb-modewitch có thể giúp với điều đó. nếu bạn không có nó:sudo apt-get install usb-modeswitch
Dimitris Theodoridis

gõ lsusb và bạn sẽ thấy ID
Dimitris Theodoridis

Từ câu hỏi của bạn tôi chỉ thấy rằng bạn muốn xem id và thay đổi nó, tôi có sai không?
Dimitris Theodoridis

bây giờ tôi thực sự không hiểu bạn vui lòng giải thích câu hỏi của bạn hơn là tôi có thể hiểu nó tốt hơn và xem liệu tôi có thực sự có thể giúp bạn không
Dimitris Theodoridis

Câu trả lời:


3

Nếu bạn đặt lại vấn đề là "Làm cách nào tôi có thể chạy modinfotrên tất cả (hoặc một số) mô-đun và chọn một số đầu ra để sử dụng tiếp?", Bạn có thể sử dụng mẹo này (Tôi đã để lại các lệnh tôi đã sử dụng để tìm cách lấy đến kết quả cuối cùng):

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

Thủ thuật này có thể được sử dụng ở nơi khác, vui chơi!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.