2012-08-09 71 views
0

我正在做Linux內核開發的第一步。 我有一些代碼生成.ko內核模塊,我用insmod安裝。我想要一種方法來調試安裝模塊時發生的情況,但我面臨一些困難。調試Linux內核模塊的init_module()調用

  1. 我需要調用init_module的調用。當我運行insmode時,這個函數是否被調用?

  2. 我嘗試使用insmod "/my/url/fil.ko" -m調試發生了什麼,但每次我遇到錯誤-1 Unknown symbol in module而在/cat/log/message我可以看到錯誤unknown parameter -m

  3. 你知道,如果有一個與GDB調試的方法嗎?

Reagrds

AFG

回答

4

是的,init_module的函數被儘快將其加載到用insmod內核調用。插入模塊後,您可以添加一行printk並驗證它正在打印。

您不能傳遞參數,例如-m來調試內核模塊。

您只能使用MODULE_PARAMS傳遞意圖在您編寫的內核模塊內處理的參數。

+0

嗨Amarnath。感謝您的答覆。那麼實際上,「insmod -m」的確切語法是什麼,它是如何工作的?手冊頁說它用於在加載模塊時輸出以控制所有printk調用。 – 2012-08-09 17:54:52

+1

我相信對insmod上的-m開關的支持從內核2.6開始被移除。你可以找到更多的信息。在這裏:HTTP://linux.derkeiler.com/Mailing-Lists/Kernel/2003-09/3268.html – 2012-08-09 18:21:01