qt creator;mini2440;GUI

David Fekete
Hi Everbody,

I was successful at running example GUI application on mini2440. I was
really happy. But my happiness has gone away after realising that I cannot
do my own application well. I am using qt creator and the desired compiler.
I cannot set the qt creator well to compile my application. I have tried
many tutorials but I always found some error in my solutions. For example
here you can see that tool chain is not found. (This is attached). How can
I compile my application with qt creator? I will be able to find to develop
complex application after compiling the first simple application :) Thank
for your help

David

David Fekete
I have forgotten the most important things that the examples were compiled
by me from command terminal. So I have problem only with qt creator.

whitebank
Hello, you can refer following link to get the way compile your QtCreator
program and run it in mini2440
http://mini2440vietnam.blogspot.com/2011/05/programming-application-for-...
Thank you.

sunil880089
How to create and Compile QT Application for Mini 2440 in Fedora 17.

Hi, I am newbie at Mini 2440 an Qt programming . I have a mini 2440
installed Qtopia in it . I also have a computer Fedora 17 installed. I use
Qt
creator to create QT application.

How to create and compile a QT program in Fedora 17 pc for mini 2440 then
load program to
mini 2440 and run it.

Can Anyone Please help me…
Thank you..

navaj
plezeeeeee help how to instal QT creater in mini2440..plz plz plz....replay
me,,,and tell me the commands ....i purchesd mini 244o but i dnt know how
to instal  qt creater in mini 2440.....plz tell me the commands

mali
navaj you can not install qtcreator on mini2440
you should get qt4.6.2 source and compile it using arm-linux-gcc that comes
with mini2440. Then install qtcreator on your linux host machine and
configure it to use that compiled version. There are couple sites yu can
find that explained this procedure. Be aware that Qt and Qtcreator are two
different things!! Qtcreator is just an IDE. Qt is a library/framework that
can be loaded into Qtcreator or any other IDEs.

r@wboom
hello experts,
i am 3 month older in mini2440 platform....i made GUI using the qt which is
called designer(in qt2)...hold in arm-qtopia.
but it is easier to make GUI and programe in qt4 version.
but when i build my program,i see the bin file but can't have the desktop
file.
why is it happened??
second> does mini2440 supports new qt version.
if yes then plzz give the solution.
thank you.

davef
Search for Qt creator.  Qt2 is ancient.

Lots of things can go wrong.

Mini2440 with the right support supports Qt4

Maybe this helps:
http://mini2440vietnam.blogspot.co.nz/2011/04/upgrade-qt462-in-mini2440....

davef
.. with the right software supports Qt4.

r@wboom
$cd /usr/local
$git clone http://github.com/kergoth/tslib.git
$export PATH=/usr/local/arm/4.3.2/bin:$PATH
$export CROSS_COMPILE=arm-none-linux-gnueabi-
$export CC=${CROSS_COMPILE}gcc
$export CFLAGS=-march=armv4t
$export CXX=${CROSS_COMPILE}"g++" 
$export AR=${CROSS_COMPILE}"ar" 
$export AS=${CROSS_COMPILE}"as"
$export RANLIB=${CROSS_COMPILE}"ranlib"
$export LD=${CROSS_COMPILE}"ld"
$export STRIP=${CROSS_COMPILE}"strip"
$export ac_cv_func_malloc_0_nonnull=yes
$cd /usr/local/tslib
$./autogen-clean.sh
$./autogen.sh
$./configure --host=arm-linux --prefix=/home/tslib --enable-shared=yes
--enable-static=yes
$make
$make install
***************************************************
i did the first step...OOps!error that fatal: destination path 'tslib'
already exists and is not an empty directory.
that means the tslib is already instaled..
because when i see /home/tslib it is installed...

r@wboom
@davef
after that when i ./configure the step it tells the error:
and in making the $make and $make install aslo gets errors.
can you give me any solution.
thank you.

davef
There is no point trying to proceed with make and make install until you
have the first error sort out.

I think I'd be checking those files in:

/home/tslib# ls
bin  etc  include  lib

have in fact been cross-compiled for armv4t

Pick one and do:

   readelf -a <filename>

and check towards the end of the screen message that you see 
armv4t

r@wboom
@davef
i have to  pick a file in bin folder and run the above command.
is it ok!!!

r@wboom
here are the results:-
ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           Intel 80386
  Version:                           0x1
  Entry point address:               0x8048a80
  Start of program headers:          52 (bytes into file)
  Start of section headers:          18932 (bytes into file)
  Flags:                             0x0
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         8
  Size of section headers:           40 (bytes)
  Number of section headers:         30
  Section header string table index: 27

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk
Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0  
0  0
  [ 1] .interp           PROGBITS        08048134 000134 000013 00   A  0  
