हमारे पास एक वीए सी 3 प्रोसेसर के साथ एडवांटेक पीओएस बोर्ड पर एक (बल्कि पुराने) एफसी 3 के तहत चल रहे जावा एप्लिकेशन से संबंधित एक समस्या है। जावा एप्लिकेशन में कई संकलित साझा libs हैं जिन्हें जेएनआई के माध्यम से एक्सेस किया जाता है।लिनक्स (लाइब्रेरी या निष्पादन योग्य) में बाइनरी फ़ाइल का लक्ष्य आर्किटेक्चर निर्धारित करें
Via सी 3 प्रोसेसर i686 संगत होने के लिए suppossed है। कुछ समय पहले एक ही प्रोसेसर के साथ मिनीआईटीएक्स बोर्ड पर उबंटू 6.10 स्थापित करने के बाद मुझे पता चला कि पिछला कथन 100% सत्य नहीं है। C3 प्रोसेसर में i686 सेट के कुछ विशिष्ट और वैकल्पिक निर्देशों की कमी के कारण उबंटू कर्नेल स्टार्टअप पर फांसी लगा दी गई। I686 ऑप्टिमाइज़ेशन का उपयोग करते समय i686 सेट के सी 3 कार्यान्वयन में अनुपलब्ध ये निर्देश डिफ़ॉल्ट रूप से जीसीसी कंपाइलर द्वारा उपयोग किए जाते हैं। इस मामले में समाधान उबंटू वितरण के i386 संकलित संस्करण के साथ जाना था।
जावा एप्लिकेशन के साथ मूल समस्या यह है कि किसी अन्य पीसी के एचडी की छवि से क्लोनिंग करके एचडी पर एफसी 3 वितरण स्थापित किया गया था, इस बार इंटेल पी 4। इसके बाद वितरण को कुछ हैकिंग की आवश्यकता होती है जैसे कि इसे i383 संकलित संस्करण के साथ कुछ पैकेज (जैसे कर्नेल वन) को बदलना।
समस्या यह है कि थोड़ी देर के लिए काम करने के बाद सिस्टम बिना किसी निशान के लटकता है। मुझे डर है कि कुछ i686 कोड सिस्टम में कहीं भी छोड़ा गया है और किसी भी समय यादृच्छिक रूप से निष्पादित किया जा सकता है (उदाहरण के लिए निलंबन मोड से ठीक होने के बाद या ऐसा कुछ)।
मेरा प्रश्न है:
- वहाँ क्या विशिष्ट वास्तुकला एक बाइनरी फ़ाइल (निष्पादन योग्य या लाइब्रेरी) के उद्देश्य से प्रदान की जाती है कि "फ़ाइल" इतनी जानकारी नहीं देता है पर पता लगाने के लिए किसी भी उपकरण या रास्ता नहीं है ?
objdump -d आपको एक एएसएम प्रतिनिधित्व प्राप्त करना चाहिए जो आप खराब ऑपकोड के लिए बस grep कर सकते हैं। –
मुझे लगता है कि मैं आपके द्वारा प्रस्तावित तरीके से जाऊंगा। मुझे केवल यह पता लगाने की आवश्यकता है कि vmlinuz को कैसे कम किया जाए (मुझे यकीन नहीं है कि कर्नेल स्वयं i386 या i686 संस्करण है)। –
+1। यह मेरे मामले में बहुत मदद नहीं है, लेकिन मुझे वास्तव में इस हैकी तरीके से प्यार है! –