Re: [問題] 編寫Hello World Module一直失敗 〒△〒
建設你Makefie換成這個 試試
ifneq ($(KERNELRELEASE),)
obj-m := helloMod.o
else
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
all \
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
rm -r .tmp_versions *.mod.c .*.cmd *.o
clean:
@ rm *.ko
endif
※ 引述《saap (我是好人囧rz)》之銘言:
: 請教各位高手大大們,
: 小弟試著在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: 203.75.58.49
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章