|
Driver porting: compiling external modulesDriver porting: compiling external modulesPosted Nov 9, 2004 10:16 UTC (Tue) by madhavi_srinivas (guest, #25933)In reply to: Driver porting: compiling external modules by kabbalah Parent article: Driver porting: compiling external modules
Dear Kabbalah,
I am using SuSE 9.1 with 2.6.5-7.71 kernel. I have written small hello.c program here. It was working fine on my x86 machine.
#include <linux/init.h>
MODULE_LICENSE("GPL");
static int hello_init(void)
static void hello_exit(void)
module_init(hello_init);
For this the make file is as follows.
KDIR:=/lib/modules/$(shell uname -r)/build
obj-m:=hello.o
default:
It was working fine under x86 machine with 2.6.5-7.71 kernel version with SuSE Linux.
Regards,
(Log in to post comments)
Driver porting: compiling external modules Posted Nov 9, 2004 21:25 UTC (Tue) by kabbalah (guest, #25930) [Link] thank you for your reply, I tried your code but when i compile it I still get plenty of errors:cc hello.c -o hello In file included from /usr/include/linux/sched.h:12, from /usr/include/linux/module.h:9, from hello.c:2: /usr/include/linux/jiffies.h:16: error: parse error before "jiffies_64" /usr/include/linux/jiffies.h:20: error: parse error before "get_jiffies_64" In file included from /usr/include/linux/sched.h:21, from /usr/include/linux/module.h:9, from hello.c:2: /usr/include/asm/mmu.h:13: error: field `sem' has incomplete type In file included from /usr/include/linux/signal.h:4, from /usr/include/linux/sched.h:25, from /usr/include/linux/module.h:9, from hello.c:2: /usr/include/linux/list.h:604:2: warning: #warning "don't include kernel headers in userspace" In file included from /usr/include/asm/siginfo.h:4, from /usr/include/linux/signal.h:7, from /usr/include/linux/sched.h:25, from /usr/include/linux/module.h:9, from hello.c:2: /usr/include/asm-generic/siginfo.h:53: error: size of array `_pad' is too large In file included from /usr/include/linux/sched.h:27, from /usr/include/linux/module.h:9, from hello.c:2: /usr/include/linux/fs_struct.h:9: error: parse error before "rwlock_t" /usr/include/linux/fs_struct.h:13: error: parse error before '}' token In file included from /usr/include/linux/sched.h:29, from /usr/include/linux/module.h:9, from hello.c:2: /usr/include/linux/completion.h:15: error: parse error before "wait_queue_head_t" /usr/include/linux/completion.h: In function `init_completion': /usr/include/linux/completion.h:26: error: dereferencing pointer to incomplete type /usr/include/linux/completion.h:27: error: dereferencing pointer to incomplete type In file included from /usr/include/linux/sched.h:30, from /usr/include/linux/module.h:9, from hello.c:2: /usr/include/linux/pid.h: At top level: /usr/include/linux/pid.h:18: error: field `task_list' has incomplete type /usr/include/linux/pid.h:19: error: field `hash_chain' has incomplete type /usr/include/linux/pid.h:24: error: field `pid_chain' has incomplete type In file included from /usr/include/linux/module.h:9, from hello.c:2: /usr/include/linux/sched.h:93: error: parse error before "process_counts" In file included from /usr/include/linux/sched.h:102, from /usr/include/linux/module.h:9, from hello.c:2: /usr/include/linux/timer.h:10: error: field `entry' has incomplete type hello.c:22: error: parse error before "__attribute_used__" hello.c:22: warning: initialization makes integer from pointer without a cast hello.c:22: warning: data definition has no type or storage class hello.c:23: error: parse error before "__attribute_used__" hello.c:23: error: redefinition of `__attribute_used__' hello.c:22: error: `__attribute_used__' previously defined here hello.c:23: warning: initialization makes integer from pointer without a cast hello.c:23: warning: data definition has no type or storage class hello.c:23:25: warning: no newline at end of file make: *** [hello] Error 1
when i remove the #include <linux/modules.h> directive I get less errors but it still won't compile:
so that makes me pretty much desperate now :)
Driver porting: compiling external modules Posted Nov 26, 2004 9:44 UTC (Fri) by wuyanmin2 (guest, #26262) [Link] My kernel version is 2.6.5, I complied a "Hello world" module,it's very simple but the size is more than 100K, however, most of the kernel modules in /lib/modules/ are less than 50K . What's the matter? How can I complie a smaller module??
Thanks
WU Yan-min
|
Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds
Powered by Rackspace Managed Hosting.