Qt5 Acelerado por GPU Mali: Funcionando en Ubuntu 18.04

Ubuntu 18.04 Bionic viene con Qt 5.9.5 por defecto. Sin embargo, Canonical lo ha compilado sin tener en cuenta la GPU Mali de ARM, de modo que Qt5 no funciona en Ubuntu 18.04 para nada. Así que, tenemos que compilar Qt5 manualmente desde el código fuente. Esta es una guía de compilación un tanto chapucera, que he probado en la última imagen de SO Ubuntu 18.04 Bionic para ODROID-XU4.

Instalación

$ sudo apt update && sudo apt upgrade && sudo apt dist-upgrade
$ sudo apt build-dep qt5-default
$ apt source qtbase5-dev
$ cd qtbase-opensource-src-5.9.5+dfsg
A continuación, cambia la línea 86 del archivo src/platformsupport/eglconvenience/qxlibeglintegration.cpp:
if (vendor && strstr(vendor, "Vivante")) {
por:
if (vendor && (strstr(vendor, "Vivante") || strstr(vendor, "ARM"))) {
Hay un segundo archivo que debemos editar para evitar un error de compilación. Me tire varias horas buscando esta simple solución en http://code.qt.io/cgit/qt/qtbase.git/commit/?h=dev&id=9a640e7bc67b0a1ff5c61c63703b669e6f24521e. Edita el archivo src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevice.cpp y cambia la línea 77:
-EGLNativeDisplayType QEglFSKmsEglDevice::nativeDisplay() const
por:
void *QEglFSKmsEglDevice::nativeDisplay() const
Además, modifica el cuerpo de la función:
return reinterpret_cast(m_devInt->eglDevice());
por:
return m_devInt->eglDevice();
Crea dos enlaces simbólicos para que se detecte correctamente OpenGL-ES. Esta solución probablemente estará incluida en la próxima actualización:
$ sudo rm /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0
$ sudo rm /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0
$ sudo ln -s /usr/lib/arm-linux-gnueabihf/mali-egl/libmali.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0
$ sudo ln -s /usr/lib/arm-linux-gnueabihf/mali-egl/libmali.so /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0
Despues, compila Qt5:
$ sudo dpkg-buildpackage -b
Me encontré con este error cuando lo ejecuté en una sesión SSH:
Project ERROR: QtDBus is enabled but session bus is not available. Please check the installation.
Cuando compilé Qt desde el terminal de escritorio Mate en lugar de hacerlo por ssh remoto, la compilación no me dio problemas.

Tras 2~3 horas de compilación, el "paquete Debian" falló debido a la ausencia de una clave PGP. No obstante, todas las librerías Qt5 con ejemplos se compilaron correctamente y pueden instalarse con:

$ sudo make install
La muestra de Qt-OpenGL ahora funciona perfectamente

Figure 01 - Qt-OpenGl example
Figura 1 - Muestra de Qt-OpenGl

Probaremos la estabilidad y la funcionalidad durante un par de semanas. Si no hay problemas críticos, Hardkernel lo lanzará oficialmente. Mientras tanto, tienes total libertad para publicar tus ideas en el hilo del foro https://forum.odroid.com/viewtopic.php?f=95&t=31070.

Aplicaciones de ejemplo Qt4 Open Source Computer Vision Library (OpenCV) es una librería software de aprendizaje automático y reconocimiento de imágenes por ordenador de código abierto. El entorno de trabajo Qt5 se usa con OpenCV para visualizar el procesamiento de imágenes y también como una interfaz de usuario interactiva.

Figure 02 - Face detection with OpenCV
Figura 2 - Detección del rostro con OpenCV

Calligra es un completo set de 8 aplicaciones para oficina, gráficos y necesidades de gestión, que incluyen procesador de textos, presentaciones, hoja de cálculo y mucho más:

$ sudo apt install calligra-libs
Figure 03 - word program
Figura 3 – Procesador de textos

Figure 4 - spreadsheet program
Figura 04 - Hoja de cálculo

Calibre es un potente administrador de libros electrónicos muy fácil de usar:

$ sudo apt install calibre
Figure 05 - Calibre start screen
Figura 5 - Pantalla de inicio del calibre

Stellarium es un planetario de código abierto gratuito para tu ordenador. Muestra un cielo realista en 3D, al igual que el que se ves a simple vista, con prismáticos o un telescopio:

$ sudo apt install stellarium
Figure 06 - Stellarium
Figura 6 - Stellarium

Krita es un programa de dibujo profesional de código abierto. Está creado por artistas que quieren potenciar herramientas artísticas que sean asequibles para todo el mundo. Desafortunadamente, Krita para la plataforma ARM en Ubuntu 18.04 PPA está dañado, Canonical lo debería solucionar pronto. Sólo está disponible para Ubuntu 16.04 PPA.

Figure 07 - Krita
Figura 7 - Krita

Para comentarios, preguntas y sugerencias, visita el artículo original en http://com.odroid.com/sigong/blog/blog_list.php?bid=199.

Be the first to comment

Leave a Reply