Unofficial EZX Software Development Kit


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.

AttachmentSize
dev-ezx-0.2.0.tgz537.36 KB

*  »

wffy (not verified) Says:

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.

»

samr7 Says:

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...

»

wffy (not verified) Says:

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.

»

rttw (not verified) Says:

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?

»

Floe (not verified) Says:

just wanted to say thanks for this really useful and clean package - just ran the helloworld on my phone :-)

»

tossstone (not verified) Says:

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

»

Anonymous (not verified) Says:

and i have put the librarys to the right place :
~/dev-ezx-0.2.0/lib
~/dev-ezx-0.2.0/lib/ezx/lib

»

Tony Shadwick (not verified) Says:

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).

»

Tony Shadwick (not verified) Says:

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.

»

yan (not verified) Says:

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?

»

scott (not verified) Says:

#try the following
#worked on FC5
cd dev-ezx-0.2.0/moc;
make;

»

howlingmadhowie (not verified) Says:

cool :) many thanks. now i have to find a tutorial for the programming part...

»

HiBoy (not verified) Says:

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!

»

atwo (not verified) Says:

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.

»

bragon (not verified) Says:

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!

»

sschaubach (not verified) Says:

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

»

Anonymous (not verified) Says:

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.

»