作者saap (我是好人囧rz)
看板LinuxDev
标题[问题] 编写Hello World Module一直失败 〒△〒
时间Sun Apr 29 04:17:04 2007
请教各位高手大大们,
小弟试着在Fedora Core 6里编写一个简单的Module,
照着书打可是一直出现错误,
想烦请大大们帮小弟开释一下,
小弟的kernel为2.6.20-1.2944.fc6,
谢谢。
主Module程式---heloMod.c
=====================================================
#include <linux/module.h>
#include <linux/kernel.h>
int init_module(void)
{
printk("Hello Ryan!\n");
return 0;
}
void cleanup_module(void)
{
printk("Hello Module was removed!\n");
}
MODULE_LICENSE("GPL");
=====================================================
Makefile内容
=====================================================
CC=gcc
CFLAGS = -O2 -DMODULE -D__KERNEL__ -Wall \
-I/usr/src/kernels/2.6.20-1.2944.fc6-i586/include
heloMod.o: heloMod.c
$(CC) $(CFLAGS) -c heloMod.c
install:
/sbin/insmod heloMod.o
remove:
/sbin/rmmod heloMod
clean:
rm -f heloMod.o
=====================================================
执行make後的失败讯息:
=====================================================
make: Warning: File `heloMod.c' has modification time 63 s in the future
gcc -O2 -DMODULE -D__KERNEL__ -Wall
-I/usr/src/kernels/2.6.20-1.2944.fc6-i586/include -c heloMod.c
In file included from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/asm/thread_info.h:16,
from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/thread_info.h:21,
from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/preempt.h:9,
from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/spinlock.h:49,
from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/module.h:9,
from heloMod.c:1:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/asm/processor.h:82: 错误:「
CONFIG_X86_L1_CACHE_SHIFT」 未宣告 (不在函式内)
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/asm/processor.h:82: 错误:要求
的对齐边界不是常数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/asm/processor.h: 在函式 「
cpuid_count」 中:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/asm/processor.h:617: 警告:传
递参数 1 (属於 「native_cpuid」) 给指标时目的与指标有/无号不一致
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/asm/processor.h:617: 警告:传
递参数 2 (属於 「native_cpuid」) 给指标时目的与指标有/无号不一致
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/asm/processor.h:617: 警告:传
递参数 3 (属於 「native_cpuid」) 给指标时目的与指标有/无号不一致
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/asm/processor.h:617: 警告:传
递参数 4 (属於 「native_cpuid」) 给指标时目的与指标有/无号不一致
在包含自 /usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/sched.h:51 的
档案中,
从
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/utsname.h:35,
从 /usr/src/kernels/2.6.20-1.2944.fc6-i586/include/asm/elf.h
:12,
从
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/elf.h:7,
从
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/module.h:15,
从 heloMod.c:1:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:33:3: 错误:
#error You lose.
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:225:31: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:225:31: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:225:31: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:225:31: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:225:31: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:225:31: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:225:31: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:225:31: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:225:31: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:225:31: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:225:31: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:225:31: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:225:31: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:225:31: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:225:31: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:225:31: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:269:46: 错误:
#if 中用零做除数
In file included from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/sched.h:51,
from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/utsname.h:35,
from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/asm/elf.h:12,
from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/elf.h:7,
from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/module.h:15,
from heloMod.c:1:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h: 在函式 「
jiffies_to_msecs」 中:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:274: 错误:「
CONFIG_HZ」 未宣告 (在此函式内第一次使用)
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:274: 错误:(即
使在一个函式内多次出现,每个未宣告的识别码在其
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:274: 错误:所
在的函式内只报告一次。)
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:280:46: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h: 在函式 「
jiffies_to_usecs」 中:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:285: 错误:「
CONFIG_HZ」 未宣告 (在此函式内第一次使用)
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:293:46: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h: 在函式 「
msecs_to_jiffies」 中:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:298: 错误:「
CONFIG_HZ」 未宣告 (在此函式内第一次使用)
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:306:46: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h: 在函式 「
usecs_to_jiffies」 中:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:311: 错误:「
CONFIG_HZ」 未宣告 (在此函式内第一次使用)
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h: 在函式 「
timespec_to_jiffies」 中:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:330: 错误:「
CONFIG_HZ」 未宣告 (在此函式内第一次使用)
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:336: 错误:「
SHIFT_HZ」 未宣告 (在此函式内第一次使用)
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h: 在函式 「
jiffies_to_timespec」 中:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:349: 错误:「
CONFIG_HZ」 未宣告 (在此函式内第一次使用)
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h: 在函式 「
timeval_to_jiffies」 中:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:371: 错误:「
CONFIG_HZ」 未宣告 (在此函式内第一次使用)
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:375: 错误:「
SHIFT_HZ」 未宣告 (在此函式内第一次使用)
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h: 在函式 「
jiffies_to_timeval」 中:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:387: 错误:「
CONFIG_HZ」 未宣告 (在此函式内第一次使用)
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:400:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:400:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:400:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:400:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:400:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:400:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:400:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:400:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:400:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:400:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:400:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:400:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:400:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:400:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:400:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:400:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h: 在函式 「
jiffies_to_clock_t」 中:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:401: 错误:「
CONFIG_HZ」 未宣告 (在此函式内第一次使用)
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h: 在函式 「
clock_t_to_jiffies」 中:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:412: 错误:「
CONFIG_HZ」 未宣告 (在此函式内第一次使用)
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:431:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:431:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:431:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:431:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:431:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:431:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:431:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:431:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:431:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:431:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:431:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:431:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:431:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:431:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:431:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:431:6: 错误:
#if 中用零做除数
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h: 在函式 「
jiffies_64_to_clock_t」 中:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/jiffies.h:432: 错误:「
CONFIG_HZ」 未宣告 (在此函式内第一次使用)
In file included from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/aio.h:5,
from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/sched.h:262,
from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/utsname.h:35,
from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/asm/elf.h:12,
from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/elf.h:7,
from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/module.h:15,
from heloMod.c:1:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/workqueue.h: 在函式 「
cancel_delayed_work」 中:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/workqueue.h:203: 警告:
提领类型双关的指标将破坏强重叠规则
In file included from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/utsname.h:35,
from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/asm/elf.h:12,
from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/elf.h:7,
from
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/module.h:15,
from heloMod.c:1:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/sched.h: 在函式 「
dequeue_signal_lock」 中:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/sched.h:1316: 警告:隐含
宣告函式 「local_irq_save」
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/sched.h:1318: 警告:隐含
宣告函式 「local_irq_restore」
在包含自 /usr/src/kernels/2.6.20-1.2944.fc6-i586/include/linux/module.h:21 的
档案中,
从 heloMod.c:1:
/usr/src/kernels/2.6.20-1.2944.fc6-i586/include/asm/module.h:67:2: 错误:
#error unknown processor family
make: *** [heloMod.o] Error 1
=====================================================
麻烦高手大大们替小弟释疑,
超感激,
谢谢。
--
传说中,只要在小旦旦的头上插一把西瓜刀,写烂掉的程式码就可以顺利执行!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.138.173.163
1F:→ andytzeng:有个动作叫「爬文」....找 wlsabcd 大写的 m 文吧 04/29 19:21
2F:→ yzugsr:刚刚看到「大写的M文」,想说还有「小写的M文」吗 XD 04/29 21:58
3F:→ yzugsr:过了五秒才看懂 04/29 21:58
4F:→ andytzeng:........wlsabcd大....写的 m 文.... 04/29 22:10
5F:→ saap:有看到了...感恩 05/01 23:08