Добавление нового системного вызова в ядре Linux 3.3 - PullRequest
9 голосов
/ 02 апреля 2012

Я очень новичок в этом ядре.Я хочу просто добавить новый системный вызов в ядро.Я следовал этому принципу: http://hekimian -williams.com /? P = 20 .

Проблема там используется для файла syscall_table_32.S в каталоге arch / x86 / kernel, но яне удается найти файл для систем x86 в версии ядра 3.3.Мне все еще нужно отредактировать файл и добавить еще одну строку для вновь добавленного системного вызова?Или мне нужно сделать что-то еще, чтобы ядро ​​узнало о моем новом системном вызове?Любая помощь будет оценена.Спасибо.

Ответы [ 2 ]

7 голосов
/ 07 апреля 2012

Как добавить новый API ядра Linux в версии 3.3?- для 64-битной ОС

  • получить коды ядра с 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

  • Eidt file« / root /kernel / linux-3.3.1 / include / linux / syscalls.h ”Добавить объявление новой функции

asmlinkage long sys_husky1 (int fd);

перед строкой« #endif »

  • Добавление нового файла 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»

6 голосов
/ 02 апреля 2012

Я думаю, что в ядре 3.3 он сдвинут здесь

http://lxr.free -electrons.com / source / arch / x86 / syscalls /

...