2012-04-02 63 views
9

我對這個內核的東西很新。我想要做的只是添加一個新的系統調用到內核。我遵循這個指導原則:http://hekimian-williams.com/?p=20在Linux內核3.3中添加一個新的系統調用

問題是在arch/x86/kernel下用於syscall_table_32.S文件,但在內核版本3.3中找不到x86系統的文件。我是否還需要編輯文件併爲新添加的系統調用追加一行?還是我需要做其他事情讓內核知道我的新系統調用?任何幫助將不勝感激。謝謝。

回答

7

如何在3.3版本中添加一個新的Linux內核API? - 對於64位操作系統

  • 從www.kernel.org獲取內核代碼。

wget的http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.3.1.tar.bz2

  • Upzip它與命令「xvfj XXX焦油」到一個文件夾 例如:/根/內核 焦油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文件「/root/kernel/linux-3.3.1/include/linux/syscalls.h」 添加新的函數聲明

asmlinkage長sys_husky1( int fd);

行「#ENDIF」

  • 添加一個新的C文件「/root/kernel/linux-3.3.1/arch/x86/kernel」下(我用的x86 CPU)前 例如:

  • 編輯「/root/kernel/linux-3.3.1/arch/x86/kernel/Makefile」 添加新行 「OBJ-γ+ = husky.o」

  • 轉到/root/kernel/linux-3.3.1文件夾並運行命令「 make -j8「

相關問題