Regarding porting for an embedded device



  • Hi all,

    I have a julius speech recognition code which i have used in Qt for desktop application. now i want to port julius to an embedded device. Since i am a beginner, i dont have much knowledge on how to port this for an embedded device.

    Can anyone please help me or guide me in this matter.

    Thanks


  • Moderators

    @Naveen_D What is this device?



  • @jsulm thanks for the reply,
    i am trying with embedded boards like i-MX 6, jacinto.


  • Moderators

    @Naveen_D You need a sysroot and compiler for your target device. Then cross compile Qt for the device and then cross compile your app with that Qt version.
    Here you can see how it is done for RaspberryPi: http://wiki.qt.io/index.php?title=Raspberrypi_beginners_guide&redirect=no



  • @jsulm Sirji, if the boards are completely new, same procedure ?



  • @jsulm

    You need a sysroot and compiler for your target device.

    Where can i get the sysroot and compiler for this device ?


  • Moderators

    @Naveen_D Depends on the device. I don't know where to get it for your device.



  • In most cases board manufacturers provide some sdk for their boards (toolchain, sysroot, etc). Probably you can download it from manufacturer website. I-mx6 processor is very popular, and there are many board based on this processor. What board do you use?



  • @tomasz3dk i am using i-MX 6 dual lite board



  • It is a your design board based on this processor or bought from 3rd party manufacturer? This is important information, because if its your design board you will probably have to make your own rootfs, sdk etc. Yocto is in most cases best option for those purposes.



  • @tomasz3dk its completely new board, bought from 3rd party manufacturer.



  • @Naveen_D So you can ask manufacturer about sdk for this board, if sdk is not provided ,you have to build your own.



  • @tomasz3dk Okay sir, thanks for the information, i will check with them.

    In case if i need to build the sdk, is there any procedure for this ?



  • @Naveen_D I think that Yocto is the best choice.



  • @tomasz3dk ok thanks



  • As suggested by @tomasz3dk i am trying with yocto....
    i have the tool chain, sysroot, debugger,compiler for qt 5.6.2 in that iMX-6 board. but when i try to build the sample example for qt and qml i get the following errors, can anyone please suggest me the possible solution, what i have to do further to make it work.

    error for qt example :
    g++ -o QtExample main.o exqamplewidget.o moc_exqamplewidget.o -lQt5Widgets -lQt5Gui -lQt5Core -lGLESv2 -lpthread

    /usr/bin/ld: cannot find -lQt5Widgets

    /usr/bin/ld: cannot find -lQt5Gui

    /usr/bin/ld: cannot find -lQt5Core

    /usr/bin/ld: cannot find -lGLESv2

    collect2: error: ld returned 1 exit status

    make: *** [QtExample] Error 1

    12:47:06: The process "/usr/bin/make" exited with code 2.

    Error while building/deploying project QtExample (kit: iMX-6)

    The kit iMX-6 has configuration issues which might be the root cause for this problem.

    When executing step "Make"

    12:47:06: Elapsed time: 00:00.

    for qml example :
    g++ -o QmlExample main.o qrc_qml.o -lQt5Quick -lQt5Gui -lQt5Qml -lQt5Network -lQt5Core -lGLESv2 -lpthread

    /usr/bin/ld: cannot find -lQt5Quick

    /usr/bin/ld: cannot find -lQt5Gui

    /usr/bin/ld: cannot find -lQt5Qml

    /usr/bin/ld: cannot find -lQt5Network

    /usr/bin/ld: cannot find -lQt5Core

    /usr/bin/ld: cannot find -lGLESv2

    collect2: error: ld returned 1 exit status

    make: *** [QmlExample] Error 1

    12:48:55: The process "/usr/bin/make" exited with code 2.

    Error while building/deploying project QmlExample (kit: iMX-6)

    The kit iMX-6 has configuration issues which might be the root cause for this problem.

    When executing step "Make"

    12:48:55: Elapsed time: 00:02.

    Thanks


  • Moderators

    @Naveen_D As the error message says you should check your iMX-6 kit. It looks like it is broken: all the needed libraries are missing. Please check your Kit: is the correct compiler set? Is the correct Qt version set? Are there any warning/errors in the Kit?
    g++, /usr/bin/ld and /usr/bin/make look like tools from your host PC not for your device.



  • @jsulm oh okay sir, will check with the kit.
    do i need to connect the board before building the project...?


  • Moderators

    @Naveen_D If you have the sysroot on your host PC then no need to connect the device



  • @Naveen_D It seems that you didn't set your iMX-6 kit properly. Look here. Btw you do not need connect your device to your computer, when you only crosscompile program for your device. It is necessary when you deploy program to device (by clicking "run" in qtcreator, of course before this you should set proper device for this kit).



  • @tomasz3dk Ok sir.. thanks i will recheck the kit.



  • Hi, now i am able to run qt example on the board.
    I have developed one qml example and trying to port it for this device. the example builds without errors, but when i try to execute this in the boar it gives me the following error :

    root@imx6dlsabreauto:~# ./CarInfotainment_27March -qws
    QQmlApplicationEngine failed to load component
    qrc:/main.qml:2 module "QtQuick" version 2.7 is not installed

    what is the possible solution for this? Thanks



  • @Naveen_D You mentioned in previous post, that you have Qt 5.6.2 version on board. In this Qt version QtQuick module was in 2.5 version, so you must change all appearances of

    import QtQuick 2.7
    

    to

    import QtQuick 2.5
    

    If you will have same problems with other modules you should also take lower module version.



  • @tomasz3dk Ok thanks..


Log in to reply