Qt5 for FreeBSD/Pi

Status
Not open for further replies.
G

gonzo

Guest
Build SD card image using crochet-freebsd with option VideoCore enabled. Mount either SD card itself of image to build host


mount /dev/mmcsd0s2a /pi


Checkout Qt5 sources and patch them


cd /src
git clone git://gitorious.org/qt/qt5.git qt5
cd qt5
git checkout 5.4.0
MODULES=qtbase,qtdeclarative,qtgraphicaleffects,qtimageformats,qtquick1,qtquickcontrols,qtscript,qtsvg,qtxmlpatterns
./init-repository --module-subset=$MODULES

fetch -q -o - http://people.freebsd.org/~gonzo/arm/rpi/qt5-freebsd-pi.diff | patch -p1


Configure, build and install Qt5 to SD card


./configure -platform unsupported/freebsd-clang -no-openssl -opengl es2 -device freebsd-rasp-pi-clang -device-option CROSS_COMPILE=/usr/armv6-freebsd/usr/bin/ -sysroot /pi/ -no-gcc-sysroot -opensource -confirm-license -optimized-qmake -release -prefix /usr/local/Qt5 -no-pch -nomake tests -nomake examples -plugin-sql-sqlite

gmake -j `sysctl -n hw.ncpu`
sudo gmake install


You need BSD-specific plugins to enable mouse and keyboard input in EGLFS mode


cd /src/
git clone https://github.com/gonzoua/qt5-bsd-input.git
cd qt5-bsd-input
/src/qt5/qtbase/bin/qmake
gmake
sudo gmake install


Build application you’d like run and install it. I use one of the examples here


cd /src/qt5/qtbase/examples/opengl/cube
/src/qt5/qtbase/bin/qmake
gmake
sudo gmake install


Unmount SD card, boot Pi, make sure vchiq is loaded


root@raspberry-pi:~ # kldload


Start application


root@raspberry-pi:~ # /usr/local/Qt5/examples/opengl/cube/cube -plugin bsdkeyboard -plugin bsdsysmouse


If you see something like this:


EGL Error : Could not create the egl surface: error = 0x3003


Or this:


QOpenGLFramebufferObject: Framebuffer incomplete attachment.


It means you need to increase GPU memory by setting gpu_mem in config.txt. Amount depends on framebuffer resolution. 128Mb works for me on 1920×1080 display.

bsdsysmouse plugin uses /dev/sysmouse by default, so you either should have moused running or specify actual mouse device, e.g.:


root@raspberry-pi:~ # cube -plugin bsdkeyboard -plugin bsdsysmouse:/dev/ums0


bsdkeyboard uses STDIN as input device, so if you’re trying to start app from serial console it should be something like this:


root@raspberry-pi:~ # cube -plugin bsdkeyboard -plugin bsdsysmouse < /dev/ttyv0

Qp6Kjip8gAs


Continue reading...
 
Status
Not open for further replies.
Back
Top