پیش نیازها
سختافزار
میزبان [کامپیوتر/لپتاپ]: همه دستگاههای x86/x86_64 AMD/Intel هدف [Raspberry Pi 4]: Raspberry Pi 4
نرمافزار
میزبان: همه دستگاههای لینوکس (روی Ubuntu 20.04 LTS تست شده است) هدف: Raspberry Pi 4 با سیستم عامل لینوکس 32 بیت (روی Raspbian Bullseye Lite تست شده است)
توجه
در پسزمینه، زنجیره ابزارهای کامپایل متقابل برای Raspberry Pi از abhiTronixاستفاده میشود.
سایر
الزامات ذخیره سازی و زمان: دایرکتوری بیلد حدود 10 گیگابایت فضا می گیرد و برای تکمیل شدن به حدود 2 تا 5 ساعت زمان نیاز دارد (بسته به وابستگی ها و مشخصات دستگاه میزبان). شبکه سازی: دستگاه هدف (Raspberry Pi) و دستگاه میزبان شما (جایی که کامپایل متقابل را انجام می دهید) هر دو باید به اینترنت دسترسی داشته باشند و برای انجام این دستورالعمل ها باید به یک شبکه واحد متصل باشند.
مراحل/تنظیمات برای دستگاه هدف (Raspberry Pi)
1. شروع از صفر (اختیاری)
مهم
اگر به تازگی یک Raspberry Pi جدید تهیه کردهاید یا میخواهید از ابتدا شروع کنید، کافی است این مراحل را دنبال کنید. در غیر این صورت، اگر قبلاً Raspberry Pi خود را راهاندازی کرده و در حال اجرا است و شبکه آن آماده است، به مرحله ۲ بروید.
توجه
این بخش فرض می کند که حداقل 10 گیگابایت کارت اسدی برای نصب سیستم عامل Raspbian (Stretch/Buster/Bullseye) و یک لپ تاپ/رایانه برای آپلود آن دارید.
1.1. دانلود نرم افزار و آماده کردن کارت اسدی
- آخرین نسخه Raspbian (Bullseye) را از اینجا روی لپ تاپ/کامپیوتر خود دانلود کنید.
- برای انتقال سیستم عامل دانلود شده به کارت اسدی (که در مورد ما کارت میکرو اسدی است) به یک ایمیج رایتر نیاز دارید. می توانید از Balena Etcher استفاده کنید.
- کارت اسدی را در لپ تاپ/کامپیوتر قرار دهید و ایمیج رایتر را اجرا کنید. پس از باز شدن، فایل ایمیج Raspbian دانلود شده را انتخاب کنید. دستگاه را به طور صحیح انتخاب کنید، یعنی درایوی که کارت اسدی را نشان می دهد.
توجه
اگر درایو (یا دستگاهی) غیر از کارت اسدی را انتخاب کنید، درایو انتخاب شده دیگر خراب خواهد شد. بنابراین مراقب باشید!
1.2 راه اندازی شبکه
اکنون که Raspberry Pi خود را اجرا کردید، وقت آن است که از یکی از روشهای زیر، آن را به شبکه متصل کنید:
- اگر نمایشگر دارید: آن را به همراه یک صفحه کلید و ماوس برای پیمایش، به Raspberry Pi خود وصل کرده و این راهنما را دنبال کنید.
- اگر نمایشگر ندارید: این راهنما را دنبال کنید
2. راه اندازی SSH
اگر نمایشگر دارید: در ترمینال Raspberry Pi، تایپ کنید:
sudo raspi-config
و منو باید در ترمینال شما ظاهر شود. برای فعالسازی SSH، به این نشانی بروید:Interfacing Options
->SSH
->Yes
بروید و رویOK
کلیک کنید تا فعال شود. در نهایتFinish
را انتخاب کنید و خارج شوید.اگر نمایشگر ندارید: پس از راه اندازی شبکه، اگر مانیتور ندارید یا از راه دور کار می کنید. کارت اسدی را خارج کرده آن را به رایانه خود متصل کنید، سپس یک فایل خالی با نام
ssh
در مسیر/boot/parition
داخل کارت اس دی ایجاد کنید، بدین ترتیب به راحتی میتوانید SSH را فعال کنید. اکنون کارت اسدی را مجدداً در Raspberry Pi قرار دهید.
3. باز کردن ترمینال
- از یک لپ تاپ/کامپیوتر دیگر با استفاده از SSH: برای اتصال به 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
پس از مدتی تمام بسته های مورد نیاز نصب می شوند، دایرکتوری های مورد نیاز ایجاد شده و سیملینک ها به درستی تنظیم می شوند.
مهم
Raspberry Pi شما و این دستگاه میزبان (جایی که کامپایل متقابل را انجام می دهید) حتماً باید در یک شبکه باشند.
مراحل/تنظیمات برای دستگاه میزبان (Linux Ubuntu)
ما برای آزمایش، از یک ماشین مجازی (vmware) با نسخه تمیز Ubuntu 20.04 LTS استفاده کردیم.
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_ip) raspberry pi خود را در اسکریپت و در صورت تغییر کاربر (raspberry_user) و رمز عبور (raspberry_pwd) raspberry را تغییر دهید.
nano qt-cross-compile-script-host.sh
4. اسکریپت را اجرا کنید
sudo ./qt-cross-compile-script-host.sh
اسکریپت اقدامات زیر را انجام می دهد:
- نصب تمام بسته های مورد نیاز
- ایجاد دایرکتوری های مورد نیاز (
~/rpi-qt
) - دانلود و استخراج منابع Qt
- پچ کردن منابع Qt
- دانلود و استخراج کامپایلر متقابل
- rsync فایلها از Raspberry Pi
- دانلود سیملینکر و تنظیم سیملینکها
- پیکربندی Qt بیلد
- ساخت و نصب Qt بیلد
- rsync باینریهای Qt به Raspberry
مرحله نهایی برای ماشین هدف (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 را برای کامپایل متقابل پیکربندی کنید
برای گنجاندن باینریهای کامپایلشده (پوشه ~/rpi-qt/qt5.15
) در Qt Creator پیشنهاد میشود بلاگ پیکربندی Qt-Creator در Ubuntu 20 Lts برای کامپایل متقابل را بخوانید.
مجوز کپی رایت
کپیرایت © 2022 Interelectronix e.K.این کد منبع پروژه دارای مجوز GPL-3.0 است.
قدردانی
- این سند از آموزش گام به گام برای کامپایل متقابل آخرین فریمورک Qt برای Raspberry Pi الهام گرفته است. با تشکر فراوان از @abhiTronix.
- با تشکر از QT framework برای ارائه فایلهای منبع