मेरे पिछले कर्नेल विकास संस्करण 2.6 ~ में था अब मैं एक मॉड्यूल संकलित करने के लिए प्रयास करें, और जब कर्नेल पेड़ के बाहर संकलन मैं निम्नलिखित त्रुटि मिलती है।लिनक्स कर्नेल मॉड्यूल संकलन में विफल रहता है
/bin/sh: 1: /home/blabla/workspace/kernel35/linux-3.5/scripts/recordmcount: not found
वस्तु फ़ाइल ठीक से बनाई गई है, फिर भी समस्या, कर्नेल Makefile के भीतर ही है कुछ बदल गया है और मैं अद्यतन नहीं किया गया था?
मैं kernel.org से वेनिला कर्नेल के सूत्रों का उपयोग कर रहा है, और मैं पहले से ही
make oldconfig && make prepare
किया मैं Makefile कि मैं उपयोग कर रहा हूँ पोस्ट, यह कर्नेल मॉड्यूल के लिए एक मानक makefile है
# Comment/uncomment the following line to disable/enable debugging
#DEBUG = y
# Add your debugging flag (or not) to CFLAGS
ifeq ($(DEBUG),y)
DEBFLAGS = -O -g -DBLABLA_DEBUG # "-O" is needed to expand inlines
else
DEBFLAGS = -O2
endif
ccflags-y += $(DEBFLAGS)
ccflags-y += -I..
ifneq ($(KERNELRELEASE),)
# call from kernel build system
obj-m := blabla.o
else
KERNELDIR ?= /home/blabla/workspace/kernel35/linux-3.5
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
depend .depend dep:
$(CC) $(CFLAGS) -M *.c > .depend
ifeq (.depend,$(wildcard .depend))
include .depend
endif
क्या आपने 'KERNELDIR = <पथ को अपने कर्नेल>' बनाने का प्रयास किया था। आपके पास फ़ाइल */home/blabla /../ linux-3.5 * का डिफ़ॉल्ट है। क्या वह आपका कर्नेल स्रोत है? असल में, ऐसा लगता है कि 'केरलडिर' बिल्ड पेड़ का मार्ग है। क्या निर्माण और स्रोत अलग हैं? –