2013-03-03 7 views
5

मेरे पिछले कर्नेल विकास संस्करण 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 
+0

क्या आपने 'KERNELDIR = <पथ को अपने कर्नेल>' बनाने का प्रयास किया था। आपके पास फ़ाइल */home/blabla /../ linux-3.5 * का डिफ़ॉल्ट है। क्या वह आपका कर्नेल स्रोत है? असल में, ऐसा लगता है कि 'केरलडिर' बिल्ड पेड़ का मार्ग है। क्या निर्माण और स्रोत अलग हैं? –

उत्तर

8

ठीक है, मुझे पता चला कि इसे कैसे हल किया जाए। स्पष्ट रूप से, यह पहली बार है कि मैं कर्नेल को पहले संकलित किए बिना मॉड्यूल को संकलित करने का प्रयास कर रहा हूं। समस्या को हल करने के लिए मैं कर्नेल स्रोत पेड़ से निम्न आदेश चलाता हूं।

make modules_prepare 

यह मॉड्यूल बिल्डिंग का समर्थन करने के लिए सभी आवश्यक बुनियादी ढांचा बनाता है।

संबंधित मुद्दे