मैं हाल ही में अनपैकिंग कर्नेल-सोर्स rpm ऑफ-सिस्टम (OpenSuse) के माध्यम से गया ? ; और जैसा कि मेरे मशीन पर 10 घंटे लगते हैं, मेरे आश्चर्य की कल्पना करें कि वहां वर्णित प्रक्रिया करने के बाद, मुझे Module.symversकहीं भी नहीं मिला !
जब मैं "मॉड्यूल मॉड्यूल उत्पन्न करता हूं" खोजता हूं, तो मुझे यह मिलता है:
ध्यान दें:
CONFIG_MODVERSIONS सेट होने पर भी "मॉड्यूल_प्रकार" मॉड्यूल का निर्माण नहीं करेगा । इसलिए,
मॉड्यूल वर्जनिंग कार्य करने के लिए एक पूर्ण कर्नेल बिल्ड को निष्पादित करने की आवश्यकता है ।
( लिनक्स कर्नेल डॉक्यूमेंटेशन :: kbuild: मॉड्यूल.txt )
... लेकिन मैं वास्तव में इसे प्राप्त नहीं करता हूं - कर्नेल पिछले चरण में नहीं बनाया गया था (ऊपर दिए गए लिंक में वर्णित है? मुझे यकीन है कि यह पता चला कि CC के लिए 10 h * का पूरा गुच्छा उत्पन्न करने में 10 घंटे लगते हैं।) फाइलें, और एलडी उन्हें लिंक करने के लिए, इसलिए कुछ बनाया गया होगा। लेकिन यदि हां, तो कहां है Module.symvers?
अधिक स्पष्ट शब्दों में, Module.symvers उत्पन्न करने के लिए मुझे वास्तव में किस कमांड पर कॉल करना चाहिए? मुझे पता है कि make prepareकाम नहीं करेगा - लेकिन वह कौन सी आज्ञा है?
Module.symversद्वाराzypper install kernel-source, और अन्य linux distro पर समान। फ़ाइल में स्थित हैlib/modules/xxx/build।