This is my attempt at an unofficial SDK for Motorola EZX phones. This kit was created with the A780 in mind, but resulting applications reportedly work with E680i as well. It includes all required components from Trolltech Qt/Embedded 2.3.6 with appropriate patches applied, and a helloworld example program.
Current version: 0.2.0
To use this, you need:
- A GCC 3.3 ARM/Xscale/iWMMXt compiler. There aren't very many binary packages of this, as it would be extremely difficult to support all the environments that people want to use. This can be built from source on a Linux machine using ezx-crosstool.
- An A780 or E680i, as a source of library binaries.
Please see the incldued file BUILD-INSTRUCTIONS.
Documentation
The EZX version of Qt/Embedded is not substantially different from Trolltech Qt/Embedded 2.3.6. This package therefore includes no documentation specifically for Qt/Embedded other than the header files. For good documentation on Qt/Embedded, consult the Trolltech site.
This work was derived through unpleasant reverse-engineering of the firmware from a Motorola A780 phone. While the Qt library is well-documented and exemplified, the changes made by Motorola are not, and neither are any of Motorola's other proprietary EZX libraries. Determining proper use of the other libraries is the burden of the developer, at least at present.
| Attachment | Size |
|---|---|
| dev-ezx-0.2.0.tgz | 537.36 KB |
Filed Under:
- Login to post comments
Thu, 2005-12-08 20:24
My phone is A780.I follow your BUILD-INSTRUCTIONS,when
i exec your sample bin file -- helloworld .it said:
#./helloworld
./hellorworld: relocation error: /usr/lib/ezx/lib/libezxappbase-xscale-r.so.1: undefined symbol: _ZN60QStyle22drawLineEditBackgroupEP8QPainteriiiiR6QBrush.
Then I compiled another QT sample .It said the same error.The EZX library binaries I copyed from my A780 phone.Would you like to helpe me? Thanks.
- Login to post comments
»Fri, 2005-12-09 01:28
This sounds like what happens when the dynamic linker picks the qonsole libqte or maybe an OPIE libqte rather than the Motorola libqte. What does 'echo $LD_LIBRARY_PATH' show? Anything before /usr/lib/ezx/lib? Perhaps a directory that contains a libqte-mt.so?
Let me know...
- Login to post comments
»Fri, 2005-12-09 21:41
I have fixed the problem . The reason is different version of the phone has different version of library. The version of my A780 phone is too old, yesterday I flashed the new official version a780_r52_g_0d.50.ahp_0d.41. Then relinked the new library , and exec was ok. I'am sorry for my poor english.
- Login to post comments
»Tue, 2006-01-24 06:50
just type the folling command on console:
export LD_LIBRARY_PATH=/usr/lib/ezx/lib/
export QTDIR=/usr/lib/ezx/
export EZX_RES_FONT_PATH=/usr/lib/ezx/lib/fonts/
then you get your hellowprld app as well
but I still have a question,most qt2.3.6 classes are not avaiable rather than the ezx classes in the file /ezx/*.h,why?
- Login to post comments
»Sun, 2006-03-05 12:06
just wanted to say thanks for this really useful and clean package - just ran the helloworld on my phone :-)
- Login to post comments
»Fri, 2006-04-07 20:36
My phone is A780.Thanks to your nice work, I follow your BUILD-INSTRUCTIONS,when i make the sample — helloworld,it got a error:
tossstone@ubuntu:~/dev-ezx-0.2.0/helloworld$ make
arm-linux-g++ helloworld.o -o helloworld -L/home/tossstone/dev-ezx-0.2.0/lib -L/home/tossstone/dev-ezx-0.2.0/lib/ezx/lib -lezxappbase-xscale-r -lqte-mt-xscale-r -lezxjpeg-xscale-r -lezxnotification-xscale-r
/opt/gcc-arm-iwmmxt/gcc-3.3.6-glibc-2.3.2/arm-linux/lib/gcc-lib/arm-linux/3.3.6/../../../../arm-linux/bin/ld: cannot find -lezxappbase-xscale-r
collect2: ld returned 1 exit status
make: *** [helloworld] Error
- Login to post comments
»Fri, 2006-04-07 20:39
and i have put the librarys to the right place :
~/dev-ezx-0.2.0/lib
~/dev-ezx-0.2.0/lib/ezx/lib
- Login to post comments
»Sat, 2006-05-13 18:46
Can't figure out what the problem could be.
bash-3.1$ make
arm-linux-g++ helloworld.o -o helloworld -L/home/Numbski/dev-ezx-0.2.0/lib -L/ho
me/Numbski/dev-ezx-0.2.0/lib/ezx/lib -lezxappbase-xscale-r -lqte-mt-xscale-r -le
zxjpeg-xscale-r -lezxnotification-xscale-r
/home/Numbski/ezx-crosstool-0.5/gcc-arm-iwmmxt/gcc-3.3.6-glibc-2.3.2/arm-linux/l
ib/gcc-lib/arm-linux/3.3.6/../../../../arm-linux/bin/ld: cannot find -lezxappbas
e-xscale-r
collect2: ld returned 1 exit status
make: *** [helloworld] Error 1
bash-3.1$ ls -alhs ../lib/ezx/lib/libezxappbase-xscale-r.so.1.0.0
1.6M -rw-r--r-- 1 Numbski None 1.6M May 13 20:42 ../lib/ezx/lib/libezxappbase-xs
cale-r.so.1.0.0
It's just really odd. This is on my wife's WinXP box running Cygwin (sorry, I'm on OSX normally).
- Login to post comments
»Tue, 2006-05-16 19:14
Thanks to Sam, I have the fix. :D Stupidity stikes me down. You lose symbolic links during a copy, and specifying -H doesn't help the matter (and in fact would make the lib directory huge if it behaved as expected!)
cd /usr
tar c --file /mmc/mmca1/lib.tar lib/
cd /mcc/mmca1
gzip lib.tar
Now copy lib.tar.gz to the dev box, and tar xvfz lib.tar.gz inside the dev-ezx-0.2.0 directory.
- Login to post comments
»Mon, 2006-04-10 11:50
When I install the cross compiler following the hits of the file 'BUILD-INSTRUCTIONS'. It should build the 'moc' first. But I don't know how.
can someone tell me how?
- Login to post comments
»Thu, 2006-05-11 21:12
#try the following
#worked on FC5
cd dev-ezx-0.2.0/moc;
make;
- Login to post comments
»Mon, 2006-06-05 06:49
cool :) many thanks. now i have to find a tutorial for the programming part...
- Login to post comments
»Fri, 2006-08-11 20:21
ROKR E2, MOTO's new EZX phone, has already out now. I hope that this SDK can be modeified to support ROKR E2. However it's saied that E2's Linux OS has some differences with that of A780 and E680i, so I believe it would be a little diffcult to do that.
This link may help:
https://opensource.motorola.com/sf/go/projects.rokre2/frs.rokre2_r564_g_12_02_31p
Thank you for developing this great kit!
- Login to post comments
»Thu, 2006-08-17 16:00
first thanks for u this great kit!
I download ezx-crosstool-0.5.tar.bz2 and dev-ezx-0.2.0.gz,then complete them at RedHat AS4 .
Linux redhatas4 2.6.9-5.EL
fellow your BUILD-INSTRUCTIONS,make is no error.
when I copy helloword to my phone E680g,and run :
#. /home/native/.profile
#./helloworld
FS_lock_init: sem id 32769, NOT mine
FS_init shm @ addr 0xbeaf6000, size 163840, NOT mine
this is erro! can u tell me what's wrong?
redhat linux kernel is 2.6.9,but crosstools use kernel linux-2.4.26 ,do me need install redhat 9 to do this? I am use WinXp + Vmware to run linux!
thanks! sorry to my poor english,I from China.
- Login to post comments
»Thu, 2006-09-07 10:53
Sam,
I am trying to come up with header files for the a1200 and the a780 sdk you provided needs modifications.
Could you please provide more details on how obtaining the sdk (scripts?). I am using
arm-linux-objdump -T --demangle libezxappbase.so
arm-linux-nm -aDC libezxappbase.so
and it is quite painful.
Perhaps if you are still active on ezx we could bring this discussion to the motorolafans forum...
Thank you very much for your contribution!
- Login to post comments
»Sat, 2006-09-23 14:40
sam~
trying...really trying to get it all working. I moved over my /usr/lib from the A1200 (with tar c --file from above fyi) then moved to my already built arm-gcc on PPC G4. I built moc no problem but then, when I try to make helloworld, I get:
jr:/Users/cyberson/Desktop/dev-ezx-0.2.0/helloworld root# make clean
rm -f helloworld.o helloworld helloworld.mpkg
jr:/Users/cyberson/Desktop/dev-ezx-0.2.0/helloworld root# make
arm-linux-g++ -fno-exceptions -fno-rtti -DQWS -Wall -g -I../include/qt -I../include/ezx -c helloworld.cpp
arm-linux-g++ helloworld.o -o helloworld -L../lib -L../lib/ezx/lib -lezxappbase-xscale-r -lqte-mt-xscale-r -lezxjpeg-xscale-r -lezxnotification-xscale-r
/opt/ezx-crosstool-0.5/gcc-arm-iwmmxt/gcc-3.3.6-glibc-2.3.2/arm-linux/bin/../lib/gcc-lib/arm-linux/3.3.6/../../../../arm-linux/bin/ld: cannot find -lezxappbase-xscale-r
collect2: ld returned 1 exit status
make: *** [helloworld] Error 1
can you help with a hint when you get a second, plz?
Best,
Stephen
- Login to post comments
»Fri, 2006-12-15 01:46
Your lib names are incorrect. I had to change this for my E2 fs. Hello world also wouldn't compile, as the included RE ezx headers weren't compatible with the E2's dsos.
- Login to post comments
»