क्या uImage के बजाय Vmlinux का उपयोग किया जा सकता है?


9

मैं एक असम्पीडित कर्नेल छवि का उपयोग करना चाहता हूं और बीगलबोर्ड को बूट करता हूं। आम तौर पर मैं कर्नेल को बूट करने के लिए uImage का उपयोग करता हूं जो संपीड़ित प्रारूप में होता है। मैं एक असम्पीडित कर्नेल छवि का उपयोग कैसे करूँ?


आप बूटलोडर के रूप में यू-बूट का उपयोग कर रहे हैं, है ना?
गिल्स एसओ- बुराई को रोकना '

हाँ! क्या uboot का उपयोग करना संभव है?
शरण्या

जवाबों:


7

जहां तक ​​मुझे पता है, यू-बूट सीधे एक "कच्चे" ईएलएफ छवि ( vmlinux) को बूट नहीं कर सकता है । आपको इसे uImageप्रारूप में बदलना होगा , जिसमें vmlinuxमेटाडेटा के संपीड़ित प्लस और कुछ अतिरिक्त बाइट शामिल हैं जो कर्नेल लोड पते का वर्णन करते हैं। यू-बूट एफएक्यू 2.19 बताते हैं कि कैसे उत्पन्न किया जाए uImage; यह mkimageयू-बूट स्रोत के पेड़ में उपयोगिता का उपयोग करते हुए काफी सीधा है :

 mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage

(आपको लोड पते को इंगित करने के लिए अतिरिक्त मापदंडों की आवश्यकता हो सकती है।)


1
बूट करते समय uImage को अनकम्प्रेस करना कुछ समय लेता है। मुझे उसे कम करना होगा। इसलिए मैंने सोचा कि क्यों न मैं असम्पीडित कच्चे फ़ाइल vmlinux के साथ कोशिश करूँ।
शरण्या

3
आप जिस प्रभाव को प्राप्त करना चाहते हैं, वह उद्देश्य के विपरीत हो सकता है। डिकम्प्रेसन का समय आमतौर पर फ्लैश से डेटा कॉपी करने के समय से छोटा होता है।
मैकीज कुसिया २५'१३

3
 mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage

ऊपर दिए गए उदाहरण में gzip को बदलें और कोई नहीं , और आप एक यू-बूट संगत असम्पीडित छवि बनाएंगे।


1

यदि आप Buildroot का उपयोग कर रहे हैं, तो uImageकर्नेल आउटपुट फ़ाइल ( BR2_LINUX_KERNEL_UIMAGE=y) चुनें। सामान्य रूप से संकलित करें और बिल्डरो vmlinuxएक मध्यवर्ती चरण में एक फ़ाइल भी बनाएंगे । जबकि vmlinuxफ़ाइल को उस /output/imagesनिर्देशिका में कॉपी नहीं किया जाता है जो इसे ./output/build/linux-custom/(या रन करके find . -name "vmlinux") मिल सकती है।

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