پیشگی شرطیں
ہارڈ ویئر
ہوسٹ [کمپیوٹر/لیپ ٹاپ]: کوئی بھی x86/x86_64 AMD/Intel مشین ٹارگیٹ [Raspberry Pi 4]: Raspberry Pi 4
سافٹ ویئر
ہوسٹ: کوئی بھی Linux مشین (Ubuntu 20.04 LTS ٹیسٹ شدہ) ٹارگیٹ: Raspberry Pi 4 Linux 32-bit OS(Raspbian Bullseye Lite کا ٹیسٹ شدہ)
نوٹ
پس منظر میں Raspberry Pi کے لیے abhiTronix کی جانب سے کراس کمپائل ٹول چینز کا استعمال کیا جاتا ہے۔
دیگر
اسٹوریج اور وقت کے تقاضے: بلڈ ڈائریکٹری مکمل ہونے میں تقریباً 10GB کی جگہ لیتی ہے اور تقریباً 2-5 گھنٹے لیتی ہے (حالانکہ یہ انحصاریوں اور ہوسٹ مشین کی تفصیلات پر منحصر ہے)۔ نیٹ ورکنگ: ان ہدایات پر عمل کرنے کے لیے آپ کی ٹارگٹ مشین (Raspberry Pi) اور ہوسٹ مشین (جہاں آپ کراس کمپائلنگ کرتے ہیں) دونوں کے پاس انٹرنیٹ تک رسائی ہونی چاہیے، اور دونوں ایک ہی نیٹ ورک پر ہونے چاہئیں۔
ٹارگیٹ مشین (Raspberry Pi) کے لیے مراحل/سیٹنگز
1۔ ابتداء سے شروع کریں (آپشنل)
اہم
اگر آپ نے ابھی ابھی ایک نیا Raspberry Pi خریدا ہے یا اگر آپ ابتداء سے شروع کرنا چاہتے ہیں تو بس ہماری پیروی کریں۔ بصورت دیگر، اگر آپ کا Raspberry Pi پہلے سے ہی سیٹ ہے، کام کر رہا ہے، اور نیٹ ورک کے لیے تیار ہے، تو بس سیدھے مرحلہ 2 پر جائیں۔
نوٹ
یہ سیکشن فرض کرتا ہے کہ آپ کے پاس Raspbian (Stretch/Buster/Bullseye) OS کو انسٹال کرنے کے لیے کم از کم 10GB کا SD کارڈ اور اسے اپ لوڈ کرنے کے لیے ایک لیپ ٹاپ/PC ہے۔
1.1۔ سافٹ ویئر ڈاؤن لوڈ کریں اور SD کارڈ تیار کریں
- اپنے لیپ ٹاپ/کمپوٹر پر یہاں سے Raspbian (Bullseye) کا تازہ ترین ورژن ڈاؤن لوڈ کریں۔
- آپ کو ڈاؤن لوڈ کردہ OS کو SD کارڈ پر رائٹ کرنے کے لیے ایک امیج رائٹر کی ضرورت ہوگی (ہمارے معاملے میں مائیکرو SD کارڈ)۔ آپ Balena Etcher کا استعمال کر سکتے ہیں۔
- 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
نام کی ایک خالی فائل بنائیں۔ اب Raspberry Pi میں SD کارڈ کو واپس داخل کریں۔
3۔ ٹرمینل کھولیں
- کسی دوسرے لیپ ٹاپ/کمپیوٹر سے SSH کا استعمال کرتے ہوئے: کسی دوسرے کمپیوٹر سے اپنے Pi سے کنیکٹ ہونے کے لیے، درج ذیل کمانڈ کو کاپی کریں اور ٹرمینل ونڈو میں پیسٹ کریں لیکن '192.160.1.47' کو Raspberry Pi کے IP ایڈریس سے بدل دیں۔
ssh pi@192.168.1.47
یہ آپ سے پاس ورڈ طلب کرے گا، اور اگر پاس ورڈ تبدیل نہ کیا گیا ہو، تو یہ بطور ڈیفالٹ (raspberry
) ہوتا ہے، اور لہٰذا جب بھی یہ طلب کیا جائے آپ اسے ہی استعمال کریں۔
نوٹ
آپ کی Raspberry Pi کو اس طرح سے تشکیل دیا جا سکتا ہے کہ جب بھی آپ کسی دوسرے کمپیوٹر سے کنیکٹ ہوں تو یہ پاس ورڈ فراہم کرنے کا مطالبہ کیے بغیر ہی رسائی حاصل کرنے کی اجازت دے۔ مزید تفصیلات کے لیے، یہاں جائیں۔
4۔ اسکرپٹس حاصل کریں
ssh کے ساتھ اپنے Pi سے کنیکٹ کریں اور زپ فائل ڈاؤن لوڈ کریں:
ssh pi@192.168.1.47
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
جب تمام درکار پیکیجز انسٹال ہو جائیں گے تو تھوڑی دیر کے بعد، جملہ درکار ڈائریکٹریز بنائی جاتی ہیں اور symlinks کو صحیح طریقے سے سیٹ کیا جاتا ہے۔
اہم
اس بات کو یقینی بنائیں کہ آپ کی Raspberry Pi اور یہ ہوسٹ مشین (جہاں آپ کراس کمپائلنگ کر رہے ہیں) ایک ہی نیٹ ورک پر ہونی چاہیے۔
ہوسٹ مشین (Linux Ubuntu) کے لیے مراحل/سیٹنگز
ٹیسٹنگ کے لیے، ہم نے ایک صاف Ubuntu 20.04 LTS ورژن والی ایک ورچُوئل مشین (vmware) کا استعمال کیا۔
1۔ زِپ فائل ڈاؤن لوڈ کریں
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 pi کے ip ایڈریس (raspberry_ip) کو تبدیل کرنے کی ضرورت ہے اور اگر آپ نے raspberry کا صارف نام (raspberry_user) اور پاس ورڈ (raspberry_pwd) کو تبدیل کیا ہے۔
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 بلڈ بناتہ ہے اور اسے انسٹال کرتی ہے
- Qt بائنریز کو raspberry پر 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
) کو شامل کرنے کے لیے کراس کمپائِلیشن کے لیے Qt-Creator کو Ubuntu 20 Lts پر تشکیل دینا بلاگ کو پڑھیں۔
کاپی رائٹ لائسنس
کاپی رائٹ © 2022 Interelectronix eKاس پروجیکٹ کا سورس کوڈ GPL-3.0 لائسنس کے تحت لائسنس یافتہ ہے۔
اعترافات
یہ دستاویز Raspberry Pi کے لیے جدید ترین Qt فریم ورک کو کراس کمپائل کرنے کے لیے مرحلہ وار ہدایات سے متاثر ہے۔ abhiTronix@ کا خصوصی طور پر شکریہ۔
- سورس فائلز فراہم کرنے کے لیے QT فریم ورک کا شکریہ