Adding our system call Fedora 18 -new syscall

 
Thread Tools Search this Thread
Operating Systems Linux Red Hat Adding our system call Fedora 18 -new syscall
# 1  
Old 04-20-2013
Adding our system call Fedora 18 -new syscall

Hi,

I wanna add my own system call to Fedora 18 kernel 3.8.2.
From kernel 3.3 I heard there is a new system to add system calls.
So where i can find a guides ?


I wanna print this text: "Hello world!" in terminal, not dmesg.
# 2  
Old 04-20-2013
What if you put at the end of your .profile config file:

Code:
echo 'Hello World!'

# 3  
Old 04-20-2013
dude ....
not that
syscall...
# 4  
Old 04-21-2013
Download the source of the kernel version to which you want to add the system cal.

Add your new syscall to arch/x86/syscalls (assuming you are using a kernel > 3.3.4). To add your system call move to the end of the file and add an entry at the end with the syntax same as previous lines. Next edit arch/x86/include/asm/unistd_32.h and add an appropriate #define for the your system call at the end of the file. Lets assume you wish to name your syscall "demo"
Code:
#define __NR_demo <your syscall number>

Then add the following code to kernel/sys.c
Code:
int SYSCALL_DEFINE0(demo) { 
printk(KERN_INFO "Demo system call"); 
return 0;                                
}

SYSCALL_DEFINE0 signifies that demo is a system call with zero arguments.

Compile and install your new kernel. Your new syscall is then ready for testing.
# 5  
Old 04-21-2013
If i have 64 btis system then i have still to edit this file: "unistd_32.h"?

---------- Post updated at 03:51 PM ---------- Previous update was at 10:35 AM ----------

I must add syscall in Fedora 18 kernel 3.8.2 32 or 64. I take 32 on virtual box.
First i tried this:

"
  • Upzip it with command ‘tar xvfj XXX” to a folder For example : /root/kernel tar xvfj linux-3.3.1.tar.bz2
  • Edit file “/root/kernel/linux-3.3.1/arch/x86/syscalls/syscall_64.tbl” Add new line
312 64 husky1 sys_husky1
  • Eidt file “/root/kernel/linux-3.3.1/include/linux/syscalls.h” Add new function declaration
asmlinkage long sys_husky1(int fd);
before the line “#endif”
  • Add a new c file under “/root/kernel/linux-3.3.1/arch/x86/kernel” (I am using x86 CPU) Example :
  • Edit “/root/kernel/linux-3.3.1/arch/x86/kernel/Makefile” Add a new line “obj-y += husky.o”
  • goto /root/kernel/linux-3.3.1 folder and run command “make –j8” "


but after make menuconfig
and then make
I got this warning: "warning: function declaration isn't a prototype"


this is my demosys.c file:


Code:
#include <linux/linkage.h> 
#include <linux/kernel.h>  
asmlinkage long sys_democall()
 {     
                        printk ("Hello world\n");   
  
                        return 0; 
}

and this is my declaration in linux-3.8.2/include/linux/syscalls.h
Code:
asmlinkage long sys_democall(void);

and linux-3.3.1/arch/x86/syscalls/syscall_32.tbl
351 i386 democall sys_democall


Is this method good to add system call?
Did this erorr interferes with something?
after end of compilation my syscall will work?
Login or Register to Ask a Question

Previous Thread | Next Thread

6 More Discussions You Might Find Interesting

1. Emergency UNIX and Linux Support

Bad Address when adding system call

Hi guys. I have downloaded kernel 2.6.38-5 to add a system call. I did the following steps: 1. I have added my system call to system call table <src folder>/arc/x86/kernel/syscall_table_32.S .long sys_mycall 2. i have added the system cal number in <src... (5 Replies)
Discussion started by: majid.merkava
5 Replies

2. Programming

Adding custom ("Hello") system call: help

I'm trying to add a custom ("Hello world" :o) system call. In /usr/src/linux/hello/ I put simple hello.c ...#include "linux/linkage.h" // for linking a system call #include "linux/kernel.h" // for "printk" asmlinkage int sys_hello() { printk(KERN_ALERT "Hello!"); return 1; }... and in... (5 Replies)
Discussion started by: courteous
5 Replies

3. UNIX for Advanced & Expert Users

how to differentiate system call from library call

Hi, Ho do I differentiate system call from library call? for example if I am using chmod , how do I find out if it is a system call or library call? Thanks Muru (2 Replies)
Discussion started by: muru
2 Replies

4. UNIX for Advanced & Expert Users

solaris and fedora core in one system

How can I keep Solaris 10 GA and Fedora Core 3 In the same machine.I have got IBM netvista machine,with 40 gb hdd and 128 mb ram and 1.6 gzh pentium processor.Give me the step in detail.How do I pertition?How can I boot up both? :( :eek: :confused: (2 Replies)
Discussion started by: xinubhaskar
2 Replies

5. Shell Programming and Scripting

solaris and fedora core in one system

How can I keep Solaris 10 GA with Fedora core 3 in the same system.I have got IBM Netvista system with 40 gb hdd ,128mb ram,pentium 4 1.66 gb processor.Pls tell me in detail,otherwise provide me good Url. :) :eek: :confused: (1 Reply)
Discussion started by: xinubhaskar
1 Replies

6. Red Hat

Fedora - A confiusing operating system!!

I don't know why all these complicated stuff?! I have Fedora Core 3 installed on my Laptop. It has the apache 2.0 + php 4.3.0 installed on it. But for some reasons I need to remove them and install everything by myself. However, I don't see any way to remove a software from this silly oprating... (9 Replies)
Discussion started by: HSN
9 Replies
Login or Register to Ask a Question