2013-05-01 2 views
2

Я пытаюсь написать собственный системный вызов в linux kernel версии 3.8.8. Я искал в Интернете, и есть шаги, как это сделать. Особенно эта ссылка http://franksthinktank.com/howto/addsyscall/. Однако. даже несмотря на то, что я выполнил все шаги, которые он не сработал. Я получил ошибку, заявив, что никакого правила для цели не требуется для ядра/встроенного.Добавление системного вызова в ядро ​​linux 3.8.8

Затем я попытался переместить системный вызов в один из .c файлов в каталоге ядра, он тоже не работал. Я пытаюсь следовать примеру в приведенной выше ссылке как практика. Фактически, что я хочу сделать, это получить время в системе, поэтому мне нужно получить доступ к переменной xxtime системы. Итак, я должен выполнить свой системный вызов в файле timekeeping.c.

Мне было интересно, какие файлы именно я меняю в версии ядра 3.8.8, чтобы реализовать системный вызов?

спасибо.

+0

Вы нашли решение проблемы? Если да, не могли бы вы поделиться им, чтобы другие (включая меня) могли учиться у него? – avidProgrammer

ответ

0

Моя версия ядра: 3.8.1

распространения: Ubuntu 12,04

  1. сделать некоторую подготовку (источник загрузки, и некоторые необходимый пакет)
  2. изменить "sys.c" в «linux-3.8.1/kernel» для реализации функции системного вызова
  3. изменить «syscall_32.tbl« in » линукс-3.8.1/арка/x86/Системные вызовы /», чтобы добавить номер вызова
  4. сделать mrproper
  5. делают
  6. конфигурационного меню
  7. сделать -j4>/DEV/нуль
  8. делают modules_install
  9. сделать установку
  10. обновление-личинка
  11. перезагрузка

Вы можете просто оставить "unistd.h "нетронутый

Смежные вопросы