0  1
  [ 2] .note.ABI-tag     NOTE            08048148 000148 000020 00   A  0  
0  4
  [ 3] .note.gnu.build-i NOTE            08048168 000168 000024 00   A  0  
0  4
  [ 4] .hash             HASH            0804818c 00018c 000134 04   A  6  
0  4
  [ 5] .gnu.hash         GNU_HASH        080482c0 0002c0 000044 04   A  6  
0  4
  [ 6] .dynsym           DYNSYM          08048304 000304 000260 10   A  7  
1  4
  [ 7] .dynstr           STRTAB          08048564 000564 00018d 00   A  0  
0  1
  [ 8] .gnu.version      VERSYM          080486f2 0006f2 00004c 02   A  6  
0  2
  [ 9] .gnu.version_r    VERNEED         08048740 000740 000040 00   A  7  
1  4
  [10] .rel.dyn          REL             08048780 000780 000018 08   A  6  
0  4
  [11] .rel.plt          REL             08048798 000798 0000e0 08   A  6 
13  4
  [12] .init             PROGBITS        08048878 000878 000030 00  AX  0  
0  4
  [13] .plt              PROGBITS        080488a8 0008a8 0001d0 04  AX  0  
0  4
  [14] .text             PROGBITS        08048a80 000a80 001adc 00  AX  0  
0 16
  [15] .fini             PROGBITS        0804a55c 00255c 00001c 00  AX  0  
0  4
  [16] .rodata           PROGBITS        0804a578 002578 0002e7 00   A  0  
0  8
  [17] .eh_frame         PROGBITS        0804a860 002860 000004 00   A  0  
0  4
  [18] .ctors            PROGBITS        0804bef4 002ef4 000008 00  WA  0  
0  4
  [19] .dtors            PROGBITS        0804befc 002efc 000008 00  WA  0  
0  4
  [20] .jcr              PROGBITS        0804bf04 002f04 000004 00  WA  0  
0  4
  [21] .dynamic          DYNAMIC         0804bf08 002f08 0000e8 08  WA  7  
0  4
  [22] .got              PROGBITS        0804bff0 002ff0 000004 04  WA  0  
0  4
  [23] .got.plt          PROGBITS        0804bff4 002ff4 00007c 04  WA  0  
0  4
  [24] .data             PROGBITS        0804c080 003080 001860 00  WA  0  
0 32
  [25] .bss              NOBITS          0804d8e0 0048e0 008588 00  WA  0  
0 32
  [26] .comment          PROGBITS        00000000 0048e0 000025 01  MS  0  
0  1
  [27] .shstrtab         STRTAB          00000000 004905 0000ee 00      0  
0  1
  [28] .symtab           SYMTAB          00000000 004ea4 000890 10     29 
72  4
  [29] .strtab           STRTAB          00000000 005734 0005ac 00      0  
0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings)
  I (info), L (link order), G (group), x (unknown)
  O (extra OS processing required) o (OS specific), p (processor specific)

There are no section groups in this file.

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  PHDR           0x000034 0x08048034 0x08048034 0x00100 0x00100 R E 0x4
  INTERP         0x000134 0x08048134 0x08048134 0x00013 0x00013 R   0x1
      [Requesting program interpreter: /lib/ld-linux.so.2]
  LOAD           0x000000 0x08048000 0x08048000 0x02864 0x02864 R E 0x1000
  LOAD           0x002ef4 0x0804bef4 0x0804bef4 0x019ec 0x09f74 RW  0x1000
  DYNAMIC        0x002f08 0x0804bf08 0x0804bf08 0x000e8 0x000e8 RW  0x4
  NOTE           0x000148 0x08048148 0x08048148 0x00044 0x00044 R   0x4
  GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RW  0x4
  GNU_RELRO      0x002ef4 0x0804bef4 0x0804bef4 0x0010c 0x0010c R   0x1

 Section to Segment mapping:
  Segment Sections...
   00     
   01     .interp 
   02     .interp .note.ABI-tag .note.gnu.build-id .hash .gnu.hash .dynsym
.dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text
.fini .rodata .eh_frame 
   03     .ctors .dtors .jcr .dynamic .got .got.plt .data .bss 
   04     .dynamic 
   05     .note.ABI-tag .note.gnu.build-id 
   06     
   07     .ctors .dtors .jcr .dynamic .got 

