1. add new system call in work/linux-2.6.29/arch/arm/include/asm/unistd.h

#define __NR_newsyscall         (__NR_SYSCALL_BASE+361)


2. register system call tabla
~/work/linux-2.6.29/arch/arm/kernel/calls.S
/* 361 */   CALL(sys_newsyscall)

3. register handler function
in ~/work/linux-2.6.29/arch/arm/kernel/newsyscall.c

  1 #include <linux/kernel.h>
  2
  3 asmlinkage int sys_newsyscall(int n) {
  4     printk("newsyscall called: %d\n", n);
  5     return n * n;
  6 }  

3. compile
modify Makefile like below :
kernel/Makefile
obj-y     = sched.o fork.o exec_domain.o panic.o printk.o \
        cpu.o exit.o itimer.o time.o softirq.o resource.o \
        sysctl.o capability.o ptrace.o timer.o user.o \
        signal.o sys.o kmod.o workqueue.o pid.o \
        rcupdate.o extable.o params.o posix-timers.o \
        kthread.o wait.o kfifo.o sys_ni.o posix-cpu-timers.o mutex.o \
        hrtimer.o rwsem.o nsproxy.o srcu.o semaphore.o \
        notifier.o ksysfs.o pm_qos_params.o sched_clock.o cred.o \
        async.o newsyscall.o


apt-get install libncurses5-dev
ncurses 텍스트 기반의 UI들을 사용하기 위한 library










'Linux' 카테고리의 다른 글

install package for minicom  (0) 2012.01.17
Module-related shell commands  (0) 2012.01.17
vimrc  (1) 2012.01.16
usage ctags  (1) 2012.01.16
print pstree  (2) 2012.01.16