विषयसूची:

ऑरेंज पीआई कैसे करें: विंडोज़ के तहत विंडोज़ के लिए सनक्सी टूल संकलित करें: 14 चरण (चित्रों के साथ)
ऑरेंज पीआई कैसे करें: विंडोज़ के तहत विंडोज़ के लिए सनक्सी टूल संकलित करें: 14 चरण (चित्रों के साथ)

वीडियो: ऑरेंज पीआई कैसे करें: विंडोज़ के तहत विंडोज़ के लिए सनक्सी टूल संकलित करें: 14 चरण (चित्रों के साथ)

वीडियो: ऑरेंज पीआई कैसे करें: विंडोज़ के तहत विंडोज़ के लिए सनक्सी टूल संकलित करें: 14 चरण (चित्रों के साथ)
वीडियो: This New Operating System Look & Features Like Windows 11🔥 But Based on Android With Playstore 2024, नवंबर
Anonim
ऑरेंज पीआई कैसे करें: विंडोज़ के तहत विंडोज़ के लिए सनक्सी टूल संकलित करें
ऑरेंज पीआई कैसे करें: विंडोज़ के तहत विंडोज़ के लिए सनक्सी टूल संकलित करें

पूर्वापेक्षाएँ:

आपको चाहिये होगा

  1. A (डेस्कटॉप) कंप्यूटर जो विंडोज़ चला रहा है।
  2. एक इंटरनेट कनेक्शन।
  3. एक ऑरेंज पीआई बोर्ड।

अंतिम वैकल्पिक है, लेकिन मुझे यकीन है कि आपके पास पहले से ही है। अन्यथा आप इस निर्देश को नहीं पढ़ेंगे।

