http://newness.wordpress.com/2008/05/07/how-to-add-a-system-call-in-linuxpart-i/
http://mrmoneyc.wordpress.com/2009/03/30/howto-add-system-call-into-linux-kernel/
以上是參考網頁
這是這次嘗試之後的結果 做了以下的更動
因為每個版本都不一樣 網路上的版本用的也都不一樣 檔名 路徑都不同 還有的不同路徑有同檔名的
弄得我到最後連到底有沒有改對檔案都不知道
以下是推測+嘗試的結果 結果不是有ERROR就是沒有結果 因為根本就不知道自己改的到底對還錯 所以我放棄了 就把這次做的事情記錄一下
換大家都用的版本 結束~
/usr/src/linux/arch/x86/kernel/syscall_table_32.S以更動
加入
.long sys_recvmmsg
.long sys_myfunc /* 338 */
/usr/src/linux/arch/x86/include/asm/unistd_32.h以更動
加入
#define __NR_myfunc 338
#ifdef __KERNEL__
#define NR_syscalls 339
/usr/include/asm/unistd_32.h 以更動
#define __NR_inotify_init1 332
#define __NR_myfunc 338 /* 自訂的 system call 定義 */
#endif /* _ASM_X86_UNISTD_32_H */
/usr/src/linux/include/asm-generic/unistd.h 不更動
/usr/src/linux/kernel/ 新增myfunc
#ifndef __LINUX_MYFUNC
#define __LINUX_MYFUNC
#include <linux/linkage.h>
#include <linux/kernel.h>
asmlinkage int sys_myfunc(void){
printk("Success!! --\n");
return 0;
};
#endif
/usr/src/linux/kernel/Makefile 更動
obj-y = myfunc.o sched.o fork.o exec_domain.o panic.o printk.o profile.o \
/usr/src/linux/arch/x86/kernel/Makefile 不更動
obj-y += myfunc.o
/usr/include/bits/syscall.h 更動
加入
#define SYS_myfunc __NR_myfunc
#endif /* _ASM_I386_UNISTD_H_ */
/usr/src/linux/arch/x86/include/asm/syscalls.h 不更動
/usr/src/linux/include/asm-generic/syscalls.h 更動
加入
asmlinkage int sys_myfunc(void);
最後編譯
make menuconfig
make
make install
留言列表