[問題] 編寫Hello World Module一直失敗 〒△〒
請教各位高手大大們,
小弟試著在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
→
04/29 19:21, , 1F
04/29 19:21, 1F
→
04/29 21:58, , 2F
04/29 21:58, 2F
→
04/29 21:58, , 3F
04/29 21:58, 3F
→
04/29 22:10, , 4F
04/29 22:10, 4F
→
05/01 23:08, , 5F
05/01 23:08, 5F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章