Предварительные требования
Системные требования
Хост [ПК/ноутбук]: любая машина x86/x86_64 AMD/Intel
Целевой [Raspberry Pi 4]: Raspberry Pi 4
Программные требования
Хост: любая машина Linux (Ubuntu 20.04 LTS Tested)
Целевой: Raspberry Pi 4 Linux 32-разрядная операционная система (Raspbian Bullseye Lite была проверена)
Примечание
В фоновом режиме используются инструменты кросс-компиляции Raspberry Pi отabhiTronix.
Прочее
Требования по времени и объему хранилища: каталог для сборки занимает около ~10 ГБ, для сбокри требуется около 2-5 часов (на основе зависимостей и характеристик хост-машины).
Сеть: ваша целевая машина (Raspberry Pi) и хост-машина (где выполняется кросс-компиляция) ДОЛЖНЫ иметь доступ к Интернету и ДОЛЖНЫ быть в ОДНОЙ сети.
Шаги/настройки для целевой машины (Raspberry Pi)
1. Настройка с самого начала (необязательно)
Важно!
Если вы только купили новый Raspberry Pi или хотели начать с нуля, следуйте инструкции. В противном случае, если у вас уже есть установленный, запущенный Raspberry Pi и с настроенной сетью, перейдите к шагу 2.
Примечание
В этом разделе предполагается, что у вас есть SD-карта по крайней мере 10 ГБ для установки Raspbian (Stretch/Buster/Bullseye) ОС и ноутбук/компьютер для ее загрузки.
1.1. Скачайте программное обеспечение и подготовьте SD-карту
- Скачайте последнюю версию Raspbian (Bullseye) отсюда на ноутбук/ПК.- Вам понадобится устройство записи образа загруженной ОС на SD-карту (микро SD-карту в нашем случае). Вы можете использовать Balena Etcher.- Вставьте SD-карту в ноутбук/ПК и запустите программу записи образа. После октрытия просмотрите и выберите загруженный файл образа Raspbian. Выберите необходимое устройство, то есть накопитель, представляющий SD-карту.
Примечание
Если выбранный накопитель (или устройство) отличается от SD-карты, то другой выбранный накопитель будет поврежден. БУДЬТЕ ВНИМАТЕЛЬНЫ!
1.2 Настройка сети
Теперь, когда у вас есть работающий Raspberry Pi, самое время, чтобы подключить его к сети одним из следующих способов:
- Если у вас есть монитор: Подключите его к вашему Raspberry PI вместе с клавиатурой и мышью для навигации, и следуйте инструкции.- Если у вас нет монитора: Следуйте инструкции
2. Настройте SSH
Если у вас есть монитор: на терминале Raspberry Pi, введите:
sudo raspi-config
, после чего в терминале должно появиться меню. Чтобы включить SSH, перейдите в разделInterfacing Options
->SSH
->Yes
(Параметры интерфейса -> SSH -> Да) и нажмите ОК, чтобы включить его. ВыберитеFinish
(Завершить) и выйдите.Если у вас нет монитора: после настройки сети, если у вас нет монитора или вы работаете удаленно. Затем включите SSH, вытащив SD-карту, и подключив ее к компьютеру. Создайте пустой файл с именем
ssh
в каталоге/boot/parition
на SD-карте. Теперь вставьте SD-карту в Raspberry Pi.
3. Откройте терминал
- С другого ноутбука/ПК с помощью SSH: чтобы подключиться к Pi с другого компьютера, скопируйте и вставьте следующую команду в окно терминала, но замените `192.160.1.47' на IP-адрес Raspberry Pi.
ssh [email protected]
Система запрашивает пароль, и если он не был изменен, пароль по умолчанию (raspberry
). Используйте этот пароль всякий раз, когда он запрашивается.
Примечание
Raspberry Pi можно настроить так, чтобы он разрешал доступ с другого компьютера без необходимости ввода пароля при каждом подключении. Для получения более подробной информации см. здесь.
4.
Подключитесь к Pi с помощью ssh и скачайте zip-файл:
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
Вы также можете скачать zip-файл через браузер отсюда.Сделайте скрипт 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. Скачайте 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
Вы также можете скачать zip-файл через браузер отсюда.
2. Сделайте скрипт qt-cross-compile-script-pi4.sh исполняемым и выполните его
chmod +x qt-cross-compile-script-host.sh
3. Измените переменные в скрипте
Вам нужно изменить IP-адрес (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
- скачать symlinker и установить символические ссылки
- настроить сборку 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 для кросс-компиляции
Ознакомьтесь с блогом Настройка Qt-Creator на Ubuntu 20 Lts для кросс-компиляции для добавления скомпилированных двоичных файлов (папка ~/rpi-qt/qt5.15
) в Qt Creator.
Лицензия на авторские права
Авторское право © 2022 Interelectronix e.K.
Данный исходный код проекта лицензирован под лицензией GPL-3.0.
Благодарности
- Этот документ составлен на основании пошаговой инструкции по кросс-компиляции новейшего фреймворка Qt для Raspberry Pi. Огромное спасибо @abhiTronix.
- Благодарим QT фреймворк за предоставление исходных файлов