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
Continue reading...
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
Continue reading...