2011-12-07 24 views
6

मैं एम्बेडेड डिवाइस के लिए एक न्यूनतम लिनक्स बनाने की कोशिश कर रहा हूं। इसका मतलब है कर्नेल और ड्राइवरों को संकलित करने की आवश्यकता। एक ड्राइवर सीधे इसके निर्माता द्वारा डिवाइस के बोर्ड के लिए लिखा जाता है, इसलिए यह एक भंडार नहीं है। इसे कर्नेल मॉड्यूल के रूप में संकलित किया जा सकता है।एक कर्नेल के हिस्से के रूप में एक ड्राइवर को संकलित करना, मॉड्यूल के रूप में नहीं

हालांकि लिनक्स की अपरिवर्तनीय प्रकृति और स्मृति के बेहद छोटे उपयोग की आवश्यकता के कारण मैं मॉड्यूल का उपयोग नहीं करना चाहता हूं। मैं कर्नेल में अंतर्निहित सभी ड्राइवर चाहता हूं। और कर्नेल I के साथ प्रदान किए गए सभी ड्राइवरों ने इस तरह से सेट किया है।

तो मेरी समस्या यह है कि कर्नेल को उस विशेष ड्राइवर को कैसे संकलित करना है?

सभी खोजों ने मुझे समाधान प्रदान नहीं किया है - सभी केवल मॉड्यूल के रूप में संकलित करने के बारे में हैं।

किसी भी मदद के लिए धन्यवाद।

+0

यह आप कर्नेल स्रोत पेड़ में मॉड्यूल डाल की आवश्यकता होती है, और Makefiles के कुछ पैच इसे शामिल करने की होगी। हालांकि, मैं विशिष्टताओं के बारे में अनिश्चित हूं। आप किस मॉड्यूल का उपयोग कर रहे हैं? –

+0

यह एक घर बनाया चालक है। मुझे पता है कि मुझे इसे कर्नेल स्रोत में जोड़ने की जरूरत है। हालांकि मुझे कुछ विनिर्देशों की आवश्यकता है, मेकफ़ाइल को कैसे संशोधित करें और इसी तरह। –

+1

संभावित डुप्लिकेट [लिनक्स कर्नेल मॉड्यूल को स्थिर रूप से सम्मिलित करें] (http://stackoverflow.com/questions/7353851/insert-linux- कर्नेल- मॉड्यूल- मूल रूप से) –

उत्तर

5

आपको निश्चित रूप से कर्नेल स्रोत पेड़ में ड्राइवर स्रोत डालना होगा और इसे शामिल करने के लिए मेकफ़ाइल अपडेट करना होगा। आप देख सकते हैं कि यह चरण 1.1 से 1.3 here में कैसे काम करता है।

यदि उपयोगकर्ता-स्तरीय सॉफ़्टवेयर डिवाइस ड्राइवर के साथ कोई बात करता है तो यह शायद सिस्टम कॉल के माध्यम से करता है। asmlinkage की तलाश में ड्राइवर के स्रोत के माध्यम से खोजें यदि आप इनमें से कोई भी पाते हैं तो आप कुछ सिस्टम कॉल जोड़ना चाहते हैं। उपरोक्त दस्तावेज़ का शेष बताएगा कि उन्हें कैसे सेट अप करें। आपको कम से कम दो फाइलों को संशोधित करना होगा (और वे आपके कर्नेल संस्करण के आधार पर थोड़ा भिन्न हो सकते हैं)।

यदि डिवाइस ड्राइवर सीधे कर्नेल के साथ बात करता है, तो हम इंटरप्ट्स, मेमोरी मैप किए गए I/O, या DMA से निपट रहे हैं। आपके साथ ईमानदार होने के लिए मुझे नहीं पता कि उन्हें आपके ड्राइवर के लिए स्रोत फ़ाइल में किस प्रकार संभाला जा सकता है (जिस स्थिति में आप अच्छे हैं), या क्या उन्हें स्रोत पेड़ में अन्य फ़ाइलों को संशोधित करने की आवश्यकता है। This ऐसी चीजों के लिए एक अच्छा संसाधन है।

गुड लक