qtopia development

kevin
I'm confused now!! :(

-I've created a jffs2 with qt option using buildroot and its working
well.But does that mean i've qt libraries on my created jffs2 ROOTFS?

-i've installed x86-qt and arm-qt on my host system.

-been to this link:-
http://equallybad.blogspot.com/2010/02/project-how-to-setup-default-dev-...

I guess this is for if u have the yaffs image (that came with the dvd)on
your board.how to run the hello example on my board.

-can anyone tell me how do i proceed from  here..

thanks kevin

skip2816
Hi kevin,

run hello is easy. You need no new yaffs etc. The only thing you have to do
is bringing the hello program into the file system on your mini. 
And therefor are may ways possible. Put it on a usb stick or sd card and
mount on mini, transfer it with ftp or nfs. 
Start it from the console app. If You want to start hello like a really
Qtopia program by it's icon, you must provide this icon and .desktop file.
See qtopia/doc/html or existing files for format. 

skip

kevin
well this is what i wanted to say..m not using yaffs m using a jffs2
created with buildroot. i dont have a GUI currently on my board.
But while compiling buildroot i selected qt also. so i guess qt libraries
are there in my jffs2.now tell me how do i run the hello program.

i tried this:-
1.compiled hello on my host ran it with qt-x86..it works..
2 compiled hello with qt-arm and with pendrive copied it to /home in my
board.
3. i do ./hello on my board it wont execute!!y?

thanks 
kevin

skip2816
Hi Kevin,

here the minimal necessary steps to run hello:

- install a toolchain
- compile arm-qtopia
- compile (arm-) hello
- transfer hello into your board's file system
- (chmod +x hello) ./hello

that's all

What say's the command:
file <path/>hello
on your host?

skip

kevin
it says:-
hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked
(uses shared libs), for GNU/Linux 2.6.14, not stripped


on my board when i do ./hello it says -sh: ./hello:not found

skip2816
Hi Kevin,

look what mount says. Sometimes pendrives are mounted without executions
permissions.
Try: copy hello into a dir on the board, set permissions and exec than.
A reason can be, the default char set for vfat drives is utf8 and so it is
case sensitive. 

skip

kevin
well tell me what files do i need to copy to my board??
i copied hello and hello.desktop  

i copy the two files to my /home directry and try to run from there..and
yes before doin ./hello  i have used chmod +x also..

do u still think it can be due to permissions ?
is it necessary that i copy the executables somewhere else than /home? what
r the dependencies for hello to run on my board?

davef
I am a bit surprised that a simple app like this needs more than glibc, but
. . .

Have you got the shared libraries it requires?

On the host:
<sudo ldd ./hello>

or

<sudo readelf -a ./hello | grep NEEDED>

kevin
This is what it says->
0x00000001 (NEEDED)                     Shared library: [libuuid.so.1]
 0x00000001 (NEEDED)                     Shared library: [libqtopia2.so.2]
 0x00000001 (NEEDED)                     Shared library: [libqtopia.so.1]
 0x00000001 (NEEDED)                     Shared library: [libqpe.so.1]
 0x00000001 (NEEDED)                     Shared library: [libqte.so.2]
 0x00000001 (NEEDED)                     Shared library: [libstdc++.so.6]
 0x00000001 (NEEDED)                     Shared library: [libm.so.6]
 0x00000001 (NEEDED)                     Shared library: [libgcc_s.so.1]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]


i checked my board for these and i found that the qt version on my file
system is 4.5  !!Can it be the cause that hello is not running??

skip2816
i assume you means qtopia's hello, its depends on 4 libs: libqtopia,
libqtopia2, libqte, libqpe. But these libs are present on the factory's
linux/qtopia 2.2.0 installation.
See in the Makefile for hello, or better build it new and watch in the link
line which -lxxx arguments are given.
hello.desktop is only needed if you want to see an icon for your hello.

skip

kevin
I have libQtCore.so.4  libQtCore.so.4.5  libQtCore.so.4.5.3  libQtGui.so.4
etc etc on my jffs2 rootfs.
what m asking is will hello run with these shared libraries or do i need
strictly libqtopia2.so.2 etc etc for that?

kevin
okay guys its not the shared libraries...
I've written a program which just print hello on the screen(not the qtopia
one)cross compiled it with arm-linux-gcc- ,transferred the binary to my
board and when i run it also says ./a.out not found....
what may be the reason?
one basic question->
what makes ./a.out running possible?

skip2816
what makes ./a.out running possible?
> compiling a kernel supporting these format

Executables today are common in ELF-format. a.out is a old format,
different to ELF.

gcc hello.c           ==> a.out
gcc -o hello hello.c  ==> ELF

skip

kevin
and do need to have some development libraries on my mini2440 to run
executable ,
like when i do ./executable-name  ??

kevin
hi guys i've soretd out my problem its due to missing .so lib. by
statically compiling the program i could successfully run it on my target 
board.
Now is it possible to build the hello qt program statically..on my host ?

awaiting for response..

selim
hi guys,

I think you are missing something.
after doing

chmod +x hello

you need to copy these two files to their appropriate locations as;

mv hello /opt/Qtopia/bin
mv hello.desktop /opt/Qtopia/apps/Applications

then reboot the mini and you will get Hello2440 icon on your Applications
tab on the screen, just click it.

by the way I also couldn't find a way to run a Qtopia application from
command line like --> ./hello

If you find a way please inform me...