Results 1 to 3 of 3
Hi,
I am a newbie to kernel module programming, am trying a sample module to compile on suse linux.
The program is:
----------------------------------------------------------
#include"/usr/include/linux/init.h"
#include"/usr/include/linux/module.h"
#define __KERNEL__
#define MODULE
static ...
- 06-22-2009 #1Just Joined!
- Join Date
- Jun 2008
- Posts
- 3
[URGENT Need HELP] on kernel module programming
Hi,
I am a newbie to kernel module programming, am trying a sample module to compile on suse linux.
The program is:
----------------------------------------------------------
#include"/usr/include/linux/init.h"
#include"/usr/include/linux/module.h"
#define __KERNEL__
#define MODULE
static int hello_init(void)
{
printk("Hello Kernel\n");
return 0;
}
static int hello_exit(void)
{
printk("GoodBye kernel\n");
return 0;
}
module_init(hello_init);
module_exit(hello_exit);
-------------------------------------------------------------
I am trying to compile this with the make file as below:
************************************************** ************************************************** **
TARGET := hello
WARN := -W -Wall -Wstrict-prototypes -Wmissing-prototypes
INCLUDE := -isystem /lib/modules/`uname -r`/build/include
CFLAGS := -O2 -DMODULE -D__KERNEL__ ${WARN} ${INCLUDE}
CC := gcc
${TARGET}.o: ${TARGET}.c
.PHONY: clean
clean: rm -rf ${TARGET}.o
************************************************** ************************************************** ***
Then i'm getting the error as:
gcc -O2 -DMODULE -D__KERNEL__ -W -Wall -Wstrict-prototypes -Wmissing-prototypes -isystem /lib/modules/`uname -r`/build/include -c -o hello.o hello.c
In file included from /usr/include/asm/percpu.h:4,
from /usr/include/asm/processor.h:24,
from /usr/include/asm/thread_info.h:17,
from /usr/include/linux/thread_info.h:21,
from /usr/include/linux/preempt.h:10,
from /usr/include/linux/spinlock.h:52,
from /usr/include/linux/capability.h:45,
from /usr/include/linux/sched.h:7,
from /usr/include/linux/module.h:10,
from hello.c:2:
/usr/include/asm-generic/percpu.h:8: error: ‘CONFIG_NR_CPUS’ undeclared here (not in a function)
In file included from /usr/include/linux/sched.h:12,
from /usr/include/linux/module.h:10,
from hello.c:2:
/usr/include/linux/jiffies.h:33:3: error: #error You lose.
/usr/include/linux/jiffies.h:204:31: error: division by zero in #if
/usr/include/linux/jiffies.h:204:31: error: division by zero in #if
/usr/include/linux/jiffies.h:204:31: error: division by zero in #if
/usr/include/linux/jiffies.h:204:31: error: division by zero in #if
/usr/include/linux/jiffies.h:204:31: error: division by zero in #if
/usr/include/linux/jiffies.h:204:31: error: division by zero in #if
/usr/include/linux/jiffies.h:204:31: error: division by zero in #if
/usr/include/linux/jiffies.h:204:31: error: division by zero in #if
/usr/include/linux/jiffies.h:204:31: error: division by zero in #if
/usr/include/linux/jiffies.h:204:31: error: division by zero in #if
/usr/include/linux/jiffies.h:204:31: error: division by zero in #if
/usr/include/linux/jiffies.h:204:31: error: division by zero in #if
/usr/include/linux/jiffies.h:204:31: error: division by zero in #if
/usr/include/linux/jiffies.h:204:31: error: division by zero in #if
/usr/include/linux/jiffies.h:204:31: error: division by zero in #if
/usr/include/linux/jiffies.h:204:31: error: division by zero in #if
/usr/include/linux/jiffies.h:248:46: error: division by zero in #if
In file included from /usr/include/linux/sched.h:12,
from /usr/include/linux/module.h:10,
from hello.c:2:
/usr/include/linux/jiffies.h: In function ‘jiffies_to_msecs’:
/usr/include/linux/jiffies.h:253: error: ‘CONFIG_HZ’ undeclared (first use in this function)
/usr/include/linux/jiffies.h:253: error: (Each undeclared identifier is reported only once
/usr/include/linux/jiffies.h:253: error: for each function it appears in.)
/usr/include/linux/jiffies.h:259:46: error: division by zero in #if
/usr/include/linux/jiffies.h: In function ‘jiffies_to_usecs’:
/usr/include/linux/jiffies.h:264: error: ‘CONFIG_HZ’ undeclared (first use in this function)
/usr/include/linux/jiffies.h:272:46: error: division by zero in #if
/usr/include/linux/jiffies.h: In function ‘msecs_to_jiffies’:
/usr/include/linux/jiffies.h:277: error: ‘CONFIG_HZ’ undeclared (first use in this function)
/usr/include/linux/jiffies.h:285:46: error: division by zero in #if
/usr/include/linux/jiffies.h: In function ‘usecs_to_jiffies’:
/usr/include/linux/jiffies.h:290: error: ‘CONFIG_HZ’ undeclared (first use in this function)
/usr/include/linux/jiffies.h: In function ‘timespec_to_jiffies’:
/usr/include/linux/jiffies.h:309: error: ‘CONFIG_HZ’ undeclared (first use in this function)
/usr/include/linux/jiffies.h:315: error: ‘SHIFT_HZ’ undeclared (first use in this function)
/usr/include/linux/jiffies.h: In function ‘jiffies_to_timespec’:
/usr/include/linux/jiffies.h:328: error: ‘CONFIG_HZ’ undeclared (first use in this function)
/usr/include/linux/jiffies.h: In function ‘timeval_to_jiffies’:
/usr/include/linux/jiffies.h:350: error: ‘CONFIG_HZ’ undeclared (first use in this function)
/usr/include/linux/jiffies.h:354: error: ‘SHIFT_HZ’ undeclared (first use in this function)
/usr/include/linux/jiffies.h: In function ‘jiffies_to_timeval’:
/usr/include/linux/jiffies.h:366: error: ‘CONFIG_HZ’ undeclared (first use in this function)
/usr/include/linux/jiffies.h:379:6: error: division by zero in #if
/usr/include/linux/jiffies.h:379:6: error: division by zero in #if
/usr/include/linux/jiffies.h:379:6: error: division by zero in #if
/usr/include/linux/jiffies.h:379:6: error: division by zero in #if
/usr/include/linux/jiffies.h:379:6: error: division by zero in #if
/usr/include/linux/jiffies.h:379:6: error: division by zero in #if
/usr/include/linux/jiffies.h:379:6: error: division by zero in #if
/usr/include/linux/jiffies.h:379:6: error: division by zero in #if
/usr/include/linux/jiffies.h:379:6: error: division by zero in #if
/usr/include/linux/jiffies.h:379:6: error: division by zero in #if
/usr/include/linux/jiffies.h:379:6: error: division by zero in #if
/usr/include/linux/jiffies.h:379:6: error: division by zero in #if
/usr/include/linux/jiffies.h:379:6: error: division by zero in #if
/usr/include/linux/jiffies.h:379:6: error: division by zero in #if
/usr/include/linux/jiffies.h:379:6: error: division by zero in #if
/usr/include/linux/jiffies.h:379:6: error: division by zero in #if
/usr/include/linux/jiffies.h: In function ‘jiffies_to_clock_t’:
/usr/include/linux/jiffies.h:380: error: ‘CONFIG_HZ’ undeclared (first use in this function)
/usr/include/linux/jiffies.h: In function ‘clock_t_to_jiffies’:
/usr/include/linux/jiffies.h:391: error: ‘CONFIG_HZ’ undeclared (first use in this function)
/usr/include/linux/jiffies.h:410:6: error: division by zero in #if
/usr/include/linux/jiffies.h:410:6: error: division by zero in #if
/usr/include/linux/jiffies.h:410:6: error: division by zero in #if
/usr/include/linux/jiffies.h:410:6: error: division by zero in #if
/usr/include/linux/jiffies.h:410:6: error: division by zero in #if
/usr/include/linux/jiffies.h:410:6: error: division by zero in #if
/usr/include/linux/jiffies.h:410:6: error: division by zero in #if
/usr/include/linux/jiffies.h:410:6: error: division by zero in #if
/usr/include/linux/jiffies.h:410:6: error: division by zero in #if
/usr/include/linux/jiffies.h:410:6: error: division by zero in #if
/usr/include/linux/jiffies.h:410:6: error: division by zero in #if
/usr/include/linux/jiffies.h:410:6: error: division by zero in #if
/usr/include/linux/jiffies.h:410:6: error: division by zero in #if
/usr/include/linux/jiffies.h:410:6: error: division by zero in #if
/usr/include/linux/jiffies.h:410:6: error: division by zero in #if
/usr/include/linux/jiffies.h:410:6: error: division by zero in #if
/usr/include/linux/jiffies.h: In function ‘jiffies_64_to_clock_t’:
/usr/include/linux/jiffies.h:411: error: ‘CONFIG_HZ’ undeclared (first use in this function)
In file included from /usr/include/linux/list.h:7,
from /usr/include/linux/wait.h:23,
from /usr/include/asm/semaphore.h:41,
from /usr/include/linux/sched.h:20,
from /usr/include/linux/module.h:10,
from hello.c:2:
/usr/include/linux/prefetch.h: In function ‘prefetch_range’:
/usr/include/linux/prefetch.h:64: error: ‘CONFIG_X86_L1_CACHE_SHIFT’ undeclared (first use in this function)
In file included from /usr/include/linux/rwsem.h:27,
from /usr/include/asm/semaphore.h:42,
from /usr/include/linux/sched.h:20,
from /usr/include/linux/module.h:10,
from hello.c:2:
/usr/include/asm/rwsem.h: In function ‘__down_read’:
/usr/include/asm/rwsem.h:105: error: expected ‘:’ or ‘)’ before ‘KBUILD_BASENAME’
/usr/include/asm/rwsem.h: In function ‘__down_write’:
/usr/include/asm/rwsem.h:157: error: expected ‘:’ or ‘)’ before ‘KBUILD_BASENAME’
/usr/include/asm/rwsem.h: In function ‘__up_read’:
/usr/include/asm/rwsem.h:194: error: expected ‘:’ or ‘)’ before ‘KBUILD_BASENAME’
/usr/include/asm/rwsem.h: In function ‘__up_write’:
/usr/include/asm/rwsem.h:220: error: expected ‘:’ or ‘)’ before ‘KBUILD_BASENAME’
/usr/include/asm/rwsem.h: In function ‘__downgrade_write’:
/usr/include/asm/rwsem.h:245: error: expected ‘:’ or ‘)’ before ‘KBUILD_BASENAME’
In file included from /usr/include/linux/sched.h:20,
from /usr/include/linux/module.h:10,
from hello.c:2:
/usr/include/asm/semaphore.h: In function ‘down’:
/usr/include/asm/semaphore.h:105: error: expected ‘:’ or ‘)’ before ‘KBUILD_BASENAME’
/usr/include/asm/semaphore.h: In function ‘down_interruptible’:
/usr/include/asm/semaphore.h:130: error: expected ‘:’ or ‘)’ before ‘KBUILD_BASENAME’
/usr/include/asm/semaphore.h: In function ‘down_trylock’:
/usr/include/asm/semaphore.h:155: error: expected ‘:’ or ‘)’ before ‘KBUILD_BASENAME’
/usr/include/asm/semaphore.h: In function ‘up’:
/usr/include/asm/semaphore.h:179: error: expected ‘:’ or ‘)’ before ‘KBUILD_BASENAME’
In file included from /usr/include/linux/gfp.h:4,
from /usr/include/linux/slab.h:15,
from /usr/include/linux/percpu.h:5,
from /usr/include/linux/sched.h:34,
from /usr/include/linux/module.h:10,
from hello.c:2:
/usr/include/linux/mmzone.h: At top level:
/usr/include/linux/mmzone.h:41: error: ‘CONFIG_X86_L1_CACHE_SHIFT’ undeclared here (not in a function)
/usr/include/linux/mmzone.h:41: error: requested alignment is not a constant
/usr/include/linux/mmzone.h:64: error: requested alignment is not a constant
/usr/include/linux/mmzone.h:249: error: requested alignment is not a constant
In file included from /usr/include/linux/sched.h:37,
from /usr/include/linux/module.h:10,
from hello.c:2:
/usr/include/linux/rcupdate.h:69: error: requested alignment is not a constant
/usr/include/linux/rcupdate.h:72: error: requested alignment is not a constant
In file included from /usr/include/linux/module.h:23,
from hello.c:2:
/usr/include/asm/module.h:62:2: error: #error unknown processor family
In file included from hello.c:2:
/usr/include/linux/module.h: In function ‘search_module_extables’:
/usr/include/linux/module.h:447: warning: unused parameter ‘addr’
/usr/include/linux/module.h: In function ‘module_text_address’:
/usr/include/linux/module.h:453: warning: unused parameter ‘addr’
/usr/include/linux/module.h: In function ‘__module_text_address’:
/usr/include/linux/module.h:459: warning: unused parameter ‘addr’
/usr/include/linux/module.h: In function ‘__module_get’:
/usr/include/linux/module.h:469: warning: unused parameter ‘module’
/usr/include/linux/module.h: In function ‘try_module_get’:
/usr/include/linux/module.h:473: warning: unused parameter ‘module’
/usr/include/linux/module.h: In function ‘module_put’:
/usr/include/linux/module.h:478: warning: unused parameter ‘module’
/usr/include/linux/module.h: In function ‘module_address_lookup’:
/usr/include/linux/module.h:487: warning: unused parameter ‘addr’
/usr/include/linux/module.h:488: warning: unused parameter ‘symbolsize’
/usr/include/linux/module.h:489: warning: unused parameter ‘offset’
/usr/include/linux/module.h:490: warning: unused parameter ‘modname’
/usr/include/linux/module.h: In function ‘module_get_kallsym’:
/usr/include/linux/module.h:495: warning: unused parameter ‘symnum’
/usr/include/linux/module.h:496: warning: unused parameter ‘value’
/usr/include/linux/module.h:497: warning: unused parameter ‘type’
/usr/include/linux/module.h:498: warning: unused parameter ‘namebuf’
/usr/include/linux/module.h: In function ‘module_kallsyms_lookup_name’:
/usr/include/linux/module.h:503: warning: unused parameter ‘name’
/usr/include/linux/module.h: In function ‘is_exported’:
/usr/include/linux/module.h:508: warning: unused parameter ‘name’
/usr/include/linux/module.h:508: warning: unused parameter ‘mod’
/usr/include/linux/module.h: In function ‘register_module_notifier’:
/usr/include/linux/module.h:513: warning: unused parameter ‘nb’
/usr/include/linux/module.h: In function ‘unregister_module_notifier’:
/usr/include/linux/module.h:519: warning: unused parameter ‘nb’
/usr/include/linux/module.h: In function ‘module_add_driver’:
/usr/include/linux/module.h:533: warning: unused parameter ‘module’
/usr/include/linux/module.h:533: warning: unused parameter ‘driver’
/usr/include/linux/module.h: In function ‘module_remove_driver’:
/usr/include/linux/module.h:537: warning: unused parameter ‘driver’
hello.c:4:1: warning: "__KERNEL__" redefined
<command line>:1:1: warning: this is the location of the previous definition
hello.c:5:1: warning: "MODULE" redefined
<command line>:1:1: warning: this is the location of the previous definition
hello.c: In function ‘__exittest’:
hello.c:20: warning: return from incompatible pointer type
make: *** [hello.o] Error 1
Please let me know what is going wrong with this.
Thanks in advance for the help.
- 06-24-2009 #2
Following one similar to your error message,check the solution links provided there
Getting problem while building kernel module | KernelTrap- Lakshmipathi.G
-------------------
FOSS India Award winning ext3fs Undelete tool and tutorials www.giis.co.in
First they criticize you,Then they laugh at you,Then they fight with you,Then you win. - M.K.Gandhi
-------------------
- 06-26-2009 #3Just Joined!
- Join Date
- Jun 2009
- Posts
- 6
#include<linux/init.h>
#include<linux/module.h>
#include<linux/kernel.h>
#define KERN_ALERT
#define KERn_INFO
static int hello_init(void)
{
printk(KERN_ALERT " Hello Kernel\n");
return 0;
}
static int hello_exit(void)
{
printk(KERN_INFO "GoodBye kernel\n");
return 0;
}
module_init(hello_init);
module_exit(hello_exit);
Compile :gcc -c modulename.c
command for insert modules
inmsod .ko filename
to remove rmmod module name
Try with this code for module example


Reply With Quote