Dynamic section at offset 0x2f08 contains 24 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libts-1.0.so.0]
 0x00000001 (NEEDED)                     Shared library: [libdl.so.2]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
 0x0000000f (RPATH)                      Library rpath: [/home/tslib/lib]
 0x0000000c (INIT)                       0x8048878
 0x0000000d (FINI)                       0x804a55c
 0x00000004 (HASH)                       0x804818c
 0x6ffffef5 (GNU_HASH)                   0x80482c0
 0x00000005 (STRTAB)                     0x8048564
 0x00000006 (SYMTAB)                     0x8048304
 0x0000000a (STRSZ)                      397 (bytes)
 0x0000000b (SYMENT)                     16 (bytes)
 0x00000015 (DEBUG)                      0x0
 0x00000003 (PLTGOT)                     0x804bff4
 0x00000002 (PLTRELSZ)                   224 (bytes)
 0x00000014 (PLTREL)                     REL
 0x00000017 (JMPREL)                     0x8048798
 0x00000011 (REL)                        0x8048780
 0x00000012 (RELSZ)                      24 (bytes)
 0x00000013 (RELENT)                     8 (bytes)
 0x6ffffffe (VERNEED)                    0x8048740
 0x6fffffff (VERNEEDNUM)                 1
 0x6ffffff0 (VERSYM)                     0x80486f2
 0x00000000 (NULL)                       0x0

Relocation section '.rel.dyn' at offset 0x780 contains 3 entries:
 Offset     Info    Type            Sym.Value  Sym. Name
0804bff0  00000506 R_386_GLOB_DAT    00000000   __gmon_start__
0804d8e0  00002205 R_386_COPY        0804d8e0   stderr
0804d900  00001f05 R_386_COPY        0804d900   stdout

Relocation section '.rel.plt' at offset 0x798 contains 28 entries:
 Offset     Info    Type            Sym.Value  Sym. Name
0804c000  00000107 R_386_JUMP_SLOT   00000000   open
0804c004  00000207 R_386_JUMP_SLOT   00000000   mmap
0804c008  00000307 R_386_JUMP_SLOT   00000000   qsort
0804c00c  00000407 R_386_JUMP_SLOT   00000000   signal
0804c010  00000507 R_386_JUMP_SLOT   00000000   __gmon_start__
0804c014  00000707 R_386_JUMP_SLOT   00000000   __printf_chk
0804c018  00000807 R_386_JUMP_SLOT   00000000   getenv
0804c01c  00000907 R_386_JUMP_SLOT   00000000   write
0804c020  00000a07 R_386_JUMP_SLOT   00000000   memset
0804c024  00000b07 R_386_JUMP_SLOT   00000000   ts_read_raw
0804c028  00000c07 R_386_JUMP_SLOT   00000000   __libc_start_main
0804c02c  00000d07 R_386_JUMP_SLOT   00000000   read
0804c030  00000e07 R_386_JUMP_SLOT   00000000   perror
0804c034  00000f07 R_386_JUMP_SLOT   00000000   usleep
0804c038  00001007 R_386_JUMP_SLOT   00000000   free
0804c03c  00001107 R_386_JUMP_SLOT   00000000   fflush
0804c040  00001207 R_386_JUMP_SLOT   00000000   ts_config
0804c044  00001307 R_386_JUMP_SLOT   00000000   ioctl
0804c048  00001407 R_386_JUMP_SLOT   00000000   strlen
0804c04c  00001507 R_386_JUMP_SLOT   00000000   ts_open
0804c050  00001607 R_386_JUMP_SLOT   00000000   select
0804c054  00001707 R_386_JUMP_SLOT   00000000   close
0804c058  00001807 R_386_JUMP_SLOT   00000000   malloc
0804c05c  00001907 R_386_JUMP_SLOT   00000000   __stack_chk_fail
0804c060  00001a07 R_386_JUMP_SLOT   00000000   ts_fd
0804c064  00001b07 R_386_JUMP_SLOT   00000000   __sprintf_chk
0804c068  00001c07 R_386_JUMP_SLOT   00000000   munmap
0804c06c  00001d07 R_386_JUMP_SLOT   00000000   exit

There are no unwind sections in this file.