जब आप ऑरेंज पीआई सिंगल बोर्ड कंप्यूटर खरीदते हैं तो यह ठीक से कॉन्फ़िगर होने तक केवल मृत धातु का एक टुकड़ा रहता है। और इसकी मुख्य कॉन्फ़िगरेशन फ़ाइल: "script.bin" इसे जीवंत करने वाली पहली कुंजी है। यह फाइल आपके बूट करने योग्य एसडी कार्ड के बूट पार्टीशन में स्थित है। और सौभाग्य से, आधिकारिक साइट (https://www.orangepi.org/downloadresources/) से अधिकांश लिनक्स वितरणों में यह विभाजन FAT32 है और इसे किसी भी विंडोज कंप्यूटर द्वारा आसानी से देखा जा सकता है। यह वास्तव में चीजों को सरल करता है, क्योंकि अभी भी विंडोज के तहत लिनक्स ext2 विभाजन में लिखने का कोई विश्वसनीय तरीका नहीं है।

हमारे लिए अशुभ है script.bin कॉन्फ़िगरेशन फ़ाइल में मानव संपादन के लिए पूरी तरह से अमित्र प्रारूप है। इसे डिक्रिप्ट करने और आवश्यक संशोधनों के बाद वापस क्रिप्ट करने के लिए किसी को किसी प्रकार के सॉफ़्टवेयर टूल की आवश्यकता होती है। और ऐसा टूलसेट मौजूद है। यह कुख्यात SUNXI-TOOLS है। मरहम में मक्खी यह है कि यह लिनक्स के तहत चलाने का इरादा है और हमें या तो केवल सनक्सी-टूल्स का उपयोग करने के लिए एक समर्पित लिनक्स-मशीन रखना होगा, या विंडोज़ के लिए उन्हें संकलित करने का तरीका खोजना होगा।

मैं बस इसे संकलित कर सकता हूं और निष्पादन योग्य साझा कर सकता हूं, लेकिन कोई कभी नहीं जानता कि वे एक नई रिलीज करना चाहते हैं या नहीं और आपको एक नए संकलन ASAP की आवश्यकता होगी। इसलिए मैंने एक गाइड बनाने का फैसला किया कि स्रोतों से आवश्यक टूल को कैसे संकलित किया जाए। आएँ शुरू करें।

चरण 1: सनक्सी-टूल्स डाउनलोड करें

डाउनलोड Sunxi-उपकरण
डाउनलोड Sunxi-उपकरण
डाउनलोड Sunxi-उपकरण
डाउनलोड Sunxi-उपकरण

Sunxi-tools sourcecode का नवीनतम (या आवश्यक) संस्करण प्राप्त करें। URL पर जाएं: https://github.com/linux-sunxi/sunxi-tools/releases और ज़िप संग्रह के रूप में डाउनलोड करना चुनें।

चरण 2: सोर्सकोड को अनज़िप करें

सोर्सकोड को अनज़िप करें
सोर्सकोड को अनज़िप करें

एक बार डाउनलोड समाप्त हो जाने के बाद, स्रोत कोड को अपनी पसंद के फ़ोल्डर में अनज़िप करें। (आगे मैं मान लूंगा कि यह फ़ोल्डर c:\sunxitools\ है, इसलिए इस पथ को अपने पथ से बदलें)।

चरण 3: डाउनलोड कोड:: ब्लॉक

डाउनलोड कोड::ब्लॉक
डाउनलोड कोड::ब्लॉक

यदि आपके पास विंडोज़ के लिए कुछ परिचालन सी ++ कंपाइलर की एक स्थापित प्रति है। और यदि आप जानते हैं कि इसका उपयोग कैसे करना है, तो आप सीधे चरण 3 पर आगे बढ़ सकते हैं। अन्य लोगों को इसे आराम से उपयोग करने के लिए एक उचित c++ कंपाइलर और एक शेल (IDE) मिलना चाहिए। मेरी पसंद कोड:: ब्लॉक विंडोज के लिए प्रीइंस्टॉल्ड मिनजीडब्ल्यू टूलचेन के साथ है। आप इसे यहां से प्राप्त कर सकते हैं:https://sourceforge.net/…/codeblocks-16.01mingw-setup.exe/download

इसे डाउनलोड और इंस्टॉल करें।

चरण 4: अपनी आईडीई का परीक्षण करें

अपने आईडीई का परीक्षण करें
अपने आईडीई का परीक्षण करें

यह जांचने के लिए कि क्या चीजें ठीक हैं, कोडब्लॉक शुरू करें, "एक नया प्रोजेक्ट बनाएं" पर क्लिक करें, "कंसोल एप्लिकेशन" चुनें, सी या सी ++ चुनें, चेकआउट प्रोजेक्ट का शीर्षक टाइप करें, अगली विंडो में डिफॉल्ट्स को अछूता रखें और "फिनिश" पर क्लिक करें। ".

चरण 5: पूरा परीक्षण

पूरा परीक्षण
पूरा परीक्षण

फिर IDE के शीर्ष पैनल पर एक हरे त्रिकोण पर क्लिक करें या Build->Run मेनू बिंदु का उपयोग करें। अगर चीजें सही हुईं तो आपको ब्लैक "डॉस" विंडो में अपने ऑटोजेनरेटेड "हैलो वर्ल्ड" एप्लिकेशन से एक संदेश देखना चाहिए।

यदि नहीं, तो इसका मतलब है कि आईडीई और कंपाइलर ठीक से काम नहीं कर रहे हैं और आपको इसकी जांच करनी होगी कि इसे सही तरीके से कैसे सेट किया जाए। संभवत: आपको प्रोग्रामिंग टूल का दूसरा संस्करण डाउनलोड करना होगा या अपने फ़ायरवॉल/एंटीवायरस सॉफ़्टवेयर में उनकी अनुमतियों की जांच करनी होगी।

चरण 6: नया प्रोजेक्ट बनाएं

नया प्रोजेक्ट बनाएं
नया प्रोजेक्ट बनाएं
नया प्रोजेक्ट बनाएं
नया प्रोजेक्ट बनाएं
नया प्रोजेक्ट बनाएं
नया प्रोजेक्ट बनाएं
नया प्रोजेक्ट बनाएं
नया प्रोजेक्ट बनाएं

अब आपके पास आपके कंप्यूटर पर c:\sunxitools\ फ़ोल्डर में एक ऑपरेशनल C/C++ प्रोग्रामर का टूलकिट और अनपैक्ड सनक्सी-टूल्स सोर्सकोड होना चाहिए। यह एक परियोजना को इकट्ठा करने का समय है। अपने आईडीई में नया प्रोजेक्ट बनाएं। "कंसोल एप्लिकेशन" प्रकार का सादा सी (सी ++ नहीं) प्रोजेक्ट चुनें।

सुनिश्चित करें कि आप c:\sunxitools\ फ़ोल्डर में प्रोजेक्ट बना रहे हैं और किसी अन्य स्थान पर नहीं। (ईजी कोडब्लॉक उसी नाम से एक सबफ़ोल्डर बनाते हैं जैसा कि प्रोजेक्ट में है। इसलिए यदि आपने अपने प्रोजेक्ट का नाम दिया है, तो "टेस्ट" कहें, और इसे c:\sunxitools\ में रखने का प्रयास करें, आप प्रोजेक्ट के साथ समाप्त हो सकते हैं c:\sunxitools\test\ यदि आप पर्याप्त रूप से चौकस नहीं हैं।) Sunxi-tools में कई उपयोगिताएँ हैं, लेकिन हमारे उद्देश्य के लिए हमें केवल एक की आवश्यकता होगी: तथाकथित "fexc" उपयोगिता।

चरण 7: प्रोजेक्ट में फ़ाइलें जोड़ें

प्रोजेक्ट में फ़ाइलें जोड़ें
प्रोजेक्ट में फ़ाइलें जोड़ें

वास्तव में "fexc" उपयोगिता script.bin को टेक्स्ट फॉर्मेट में बदलने और बैक को बाइनरी में बदलने के लिए जिम्मेदार है। यह आवश्यक है कि इस उपयोगिता के निष्पादन योग्य का नाम "fexc.exe" है, इसलिए यह अच्छा है यदि आपने अपनी परियोजना को "fexc" नाम दिया है। हालाँकि आप प्रोजेक्ट के किसी अन्य नाम का उपयोग कर सकते हैं, क्योंकि आप संकलन के बाद हमेशा निष्पादन योग्य का नाम बदल सकते हैं, या या तो आप शीर्ष पुलडाउन मेनू से "प्रोजेक्ट-> गुण" चुन सकते हैं और दिखाई देने वाली विंडो में "लक्ष्य बनाएं" टैब पर क्लिक करें, और निष्पादन योग्य नाम को ओवरराइड करने के लिए वहां "आउटपुट फ़ाइल नाम" फ़ील्ड संपादित करें।

आपके ऑटोजेनरेटेड प्रोजेक्ट में आपको केवल पाँच स्रोत फ़ाइलें जोड़नी चाहिए:

  • fexc.c
  • स्क्रिप्ट.सी
  • script_bin.c
  • script_fex.c
  • script_uboot.c

और सात हेडर फाइलें:

  • list.h (इसे फॉर्म c:\sunxitools\include\ फोल्डर को c:\sunxitools\ फोल्डर में ले जाएं)
  • fexc.h
  • स्क्रिप्ट.एच.ओ
  • script_bin.h
  • script_fex.h
  • script_uboot.h
  • संस्करण.एच

ऑटोजेनरेटेड main.c को प्रोजेक्ट से बाहर करना सुनिश्चित करें, क्योंकि fexc.c में पहले से ही "int main" फंक्शन है। (याद रखें कि किसी भी कार्यक्रम में केवल एक मुख्य कार्य होना चाहिए?)

सभी आवश्यक स्रोत कोड फ़ाइलें पहले से ही सबफ़ोल्डर में हैं, जहाँ आपने स्रोत कोड को अनपैक किया है। हेडर फाइलें शब्दों की एक जोड़ी के लायक हैं, जहां उन्हें प्राप्त करना है। "list.h" - आमतौर पर अनपैक्ड सोर्सकोड सेट के "शामिल" सबफ़ोल्डर में होता है। "संस्करण.एच" - बस इसे स्वयं बनाएं। वहां एक स्ट्रिंग रखें जैसे:

#परिभाषित संस्करण "Win32"

फिर फाइल को सेव और बंद करें। (यदि आप चाहें तो इसे #define's और #ifdef's से सजा सकते हैं।)

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

चरण 8: Gcc को 1999 ISO C भाषा मानक का पालन करें

Gcc को 1999 ISO C भाषा मानक का पालन करें
Gcc को 1999 ISO C भाषा मानक का पालन करें

संकलक को शिकायत न करने के लिए बहुत मुफ्त प्रोग्रामिंग शैली संकलन के "с99" स्टैंडआर्ट को सेट करती है। कोडब्लॉक में "प्रोजेक्ट -> बिल्ड विकल्प" मेनू पर जाएं और "कंपाइलर सेटिंग्स -> कंपाइलर फ्लैग" में "जीसीसी को 1999 आईएसओ सी भाषा मानक का पालन करें" चेकबॉक्स को चेक करें। या आप अपने कंपाइलर विकल्प स्ट्रिंग में बस "-std = c99" जोड़ सकते हैं। अब यदि आप प्रोजेक्ट को संकलित करने का प्रयास करते हैं तो उन टन त्रुटियों को शुरू किया जाना चाहिए और आप लापता निर्भरता के साथ एक से एक हैं।

चरण 9: लापता निर्भरता का पता लगाएं

लापता निर्भरता का पता लगाएं
लापता निर्भरता का पता लगाएं

लापता निर्भरता "mman.h" फ़ाइल है - किसी प्रकार के लिनक्स मेमोरी मैनेजर का शीर्षलेख। विंडोज सी में मूल रूप से ऐसी कोई फाइल नहीं है, लेकिन सौभाग्य से इसमें एक विंडोज़ पोर्ट है। विंडोज़ के लिए https://github.com/witwall/mman-win32 पर जाएं। git रिपॉजिटरी का स्नैपशॉट डाउनलोड करें।

चरण 10: ममन को अनपैक करें

ममन को अनपैक करें
ममन को अनपैक करें

Mman.c और mman.h फ़ाइलों को अनपैक करें, उन्हें c:\sunxitools\ फ़ोल्डर में रखें।

चरण 11: और उन्हें परियोजना में जोड़ें

और उन्हें प्रोजेक्ट में जोड़ें
और उन्हें प्रोजेक्ट में जोड़ें

चरण 12: सही पथ

सही रास्ता
सही रास्ता

और फ़ाइल "fex.c" रैपलेस लाइन में:

#शामिल

तक

#शामिल "mman.h"

इस चरण पर आपके कंपाइलर को कुछ भी शिकायत नहीं करनी चाहिए और आपको आउटपुट के रूप में लंबी प्रतीक्षा fexc.exe मिल जाएगी। बहुत जल्दी खुश न हों। उपयोगिता अभी भी पूरी तरह कार्यात्मक नहीं है। आप कुछ मान्य script.bin फ़ाइल को टेक्स्ट फॉर्म - script.fex फ़ाइल में डिक्रिप्ट करके इसे सुनिश्चित कर सकते हैं जिसके परिणामस्वरूप script.fex फ़ाइल को वापस script.bin में एन्क्रिप्ट किया जा सकता है। आप ध्यान दें कि परिणामी script.bin का आकार मूल script.bin के आकार से थोड़ा भिन्न होता है। और यदि आप परिणामी को एक बार फिर से डिक्रिप्ट करने का प्रयास करते हैं तो यह विफल हो जाएगा। इस स्क्रिप्ट के साथ न तो ऑरेंज पीआई काम करेगा। कार्यात्मक उपयोगिता प्राप्त करने के लिए हमें एक कोड बम का निर्वहन करना होगा, जिसे किसी ने सनक्सी-टूल्स सोर्सकोड में डाल दिया है। यह हमारा अगला कदम होगा।

चरण 13: भूत भगाना

झाड़-फूंक
झाड़-फूंक

कोड बम को डिस्चार्ज करने के लिए fexc.c कोड फ़ाइल खोलें और अगली सामग्री की एक टेक्स्ट स्ट्रिंग खोजें:

और अगर ((बाहर = खुला (फ़ाइल नाम, O_WRONLY|O_CREAT|O_TRUNC, 0666)) < 0) {

बस इसे अगले स्ट्रिंग से बदलें:

और अगर ((बाहर = खुला (फ़ाइल नाम, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 512))<0){

यदि पहली स्ट्रिंग में "666" के बुरे अंक नहीं हैं, तो मुझे लगता है कि कोडर O_BINARY ध्वज का उपयोग करना भूल गया है। लेकिन द बीस्ट की संख्या पारदर्शी रूप से उनके इरादों को स्पष्ट करती है। जाओ आंकड़ा, यह कितना सरल है: विंडोज़ और लिनक्स में फाइलों को कैसे संसाधित किया जाता है, इसमें सूक्ष्म अंतर के कारण जब उपयोगिता संकलित होती है और लिनक्स के तहत उपयोग की जाती है तो बम का कोई प्रभाव नहीं पड़ता है। लेकिन जब विंडोज के तहत उपयोगिता का उपयोग किया जाता है तो यह सब कुछ बर्बाद कर देता है।

बम को निरस्त्र करने के बाद, आप अंततः अपने विंडोज डेस्कटॉप कंप्यूटर पर fexc उपयोगिता को संकलित और सुरक्षित रूप से उपयोग कर सकते हैं।

चरण 14: नोट्स

टिप्पणियाँ
टिप्पणियाँ

1) fexc उपयोगिता को आराम से उपयोग करने के लिए, आपको दो बैच फ़ाइलें मिलनी चाहिए:

bin2fex.bat - और - fex2bin.bat।

आप उन्हें विंडोज़ के लिए कुछ असफल fexc.exe बिल्ड से प्राप्त कर सकते हैं, या या तो आप उन्हें स्वयं टाइप कर सकते हैं:

  • bin2fex.bat में "fexc -I bin -O fex script.bin script.fex" होना चाहिए।
  • fex2bin.bat में "fexc -O bin -I fex script.fex script.bin" होना चाहिए।

2) यदि विंडोज़ के लिए एममैन मैनेजर ढूंढना मुश्किल है तो कोई भी इसके उपयोग से बच सकता है। हालांकि यह fexc.c फ़ाइल का अधिक संपादन लेता है और सी के कम से कम कुछ ज्ञान की आवश्यकता होती है। आपकी सुविधा के लिए मैं fexc के संपादित स्रोत कोड को सनक्सी-टूल्स v1.4 से निर्भरता से मुक्त mman.h पर कोडब्लॉक प्रोजेक्ट फ़ाइल के साथ और कुछ नारंगी पीआई से नमूना script.bin के साथ साझा करता हूं। आप fexc_nomman.zip डाउनलोड कर सकते हैं

3) यह संभव है कि सनक्सी-टूल्स के परिणामी संस्करणों में वे कुछ और निर्भरताएँ जोड़ देंगे। बेझिझक उन्हें इंटरनेट पर खोजें और उन्हें अपने संकलन प्रोजेक्ट में जोड़ें।

5) अंत में यहाँ Win32 के लिए fexc.exe का पूर्व-संकलित संस्करण है:

