2013-06-22 21 views
5

Tôi đang viết mô-đun hạt nhân có thể nạp và thử kiểm tra nó. Sau khi chèn nó tôi đã cố gắng để loại bỏ nó bằng cách sử dụng rmmod xxx lệnh, nhưng tôi nhận được một lỗi nói rằng module xxx is in use và các mô-đun bị mắc kẹt và tôi không thể loại bỏ nó. Bất kỳ ý tưởng làm thế nào để loại bỏ các mô-đun mà không cần khởi động lại toàn bộ máy? (Linux Kernel v 3.5.0.)Không thể xóa mô-đun hạt nhân có thể nạp được

Lưu ý: rmmod -f in Error: device or resource busy

+0

Có thể 'rmmod -f'? –

+0

'rmmod -f' không hoạt động, nó in' LRI: thiết bị hoặc tài nguyên bận ' –

+2

Sau đó khởi động lại. (Và suy nghĩ về việc chơi xung quanh với hạt nhân trong máy ảo thay vì máy chủ chính của bạn. Khởi động lại không thực sự là vấn đề.) – Mat

Trả lời

8

này chỉ xảy ra với tôi khi có một lỗi trong trình điều khiển của tôi mà gây ra mã trong các mô-đun để hoảng sợ hay sụp đổ một cách nào đó . Theo kinh nghiệm của tôi một khi điều này xảy ra khởi động lại là khóa học duy nhất có thể.

Như tôi đã nói, hạt nhân thường hoảng sợ vì vậy bạn nên kiểm tra dmesg sau khi chèn hoặc chạy ứng dụng của bạn để thực hiện nó. Tôi không chắc chắn nhưng nó có thể có thể là nếu người lái xe không phát hành một mutex hành vi này sẽ xảy ra là tốt.

1

Kiểm tra chức năng module_exit của bạn là thích hợp. Bạn có thể cần phải biên dịch hạt nhân của bạn để có "loại bỏ các mô-đun mà không cần khởi động lại toàn bộ máy" với MODULE_FORCE_UNLOAD = có.

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