Portál AbcLinuxu, 11. listopadu 2025 06:10
#ifdef MODULE
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
EXPORT_NO_SYMBOLS;
/* Protos */
static int hello_init(void) __init;
static void hello_exit(void) __exit;
/* Module Lifecycle */
module_init(hello_init);
module_exit(hello_exit);
static int __init hello_init(void)
{
printk(KERN_INFO "Hello world !!!\n");
return 0;
}
static void __exit hello_exit(void)
{
printk(KERN_INFO "Bye Bye !!!\n");
return;
}
#endif /* MODULE */
Makefile:
all: hello.o hello.o: hello.c gcc -Wall -O2 -I /usr/src/linux/include -D__KERNEL__ -DMODULE -o hello.o -c hello.cchyba:
gcc -Wall -O2 -I /usr/src/linux/include -D __KERNEL__ -D MODULE -o hello.o -c hello.c
In file included from /usr/src/linux/include/asm/processor.h:18,
from /usr/src/linux/include/asm/thread_info.h:17,
from /usr/src/linux/include/linux/thread_info.h:21,
from /usr/src/linux/include/linux/preempt.h:10,
from /usr/src/linux/include/linux/spinlock.h:50,
from /usr/src/linux/include/linux/capability.h:45,
from /usr/src/linux/include/linux/sched.h:7,
from /usr/src/linux/include/linux/module.h:10,
from hello.c:4:
/usr/src/linux/include/asm/system.h: In function '__set_64bit_var':
/usr/src/linux/include/asm/system.h:210: warning: dereferencing type-punned pointer will break strict-aliasing rules
/usr/src/linux/include/asm/system.h:210: warning: dereferencing type-punned pointer will break strict-aliasing rules
In file included from /usr/src/linux/include/linux/rwsem.h:27,
from /usr/src/linux/include/asm/semaphore.h:42,
from /usr/src/linux/include/linux/sched.h:20,
from /usr/src/linux/include/linux/module.h:10,
from hello.c:4:
/usr/src/linux/include/asm/rwsem.h: In function '__down_read':
/usr/src/linux/include/asm/rwsem.h:105: error: syntax error before 'KBUILD_BASENAME'
/usr/src/linux/include/asm/rwsem.h: In function '__down_write':
/usr/src/linux/include/asm/rwsem.h:157: error: syntax error before 'KBUILD_BASENAME'
/usr/src/linux/include/asm/rwsem.h: In function '__up_read':
/usr/src/linux/include/asm/rwsem.h:194: error: syntax error before 'KBUILD_BASENAME'
/usr/src/linux/include/asm/rwsem.h:188: warning: unused variable 'tmp'
/usr/src/linux/include/asm/rwsem.h: In function '__up_write':
/usr/src/linux/include/asm/rwsem.h:220: error: syntax error before 'KBUILD_BASENAME'
/usr/src/linux/include/asm/rwsem.h: In function '__downgrade_write':
/usr/src/linux/include/asm/rwsem.h:245: error: syntax error before 'KBUILD_BASENAME'
In file included from /usr/src/linux/include/linux/sched.h:20,
from /usr/src/linux/include/linux/module.h:10,
from hello.c:4:
/usr/src/linux/include/asm/semaphore.h: In function 'down':
/usr/src/linux/include/asm/semaphore.h:105: error: syntax error before 'KBUILD_BASENAME'
/usr/src/linux/include/asm/semaphore.h: In function 'down_interruptible':
/usr/src/linux/include/asm/semaphore.h:130: error: syntax error before 'KBUILD_BASENAME'
/usr/src/linux/include/asm/semaphore.h: In function 'down_trylock':
/usr/src/linux/include/asm/semaphore.h:155: error: syntax error before 'KBUILD_BASENAME'
/usr/src/linux/include/asm/semaphore.h: In function 'up':
/usr/src/linux/include/asm/semaphore.h:179: error: syntax error before 'KBUILD_BASENAME'
In file included from /usr/src/linux/include/asm/smp.h:18,
from /usr/src/linux/include/linux/smp.h:19,
from /usr/src/linux/include/linux/sched.h:26,
from /usr/src/linux/include/linux/module.h:10,
from hello.c:4:
/usr/src/linux/include/asm/mpspec.h:6:25: error: mach_mpspec.h: není souborem ani adresářem
In file included from /usr/src/linux/include/asm/smp.h:18,
from /usr/src/linux/include/linux/smp.h:19,
from /usr/src/linux/include/linux/sched.h:26,
from /usr/src/linux/include/linux/module.h:10,
from hello.c:4:
/usr/src/linux/include/asm/mpspec.h: At top level:
/usr/src/linux/include/asm/mpspec.h:8: error: 'MAX_MP_BUSSES' undeclared here (not in a function)
/usr/src/linux/include/asm/mpspec.h:23: error: 'MAX_IRQ_SOURCES' undeclared here (not in a function)
In file included from /usr/src/linux/include/linux/smp.h:19,
from /usr/src/linux/include/linux/sched.h:26,
from /usr/src/linux/include/linux/module.h:10,
from hello.c:4:
/usr/src/linux/include/asm/smp.h:77:26: error: mach_apicdef.h: není souborem ani adresářem
In file included from /usr/src/linux/include/linux/smp.h:19,
from /usr/src/linux/include/linux/sched.h:26,
from /usr/src/linux/include/linux/module.h:10,
from hello.c:4:
/usr/src/linux/include/asm/smp.h: In function 'hard_smp_processor_id':
/usr/src/linux/include/asm/smp.h:81: warning: implicit declaration of function 'GET_APIC_ID'
hello.c: At top level:
hello.c:7: warning: type defaults to 'int' in declaration of 'EXPORT_NO_SYMBOLS'
hello.c:7: warning: data definition has no type or storage class
make: *** [hello.o] Error 1
uname -r: 2.6.16.20, /usr/src/linux->/usr/src/linux-2.6.16.20
deb http://ftp.cz.debian.org/debian jessie main contrib non-freeMakefile je vcelku primitivní, ale má poněkud jinou podobu než u běžných programů.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.