Unsolved Adding Qt stack to embedded linux kerenel
-
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/QtlibHowever, 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 memoryI 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 -
For /etc/profile you need root access. So first call su and then start vi.
-
Linux is not Windows, PATH is only used to find executable not libraries.
You can use
LD_LIBRARY_PATH
for that. -
@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?
-
Were did you modify these variables ?
-
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
-
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 -
@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.
-
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/fb0There'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?
-
Is there somewhere we can take a look at this SDK ?
-
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_hifbEssentially, 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!
-
@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? -
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.
-
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.
-
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!