Find the answer to your Linux question:
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 ...
  1. #1
    Just Joined!
    Join Date
    Jun 2008
    Posts
    3

    Question [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.

  2. #2
    Linux Guru Lakshmipathi's Avatar
    Join Date
    Sep 2006
    Location
    3rd rock from sun - Often seen near moon
    Posts
    1,568
    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
    -------------------

  3. #3
    Just 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

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
...