2015-09-27 33 views
1

我剛開始學習Linux開發,爲了培訓目的,我編寫了一個簡單的可加載內核模塊。當我嘗試通過發出以下命令來添加它 - 讓-C/lib/modules目錄/ $(使用uname -r)/構建M = $ PWD模塊netlink_kernel_create函數錯誤

我得到以下錯誤:

錯誤:太函數'netlink_kernel_create'的許多參數 nl_sk = netlink_kernel_create(& init_net,NETLINK_EXAMPLE,0,recv_msg,NULL,THIS_MODULE);

回答

1

你得到這個錯誤,因爲netlink_kernel_create有三個參數,但你通過6

static inline struct sock * 
netlink_kernel_create(struct net *net, int unit, struct netlink_kernel_cfg *cfg) 
{ 
     return __netlink_kernel_create(net, unit, THIS_MODULE, cfg); 
} 

netlink_kernel_create

許多功能,因爲2.6內核已經改變實施和簽名,而內核版本之間的變化是,所以經常檢查。

修復:

struct netlink_kernel_cfg cfg = { 
    .input = recv_msg, 
}; 

nl_sk = netlink_kernel_create(&init_net, NETLINK_EXAMPLE, &cfg); 
+0

你好,感謝你的幫助。我只是在文件中進行了更改並保存了它,但我仍然得到完全相同的錯誤。有什麼建議麼? – niko85

+1

對不起,我正在處理錯誤的文件,我的錯誤。感謝您的幫助。問題已經解決了。 – niko85

+0

不客氣,先生。 – 4pie0