2014-02-13 1 views
3

У меня есть функция в драйвере ядра 1 (KD1.ko):не в состоянии insmod или использовать модуль между ядром (ы)

static void test (void); 
EXPORT_SYMBOL(test); 

static void test() { 
    printk("<<< MISSION DONE >>>.\n"); 
} 

в ядре драйвера 2 (KD2.ko):

extern static void test (void); 

, который я попытался назвать.

Мне удалось вставить KD1.ko, но я не смог вставить KD2.ko. Я что-то упустил?

ответ

4

test() является static.

поэтому вы не можете экспортировать статические функции.

http://osdir.com/ml/linux.kernel.kernelnewbies/2003-02/msg00149.html

+3

я должен был написать о той же причине :) +1 для этого – user2760375

+0

я попытался удалить статический, и он по-прежнему не работает. – Babbit

+0

@Babbit какая проблема именно вы получаете ?? – Jeyaram