fexc_nomman.zip

यदि आप काफी आलसी हैं तो बेझिझक ver का उपयोग करें। हालांकि सावधान रहें कि SunxiTools/Windows के नए संस्करण उपलब्ध होने पर यह अपडेट नहीं होगा। तो मुझे लगता है कि कुछ निश्चित बाइनरी बिल्ड पर निर्भर होने के बजाय उन्हें संकलित करना सीखना बेहतर है।

4) "ऑरेंज पीआई", "कोड:: ब्लॉक", "विंडोज", "लिनक्स", "सनक्सी-टूल्स", "ऑलविनर", आदि … उनके संबंधित स्वामियों के संवाददाता ट्रेडमार्क हैं।

5) यदि आप संकलक शिकायत करते हैं कि एममैन फ़ंक्शन नहीं मिल रहा है, जैसे:

'_imp_mmap' के लिए अपरिभाषित संदर्भ

ज्ञात हो कि एममैन विकास समुदाय के प्रेमी यह भूल गए हैं कि कोड को न केवल dll पुस्तकालय के रूप में संकलित किया जा सकता है। यह एक स्थिर पुस्तकालय या एक स्टैंडअलोन कोड भी हो सकता है जैसे हमारे यहां है। समस्या को ठीक करने के लिए "mman.h" फ़ाइल को निम्नानुसार संपादित करें:

ए) तार खोजें:

#अगर परिभाषित (MMAN_LIBRARY)

#define MMANSHARED_EXPORT _declspec(dllexport) #else #define MMANSHARED_EXPORT _declspec(dllimport) #endif

बी) स्ट्रिंग जोड़ें

#MMANSHARED_EXPORT परिभाषित करें

पिछले चरण में पाए गए तार के ठीक नीचे

सिफारिश की: