2012-10-25 16 views
7

Trên hệ thống Linux đang chạy, tôi muốn biết mô-đun trình điều khiển thiết bị nào đã tạo một mục nhập sysfs cụ thể. Có thể biết không? Tôi biết tôi có thể grep cho chuỗi có liên quan trong nguồn hạt nhân và cố gắng xác định. Nhưng, có cách nào mà không làm điều đó?Xác định mô-đun hạt nhân đã tạo mục nhập sysfs

+0

Đây có phải là C hoặc C++ không? – vdbuilder

Trả lời

2

Bạn có thể tìm trình điều khiển nào đã tạo mục nhập sysfs bằng cách xem qua nguồn của nó. Nếu trình điều khiển sử dụng device_create_file()/device_remove_file() trong trình tự init/exit của nó tương ứng thì bạn có thể chắc chắn rằng một tệp thuộc tính sysfs đã được tạo bởi trình điều khiển. Bạn cũng có thể tìm thấy DEVICE_ATTR (_name, _mode, _show, _store) macro trong nguồn để tìm hiểu chức năng nào được cung cấp bởi tệp sysfs. Thông thường bạn có thể hoặc là cat tập tin hoặc echo một chuỗi với nó. A cat /sys/.../file, sẽ tương ứng với hàm _show và echo /sys/.../file sẽ tương ứng với hàm _store được đề cập trong macro.

+0

Cảm ơn sanrio vì đã trả lời. Tôi biết về điều bạn đã đề cập. Câu hỏi của tôi là, cho một mục nhập sysfs, có thể nói với mô-đun trình điều khiển (nếu được liệt kê bởi lsmod) nó thuộc về trên một hệ thống Linux đang chạy. – Sann

+0

tôi nghi ngờ có một cách trực tiếp để làm điều đó .. Nếu bạn đi qua một sau đó xin vui lòng chia sẻ nó ở đây :) – shinymetal

Các vấn đề liên quan