Symbol table '.dynsym' contains 38 entries:
   Num:    Value  Size Type    Bind   Vis      Ndx Name
     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 00000000     0 FUNC    GLOBAL DEFAULT  UND open@GLIBC_2.0 (2)
     2: 00000000     0 FUNC    GLOBAL DEFAULT  UND mmap@GLIBC_2.0 (2)
     3: 00000000     0 FUNC    GLOBAL DEFAULT  UND qsort@GLIBC_2.0 (2)
     4: 00000000     0 FUNC    GLOBAL DEFAULT  UND signal@GLIBC_2.0 (2)
     5: 00000000     0 NOTYPE  WEAK   DEFAULT  UND __gmon_start__
     6: 00000000     0 NOTYPE  WEAK   DEFAULT  UND _Jv_RegisterClasses
     7: 00000000     0 FUNC    GLOBAL DEFAULT  UND __printf_chk@GLIBC_2.3.4
(3)
     8: 00000000     0 FUNC    GLOBAL DEFAULT  UND getenv@GLIBC_2.0 (2)
     9: 00000000     0 FUNC    GLOBAL DEFAULT  UND write@GLIBC_2.0 (2)
    10: 00000000     0 FUNC    GLOBAL DEFAULT  UND memset@GLIBC_2.0 (2)
    11: 00000000     0 FUNC    GLOBAL DEFAULT  UND ts_read_raw
    12: 00000000     0 FUNC    GLOBAL DEFAULT  UND
__libc_start_main@GLIBC_2.0 (2)
    13: 00000000     0 FUNC    GLOBAL DEFAULT  UND read@GLIBC_2.0 (2)
    14: 00000000     0 FUNC    GLOBAL DEFAULT  UND perror@GLIBC_2.0 (2)
    15: 00000000     0 FUNC    GLOBAL DEFAULT  UND usleep@GLIBC_2.0 (2)
    16: 00000000     0 FUNC    GLOBAL DEFAULT  UND free@GLIBC_2.0 (2)
    17: 00000000     0 FUNC    GLOBAL DEFAULT  UND fflush@GLIBC_2.0 (2)
    18: 00000000     0 FUNC    GLOBAL DEFAULT  UND ts_config
    19: 00000000   ...stripped-down

davef
If that is the whole screen output message then you have not cross-compiled
it.

There should be something like:

TAG: armv4t

about 4-5 lines from the bottom of that file.

r@wboom
@davef
so how can i do that...mean cross compiled.

davef
Go to the downloads page and grab a copy of the mini2440 4.3.2 toolchain
and put it on your host.  Then follow this tutorial:
http://mini2440vietnam.blogspot.co.nz/2011/04/upgrade-qt462-in-mini2440....

Another one that will help

http://www.sereno-labs.com/qt-4-6-2-installation-procedure-for-friendlya...

Good luck!

r@wboom
@davef
i couldn't......
i tried it many times but fails....
can you tell me about trolltech designer working and how to use it and code
in it
i tried googled it but no more information.
i am felling bad....

davef
If you post the error message then someone might be able to help.

I wouldn't waste my time trying to develop an application for Qtopia.  It
is ancient.

Have you got a reason for using that system?

r@wboom
hello davef,
i am very thankful to you that you helped me...
actually i need your help to know about i2c.
i posted my question in i2c thread but no one give me any reply...it's been
more then 10 days..that's why i am asking.
[/code]
...
fd=open("/dev/i2c/0", O_RDWR);
  if(fd<0)
  {
    printf("Error open!\n");
  }

  buf[0]=0x00;
  buf[1]=0xff;

  io=ioctl(fd,0x703,0x50);
  if(io<0)
  {
    printf("Error ioctl!\n");
  }

  wbyte=write(fd,buf,2);
  if(wbyte!=1)
  {
    printf("Wbyte: %d\n",wbyte);
    printf("Error write!\n");
  }
..

[code/]
what is mean of 0x703 and 0x50;
please tell me...
thanks.

Fanning
Yahallo everyone !
I am new in embedded linux on mini2440 ! i am using qt everywhere 4.7.2 to
build my Gui app. when i using "./untitled -qws" i have error "./untitled:
error while loading shared libraries: /opt/pte/lib/libQtGui.so.4: invalid
ELF header" i dont know what to do... everyone can help me ? Thanks !

davef
On the command line on the host computer type in:

   readelf -a <untitled>

and tell us what you see on the last 4-5 lines.

Fanning
Yahallo davef ! Thanks for rep !

