मैं सिर्फ सीरियल पोर्ट पर एक व्यस्त बॉक्स आधारित लिनक्स एम्बेडेड सिस्टम के लिए एक ~ 7 Kb फर्मवेयर फ़ाइल अपलोड की है।
कोई नेटवर्किंग, कोई फ़ाइल स्थानांतरण उपयोगिताओं; डिवाइस पर दूरस्थ रूप से कोई बेस 64 बर्तन या कुछ भी उपयोगी नहीं है।
मेजबान पर, मैंने तुच्छ रूप से निम्नलिखित प्रारूप में एक फर्मवेयर को एन्कोड किया; एक प्रकार की हेक्स-डंप जिसमें शेल printf
कमांड शामिल हैं, जो कमांड के साथ संयुक्त है :
printf "\xDE\xAD\xBE\xEF\x...\xF0"
printf "\xCA\xFE\x33\xE1\x...\xD3"
मूल रूप से शेल क्रम printf
से \x
बचता है जो printf
व्याख्या करता है। डिवाइस पर मैंने किया:
device $ cat > firmware.sh
फिर इस फ़ाइल को होस्ट में भेजने के लिए minicom
ASCII फ़ाइल भेजने ( Ctrl-AS) का उपयोग किया। मैं केवल कॉपी और पेस्ट का उपयोग कर सकता था, क्योंकि डेटा की मात्रा छोटी है।
फिर, निष्पादन योग्य चिह्नित और printf
स्क्रिप्ट चला गया :
device $ chmod a+x firmware.sh
device $ ./firmware.sh > firmware.bin
व्यस्तबॉक्स का उपयोग करके जांचा जाता है md5sum
कि firmware.bin
डिवाइस पर चेकसम होस्ट पर मूल फर्मवेयर छवि से मेल खाता है।
पुनश्च शेल दोहरा उद्धरण वाक्यविन्यास \x
शब्दशः से होकर गुजरता है क्योंकि यह एक मान्यता प्राप्त अनुक्रम नहीं है; इसलिए हमें बैकस्लैश को दोगुना करने की आवश्यकता नहीं है।
busybox --help
औरls -l /bin
औरls -l /usr/bin
, कृपया।