Programming :: Simple Example Document For Adding A System Call On Fedora 14 Kernel?
Nov 20, 2010Does anyone have straightforward simple example document for adding a system call on fedora 14 kernel?
View 12 RepliesDoes anyone have straightforward simple example document for adding a system call on fedora 14 kernel?
View 12 RepliesMy ubuntu version is 9.10
I was working on adding a call system to my linux kernel.
I tried a lot of threads and .pdf files which explaining how to add a system call. Like :
1- This thread
2- .pdf file
and many ..
I tried working with linux-2.6.18.1 , 2.6.33.1 , 2.6.28.1 and many many.
But , all of them are returning -1 as result ..
I prefer working on 2.6.28 kernel version or above like 2.6.33.1
I want to test my system call that be goint to add to kernel, But when i finish compiling kernel, i found my system call code not work. the code i want to return the system time "struct timespec":
/*----------Start of mycall.c----------*/
#include <linux/linkage.h>
#include <linux/time.h>
#include <linux/kernel.h>
[code]....
so i want a method to test the new system call before compiling kernel.
I have added a new system call for kernel version Linux 2.6.25-14.fc9.i686. after kernel compilation and running the user mode program i am getting the below error
Error :: Function not implemented
Error number 29
I cannot find the syscall_table.S or entry.S file in the source code , so i didn't made the entry of the syscall in this file, how much necessary the entry of syscall presence in this list and how to get this file?
i want to add a new system call.im following this guide [URL] in this step 6 he said add __NR_mycall to some number, in unistd.h. in include/asm/unistd.h there are are around 1079 calls for different hardwares. and the __NR_SYSCALLS is also defined many places. I don't know where to add my new system call. and another qn is. whether the number for syscall in unistd.h and arch/x86/syscall_32.s both should be same?or they can be different.
View 2 Replies View RelatedI have been assigned to implement a system call that report the system statistics over all memory which are
Total Pages in Active LRU list
Total Pages in Inactive LRU List
in below program why was new_args[0], rather than the reference the_cmd, passed to the execvp system call?
Code:
/*
A _very_ limited shell program
[code]....
I have a process that forks, where the childs puts some data of random size and exits while the parent should get the data and does some manipulation.. here I have used a pipe for child to write the data and parent to read the data.. Child simply dumps the data, and the data is of any size even child and parent doesnt know.
I have used select in the parent to see whether there is any data coming on the reading end of the pipe.. if there is a data.. I copy into a buffer.. Im reading the data continusly when the child exits after closing the writing end of pipe. Parent gets blocked on the read part But my question is how parent know the other of pipe is closed when using the select call. In otherwords.. while using select in readfds, how would i know the other end has closed the pipe..
I am trying to figure out how i would go about finding out where system call is made and error checking is not done. I have code below, if somebody can point me in the right direction where system call is made but error checking is not done.Quote:
#include "shell.h"
#include <stdio.h>
#include <string.h>
[code]....
I successfully added a new system call in CentOS Kernel but I don't know where to view it! My kernel version is -2.6.32.5
View 2 Replies View Relatedhow to create a new system call Linux? what is the process of creating ?my project is to create a system call for displaying owner of a file..where exactly we have to write the system call code? and where are the places need to change ?
View 5 Replies View RelatedAnyone know the reason why a sleep( ) on a Redhat Linux OS would cause the system to indefinitely hang? It's doing this every 10 or so calls in my program and I have to press the reboot button on my computer. My program is reading from a UDP port that has messages sent to it 20 times per second. When I sleep I assume the internal UDP buffer is getting more and more filled.
View 14 Replies View Relatedi've written small tool in C which makes measurements on my router (OpenWrt White Russian).
It is working as a deamon. If the tool is started manually, everything works fine. If it is started per script on startup, the following system call doesn't work :
Code: sprintf(command,"/bin/cat /root/%s%s | /usr/bin/ssh -p2222 user(at)host -i /root/.ssh/id_rsa "/bin/cat >> result/%s%s"", apmac, source, apmac, dest);
rc = system (command); the returned rc in this case is 256.
first i thought it is a problems with the user rights for the tool, so i have added +s to it. but that didn't help. as i said, when the daemon is started by hand, the system call works fine.
I am making a library, but I am facing a strange problem while sending data over network using ethernet.
I am sending 39 bytes of the data from one server to slave application but some time slave receives 39 bytes and some time it receives 29 bytes. And when ever slave receives 29 bytes all the memories to which my pointers are pointing get changed. This problem is only when I am sending data from the server to slave, while sending data from slave to server I am facing no such issue.
I have a script for dd command and i am using it in an application using system() call. Now i want to have the output of the script file (i.e output of dd command) in the application file itself.
View 1 Replies View RelatedIn practice I have a script that call a java program that call a linux system command. The script if I run it, from a shell functions well,so it is not a java problem. The problem come out when i put this script in a crontab schedulation. The result in this case is that java do not execute the system command. I think it depends on crontab
View 4 Replies View Relatedwe have a multi threaded program on Linux where one thread is waiting on poll() system call with event set to POLLIN, & another thread has closed the same socket fd (which is passed to poll) , but the poll() did not return, is this the expected behavior? From man page of poll we found that the poll should return POLLNVAL if the socket fd is closed, is my understanding correct or is there any bug in the poll()?In Solaris we observed that the poll system call is returning with POLLNVAL if the socket is closed.
View 3 Replies View RelatedI have the following code:
Code:
#include <stdio.h>
#include <stdlib.h>
int main() {
system("ps -ef | grep myprocessname");
return 0; }
When I run this program it outputs the following list of running processes:
Code:
root 10279 10275 0 13:02 ? 00:00:00 myprocessname myvar1=value1 myvar2=value2
root 10341 10337 1 13:02 ? 00:00:00 myprocessname myvar1=value1 myvar2=value2
What I want to really do is instead of writing the output to screen I want to read the output and parse the various values value1, value2 etc. What is the best way to do this?
There is a module A which is compiled with the kernel. I wrote an external module B which exported a symbol using EXPORT_SYMBOL.The module A now needs to talk with that exported symbol (function call). For that i modified A so that it includes the function call from B. However i now get unidentified symbol errors during 'make' operation as symbols of B are not present during kernel compile and A now kind of depends on B.
One solution is that make B part of the kernel as well. However, it would mean that whenever now i try to compile a kernel with a different source, i have to modify the config files and everything to accommodate B.Hence i am seeking a solution which does not include modifying the kernel.
i'm a college student studying pc programing, and i was given today a special work and i have to program using miranda... which i've never used it >.< can anyone give me a hand to where to download, how to compile, and a simple tutorial for making a simple program or something?
View 3 Replies View RelatedHow to use execv from kernel space to call a user space program writtenfor socket prog.
I tried to write code for socket in kernel but its not working.
Socket code in kernel is also needed.
iam trying to add a system call to the kernel version 2.6.33.7.Iam running fedora 13.I have followed all the steps given in this <hekimian-williams.com/?p=20 -> tutorial,but iam getting a error in make saying undfined reference to mysyscall in syscall_table_32.
View 1 Replies View RelatedThese are the settings on my server, which has a static ip:
Code:
[tim@computim ~]$ cat /etc/exports
/media/cavern 192.168.1.*(rw,sync)
Code:
[tim@computim ~]$ cat /etc/hosts.deny
portmap:ALL
mountd:ALL
rquotad:ALL
statd:ALL
lockd:ALL
Code:
[tim@computim ~]$ cat /etc/hosts.allow
portmap: 192.168.1.2/100
lockd: 192.168.1.2/100
rquotad: 192.168.1.2/100
mountd: 192.168.1.2/100
statd: 192.168.1.2/100
When I try to mount the disk from my client machine I get the error:
Code:
[tim@localhost ~]$ sudo mount -t nfs 192.168.1.10:/media/cavern /media/cavern
mount.nfs mount system call failed
Thinking the problem might be due to iptables I tried the following command as recommended by a book I found on google:
Code:
sudo iptables -A INPUT -i wlan0 -f -j ACCEPT
didn't help so tried disabling the firewall - still getting the error
Both machines are running FC11 - should i be using nfs4?
I'm using gmake (v3.81) to build some c executables. As the first step in the process I run the files through a preprocessor (for embedded SQL). The preprocessor completes successfully, but the gmake reports an error and discontinues buiding the remaining dependencies...
make *** [myfile.c] Error 4
which (according to /usr/include/asm-generic/errno-base.h) means "interrupted System Call". My preprocessor doesn't raise any signals, so I'm not sure what's causing this error.
I have a new work laptop (Dell M6400) that I currently have F10 i386 on. I would like to take advantage to the 64bit processor, but don't know if I need to completely re-install my F10, or if I just have to add the proper 64 bit kernel and applications.
View 4 Replies View RelatedI have implemented LVM to expand the /home partition. I would like to add 2 more disks to the system and use raid 5 for those two disks plus the disk used for /home. Is this possible? If so, do I use type fd for the two new disks and use type 8e for the existing LVM /home disk? Or do I use type fd for all of the raid disks?
View 1 Replies View RelatedWe have documents on multiple workstations and want to collate them into a single repository to provide text search and download. So far we have implemented rsync to copy files from each workstation under a directory for each workstation on a server (incidentally providing a backup) and have set up text search using Xapian with Omega; users access it via a web browser. Still to do is to set up a system to copy files from each workstation's area on the server to the repository.
Many files are duplicated. In these cases we want to preserve the names but keep a single copy of the file;hard links can be used for that.For each file to be copied from a workstation's area into the collated area we need to check whether it is a duplicate (file size and, if same, MD5 sum) and if so, create a hard link to the original rather than create a copy.A system to detect and replace duplicates in the collated area has been written using ruby and postgresql but the developer cannot commit to continuing this work. It does mean we have a postgresql database populated with "fingerprints" of files in the collated area.My first priority is to get the system working; in the longer term whatever is developed must be maintainable; I do not yet know which language skills are available locally.
I am fluent in bash and competent with awk. Ruby looks nice but I have started to learn python and do think it prudent to learn both at the same time. Python's postgresql capabilities are not settled but may be fine for the simple usage required.What to do? A bash solution would run very slowly but could be developed quickly. Language knowledge aside, I have found it difficult to install ruby on the server (CentOS 5.5;installed rvm but "gem" still not installed; seems a very complex system with its own package management).
For my work, I have to modify the routing lookup process at Linux kernel.
The details is below:
A-----B.
We have pcA, pcB (using Linux OS kernel 2.6.26.5) connect together. We need to modify the source code of kernel at B in order to if A sends the packets with destination IP address as C, pcB still receives this packet and send to transport layer (that means, it bypass the routing lookup process at kernel).
The solution I used as the following code...
I have an existing Fedora 15 system installed from scratch.I've ordered a harddrive identical to my SDA and want to add it to my existing system as a RAID1 setup.I've googled around and cannot find recent clear instructions how to accomplish this. I don't want to reinstall everything from scratch. It should be possible to create the RAID1 using the existing data disk and then mirror everything up?
View 1 Replies View RelatedI tried to change gtk and theme by add a gtk 3 theme to the folder usr/share/themes but unfortunately a problem has occurred and the system can't recover. Please log out and try again.
View 3 Replies View Related