неопределенная ссылка на системный вызов, добавленный в ядро

После добавления системного вызова в ядро ​​я попытался скомпилировать ядро.
Он работал 2 часа и в конце бросил

неопределенная ссылка на ‹системный вызов, добавленный мной›

системный вызов, добавленный мной

Есть идеи, что случилось.

Ядро 3.9.3

Выполняемые шаги -

  1. Получите коды ядра с www.kernel.org. wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.3.1.tar.bz2

  2. Заархивируйте его командой tar xvfj XXX в папку, например: /root/kernel tar xvfj linux-3.3.1.tar.bz2

  3. Отредактируйте файл /root/kernel/linux-3.3.1/arch/x86/syscalls/syscall_64.tbl и добавьте новую строку 312 64 husky1 sys_husky1

  4. Редактировать файл /root/kernel/linux-3.3.1/include/linux/syscalls.h Добавить новую функцию перед строкой #endif объявление asmlinkage long sys_husky1(int fd);

  5. Добавьте новый файл c в /root/kernel/linux-3.3.1/arch/x86/kernel (я использую процессор x86) Пример:

    Изменить /root/kernel/linux-3.3.1/arch/x86/kernel/Makefile Добавить новую строку obj-y += husky.o

  6. Перейдите в папку /root/kernel/linux-3.3.1 и выполните команду make –j8


person Anurag Rana    schedule 07.09.2013    source источник


Ответы (1)


Найдите в файле syscall_64.tbl "sys_hello_rana". Я предполагаю, что вы назвали свой системный вызов как "sys_hello_rana" в таблице системных вызовов, но вы использовали другое имя (sys_husky1) при его определении.

person bladeWalker    schedule 07.09.2013