के प्रवेश बिंदु निर्धारित मैं एक एम्बेडेड सिस्टम (mipsel) मेरी 86 लिनक्स पर के लिए एक crosscompiling toolchain है। मैं इसके लिए एक कस्टम कर्नेल (की छवि "vmlinux" कहते हैं) का निर्माण करने के लिए कैसे और के माध्यम सेलोड का पता और छीन लिनक्स कर्नेल छवि
objcopy -S -O binary vmlinux vmlinux.bin
आगे की प्रक्रिया के लिए मैं भी लोड का पता और छवि के प्रवेश बिंदु की जरूरत है कि छवि पट्टी करने के लिए कैसे पता है। से पहले अलग करना यह scripts/mksysmap
या, और अधिक स्पष्ट रूप से के माध्यम से उन्हें निर्धारित करने के लिए कोई समस्या नहीं है, के माध्यम से
nm -n vmlinux | grep -v '\([aNUw] \)\|\(__crc_\)\|\(\$[adt]\)' > System.map
तो मैं लोड का पता और के माध्यम से
awk '/A _text/ { print "0x"$1; }' < _System.map
awk '/T kernel_entry/ { print "0x"$1; }' < System.map
प्रवेश बिंदु अब चुनौती यह है कि कभी कभी है निर्धारित कर सकते हैं मैं अपने आप को द्वारा कर्नेल का निर्माण नहीं है, लेकिन पहले से बने गिरी के बाद यह पहले से ही objcopy के माध्यम से अपने प्रतीकों में से छीन कर दिया गया है मिलता है। क्या कोई मुझे बता सकता है कि यह कैसे करें? मैं कर्नेल बिल्डिंग और टूलचेन उपयोग में बहुत कुशल नहीं हूं। दोनों एनएम और objdump, छीन छवि पसंद नहीं है
vmlinux.bin: File format not recognized
कि उत्तर के लिए विलम्बित धन्यवाद।दुर्भाग्यवश मुझे ई-मेल के माध्यम से उत्तर के बारे में अधिसूचित नहीं किया गया, क्षमा करें। असल में मैं लोड पता और प्रवेश बिंदु खोजने के लिए एक और तरीका ढूंढने में कामयाब रहा, लेकिन मेरा समाधान स्थिति के लिए विशिष्ट था और आम तौर पर लागू नहीं किया जा सकता है, इसलिए मैं इसे यहां उद्धृत नहीं कर रहा हूं। मुझे बस इतना कहना है कि आपका प्रस्तावित समाधान ईएलएफ फ़ाइल बनाता है, लेकिन फ़ाइल में वांछित स्थानान्तरण जानकारी नहीं है। इस प्रकार, जानकारी को एनएम-एन' के माध्यम से निकाला नहीं जा सकता है। वैसे भी जवाब देने के लिए धन्यवाद। – kriegaex