इसके लिए पहले से क्या-क्या चाहिए
हार्डवेयर
होस्ट [PC/लैपटॉप]: x86/x86_64 AMD/Intel प्रोसेसर वाली कोई भी मशीन
टार्गेट [Raspberry Pi 4]: Raspberry Pi 4
सॉफ़्टवेयर
होस्ट: Linux ऑपरेटिंग सिस्टम वाली कोई भी मशीन (Ubuntu 20.04 LTS टेस्टेड)
टार्गेट: Raspberry Pi 4 Linux 32-बिट OS (Raspbian Bullseye Lite टेस्टेड)
ध्यान दें
बैकग्राउंड में abhiTronix से Raspberry Pi के लिए बनाए गए क्रॉस कम्पाइल टूलचेन का इस्तेमाल किया जाता है।
अन्य
स्टोरेज और समय से जुड़ी आवश्यकताएँ: बिल्ड डायरेक्टरी को ~10GB स्पेस की ज़रूरत होती है निर्भरताओं व होस्ट मशीन के स्पेसिफ़िकेशन (कॉन्फ़िगरेशन) के आधार पर इसे पूरा होने में 2-5 घंटे का समय लगता है।
नेटवर्किंग: इन निर्देशों का पालन करने के लिए आपकी टार्गेट मशीन (Raspberry Pi) और होस्ट मशीन (जहाँ आप क्रॉस-कम्पाइल कर रहे हैं) दोनों के पास इंटरनेट का ऐक्सेस होना चाहिए और दोनों एक ही नेटवर्क पर होनी चाहिए।
टार्गेट मशीन के लिए चरण/सेटिंग (Raspberry Pi)
1. बिलकुल पहले से शुरू करें (ज़रूरी नहीं)
ज़रूरी
अगर आपने हाल ही में नया Raspberry Pi खरीदा है या एकदम पहले से शुरू करना चाह रहे थे, तो हम जैसे-जैसे कहें, वैसे-वैसे आगे बढ़ते जाएँ। या फिर, अगर आप पहले से ही Raspberry Pi सेटअप कर चुके हैं, वह रन हो रहा है और नेटवर्क के लिए तैयार है, तो यह चरण छोड़कर चरण 2 पर जाएँ।
ध्यान दें
इस सेक्शन में यह मानकर चला गया है कि Raspabian (Stretch/Buster/Bullseye) OS इंस्टॉल करने के लिए आपके पास कम-से-कम 10GB का SD कार्ड है और उसे अपलोड करने के लिए एक लैपटॉप/PC है।
1.1. सॉफ़्टवेयर डाउनलोड करें और SD कार्ड तैयार करें
- अपने लैपटॉप/PC पर Raspbian (Bullseye) का लेटेस्ट वर्ज़न यहाँ से डाउनलोड करें।
- डाउनलोड किए गए OS को SD कार्ड (जो हमारे मामले में एक माइक्रो SD कार्ड है) पर राइट करने के लिए एक इमेज राइटर की ज़रूरत पड़ेगी। आप Balena Etcher का इस्तेमाल कर सकते हैं।
- लैपटॉप/PC में SD कार्ड डालें और इमेज राइटर रन करें। खुलने के बाद, ब्राउज़ करें और डाउनलोड की गई Raspbian इमेज फ़ाइल चुनें। सही डिवाइस चुनें, जो कि SD कार्ड को दर्शाने वाली ड्राइव है।
ध्यान दें
अगर चुनी गई ड्राइव (या डिवाइस) SD कार्ड से अलग है, तो चुनी गई दूसरा ड्राइव करप्ट हो जाएगी। इसलिए ध्यान रखें!
1.2 नेटवर्क सेटअप करें
अब जबकि आपका Raspberry Pi तैयार होकर रन करने लगा है, इसलिए अब वक्त है यहाँ बताए गए किसी एक तरीके का इस्तेमाल करके अपने नेटवर्क से कनेक्ट करना:
- अगर आपके पास मॉनिटर है: उसे अपने raspberry pi से कनेक्ट करें और नेविगेट करने के लिए कीबोर्ड और माउस भी कनेक्ट कर लें, फिर इस गाइड पर अमल करें।
- अगर आपके पास मॉनिटर नहीं हैं: इस गाइड पर अमल करें
2. SSH सेट अप करें
अगर आपके पास मॉनिटर है: Raspberry Pi टर्मिनल पर, यह टाइप करें:
sudo raspi-config
और आपके टर्मिनल पर एक मेन्यू दिखाई देगा। SSH को एनेबल करने के लिए, यहाँ जाएँ:इंटरफ़ेसिंग विकल्प
->SSH
->हाँ
और उसे एनेबल करने के लिएठीक
पर क्लिक करें। अंत मेंखत्म करें
चुनें और बाहर निकल जाएँ।अगर आपके पास मॉनिटर नहीं है: नेटवर्क सेटअप करने के बाद, अगर आपके पास मॉनिटर नहीं है या आप उसे दूर से (रिमोट) ऑपरेट कर रहे हैं। फिर अपने SD कार्ड को बाहर रखकर SSH एनेबल करें और उसे अपने कंप्यूटर से हुक करें और SD कार्ड के अंदर
/boot/parition
पाथ मेंssh
नाम की एक खाली फ़ाइल बनाएँ। अब SD कार्ड को वापस Raspberry Pi में डालें।
3. टर्मिनल खोलें
- SSH का इस्तेमाल करके किसी दूसरे लैपटॉप/PC से: किसी दूसरे कंप्यूटर के ज़रिए अपने Pi से कनेक्ट करने के लिए, नीचे दिया गया कमांड कॉपी करके टर्मिनल विंडो में पेस्ट करें, लेकिन
192.160.1.47
की जगह पर Raspberry Pi का IP पता डालें।
ssh [email protected]
वह आपसे पासवर्ड माँगेगा और अगर पासवर्ड बदला नहीं गया है, तो वह डिफ़ॉल्ट पासवर्ड (raspberry
) होगा। इसलिए जब भी आपसे पासवर्ड माँगा जाए, तो इसी का इस्तेमाल करें।
ध्यान दें
Raspberry Pi को इस तरह कॉन्फ़िगर किया जा सकता है कि किसी दूसरे कंप्यूटर से उसे ऐक्सेस किया जा सके और हर बार कनेक्ट करने पर पासवर्ड डालने की ज़रूरत न पड़े। और जानकारी के लिए, यहाँ देखें.
4. स्क्रिप्ट हासिल करें
ssh के साथ अपने Pi से कनेक्ट करें और ज़िप फ़ाइल डाउनलोड करें:
ssh [email protected]
wget https://www.interelectronix.com/sites/default/files/scripts/qt-cross-compile-rpi4.zip
unzip qt-cross-compile-rpi4.zip
cd qt-cross-compile-rpi4
आप ब्राउज़र के ज़रिए यहाँ से भी ज़िप फ़ाइल डाउनलोड कर सकते हैं।
qt-cross-compile-script-pi4.sh स्क्रिप्ट को एक्ज़िक्यूटेबल बनाकर उसे एक़्ज़िक्यूट करें:
sudo chmod +x qt-cross-compile-script-pi4.sh
sudo ./qt-cross-compile-script-pi4.sh
कुछ समय के बाद, सभी ज़रूरी पैकेज इंस्टॉल कर लिए जाते हैं, ज़रूरी डायरेक्टरी बना दी जाती हैं और symlink सही ढंग से सेट कर दिए जाते हैं।
ज़रूरी
पक्का कर लें कि आपका Raspberry Pi और होस्ट मशीन (जहाँ आप क्रॉस-कम्पाइल कर रहे हैं) एक ही नेटवर्क पर हैं।
होस्ट मशीन के लिए चरण/सेटिंग (Linux Ubuntu)
टेस्टिंग के लिए, हमने Ubuntu 20.04 LTS के क्लीन वर्ज़न के साथ एक वर्चुअल मशीन का इस्तेमाल किया (vmware)।
1. ZIP फ़ाइल डाउनलोड करें
wget https://www.interelectronix.com/sites/default/files/scripts/qt-cross-compile-rpi4.zip
unzip qt-cross-compile-rpi4.zip
cd qt-cross-compile-rpi4
आप ब्राउज़र के ज़रिए यहाँ से भी ज़िप फ़ाइल डाउनलोड कर सकते हैं।
2. qt-cross-compile-script-pi4.sh स्क्रिप्ट को एक्ज़िक्यूटेबल बनाकर उसे एक़्ज़िक्यूट करें:
chmod +x qt-cross-compile-script-host.sh
3. स्क्रिप्ट में वेरिएबल बदलें
अगर आपने यूज़र (raspberry_user) और पासवर्ड (raspberry_pwd) बदला हो, तो आपको स्क्रिप्ट में अपने raspberry pi का IP पता (raspberry_ip) बदलना होगा।
nano qt-cross-compile-script-host.sh
4. स्क्रिप्ट एक्ज़िक्यूट करें
sudo ./qt-cross-compile-script-host.sh
स्क्रिप्ट नीचे दिए गए काम करती है:
- सभी ज़रूरी पैकेज इंस्टॉल करती है
- ज़रूरी डायरेक्टरी बनाती है (
~/rpi-qt
) - Qt सोर्स डाउनलोड और एक्सट्रैक्ट करती है
- Qt सोर्स को पैच करती है
- क्रॉस कम्पाइलर डाउनलोड और एक्सट्रैक्ट करती है
- raspberry pi की फ़ाइलों को rsync करती है
- symlinker डाउनलोड करती है और symlinks सेट करती है
- Qt बिल्ड कॉन्फ़िगर करती है
- Qt तैयार करके उसे इंस्टॉल करती है
- raspberry के साथ Qt बाइनरी फ़ाइलों को rsync करती है
टार्गेट मशीन के लिए आखिरी चरण (Raspberry Pi)
Raspberry Pi पर लिंकर को अपडेट करें
डिवाइस को अपडेट करने के लिए नीचे दिया गया कमांड डालें, ताकि लिंक नई QT बाइनरी फ़ाइलों को ढूँढ़ सके:
echo /usr/local/qt5.15/lib | sudo tee /etc/ld.so.conf.d/qt5.15.conf
sudo ldconfig
Qt Creator को क्रॉस कम्पाइलिंग के लिए कॉन्फ़िगर करें
Qt Creator में कम्पाइल्ड बाइनरी फ़ाइलों (फ़ोल्डर ~/rpi-qt/qt5.15
) को शामिल करने के लिए Ubuntu 20 Lts पर Qt-Creator को क्रॉस-कम्पाइलेशन के लिए कॉन्फ़िगर करना ब्लॉग पढ़ें।
कॉपीराइट लाइसेंस
कॉपीराइट © 2022 Interelectronix e.K.
प्रोजेक्ट का सोर्स-कोड GPL-3.0 लाइसेंस के तहत लाइसेंस पर दिया जाता है।
आभार
- यह डॉक्युमेंट Raspberry Pi के लिए लेटेस्ट Qt फ़्रेमवर्क को क्रॉस कम्पाइल करने के चरण-दर-चरण निर्देशों से प्रेरित है। हम @abhiTronix का तहेदिल से शुक्रिया अदा करना चाहते हैं।
- सोर्स फ़ाइलें देने के लिए QT फ़्रेमवर्क का शुक्रिया