Linux - Embedded & Single-board computerThis forum is for the discussion of Linux on both embedded devices and single-board computers (such as the Raspberry Pi, BeagleBoard and PandaBoard). Discussions involving Arduino, plug computers and other micro-controller like devices are also welcome.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Hi, i am trying to write modular programm,
but when i try to compile i come to know i dont have any files in /usr/src/linux.
i have installed fedora 12 which has 2.6.31.5-127.fc12.i686.PAE
i am including in my code
linux/kernel.h
linux/module.h
Those are not present directory in /usr/src/linux is not present.
My goal is to compile modular programs.
I am newbie
Please help me how to do .....
Hi i have downloaded kernel-2.6.31.5-127.fc12.src.rpm
i extracted and i found there are lot of patches along with linux-2.6.31.tar.bz2.
I extracted linux-2.6.31.tar.bz2 and copied whole directory linux-2.6.31 to /usr/src/ , The code what i have written is
module1.c
[Code]
#include<linux/kernel.h>
#include<linux/module.h>
int init_module(void)
{
printk("In Init module \n");
}
void cleanup_module(void)
{
printk("In Cleanup module \n");
}
[/COLOR]
i compiled using
gcc -DMODULE -D__KERNEL__ -I /usr/src/linux-2.6.31/include/ -c module1.c
The error what i am getting is
In file included from /usr/src/linux-2.6.31/include/linux/kernel.h:11,
from module1.c:1:
/usr/src/linux-2.6.31/include/linux/linkage.h:5:25: error: asm/linkage.h: No such file or directory
In file included from /usr/src/linux-2.6.31/include/linux/kernel.h:15,
from module1.c:1:
/usr/src/linux-2.6.31/include/linux/bitops.h:17:24: error: asm/bitops.h: No such file or directory
In file included from module1.c:1:
/usr/src/linux-2.6.31/include/linux/kernel.h:21:21: error: asm/bug.h: No such file or directory
In file included from /usr/src/linux-2.6.31/include/linux/list.h:6,
from /usr/src/linux-2.6.31/include/linux/module.h:9,
from module1.c:2:
/usr/src/linux-2.6.31/include/linux/prefetch.h:14:27: error: asm/processor.h: No such file or directory
/usr/src/linux-2.6.31/include/linux/prefetch.h:15:23: error: asm/cache.h: No such file or directory
In file included from /usr/src/linux-2.6.31/include/linux/module.h:9,
from module1.c:2:
/usr/src/linux-2.6.31/include/linux/list.h:7:24: error: asm/system.h: No such file or directory
In file included from /usr/src/linux-2.6.31/include/linux/preempt.h:9,
from /usr/src/linux-2.6.31/include/linux/spinlock.h:50,
from /usr/src/linux-2.6.31/include/linux/seqlock.h:29,
from /usr/src/linux-2.6.31/include/linux/time.h:8,
from /usr/src/linux-2.6.31/include/linux/stat.h:60,
from /usr/src/linux-2.6.31/include/linux/module.h:10,
from module1.c:2:
/usr/src/linux-2.6.31/include/linux/thread_info.h:56:29: error: asm/thread_info.h: No such file or directory
In file included from /usr/src/linux-2.6.31/include/linux/preempt.h:9,
from /usr/src/linux-2.6.31/include/linux/spinlock.h:50,
from /usr/src/linux-2.6.31/include/linux/seqlock.h:29,
from /usr/src/linux-2.6.31/include/linux/time.h:8,
from /usr/src/linux-2.6.31/include/linux/stat.h:60,
from /usr/src/linux-2.6.31/include/linux/module.h:10,
from module1.c:2:
/usr/src/linux-2.6.31/include/linux/thread_info.h:65: warning: ‘struct thread_info’ declared inside parameter list
/usr/src/linux-2.6.31/include/linux/thread_info.h:65: warning: its scope is only this definition or declaration, which is probably not what you want
/usr/src/linux-2.6.31/include/linux/thread_info.h: In function ‘set_ti_thread_flag’:
/usr/src/linux-2.6.31/include/linux/thread_info.h:67: error: dereferencing pointer to incomplete type
/usr/src/linux-2.6.31/include/linux/thread_info.h: At top level:
/usr/src/linux-2.6.31/include/linux/thread_info.h:70: warning: ‘struct thread_info’ declared inside parameter list
/usr/src/linux-2.6.31/include/linux/thread_info.h: In function ‘clear_ti_thread_flag’:
/usr/src/linux-2.6.31/include/linux/thread_info.h:72: error: dereferencing pointer to incomplete type
/usr/src/linux-2.6.31/include/linux/thread_info.h: At top level:
/usr/src/linux-2.6.31/include/linux/thread_info.h:75: warning: ‘struct thread_info’ declared inside parameter list
/usr/src/linux-2.6.31/include/linux/thread_info.h: In function ‘test_and_set_ti_thread_flag’:
/usr/src/linux-2.6.31/include/linux/thread_info.h:77: error: dereferencing pointer to incomplete type
/usr/src/linux-2.6.31/include/linux/thread_info.h: At top level:
/usr/src/linux-2.6.31/include/linux/thread_info.h:80: warning: ‘struct thread_info’ declared inside parameter list
/usr/src/linux-2.6.31/include/linux/thread_info.h: In function ‘test_and_clear_ti_thread_flag’:
/usr/src/linux-2.6.31/include/linux/thread_info.h:82: error: dereferencing pointer to incomplete type
/usr/src/linux-2.6.31/include/linux/thread_info.h: At top level:
/usr/src/linux-2.6.31/include/linux/thread_info.h:85: warning: ‘struct thread_info’ declared inside parameter list
/usr/src/linux-2.6.31/include/linux/thread_info.h: In function ‘test_ti_thread_flag’:
/usr/src/linux-2.6.31/include/linux/thread_info.h:87: error: dereferencing pointer to incomplete type
In file included from /usr/src/linux-2.6.31/include/linux/seqlock.h:29,
from /usr/src/linux-2.6.31/include/linux/time.h:8,
from /usr/src/linux-2.6.31/include/linux/stat.h:60,
from /usr/src/linux-2.6.31/include/linux/module.h:10,
from module1.c:2:
/usr/src/linux-2.6.31/include/linux/spinlock.h:364:24: error: asm/atomic.h: No such file or directory
In file included from /usr/src/linux-2.6.31/include/linux/time.h:9,
from /usr/src/linux-2.6.31/include/linux/stat.h:60,
from /usr/src/linux-2.6.31/include/linux/module.h:10,
from module1.c:2:
/usr/src/linux-2.6.31/include/linux/math64.h:5:23: error: asm/div64.h: No such file or directory
In file included from /usr/src/linux-2.6.31/include/linux/mmzone.h:9,
from /usr/src/linux-2.6.31/include/linux/gfp.h:4,
from /usr/src/linux-2.6.31/include/linux/kmod.h:22,
from /usr/src/linux-2.6.31/include/linux/module.h:13,
from module1.c:2:
/usr/src/linux-2.6.31/include/linux/wait.h:26:25: error: asm/current.h: No such file or directory
In file included from /usr/src/linux-2.6.31/include/linux/bitmap.h:8,
from /usr/src/linux-2.6.31/include/linux/nodemask.h:95,
from /usr/src/linux-2.6.31/include/linux/mmzone.h:16,
from /usr/src/linux-2.6.31/include/linux/gfp.h:4,
from /usr/src/linux-2.6.31/include/linux/kmod.h:22,
from /usr/src/linux-2.6.31/include/linux/module.h:13,
from module1.c:2:
/usr/src/linux-2.6.31/include/linux/string.h:21:24: error: asm/string.h: No such file or directory
In file included from /usr/src/linux-2.6.31/include/linux/gfp.h:4,
from /usr/src/linux-2.6.31/include/linux/kmod.h:22,
from /usr/src/linux-2.6.31/include/linux/module.h:13,
from module1.c:2:
/usr/src/linux-2.6.31/include/linux/mmzone.h:18:26: error: linux/bounds.h: No such file or directory
/usr/src/linux-2.6.31/include/linux/mmzone.h:20:22: error: asm/page.h: No such file or directory
In file included from /usr/src/linux-2.6.31/include/linux/gfp.h:4,
from /usr/src/linux-2.6.31/include/linux/kmod.h:22,
from /usr/src/linux-2.6.31/include/linux/module.h:13,
from module1.c:2:
/usr/src/linux-2.6.31/include/linux/mmzone.h: At top level:
/usr/src/linux-2.6.31/include/linux/mmzone.h:288: error: ‘MAX_NR_ZONES’ undeclared here (not in a function)
/usr/src/linux-2.6.31/include/linux/mmzone.h:335: error: expected specifier-qualifier-list before ‘atomic_long_t’
In file included from /usr/src/linux-2.6.31/include/linux/notifier.h:14,
from /usr/src/linux-2.6.31/include/linux/memory_hotplug.h:6,
from /usr/src/linux-2.6.31/include/linux/mmzone.h:642,
from /usr/src/linux-2.6.31/include/linux/gfp.h:4,
from /usr/src/linux-2.6.31/include/linux/kmod.h:22,
from /usr/src/linux-2.6.31/include/linux/module.h:13,
from module1.c:2:
/usr/src/linux-2.6.31/include/linux/rwsem.h:22:65: error: asm/rwsem.h: No such file or directory
In file included from /usr/src/linux-2.6.31/include/linux/memory_hotplug.h:6,
from /usr/src/linux-2.6.31/include/linux/mmzone.h:642,
from /usr/src/linux-2.6.31/include/linux/gfp.h:4,
from /usr/src/linux-2.6.31/include/linux/kmod.h:22,
from /usr/src/linux-2.6.31/include/linux/module.h:13,
from module1.c:2:
/usr/src/linux-2.6.31/include/linux/notifier.h:62: error: field ‘rwsem’ has incomplete type
In file included from /usr/src/linux-2.6.31/include/linux/gfp.h:4,
from /usr/src/linux-2.6.31/include/linux/kmod.h:22,
from /usr/src/linux-2.6.31/include/linux/module.h:13,
from module1.c:2:
/usr/src/linux-2.6.31/include/linux/mmzone.h: In function ‘populated_zone’:
/usr/src/linux-2.6.31/include/linux/mmzone.h:675: error: ‘struct zone’ has no member named ‘present_pages’
/usr/src/linux-2.6.31/include/linux/mmzone.h: In function ‘is_normal’:
/usr/src/linux-2.6.31/include/linux/mmzone.h:724: error: ‘struct zone’ has no member named ‘zone_pgdat’
In file included from /usr/src/linux-2.6.31/include/linux/gfp.h:7,
from /usr/src/linux-2.6.31/include/linux/kmod.h:22,
from /usr/src/linux-2.6.31/include/linux/module.h:13,
from module1.c:2:
/usr/src/linux-2.6.31/include/linux/topology.h:34:26: error: asm/topology.h: No such file or directory
In file included from /usr/src/linux-2.6.31/include/linux/gfp.h:8,
from /usr/src/linux-2.6.31/include/linux/kmod.h:22,
from /usr/src/linux-2.6.31/include/linux/module.h:13,
from module1.c:2:
/usr/src/linux-2.6.31/include/linux/mmdebug.h:4:28: error: linux/autoconf.h: No such file or directory
In file included from /usr/src/linux-2.6.31/include/linux/module.h:14,
from module1.c:2:
/usr/src/linux-2.6.31/include/linux/elf.h:7:21: error: asm/elf.h: No such file or directory
In file included from /usr/src/linux-2.6.31/include/linux/tracepoint.h:18,
from /usr/src/linux-2.6.31/include/linux/module.h:19,
from module1.c:2:
/usr/src/linux-2.6.31/include/linux/rcupdate.h:64:2: error: #error "Unknown RCU implementation specified to kernel configuration"
In file included from module1.c:2:
/usr/src/linux-2.6.31/include/linux/module.h:20:23: error: asm/local.h: No such file or directory
/usr/src/linux-2.6.31/include/linux/module.h:22:24: error: asm/module.h: No such file or directory
In file included from module1.c:2:
/usr/src/linux-2.6.31/include/linux/module.h: At top level:
/usr/src/linux-2.6.31/include/linux/module.h:714: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
[root@rajguruvin rgv]# yum install kernel-devel
Loaded plugins: presto, refresh-packagekit
Setting up Install Process
Package kernel-devel-2.6.32.14-127.fc12.i686 already installed and latest version
Nothing to do
Try to add "-I/usr/src/linux-2.6.31/arch/x86/include" to your compiler flags, since /usr/src/linux-2.6.31/include does not contain platform specific files.
Try to add "-I/usr/src/linux-2.6.31/arch/x86/include" to your compiler flags, since /usr/src/linux-2.6.31/include does not contain platform specific files.
i tried still its not working
[root@rajguruvin rgv]# gcc -DMODULE -D__KERNEL__ -I /usr/src/linux/arch/x86/include -c module1.c
module1.c:1:23: error: asm/kernel.h: No such file or directory
In file included from module1.c:2:
/usr/src/linux/arch/x86/include/asm/module.h:4:32: error: asm-generic/module.h: No such file or directory
/usr/src/linux/arch/x86/include/asm/module.h:59:2: error: #error unknown processor family
[root@rajguruvin rgv]#
"asm" is a symbolic link to architecture specific header files in include directory which is not present by default. make menuconfig creates the link.
then compile yr module using "gcc -DMODULE -D__KERNEL__ -I /usr/src/linux-2.6.31/include/ -c module1.c"
think it should work.
"asm" is a symbolic link to architecture specific header files in include directory which is not present by default. make menuconfig creates the link.
then compile yr module using "gcc -DMODULE -D__KERNEL__ -I /usr/src/linux-2.6.31/include/ -c module1.c"
think it should work.
[root@rajguruvin rgv]# gcc -DMODULE -D__KERNEL__ -I /usr/src/linux/arch/x86/include -c module1.c
module1.c:1:23: error: asm/kernel.h: No such file or directory
In file included from module1.c:2:
/usr/src/linux/arch/x86/include/asm/module.h:4:32: error: asm-generic/module.h: No such file or directory
/usr/src/linux/arch/x86/include/asm/module.h:59:2: error: #error unknown processor family
[root@rajguruvin rgv]#
This is because your kernel source is not configured. Go to the toplevel kernel source directory and type "make oldconfig && make prepare". Then try again.
Furthermore there is no such header file: "asm/kernel.h"
It is called "linux/kernel.h"
Looks like, vvignesh is completely new to kernel. I will spoon feed him
Just do the foll
1) mkdir new_dir
2) cp linux-2.6.31.tar.bz2 new_dir
3) cd new_dir
4) tar xvjf linux-2.6.31.tar.bz2
5) make defconfig
6) make
7) make modules
8) make install modules
You might get an error "No such file or directory at this stage". Create the directory it asks for in /lib/modules/
This will create a new kernel for you and will have an entry in grub
Reboot the system
Select the newly built kernel
1) Now compile your module with
make -C <location_of_new_dir> SUBDIRS=$PWD modules
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.