2013-03-24 7 views
5

मैं लिनक्स 2.6.32.6 कर्नेल को एक बहुत ही विशिष्ट कारण के लिए कर्नेल में बनाए गए कई मॉड्यूल के साथ संकलित करने का प्रयास कर रहा हूं। मैंने PXE को अपने स्वयं के कस्टम बचाव लाइव-सीडी पर बूट करने के प्रयास में एनएफएस पर रूट फ़ाइल सिस्टम शामिल किया है। ROOT_NFS के लिए आवश्यक निर्भरता और मॉड्यूल को शामिल करने के बाद, मैं केवल लिनक्स कर्नेल को make bzImage के साथ संकलित करने का प्रयास करता हूं। जब यह समाप्त होने पर मुझे त्रुटिलिनक्स कर्नेल त्रुटि संकलन xt_CONNMARK.h

make[4]: *** No rule to make target './linux-2.6.32.6/include/linux/netfilter/xt_CONNMARK.h', needed by './linux-2.6.32.6/usr/include/linux/netfilter/.install'. Stop. 

अब मैं विन्यास में नेटफिल्टर मॉड्यूल को निष्क्रिय करने की कोशिश की और किसी भी निर्भरता है कि बनाने के नेटफिल्टर की आवश्यकता को खोजने की कोशिश की है मिलता है, लेकिन इस त्रुटि अब भी हो रही रखता है।

इस त्रुटि को हल करने के लिए कोई सुझाव बहुत अच्छा होगा।

+0

आपको शायद उस फ़ाइल के लिए 'निर्भर' को साफ करने की आवश्यकता है। * Kbuild * को इस तथ्य को उठाया जाना चाहिए था कि आप '.config' को बदलते हैं, लेकिन शायद इस पुराने संस्करण लिनक्स के साथ नहीं। –

+0

'मेकफ़ाइल' निर्भरता जानकारी को पहले 'मैन्युअल' बनाएं या मैन्युअल हटाएं। आपकी समस्या बेहद परिचित प्रतीत होती है, लेकिन मुझे याद नहीं है कि समस्या क्या थी। यह शायद 'ओ ओ = ...' से संबंधित है। –

+0

कई प्रयासों के बाद मैंने Kbuild में विशिष्ट प्रविष्टि को हटा दिया। हालांकि अजीब चीज वहां थी जहां 'xt_CONNMARK.h' के लिए 2 प्रविष्टियां थीं। जो असफल रहा वह सभी कैप्स था जबकि दूसरा एक छोटा मामला था। इसके साथ कुछ और मामलों में भाग लें लेकिन एक बार मैंने सभी घटनाओं को हटा दिया (कुल मिलाकर लगभग 5) सिस्टम को संकलित और ठीक से बूट किया गया। – Blackninja543

उत्तर

10

यह सबसे अधिक संभावना है क्योंकि आपके पास है, जो आपके स्रोत पेड़ से खो देता है क्योंकि फाइल-सिस्टम के माध्यम से स्थानांतरित किया जा सकता है जो केस-असंवेदनशील है। लिनक्स स्रोत पेड़ में लगभग 15 अलग-अलग फाइलें हैं जिन्हें कई बार नाम दिया गया है, लेकिन अलग-अलग पूंजीकरण हैं। यह आम तौर पर उन लोगों के लिए एक समस्या नहीं है जो लिनक्स कर्नेल बनाते हैं, क्योंकि सभी उचित फाइल सिस्टम केस-संवेदी होते हैं।

उत्सुक लोगों के लिए, इस तरह की फाइलें नेटफिल्टर पेड़ में हैं - उदाहरण के लिए v0.0 में include/linux/netfilter/xt_CONNTRACK.h बनाम include/linux/netfilter/xt_conntrack.h देखें।

तो, वे फ़ाइलें मौजूद हैं, लेकिन आप उन्हें खो देते हैं। एक नया स्रोत पेड़ प्राप्त करें, इसे केस-संवेदी फाइल सिस्टम पर अनपैक करें और आपको अब यह त्रुटि नहीं होगी। वैकल्पिक रूप से, फ़ाइलों को "प्रिस्टिन" स्रोत पेड़ या github mirror of the kernel से कॉपी करें यदि आप अपने पेड़ में संशोधन खोने से डरते हैं - वे आपके द्वारा संकलित किए जा रहे संस्करण में रिलीज से अधिकतर नहीं बदले जाते हैं।

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