Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Adding Qt stack to embedded linux kerenel
Qt 6.11 is out! See what's new in the release blog

Adding Qt stack to embedded linux kerenel

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
32 Posts 4 Posters 13.3k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • embdevE Offline
    embdevE Offline
    embdev
    wrote on last edited by embdev
    #17

    I see. That probably explains why I can run the demos / examples on the host PC with the environment setup as my target board doesn't include Qt libraries. I'm setting my PATH in /etc/profile/ :


    /etc/profile: system-wide .profile file for the Bourne shells

    set_path_before()
    {
    [ -d $1 ] && PATH="$1:$PATH"
    }

    PATH="/usr/bin:/usr/sbin:/bin:/sbin"
    set_path_before /usr/local/sbin
    set_path_before /usr/local/bin

    *************************************************

    PATH to Qt lib & bin on HOST PC

    ------------------------------

    PATH=/mnt/QtEmbedded-4.8.6-arm/bin:$PATH
    PATH=/mnt/QtEmbedded-4.8.6-arm/lib:$PATH

    ************************************************

    LD_LIBRARY_PATH="/usr/local/lib:/usr/lib"

    export PATH


    How about if I copy the entire Qt lib from HOST to TARGET, and then point the path to my TARGET/lib files, would that work if I run the Qt demo on the HOST (via NFS), the Qt lib now sitting on my TARGET board?

    1 Reply Last reply
    0
    • embdevE Offline
      embdevE Offline
      embdev
      wrote on last edited by
      #18

      btw, I tried to make directory Qtlib and then copy the entire Qt lib from my HOST PC into my TARGET BOARD (/Qtlib):

      mkdir /lib/Qtlib
      cp -r /mnt/QtEmbedded-4.8.6-arm/lib /lib/Qtlib

      However, when I tried to change my PATH on my TARGET BOARD, i'm unable to save the file in vi editor.
      (i.e. /etc/profile)

      At this juncture, I tried to create a mkdir 'test' on root to test out i.e. mkdir /home/test and was returned with the following error:

      / # mkdir /home/aa
      mkdir: can't create directory '/home/aa': Cannot allocate memory

      I tried to reboot embedded Linux but still unable to edit and save changes in my profile using vi editor.

      My memory at that juncture is
      Total = 119MB
      Used = 35 MB
      Free = 83 MB

      1 Reply Last reply
      0
      • jsulmJ Offline
        jsulmJ Offline
        jsulm
        Lifetime Qt Champion
        wrote on last edited by
        #19

        For /etc/profile you need root access. So first call su and then start vi.

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        1 Reply Last reply
        1
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #20

          Linux is not Windows, PATH is only used to find executable not libraries.

          You can use LD_LIBRARY_PATH for that.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • embdevE Offline
            embdevE Offline
            embdev
            wrote on last edited by
            #21

            @jsulm it seems that my su command is not functional; when I use the command, it'll just go from my root to /~. Nonetheless, when I execute vi, I don't need root access when I type [vi profile]

            @SGaist Tkx, I've amended and appended LD_LIBRARY_PATH="/mnt/QtEmbedded-4.8.6-arm/lib" to my profile file in /etc/profile but i'm still having the same problem when running framebuffer - unable to find libQtGui.so.4.

            Could it be during cross-compilation, I could have missed out any variables when performing [Make] command?

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #22

              Were did you modify these variables ?

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              0
              • embdevE Offline
                embdevE Offline
                embdev
                wrote on last edited by
                #23

                I didn't modify any source code variables though, I just did a ./configure, followed by make and make install that installs Qt-everywhere-opensource-4.8.6 into my /local/Trolltech folder

                1 Reply Last reply
                0
                • embdevE Offline
                  embdevE Offline
                  embdev
                  wrote on last edited by
                  #24

                  btw, i'm looking at qt-everywhere-enterprise-5.7 sources and what does it mean by 'sysroot'? Where may I locate my sysroot path?
                  http://doc.qt.io/qt-5/embedded-linux.html

                  jsulmJ 1 Reply Last reply
                  0
                  • embdevE embdev

                    btw, i'm looking at qt-everywhere-enterprise-5.7 sources and what does it mean by 'sysroot'? Where may I locate my sysroot path?
                    http://doc.qt.io/qt-5/embedded-linux.html

                    jsulmJ Offline
                    jsulmJ Offline
                    jsulm
                    Lifetime Qt Champion
                    wrote on last edited by
                    #25

                    @embdev sysroot is the file-system (or part of it) of your target device. You can mount it wherever you want (or just copy it to a location). You need the sysroot to be able to cross-compile for your target as it contains all the libs and header files.

                    https://forum.qt.io/topic/113070/qt-code-of-conduct

                    1 Reply Last reply
                    0
                    • embdevE Offline
                      embdevE Offline
                      embdev
                      wrote on last edited by
                      #26

                      I compiled the qt-everywhere-enterprise-4.8.6 sources with static libraries and tried to run on my embedded Linux but have a new error:

                      QScreenLinuxFb::connect:No such file or directory.
                      Error opening framebuffer device /dev/fb0

                      There's a framebuffer stack on my embedded Linux that came with the vendor's SDK, which i'd need to run in the background

                      i.e. ./hifb &

                      However once I returned to command prompt and tried running Qt demo e.g. ./deform -qws, I've the errors as mentioned above .

                      Do you've any advice on how to bypass / resolve this error so I can at least display Qt demo on my embedded board?

                      1 Reply Last reply
                      0
                      • SGaistS Offline
                        SGaistS Offline
                        SGaist
                        Lifetime Qt Champion
                        wrote on last edited by
                        #27

                        Is there somewhere we can take a look at this SDK ?

                        Interested in AI ? www.idiap.ch
                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                        1 Reply Last reply
                        0
                        • embdevE Offline
                          embdevE Offline
                          embdev
                          wrote on last edited by embdev
                          #28

                          The SDK is not readily available though; but I've checked from some other forums saying that I'd need to run the vendor's framebuffer in the background, before I can run the Qt demos successfully:

                          From my Putty terminal, the following command is executed to keep the vendor's framebuffer running the background:

                          ./sample_hifb &

                          However, after executing the command line above, i'm unable to start the .exe file in the background and was returned with the following error line:
                          (fyi, there're a few options after executing sample_hifb in normal mode, i.e. ./sample_hifb so I selected the option '0' as show below:)

                          -sh: 0: not found
                          [1]+ Stopped (tty input) ./sample_hifb

                          Essentially, it seems that this exe file sample_hifb is unable to run in the background.
                          From this error line, what do you think is missing?

                          Thank you!

                          jsulmJ 1 Reply Last reply
                          0
                          • embdevE embdev

                            The SDK is not readily available though; but I've checked from some other forums saying that I'd need to run the vendor's framebuffer in the background, before I can run the Qt demos successfully:

                            From my Putty terminal, the following command is executed to keep the vendor's framebuffer running the background:

                            ./sample_hifb &

                            However, after executing the command line above, i'm unable to start the .exe file in the background and was returned with the following error line:
                            (fyi, there're a few options after executing sample_hifb in normal mode, i.e. ./sample_hifb so I selected the option '0' as show below:)

                            -sh: 0: not found
                            [1]+ Stopped (tty input) ./sample_hifb

                            Essentially, it seems that this exe file sample_hifb is unable to run in the background.
                            From this error line, what do you think is missing?

                            Thank you!

                            jsulmJ Offline
                            jsulmJ Offline
                            jsulm
                            Lifetime Qt Champion
                            wrote on last edited by
                            #29

                            @embdev said in Adding Qt stack to embedded linux kerenel:

                            sample_hifb

                            Not sure I understand you correctly. Is this what happens:

                            ./sample_hifb &
                            -sh: 0: not found
                            [1]+ Stopped (tty input) ./sample_hifb
                            

                            Is sample_hifb located in the directory you are in when you try to start it? If not then you have to provide the whole path.
                            What do you mean by "so I selected the option '0' as show below"? How did you select option 0? Can you post what exactly you entered in the terminal?

                            https://forum.qt.io/topic/113070/qt-code-of-conduct

                            1 Reply Last reply
                            0
                            • embdevE Offline
                              embdevE Offline
                              embdev
                              wrote on last edited by
                              #30

                              hmm somehow I managed to resolve it. I modified the hifb framebuffer source code to pause after initializing the framebuffer, then I execute ./sample_hifb & to run it in the background. After which I went to access and execute my qt demos and basically they're running off my target (embedded) board already.

                              1 Reply Last reply
                              0
                              • SGaistS Offline
                                SGaistS Offline
                                SGaist
                                Lifetime Qt Champion
                                wrote on last edited by
                                #31

                                Great !

                                One thing you could maybe do is to integrate the code that initializes the frame buffer part in your Qt application so you'll have a standalone application.

                                Interested in AI ? www.idiap.ch
                                Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                1 Reply Last reply
                                0
                                • embdevE Offline
                                  embdevE Offline
                                  embdev
                                  wrote on last edited by
                                  #32

                                  Thanks for your advice! I guess i'll have to note down the portion of the vendor's framebuffer initialization code that I need next time!

                                  1 Reply Last reply
                                  0

                                  • Login

                                  • Login or register to search.
                                  • First post
                                    Last post
                                  0
                                  • Categories
                                  • Recent
                                  • Tags
                                  • Popular
                                  • Users
                                  • Groups
                                  • Search
                                  • Get Qt Extensions
                                  • Unsolved