Boot2Qt Beaglebone, Variscite DART-6UL (based on Raspberry Pi, no GPU) Custom App flashes and disappears from screen at device bootup
-
Hi,
I am trying to launch my custom App during device bootup using the Boot2Qt appcontroller. I have built the App using the boot2Qt image.
After the device came up the first time, I did the following:- mkdir -p /data/user/b2qt
- copied the App from my host machine to /data/user/b2qt
- /usr/bin/appcontroller --make-default <app path>/App
- checked that the link /usr/bin/b2qt is correct.
Now when I reboot the device, the appcontroller launches the App. It flashes on the screen for an instant and then it goes to the background. I need the App to stay in the foreground.
root@b2qt-imx6ul-var-dart:~# ps -ef | grep appcontroller
root 589 1 0 01:14 ? 00:00:00 /usr/bin/appcontroller /usr/bin/b2qt
root 641 634 0 01:15 pts/0 00:00:00 grep appcontrollerWant to add that the App stays in the foreground if I launch the app directly from the command line using
/usr/bin/appcontroller <path to App>/AppI tried with running with the
What am I missing here ? Will greatly appreciate any help.
Thanks
Saswati -
Have been able to resolve this.
Thanks
-Saswati -
Hi and welcome to devnet,
Glad you found a solution !
Would you mind sharing what you did ? It could be helpful for other people.
-
Hi,
This is what I did:
My app launched through b2qt.service would flash on the screen on device bootup and then lose it. But the QtDemo App launched through qtlauncher.service never lost the screen.
Doing "systemctl status qtlauncher.service" and "systemctl status b2qt.service" told me that the qtlauncher.service had the "XDG_RUNTIME_DIR" set to "/run/user/0" in its environment. This variable was set in the Yocto meta layer for qtlauncher.service.
But for the b2qt.service, this env variable was unset. I tried setting it through QtCreator but it didn't work. I tried setting it in the b2qt.service definition in /etc/systemd/system/multi-user.target.wants but by adding the following lines:
Environment="XDG_RUNTIME_DIR=/run/user/1000"
PassEnvironment=XDG_RUNTIME_DIR
But it didn't work.
Then I went and disabled the
/etc/systemd/system/getty.target.wants/getty@tty1.service
That's when my custom App started during device boot and didn't lose the screen.
There will be no multi users on the device. Its only my custom app that will run.
Following 2 links helped:
Post by samuli on 19 Dec 2019 02:12 https://forum.qt.io/topic/109776/raspberrypi3-meta-boot2qt-v5-14-0/3
https://stackoverflow.com/questions/25915430/beaglebone-boot-to-qt-app-with-touch-screenI will continue working on setting the XDG_RUNTIME_DIR for b2qt.service in Yocto (something similar to that done for qtlauncher.service).
But for now, this will do.Want to add that the DART-6UL has no GPU and I need to pass in "-platform linuxfb" to my custom App.
Note: 04/21/2021: Following Yocto steps in the same directory where the b2qt-embedded-qt5-image.bb exists
- Created the file b2qt-embedded-qt5-image.bbappend
- Add the following to the file:
systemd_disable_getty () {
rm ${IMAGE_ROOTFS}${sysconfdir}/systemd/system/getty.target.wants/getty@tty*.service
}
IMAGE_PREPROCESS_COMMAND_append = " systemd_disable_getty; "
Hope this helps
Thanks
-Saswati -
Thanks !