После добавления системного вызова в ядро я попытался скомпилировать ядро.
Он работал 2 часа и в конце бросил
неопределенная ссылка на ‹системный вызов, добавленный мной›
Есть идеи, что случилось.
Ядро 3.9.3
Выполняемые шаги -
Получите коды ядра с www.kernel.org.
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.3.1.tar.bz2
Заархивируйте его командой
tar xvfj XXX
в папку, например:/root/kernel tar xvfj linux-3.3.1.tar.bz2
Отредактируйте файл
/root/kernel/linux-3.3.1/arch/x86/syscalls/syscall_64.tbl
и добавьте новую строку312 64 husky1 sys_husky1
Редактировать файл
/root/kernel/linux-3.3.1/include/linux/syscalls.h
Добавить новую функцию перед строкой#endif
объявлениеasmlinkage long sys_husky1(int fd);
Добавьте новый файл 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
Перейдите в папку
/root/kernel/linux-3.3.1
и выполните командуmake –j8