There are ARM devices out there with HDMI and full desktop linux support. I was able to compile and use QT on an Orange Pi Plus2E running Lubuntu 16.04. Compilation on the device itself takes several hours and QT spends a few minutes loading stuff, but otherwise the UI is pretty snappy.
Gitian builds currently don’t include binaries for ARM. Cross compilation (for Gitian) was added in #8188, but QT was intentionally left out. Does anyone remember why?
I’ve been trying to get this to work on Ubuntu Bionic, but no success so far.
The first step to enabling this (for 32 bit) is to add qt_arm_linux_packages:=$(qt_x86_64_linux_packages)
to depends/packages.mk
. That prevents it from skipping QT. This however will result in an error:
0make HOST=arm-linux-gnueabihf
1
2Configuring qt...
3
4[...]
5
6 The specified system/compiler is not supported:
7
8 [...]/bitcoin/depends/work/build/arm-linux-gnueabihf/qt/5.7.1-c292d7b0435/qtbase/mkspecs/arm-linux-gnueabihf
9
10 Please see the README file for a complete list.
11
12funcs.mk:242: recipe for target '[...]/bitcoin/depends/work/build/arm-linux-gnueabihf/qt/5.7.1-c292d7b0435/qtbase/.stamp_con
I tried replacing $(package)_config_opts_arm_linux = $(host)
with = -platform linux-g++ -xplatform linux-arm-gnueabi-g++
, which seems to result in something being built. But configure isn’t happy:
0./configure --prefix=$PWD/depends/arm-linux-gnueabihf --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++ --disable-tests --disable-bench --with-qrencode --with-gui=qt5
1[...]
2checking for QT5... yes
3checking for QT_TEST... yes
4checking for QT_DBUS... yes
5checking for static Qt... yes
6checking for QTPLATFORM... yes
7checking for X11XCB... yes
8checking for QTXCBQPA... yes
9checking for Qt < 5.4... no
10checking for static Qt plugins: -lqminimal... no
11configure: error: Could not resolve: -lqminimal
I tried building the depends with #12971 with QT_59=1
, but this fails with:
0Note: Disabling X11 Accessibility Bridge: D-Bus or AT-SPI is missing.
1
2ERROR: Feature 'system-zlib' was enabled, but the pre-condition 'libs.zlib' failed.
3funcs.mk:242: recipe for target '[...]/bitcoin/depends/work/build/arm-linux-gnueabihf/qt/5.9.5-28b90c3bee9/qtbase/.stamp_configured' failed
4make: *** [[...]/bitcoin/depends/work/build/arm-linux-gnueabihf/qt/5.9.5-28b90c3bee9/qtbase/.stamp_configured] Error 3
Hopefully someone who actually understands the depends system and cross compilation has more luck…