2013-06-22 174 views
5

我正在寫一個可加載的內核模塊,並試圖對其進行測試。將其插入後,我試圖用rmmod xxx命令來刪除它,但我得到一個錯誤說module xxx is in use和模塊卡,我無法將其刪除。任何想法如何刪除模塊,而無需重新啓動整個機器? (Linux內核v 3.5.0。)無法刪除加載內核模塊

注:rmmod -f打印Error: device or resource busy

+0

也許'rmmod的-f'? –

+0

'rmmod -f'不起作用,它會打印'錯誤:設備或資源繁忙' –

+2

那麼重新啓動。 (想想看,一個VM與內核打轉轉,而不是你的主要宿主。重新引導不是一個真正的問題呢。) – Mat

回答

8

這只是發生在我身上時,有在我的司機,這是造成模塊中的代碼恐慌或以某種方式崩潰的bug 。根據我的經驗,一旦發生這種情況,重啓是唯一可行的方法

正如我所說的,內核通常恐慌,所以你應該將其插入或正在運行的應用程序,你不行使的,之後退房dmesg的。我不確定,但如果驅動程序不釋放互斥鎖,則可能會發生此行爲。

1

檢查您的宏module_exit功能是正確的。 您可能需要編譯您的內核以使用MODULE_FORCE_UNLOAD = yes來「刪除模塊而不重新啓動整個機器」。