प्राप्त करें, मैं खोज रहा हूं कि एक ही लिनक्स कर्नेलटेलिस (समान स्रोत, एक ही वातावरण, एक ही विकल्प, एक ही कंपाइलर) बनाना और एक ही चेकसम प्राप्त करना संभव है। कोई भी जानता है कि ऐसा कैसे करें?एक ही लिनक्स कर्नेल को दो बार स्रोतों का निर्माण कैसे करें और उसी चेकसम
उत्तर
निर्माण का पुराना संस्करण में शामिल है, को देखने के init version.c:
/* This file is auto generated, version 1 */
/* PREEMPT */
#define UTS_MACHINE "arm"
#define UTS_VERSION "#1 PREEMPT Mon Jun 29 10:49:17 CEST 2009"
#define LINUX_COMPILE_TIME "10:49:17"
#define LINUX_COMPILE_BY "cynove"
#define LINUX_COMPILE_HOST "jp"
#define LINUX_COMPILE_DOMAIN "evonyc"
#define LINUX_COMPILER "gcc version 4.3.2 (crosstool-NG-1.4.0) "
compile.h द्वारा लिपियों/mkcompile_h है, जहां आप निम्न पंक्ति को खोजने उत्पन्न होता है:
const char linux_banner[] =
"Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@"
LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n";
और UTS_VERSION में परिभाषित किया गया है/linux/compile.h शामिल
UTS_VERSION="$UTS_VERSION $CONFIG_FLAGS `LC_ALL=C LANG=C date`"
व्यापक लाइन से date
को हटाकर, आप बिल्ड समय निर्भरता से छुटकारा पाने में सक्षम होना चाहिए।
चेक करने का सबसे तेज़ तरीका बनाना होगा, प्रतिलिपि बनाना, साफ करना होगा, और फिर फिर से बनाना होगा। यदि चेकसम मिलान करता है, तो यह संभव है। यदि नहीं, तो यह सुझाव देता है कि मेक कुछ स्रोत फ़ाइलों को किसी तरह से बदल रहा है (संख्या बनाना, निर्माण दिनांक इत्यादि)
संभवतः, उसी वातावरण में कर्नेल का निर्माण उसी चेकसम में होगा। तो, एक ही संकलक (समान संकलक के समान संस्करण), बिल्कुल एक ही स्रोत, एक ही निर्भरता (यदि है कि एक कर्नेल संकलन करने के लिए भी लागू होता है), आदि
यहां तक कि एक ही पर्यावरण सेटअप (समान स्रोत, एक ही कंपाइलर और समान निर्भरता) के साथ भी दो लगातार निर्माण एक अलग चेकसम प्रदान करते हैं। मुझे लगता है कि समस्या संकलन विकल्पों के आसपास है और मुझे नहीं पता कि कौन से संकलन विकल्प कर्नेल शुद्धता को संशोधित किए बिना समान चेकसम प्राप्त करने के लिए बदलना संभव है। – gsempe
यहां तक कि एक साधारण हैलो दुनिया दो बार संकलित विभिन्न बाइनरी में परिणाम। किसी भी तरह से लिंकर कुछ जानकारी जोड़ रहा है जो प्रत्येक निर्माण में बदलता है।
क्या यह अभी भी सच है जब परिणामस्वरूप बाइनरी छीन ली जाती है? – shodanex
shodanex का जवाब सही है लेकिन अपूर्ण है। कुछ शोध के बाद मैंने पाया कि लिनक्स कर्नेल बाइनरी एक डिफ़ॉल्ट रैमफिक्स एम्बेड करता है जो दो कर्नेल संकलन (सीपीआईओ रैमएफएस हेडर एम्बेड तिथि) के बीच अंतर का एक और कारण है। इस सुविधा को अक्षम करना असंभव है लेकिन डिफ़ॉल्ट रैमफ प्रदान करना संभव है। जब आप ऐसा करते हैं, तो आपको बिल्कुल वही चेकसम मिल जाता है।
धन्यवाद। आपके उत्तर मेरी समस्या को हल करने के लिए मुझे बहुत मदद करते हैं।
@gsempe, आप इसे देखना चाहते हैं: "कर्नेल निर्माण निर्धारक बनाएं" रेफरी। http://lwn.net/Articles/437864/
यह शोर के कुछ स्रोतों (शोर
बढ़िया जोड़ लेकिन मैंने अपनी समस्या हल कर ली थी। Http://stackoverflow.com/a/1214926/21052 यहां देखें – gsempe
- 1. बड़े ओपनसीएल कर्नेल का निर्माण कैसे करें?
- 2. लिनक्स: एक ही यूएसबी डिवाइस को उसी ttyUSB संख्या
- 3. एक ही एंड्रॉइड ऐप के दो संस्करणों का निर्माण करें और उसी डिवाइस पर दोनों इंस्टॉल करें
- 4. उसी एमएसबिल्ड लक्ष्य को दो बार कैसे बुलाया जाए?
- 5. लिनक्स कर्नेल
- 6. लिनक्स कर्नेल मॉड्यूल को कैसे कोड करें?
- 7. दो एक ही उपयोगकर्ता ID
- 8. बैश और लिनक्स कर्नेल
- 9. लिनक्स कर्नेल
- 10. उसी स्प्रिंग बीन को एक ही नाम से दो बार परिभाषित करना
- 11. मैं उसी डिवाइस पर दो बार एक ही एंड्रॉइड ऐप। एपीके कैसे इंस्टॉल करूं?
- 12. लिनक्स कर्नेल
- 13. एंड्रॉइड कर्नेल और वेनिला लिनक्स कर्नेल
- 14. लिनक्स कर्नेल
- 15. लिनक्स कर्नेल
- 16. यू-बूट और लिनक्स कर्नेल
- 17. लिनक्स कर्नेल
- 18. एक ही चेकसम के चेकसम को कैसे ढूंढें? (नौकरी साक्षात्कार प्रश्न)
- 19. उसी होस्ट पर एक ही अनुबंध के लिए DataContractSerializer और XMLSerializer दोनों का समर्थन कैसे करें?
- 20. प्रक्रिया निर्माण पर लिनक्स प्रक्रिया कर्नेल स्टैक स्थिति क्या है?
- 21. लिनक्स कर्नेल 2.4.20 और 2.4.36
- 22. लिनक्स कर्नेल
- 23. एक ही अभिव्यक्ति में दो बार विभाजित?
- 24. लिनक्स कर्नेल बग को कैसे/कहाँ ढूंढें?
- 25. लिनक्स कर्नेल
- 26. 32 बिट लिनक्स कर्नेल
- 27. MySQL: पंक्तियों को दो बार बार-बार कैसे प्राप्त करें
- 28. डिबगिंग विंडोज कर्नेल लिनक्स
- 29. एक अलग ऑब्जेक्ट निर्देशिका में एक आउट-ऑफ-पेड़ लिनक्स कर्नेल मॉड्यूल का निर्माण
- 30. लिनक्स कर्नेल
@RamenChef द्वारा संस्करण किसी भी मतलब नहीं है देखने वाले की आंखों में ;-) ... है ... से छुटकारा पाने के लिए संभव है यह वास्तव में है संभव StackOverflow इतना बुरा हो रहा है? – gsempe