2012-06-14 18 views
5

Tôi có một số câu hỏi liên quan/sys/module/trong linuxthông số mô-đun hạt nhân thay đổi (sử dụng/sys/mô-đun)

1) Liệu/sys/mô-đun chứa tất cả các module của kernel

2) Liệu các/sys/module/xxx/thông số chứa tất cả các thông số của mô-đun hạt nhân xxxx

3) Liệu/sys/module/xxx/thông số/yyyy chứa các giá trị thời gian thực của yyyy tham số của mô-đun hạt nhân xxxx

4) nếu tham số được thay đổi trong mô-đun hạt nhân, h để phát hiện sự thay đổi này trong Thời gian thực? Tôi muốn phát triển một ứng dụng C (không gian người dùng) hoặc một kịch bản lệnh shell để phát hiện sự thay đổi của tham số mô-đun hạt nhân trong thời gian thực.

+0

Tham số là giá trị đầu vào chứ không phải giá trị trạng thái. Bạn không thể thay đổi tham số sau khi người nhận tham số đã bắt đầu. – ceving

+0

@ceving để tất cả các tham số trong thư mục/sys/module/xxx/parameters chỉ là tham số ibput? Vì vậy, họ không thể được sửa đổi bởi các mô-đun trong thời gian chạy? không có tham số trạng thái trong các tham số nào? – MOHAMED

+1

Nếu bạn muốn thay đổi hành vi của hạt nhân trong thời gian chạy, bạn phải sử dụng/proc/sys. Xem tại đây: http://tournasdimitrios1.wordpress.com/2011/02/07/passing-parameters-to-the-kernel-at-run-time-time-on-linux/ – ceving

Trả lời

1

Tham số là giá trị đầu vào chứ không phải giá trị trạng thái. Bạn không thể thay đổi tham số sau khi người nhận tham số đã bắt đầu.

Nếu bạn muốn thay đổi hành vi của hạt nhân trong thời gian chạy, bạn phải sử dụng/proc/sys. Xem tại đây: http://tournasdimitrios1.wordpress.com/2011/02/07/passing-parameters-to-the-kernel-at-run-time-time-on-linux/

+3

Sau đó .. làm thế nào để công việc sau đây: 'write (0/N/n = disable) to/sys/module/printk/các tham số/thời gian' sẽ ngừng tạo dấu thời gian, trông giống như thế này -> [1915.150953]. Sau đó, 'viết 1/Y/y = enable' sẽ bật lại. Tất cả điều này trong thời gian chạy. CÁCH ?? –

6

1) Có,/sys/module thực sự có tất cả các mô-đun.

2) Không,/sys/module/xxx/thông số chỉ có các thông số mô-đun nhu cầu xuất khẩu, mà là để nói nếu bạn muốn xuất khẩu một số tham số mô-đun hạt nhân từ mô-đun, bạn nên sử dụng:

module_param(test, bool, 0600); 

trong đó thông số cuối cùng khác 0, có nghĩa là sự cho phép của tệp "/ sys/module/xxx/parameters/test".

3) Không, giá trị của tham số mô-đun hạt nhân gần như tĩnh, hiếm khi được thay đổi bởi các vị trí khác.

4) Mô-đun hạt nhân của bạn phải thông báo cho ứng dụng không gian người dùng.

0

"Cuối cùng (và loại quan trọng này), nếu bạn chọn xác định các tham số có thể ghi và thực sự ghi vào chúng khi mô-đun của bạn được tải, mô-đun của bạn không được thông báo rằng giá trị đã thay đổi. không có gọi lại hoặc cơ chế thông báo cho các tham số đã sửa đổi, giá trị sẽ lặng lẽ thay đổi trong mô-đun của bạn trong khi mã của bạn tiếp tục chạy, không biết thực tế là có một giá trị mới trong biến đó. một số loại cơ chế thông báo, có thể bạn không muốn sử dụng các tham số. Có nhiều cách tốt hơn để có được chức năng đó. " Về cơ bản, bạn sẽ cần một cơ chế để liên tục thăm dò ý kiến ​​thay đổi hoặc bạn chỉ cần phát triển một phương pháp IOCtl và đăng ký thiết bị của bạn như một thiết bị char đồng thời với bất cứ điều gì khác bạn đang đăng ký nó (Linux là psychotic in sự tôn trọng đó).

Bryan Wilcutt "Linux miễn phí nếu bạn không coi trọng thời gian của riêng mình". - Không rõ

[1] https://www.linux.com/learn/linux-training/28065-the-kernel-newbie-corner-everything-you-wanted-to-know-about-module-parameters

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