Programming :: Modifying The Elevator.c Module In Kernel?
Feb 22, 2011
There is a file called elevator.c. It is written as a module (i.e it has specific init and exit functions). However we are not able to see it in lsmod listing. We are working on a project where we need to modify this file. Compiling every time we change something will be time consuming. Is it possible to compile just this file and insert it as a normal module?
I have made a several modifications to my penstick running Xubuntu 10.10 that have greatly enhanced its performance. It took me several weeks to get to this point. I have added entries to /etc/rc.local and added kernel tweaks in /etc/grub.d/40_Custom so that my entries wont be erased. I have also added entries in my /etc/fstab. I have read this document in regards to the kernel but I am concerned about my /etc/fstab,/etc/rc.local and /etc/grub.d/40_Linux files being overwritten from updates.
[URL]
I am concerned about when one of my users decides he wants to run his updates via apt-get or package managers that all of the configs that I have done will be wiped away.
do you have any code to flash led lights with paralel port (device driver programming)or any lecture about this subject .if there is a working code this would be better ofcourse.
I'm trying to build the kernel module for dvbhdhomerun. The problem is the linux kernel headers provided by Debian do not have the dvb header files. Trying to set up my own kernel source tree to use is not working out so well.
I'm following the instructions in the Debian section here: [URL] ....
My first try compiled, but the modules ender up under /lib/modules/3.2.51/extra instead of /lib/modules/3.2.0-4-amd64/extra. Why?
I tried to start over, but noticed this while running apt-get source linux-image-3.2.0-4-amd64:
Code: Select allReading package lists... Done Building dependency tree Reading state information... Done Picking 'linux' as source package instead of 'linux-image-3.2.0-4-amd64' NOTICE: 'linux' packaging is maintained in the 'Svn' version control system at: svn://svn.debian.org/svn/kernel/dists/trunk/linux/
[Code] ....
The failure to verify the signature has me concerned, but beyond that, what do I do about the different version number when compiling and installing the kernel modules?
I`m trying to compile sources of kernel module which has been written for kernel 2.6.9. There were many changes in kernel headers since then in current kernel sources. I`ve found that old /asm/system.h was moved under architecture dedicated directory /arch/*/include/asm/system.h. Anyway during sources compilation I`m having errors related to kernel sources. It looks like there is something wrong with this /asm/system.h
Code:
../asm/system.h: In function �__cmpxchg�: ../asm/system.h:248: error: expected string literal before �LOCK_PREFIX� ../asm/system.h:254: error: expected string literal before �LOCK_PREFIX�
I am looking for information to insert kernel module into kernel. I am not looking at dynamically insert of kernel module using insmod, modprobe etc. I am looking for statically insertion of kernel module procedure, such as what to change on makefile, what to change on menuconfig, what to change on .config file, etc.
I have just started learning Device driver programming in Linux and am stuck in my first program. Its just to see init_module and cleanup_module calls to use printk and see results using dmesg. program is:
Code:
#define MODULE #include<linux/module.h> int init_module(void)
I am trying to learn how to write a kernel module. I am following the excellent guide from The Linux Documentation Project called The Linux Kernel Module Programming Guide v.2.6.4.
My machine is running Ubuntu Lucid Lynx (10.04)
Code:
I installed the corresponding linux headers and just to make sure I also installed the linux source and extracted it in /usr/src
I am trying to run the following trivial kernel module
I'm currently doing a tutorial for writing kernel modules. Right now I'm still at the very beginning, i.e. writing my helloworld stuff.
But what I like to do now is to write stuff onto the console, and I don't get it. According to my tutorials I can print stuff on the console using the printk()-function as long as the priority-level of the macro used in printk() is lower than the console_loglevel (how can I find that value out btw?).
But it doesn't work for me. Even if I use KERN_EMERG it still gets only logged, but not printed on the console and I thought KERN_EMERG get always printed...
Here's my code:
Code:
Code:
Everything works fine. But as soon as there are any blanks in mystring, e.g.
Code:
I always get
Code:
Why do I get this error and how can I insert string with blanks?
I'm trying to compile a Linux kernel module called hello-2.c using the command "make -C /lib/modules/$(uname -r)/build M=${PWD} modules" (without the quotes) (which I found online), and the following is the (seemingly successful) output.:
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 trying to debug a module I programmed but I don't want to do it on the running host but against UML (don't want to reboot every 5 minutes).
The UML kernel I downloaded is 2.6.38.2. I have already downloaded the ubuntu kernel headers for this version (they belong to natty though I'm running maverick.... when I installed the .deb file with dpkg I had no problem at all).
Now I'd like to build said module against these headers. How can I do it?
How can we fire a shell command like ls,./a.out automatically in kernel space via a kernel module ? i.e. replacement of system() function of user space into kernel space.We need to develop a kernel module which can fire some shell command let say "firefox [url]" automatically to open google automatically from module.
I'm currently working with wireless network kernel module.
This device initialiy gets its IP address by using DHCP, but the problem is sometimes the new IP assigned for internal reason.
So what I want to do is assigning new(changed)IP address into exsiting interface, or occuring DHCP renew event to cause update IP from kernel level. This shold be done without user's intervention, so whenever the kernel module detects IP changed(via underlying wireless communication), it automatically correct update its IP address.
Q1) any functions or api to cause DHCP renew event from kernel level? Q2) or any functions or api to assign IP address to specific interface?
I am trying to convert from using the base centos kernel to centosplus kernel. I have modified the CentoOS-Base.repo file to do this, including ensuring that I have excluded the kernel kernel-devel etc from base and updates. However when I do a yum update there is nothing to update. I have noted that my current kernel is kernel-2.6.18-194.8.1 whereas the current centosplus kernel seems to be 2.6.18-194.3.1. I presume that the problem is that the plus kernel is not as recent as the base kernel. Is this correct? What is the best way of converting to the centosplus kernel in these circumstances?
This for Kernel 2.6.29.6. I'm trying to code a kernel module that displays process information.
how to count opened file descriptors per task. I have been able to write a module that lists all the current process names along with their pid number in /var/log/messages. Basically, I cycle through the ring of processes using the macro for_each_process(task) and printk the comm and pid of each task. I'm trying to see how many file descriptors each task has open. I've been reading up in books and all over the internet. At first I thought I needed to access max_fds under files_struct, but that just lists the maximum number of file descriptors that can be opened per task, which by default is set at 256. I then thought about counting the elements in the fd_array. But then I learned that every task's fd_array is initially set at 32. Now I know that I need to access open_fds of type fd_set * in files_struct. open_fds is a pointer to all the open file descriptors. The problem is that I don't know how to access a pointer of type fd_set.
Is there a good guide or book that really focuses on type fd_set and open_fds? Every book and resource I've read never really go into depth on this. relationship between files struct, open_fds, and the open file descriptors in task?
I need to install module u32 into the netfilter module for kernel 2.6.27.
I did not see the source code in the kernel version I have. where can I find the code for U32 module.
I have checked "netfilter.org" and looks like POM is discontinued. Is the u32 module committed to kernel version 2.6.27 or need to patch it. If yes, where can I find the patch?
I updated the kernel to 2.6.35.10-74.fc14.x86_64 and had to reinstall and rebuild the kernel module for my ATi driver as usual, so I edited the kernel arguments at the grub splash screen so that I could boot into single user mode and install the driver (i.e appending the relevant line with '1'). The interesting thing is, the system booted directly into single user mode as root when the system started up. No password was required.
I can use hexedit to manually edit one or two hex values in a binary file, but if I want to change many of the, this is impractical. Is there any tool that will take parameters like Code: someTool filename byteNumber replacementByte ?
I've implemented a python script in conky that shows my stock portfolio.But, in the output of last updated timestamp, I get a time several hours in the past. The url for fetching stock data is: [URL]This is a norwegian stock, and I also live in norway. So the timestamp is not translated to the stock market of where it came. I can't find any 'localizing' stuff in the url either.Now my question is this: The script puts the time into a variable, the varable now contains ex 11:23 Is there any way I can add 6 hours or so to this variable
I wrote a character device driver for an Embedded Linux build (Kernel Revision 2.6.17.1) running on ARM9. In the module's "read()" function, I'm returning the number of bytes that were copied into the user buffer. I saw some module code samples online and in most cases the "read()" function is returning the number of bytes read.The very strange behavior I saw in my case was, if I use a variable to return the value from the module's "read()" function, the user application reading from the module always saw "0".For instance:
All I want to do is fade some text in and out via the opacity attribute, and change the text when it hits zero. My script changes the text on time, but ignores the formatting effects. I'm not worried at this stage about the else statement in the startFadeEffect() function. I just want the fade effect to work here the way it should.
I have a problem with my custom kernel when I want to create the Nvidia kernel module.After this finished I installed the image and headers and created the Nvidia kernel module. Everything worked fine.However, if I remove the linux-source from my home directory then I can't create the kernel module.Even though I have the headers for the kernel installed.
I'm running Virtualbox from the Sun website (need the USB support) and it breaks after each kernel update.The problem is that I installed a lot of Ubuntu systems for transitioning windows users with Windows in virtualbox to ease the migration but I have to rerun vboxdrv setup after each kernel patch.
I am interested in using fortran and an external library called matio used to save arrays to matlab .mat files. I have installed the matio and matio-dev packages from synaptics but i cannot compile a code receiving an error Code: christos@christos-laptop:~/Desktop$ gfortran -o test test.f90 -lmatio -lz test.f90:2.13: USE MATIO 1
Fatal Error: Can't open module file 'matio.mod' for reading at (1): No such file or directory How can i load a module in order to use it in fortran through the GCC compiler?
I recently bought an AMD R7 360 videocard and I'd like to use the free Radeon driver.
Problem is, PCI-ID 0x665f is not present in Jessie's 3.16 kernel sources. The hardware however is supported, it's just not recognized. So I'll have to get the Debain sources and patch include/drm/drm_pciids.h
From the 4.1rc1 kernel I know what to patch and where.
Debian page that explains how to use the Debian build system for recompiling the current kernel from Debian packages?