Requisitos previos
Hardware
Host [PC/portátil]: cualquier máquina x86/x86_64 AMD/Intel
Destino [Raspberry Pi 4]: Raspberry Pi 4
Software
Host: cualquier máquina Linux (Ubuntu 20.04 LTS probado)
Destino: sistema operativo Raspberry Pi 4 Linux 32-bit (Raspbian Bullseye Lite probado)
Nota
En el fondo se utilizan las cadenas de herramientas de compilación cruzada para Raspberry Pi de abhiTronix.
Otras cuestiones
Requisitos de almacenamiento y tiempo: el directorio de desarrollo ocupa aprox. 10 GB de espacio y tarda entre 2 y 5 horas en completarse (en función de las dependencias y las especificaciones del equipo host). Redes: tu equipo de destino (Raspberry Pi) y el equipo host (donde se realiza la compilación cruzada) DEBEN disponer de acceso a Internet y estar en la MISMA red para seguir estas instrucciones.
Pasos/ajustes para el equipo de destino (Raspberry Pi)
1. Empezar desde cero (opcional)
Importante
Si tienes una nueva Raspberry Pi o quieres empezar desde cero, sigue estos pasos. Por el contrario, si tu Raspberry Pi ya está configurada, en funcionamiento y con las redes a punto, ve al paso 2.
Nota
Esta sección asume que dispones de al menos 10 GB de tarjeta SD para instalar el sistema operativo Raspbian (Stretch/Buster/Bullseye) y un portátil/PC para cargarlo.
1.1. Descarga los software y prepara la tarjeta SD
- Descarga la última versión de Raspbian (Bullseye) aquí para tu portátil/PC.
- Necesitarás un escritor de imágenes para escribir el sistema operativo descargado en la tarjeta SD (tarjeta micro SD en nuestro caso). Puedes utilizar Balena Etcher.
- Inserta la tarjeta SD en el portátil/PC y ejecuta el escritor de imágenes. Una vez abierto, selecciona el archivo de imagen Raspbian descargado. Selecciona el dispositivo correcto, es decir, la unidad que representa la tarjeta SD.
Nota
Si la unidad o dispositivo seleccionados son diferentes de la tarjeta SD, la otra unidad seleccionada se corromperá. ¡VE CON CUIDADO!
1.2 Configurar la red
Ahora que tu Raspberry Pi se está ejecutando, es momento de conectarla a tu red de una de las siguientes formas:
- Si tienes el monitor: conéctalo a tu Raspberry Pi junto con el teclado y el ratón, ysigue esta guía.
- Si no tienes monitor: sigue esta guía.
2. Configurar SSH
Si tienes monitor: en el terminal de la Raspberry Pi, escribe: «sudo raspi-config» y aparecerá un menú. Para habilitar SSH, dirígete a «Opciones de interfaz» -> «SSH» -> «Sí» y haz clic en «Aceptar» para habilitarlo. Por último, selecciona «Finalizar» y sal.
Si no tienes monitor: después de configurar la red, si no tienes monitor o lo operas de forma remota, habilita SSH conectando tu tarjeta SD al ordenador y creando un archivo vacío llamado «ssh» en la ruta «/boot/partition» de la tarjeta SD. Ahora, vuelve a insertar la tarjeta SD en la Raspberry Pi.
3. Abre el terminal
- Desde otro portátil/PC utilizando SSH: pra conectar tu Pi desde otro ordenador, copia y pega el siguiente comando en la ventana del terminal, pero reemplaza «192.160.1.47» por la dirección IP de la Raspberry Pi.
ssh [email protected]
Se te pedirá la contraseña. Si no se ha cambiado, será «raspberry» de forma predeterminada, así que puedes utilizarla cuando se te solicite.
Nota
Puedes configurar tu Raspberry Pi para poder acceder a ella desde otro ordenador sin necesidad de introducir una contraseña cada vez que te conectes. Obtendrás más información aquí.
4. Consigue scripts
Conéctate a tu Pi con ssh y descarga el archivo 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
También puedes descargar el archivo ZIP a través del navegador desde aquí.
Haz que el script qt-cross-compile-script-pi4.sh sea ejecutable y ejecútalo:
sudo chmod +x qt-cross-compile-script-pi4.sh
sudo ./qt-cross-compile-script-pi4.sh
Después de un tiempo, se instalan todos los paquetes necesarios, se crean los directorios necesarios y se configuran correctamente los enlaces simbólicos.
Importante
Recuerda que tu Raspberry Pi y este equipo host (donde se realiza la compilación) DEBEN estar en la MISMA red.
Pasos/ajustes para el equipo host (Linux Ubuntu)
Para las pruebas, utilizamos una máquina virtual (VMware) con una versión limpia de Ubuntu 20.04 LTS.
1. Descarga el archivo 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
También puedes descargar el archivo ZIP a través del navegador desde aquí.
2. Haz que el script qt-cross-compile-script-pi4.sh sea ejecutable y ejecútalo
chmod +x qt-cross-compile-script-host.sh
3. Cambia variables en el script
Debes cambiar la dirección IP (raspberry_ip) de tu Raspberry Pi en el script y si has cambiado el usuario (raspberry_user) y la contraseña (raspberry_pwd) de la raspberry.
nano qt-cross-compile-script-host.sh
4. Ejecuta el script
sudo ./qt-cross-compile-script-host.sh
El script realiza las siguientes acciones:
- Instala todos los paquetes necesarios.
- Crea directorios necesarios («~/rpi-qt»).
- Descarga y extrae fuentes de Qt.
- Parchea fuentes de Qt.
- Descarga y extrae la herramienta para compilaciones cruzadas.
- rsync archivos de Raspberry Pi.
- Descarga SymLinker y configura enlaces simbólicos.
- Configura la compilación de Qt.
- Crea e instala la compilación de Qt.
- rsync binarias de Qt para Raspberry.
Paso final para el equipo de destino (Raspberry Pi)
Actualiza el enlazador en Raspberry Pi
Introduce el siguiente comando para actualizar el dispositivo que permite al enlazador encontrar los nuevos archivos binarios de Qt:
echo /usr/local/qt5.15/lib | sudo tee /etc/ld.so.conf.d/qt5.15.conf
sudo ldconfig
Configura Qt Creator para la compilación cruzada
Lee el blog Configurar Qt Creator en Ubuntu 20 Lts para la compilación cruzada para incluir las binarias compiladas (archivo ~/rpi-qt/qt5.15
) en Qt Creator.
Licencia de copyright
Copyright© 2022 Interelectronix e.K.
El código fuente de este Proyecto está autorizado en virtud de la licencia GPL-3.0.
Agradecimientos
- Este documento está inspirado en las Instrucciones paso a paso para compilar del último framework de Qt para Raspberry Pi. Muchísimas gracias a @abhiTronix.
- Gracias al framework de QT por proporcionar los archivos de origen