छवि बनाम zImage बनाम uImage


86

उनके बीच क्या अंतर है?

मुझे पता है कि यू-बूट को uImage प्रारूप में कर्नेल की आवश्यकता है।

सिस्टम मैं चरण 1 लोडर से पहले बूट का उपयोग करता हूं और फिर इसे यू-बूट कहता है। मैं स्टेज 1 लोडर से यू-बूट और सीधे बूट को छोड़ना चाहता हूं। मुझे किस प्रकार की कर्नेल छवि का उपयोग करना है?


Electronics.stackexchange.com/questions/106958/… क्या आप इस संदर्भ में मेरी मदद कर सकते हैं?
user3217310

ऐसा लगता है कि आपकी समस्या BOOT.BIN फ़ाइल बनाते समय आपके द्वारा अनुसरण करने के तरीके के बारे में है। मैं भी ZedBoard का उपयोग करता हूं, लेकिन इस तरह की समस्या का सामना नहीं करना पड़ा।
yildizabdullah

हाँ, मैं BOOT.bin बनाने के लिए u-boot.elf के गलत संस्करण का उपयोग कर रहा था
user3217310

1
अंतिम सुपरसेट प्रश्न: unix.stackexchange.com/questions/5518/…
Ciro Santilli 病 question question question 事件

जवाबों:


119

उनके बीच क्या अंतर है?

छवि : सामान्य लिनक्स कर्नेल बाइनरी इमेज फ़ाइल।

zImage : लिनक्स कर्नेल छवि का एक संपीड़ित संस्करण जो स्वयं निकालने वाला है।

uImage : एक छवि फ़ाइल जिसमें U-बूट आवरण ( mkimage उपयोगिता द्वारा स्थापित ) है जिसमें OS प्रकार और लोडर जानकारी शामिल है।
एक बहुत ही सामान्य अभ्यास (जैसे कि विशिष्ट लिनक्स कर्नेल मेकफाइल) एक zImage फ़ाइल का उपयोग करना है। चूंकि zImage फ़ाइल सेल्फ-एक्स्ट्रेक्टिंग है (अर्थात किसी बाहरी डिकम्प्रेसर की आवश्यकता नहीं है), रैपर यह संकेत देगा कि यह कर्नेल "नहीं संपीड़ित" है, हालांकि यह वास्तव में है।


ध्यान दें कि U- बूट के लेखक / अनुरक्षक एक व्यापक उपयोग का उपयोग करता है (एक व्यापक) का उपयोग करता है।

वास्तव में यह बहुत बेवकूफ है एक uImage के अंदर एक zImage का उपयोग करने के लिए। सामान्य (असम्पीडित) कर्नेल छवि का उपयोग करने के लिए बेहतर है, इसे सिर्फ gzip का उपयोग करके संपीड़ित करें, और इसे mkimage के लिए poayload के रूप में उपयोग करें। इस तरह से यू-बूट प्रत्येक कर्नेल छवि के साथ अभी तक एक और अनलॉकर को शामिल करने के बजाए अनक्रीस्पेशन का काम करता है।

( https://lists.yoctoproject.org/pipermail/yocto/2013-October/01787878 से उद्धृत )


मुझे किस प्रकार की कर्नेल छवि का उपयोग करना है?

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

परिशिष्ट

मुझे पता है कि यू-बूट को uImage प्रारूप में कर्नेल की आवश्यकता है।

यह यू-बूट के सभी संस्करणों के लिए सटीक है जिसमें केवल बूटम कमांड है।
लेकिन यू-बूट के अधिक हाल के संस्करणों में बूटज़ कमांड भी हो सकता है जो एक zImage बूट कर सकता है।


1
मेरी अंडरस्टैंडिंग zImage है = संकुचित छवि uImage = छवि + uBoot आवरण, मुझे सही करें यदि मैं गलत हूं, तो uBoot आवरण में uBoot शीर्षलेख और अतिरिक्त informations जैसे बूट डिवाइस लोड पता, प्रविष्टि बिंदु होता है, लेकिन मुझे संपूर्ण नहीं दिखाते संदर्भ मिल सकते हैं एक प्रारूप का प्रारूप क्या आप उस पर लिंक साझा कर सकते हैं
मौन

प्रतिक्रिया के लिए धन्यवाद, मुझे uImage हेडर प्रारूप के बारे में संसाधन मिले हैं । मुझे समझ में नहीं आया: 1- मैं कहां से लोड पता (बूट डिवाइस लोड ऐड्रेस) और प्रवेश बिंदु uImage में देख सकता हूं (वे शीर्ष लेख में मौजूद नहीं हैं) 2- क्या zImage में ये informations हैं (लोड पता और प्रवेश बिंदु), यही कारण है कि मैं दोनों एक zImage और एक uImage के स्वरूपों के बारे में पूछ रहा हूँ
मौन

"मुझे क्या समझ नहीं आया ..." - टिप्पणियों में चर्चा शुरू करने की कोशिश न करें। एक नया प्रश्न पोस्ट करें।
चूरा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.