2010-08-12 14 views
5

मेरे पास एक लिनक्स मॉड्यूल का संकलित संस्करण है, और उसके बाद मेरे स्रोत के लगभग 20+ भिन्नताएं हैं। विभिन्न मूर्ख गलतियों के माध्यम से, मैंने ट्रैक खो दिया है कि स्रोत का कौन सा संस्करण मॉड्यूल बनाने के लिए उपयोग किया गया था।modinfo srcversion: मैं इसे अपने स्रोत से कैसे उत्पन्न करूं?

मैंने देखा कि modinfo <module name>srcversion: <hash> देता है, और मुझे कुछ स्पष्टीकरण मिला है जो कहता है कि "मॉड्यूल का उत्पादन करने वाले स्रोत का योग"। यह बढ़िया है!

इस हैश का उत्पादन करने के लिए मैं अपने मॉड्यूल स्रोतों में क्या करूँ?

उत्तर

7

srcversionscripts/mod/modpost प्रोग्राम द्वारा परिभाषित किया गया है। मुझे सटीक विकल्प नहीं पता हैं जिन्हें आपको मॉडपोस्ट को देना है ताकि यह इस क्षेत्र को आउटपुट कर सके। यह scripts/mod/modpost -a -m vmlinux you_module.o जैसा कुछ होना चाहिए (आप सटीक विकल्पों के लिए scripts/Makefile.modpost देख सकते हैं)। ताकि srcversion स्वचालित रूप से अपने निर्माण के सभी मॉड्यूल के लिए उत्पादन किया जाता है उत्पादन, तो drivers/path/to/your_module.mod.c

में उपलब्ध मैं सुझाव है कि आप y (Enable loadable module support सबमेनू में उपलब्ध) को config MODULE_SRCVERSION_ALL सेट है। फिर आप स्रोत के विविधताओं के बीच स्विच कर सकते हैं, अपने कर्नेल को नए स्रोत विविधता के साथ पुनर्निर्माण कर सकते हैं (केवल आपके मॉड्यूल को पहले निर्माण के बाद पुनर्निर्मित किया जाना चाहिए) और फिर अनुरोध करने के लिए drivers/path/to/your_module.mod.c फ़ाइल के अंत में सीधे MODULE_INFO(srcversion, "<hash>"); फ़ील्ड देखें जानकारी।

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