i go to "/home/fanning/mini2440" where I create GUI programs using qt
everywhere and type "readelf -a <untitled>", result "bash: syntax error
near unexpected token `newline'"

on terminal on mini2440 i type "[root@FriendlyARM /home]# readelf -a
<untitled>" result "-sh: syntax error: newline unexpected" 
I dont know why !!!

.......

davef
What extra tools did you load on to your host?

build-essential
automake
libtool
libncurses5-dev

I think Linux embedded developers, who write tutorials,  assume that you
know to have these tools on your host.  Fortunately, I worked with a
helpful software guy when I started with the mini2440!

See if those help.

Fanning
Yahallo davef Thanks for rep !

I install elfutils with "sudo apt-get instsall elfutils"

go to home/fanning/mini2440 and type "readelf -a ./untitled" and the result
on the last:
.
.
.
Displaying notes found at file offset 0x00000188 with length 0x00000020:
  Owner                 Data size  Description
  GNU                  0x00000010  NT_GNU_ABI_TAG (ABI version tag)
    OS: Linux, ABI: 2.6.32
Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "4T"
  Tag_CPU_arch: v4T
  Tag_ARM_ISA_use: Yes
  Tag_THUMB_ISA_use: Thumb-1
  Tag_ABI_PCS_wchar_t: 4
  Tag_ABI_FP_denormal: Needed
  Tag_ABI_FP_exceptions: Needed
  Tag_ABI_FP_number_model: IEEE 754
  Tag_ABI_align_needed: 8-byte
  Tag_ABI_enum_size: int


Thanks

davef
The good news is that you have successfully cross-compiled it for the
mini2440.

> Tag_CPU_arch: v4T

Never installed elfutils, but obviously you needed it.

davef
Yup, no elfutils on my machine.

Does your program work now?

Fanning
Yahallo davef !

I tried again and still same error 
"[root@FriendlyARM /home]# export LD_LIBRARY_PATH=/opt/pte/lib
[root@FriendlyARM /home]# export QTDIR=/opt/pte/
[root@FriendlyARM /home]# export
QWS_MOUSE_PROTO=IntelliMouse:/dev/input/event0
[root@FriendlyARM /home]# export
QWS_DISPLAY=LinuxFB:mmWidth=310:mmHeight=190
[root@FriendlyARM /home]# ./untitled -qws
./untitled: error while loading shared libraries:
/opt/pte/lib/libQtGui.so.4: invalid ELF header"

davef
What do you get when you do a readelf on /opt/pte/lib/libQtGui.so.4 ?

Fanning
Yahallo davef !
When you do a readelf on /opt/pte/lib/libQtGui.so.4
 the result :

Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "ARM920T"
  Tag_CPU_arch: v4T
  Tag_ARM_ISA_use: Yes
  Tag_THUMB_ISA_use: Thumb-1
  Tag_ABI_PCS_wchar_t: 4
  Tag_ABI_FP_denormal: Needed
  Tag_ABI_FP_exceptions: Needed
  Tag_ABI_FP_number_model: IEEE 754
  Tag_ABI_align_needed: 8-byte
  Tag_ABI_align_preserved: 8-byte, except leaf SP
  Tag_ABI_enum_size: int
  Tag_ABI_optimization_goals: Aggressive Speed

davef
ARM920T is correct for the mini2440.  I guess it is interchangeable with
4T.

Just checking ... /opt/pte/lib is actually on the target?

davef
Sorry, that is a mistake.

You loaded the libraries from /opt/pte/lib on to the target?

davef
My libQtGui.so.4 says 

Tag_CPU_name: "4T"  maybe yours is not correct.

All my cross-compilation is done using the Pengutronix tools.  Maybe, other
tools give it a different name.  I don't recall what readelf told me years
ago when I was using the FriendlyArm toolchain.

Fanning
Yahallo davef ! Thanks for rep ! 
I copy lib qteverywhere on desktop to mini2440 (libqtgui, libqtcore...)
I try to run app gui on mini2440 for 2 week but dont work....

davef
Which tutorial are you following?

I recall one of the tricks was getting the correct library paths (there was
a long Qt thread with a solution on this site ... however I don't think it
had your particular error message.

It might be helpful searching through the Qt section on this old forum
http://billforums.station51.net/

Fanning
Yahallo davef !
i folowing this tourial

https://sites.google.com/site/embedded247/escourse/qtinstall
Thanks

davef
Are you able to do a ts_calibrate?

Fanning
Yahallo davef !
i cant access friendlyarm.net for 2 dAy.

I dont undertand what you say ! Ts_calibrate ?

davef
Think the server was down.

As the first step in testing that your tslib works correctly on the target
doesn't the tutorial say to do a:

   ts_calibrate

on the command line

davef
Sorry, your tutorial may not say that.

Do a Google search for <mini2440vietnam> and download his Qt tutorial.