[問題] 編寫Hello World Module一直失敗 〒△〒

看板LinuxDev作者 (我是好人囧rz)時間18年前 (2007/04/29 04:17), 編輯推噓0(005)
留言5則, 3人參與, 最新討論串1/2 (看更多)
請教各位高手大大們, 小弟試著在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
有個動作叫「爬文」....找 wlsabcd 大寫的 m 文吧
04/29 19:21, 1F

04/29 21:58, , 2F
剛剛看到「大寫的M文」,想說還有「小寫的M文」嗎 XD
04/29 21:58, 2F

04/29 21:58, , 3F
過了五秒才看懂
04/29 21:58, 3F

04/29 22:10, , 4F
........wlsabcd大....寫的 m 文....
04/29 22:10, 4F

05/01 23:08, , 5F
有看到了...感恩
05/01 23:08, 5F
文章代碼(AID): #16Cwl5HA (LinuxDev)
文章代碼(AID): #16Cwl5HA (LinuxDev)