Remove Kodi and run QT GUI app with qt-everywhere package

  • Hello guys.

    I am thinking of running my own QT app as pet project. Overall high level plan will be this.

    (1)removing Kodi,

    (2) dynamically build qt-everywhere,

    (3) create custom package for my QT app

    (4) create autostart script for QT app.


    I am using GitHub - thoradia/LibreELEC.tv: Thoradia Build System


    (1) There is already built-in options. MEDIACENTER="no":thumbup:

    (2) I have compiled using scripts/qt-everywhere and added ADDITIONAL_PACKAGES="qt-everywhere".:thumbup:


    Finally, I've compiled image using make image but it doesn't add qt-everywhere to image. How can I add?

  • What is the reason why you want to use LE and not Armbian?

    I'd like to take advantage of full hardware video decoding capability. Armbian uses mainline kernel, therefore nod hw acceleration.

  • Once your package is built, there should be a .install_pkg in the source directory, check that. Perhaps there is something wrong with your makeinstall_target routine?

  • I think qt-everywhere package doesn't have dependency set somewhere. One option is to use OEM facility or add this to the end of file projects/*******/options

    Code
    1. ADDITIONAL_PACKAGES+=" qt-everywhere"


    For my own purpose I'm using options approach. It is easier.


    Support my work with small (or big) Paypal donation


    Amlogic devices works better with CoreELEC

    Blu-ray Disc Java menus support - forum thread, Github

    my lamp addon (unofficial/community with limited support)
    my touchscreen support and instructions by Grruhn (now touchscreen addon exists in repository)


  • I agree with what vpeter says.... i know when i added/played around with QT i added it the same way using OEM and calling it to be included ain the build from the Projects option file by adding it from there...


    I know both CE and LE have made changes to their build scripts since i did that a year or two ago but i think it should still work as i always use OEM when messing around... its either that or put it into a /packages directory within the Project file and call it from the options file...

  • Thank you guys.


    I think qt-everywhere package doesn't have dependency set somewhere. One option is to use OEM facility or add this to the end of file projects/*******/options

    Code
    1. ADDITIONAL_PACKAGES+=" qt-everywhere"


    For my own purpose I'm using options approach. It is easier.

    Code
    1. ...
    2. INSTALL qt-everywhere (target)
    3. [182/212] [DONE] install qt-everywhere
    4. ...

    Now qt-everywhere is definitely being loaded as part of compilation.


    However, image file size is exactly same as before. 113MB


    Quote

    Once your package is built, there should be a .install_pkg in the source directory, check that. Perhaps there is something wrong with your makeinstall_target routine?


    There is no .install_pkg directory inside qt-everywhere folder. Could it be why it's not being installed?

  • There is no .install_pkg directory inside qt-everywhere folder. Could it be why it's not being installed?

    I think qt doesn't copy anything to image itself (only to toolchain folder). Instead static libraries are linked with your application which comes to image. Like in the case of qbittorrent.


    Support my work with small (or big) Paypal donation


    Amlogic devices works better with CoreELEC

    Blu-ray Disc Java menus support - forum thread, Github

    my lamp addon (unofficial/community with limited support)
    my touchscreen support and instructions by Grruhn (now touchscreen addon exists in repository)


  • I think qt doesn't copy anything to image itself (only to toolchain folder). Instead static libraries are linked with your application which comes to image. Like in the case of qbittorrent.

    Excuse my ignorance. Considering I have source code for my QT app, how can I add to image along with required modules from QT?

  • You need to make a package for your application and link it with qt. In your new package you then copy everything to the image.


    Support my work with small (or big) Paypal donation


    Amlogic devices works better with CoreELEC

    Blu-ray Disc Java menus support - forum thread, Github

    my lamp addon (unofficial/community with limited support)
    my touchscreen support and instructions by Grruhn (now touchscreen addon exists in repository)


  • You should probably detail how you are compiling Qt, as it's not in the LibreELEC tree. If it's compiled statically, then you won't find anything in .install_pkg as static libraries do not need to be in the image they are compiled directly into your application.


    Note that Qt plugins (i.e. QPA/eglfs) can't be loaded dynamically if you have built a static library.

  • I am not sure if this will help but there is another build called EmuELEC that is built from CE sources only without Kodi as its a games type of build and i am pretty sure that in his Amlogic-ng project he has incorporated qt-everywhere version 5.13... I know the buiild works because i have built both the Amlogic and Amlogic-ng and tested them on devices because his Emu's in it are some of the best working ones i have come across this year so far...


    Just pointing that out as its a working example i know of that has no kodi in the build and is using QT-Everywhere... Its done by shantigilbert...

  • I'd like to take advantage of full hardware video decoding capability. Armbian uses mainline kernel, therefore nod hw acceleration.

    Latest LE amlogic is mainline with Lima/Panfrost preliminary support, that can be added also in Armbian

  • Lima/Panfrost are about OpenGLES, not hardware decoding.


    Armbian has the same hardware decode capabilities as LE since 99.99% of the kernel is the same (mostly based on one of my branches). Amlogic GX is in reaonsable shape and G12 is missing some bits but improving. That said, in the imminent future there will some deliberate breakage as the vdec drivers and firmware need to be revised for V4L2 compliance (stateful API things have been formally documented for the first time) and the changes will necessitate some replumbing in ffmpeg and tweaking on the Kodi side - which will take some time. Progress is coming in fits and starts at the moment as the whole GBM/V4L2 ecosystem is still rather fluid, but the overall mainline codebase for Allwinner/Amlogic/Rockchip continues to improve nicely. One challenge you might encounter with Qt is that V4L2 support was originally authored (by an LE/Plex contributor) about 18-months ago now, and that probably means it's no longer "compliant" with current kernel and player (mpv, ffmpeg, gstreamer) code. It's not something I track so I'm not sure whether anyone is maintaining it.. I know the original LE contributor is not, due to other life priorities.