Skip to main content

problems of porting MR1 with QT

1 reply [Last post]
Joined: 2009-09-11

I tried to porting the MR1 perosonal profile with QT to my ARM system.
Acually, I've been ported MR2 pbp, and it works well.
I got a problem while bulding MR1 project, the error messages as following:

/mnt/usb/me/mr1r # ./bin/cvm -cp democlasses.jar basis.DemoFrame
QSocket::writeBlock: Socket is not open
QSocket::writeBlock: Socket is not open
QSocket::writeBlock: Socket is not open
QSocket::writeBlock: Socket is not open
No Qt/Embedded server appears to be running.
If you want to run cvm as a server,
add the "-qws" command-line option.

it looks like the -qws argument is not received by QT native functions.
I checked this file : phoneme-advanced-mr1/src/share/basis/native/awt/qt/QtBackEnd.cpp

There is a little differrent between QtBackEnd.cpp of MR1 and QtBackEnd.cpp of MR2.

So I copy this file from MR2 and cover the file of QtBackEnd.cpp of MR1.
But it still doesn't work.
any ideas?
Bert Lin

222 char **
223 QtScreen::getArgs(int *argc) {
224 int count;
225 // Use the "-sync" flag to force Xlib calls to be synchronous, which
226 // would aid in debugging Xlib async errors.
228 static char *argv[] = {"cvm", "-qws", NULL};
230 count = 1;
232 #ifdef QWS
233 #ifndef QTOPIA
234 // If environment varible QWS_CLIENT is not defined,
235 // assume we are running as the server (in the qt-embedded sense).
236 if (getenv("QWS_CLIENT") == NULL) {
237 count++;
238 }
239 #endif /* QTOPIA */
240 #endif /* QWS */
242 *argc = count;
244 return (char **)&argv;

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Joined: 2009-09-11

I solved this question by myself.
That's because there are two files associate to this problem.
And I have to modified "".

1466 vi src/share/personal/native/awt/qt/
1467 vi src/share/basis/native/awt/qt/QtApplication.cpp

after make, no errors.

Unfortunately, I got a error at runtime.

I copy democlasses.jar lib/ bin/ to my PXA270 develop kit. OS is Linux. 2.6.15
The QT library for embedded system is also ready.

/mnt/usb/me/mr1 # ./bin/cvm -cp democlasses.jar basis.DemoFrame
CVM Configuration:
Java stack chunk size (stackChunkSize): 2048
Java stack minimum size (stackMinSize): 3072
Java stack maximum size (stackMaxSize): 131072
GC[SS]: Initialized semi-space gen for generational GC
Size of *each* semispace in bytes=1048576
Limits of generation = [0x401a5200,0x403a5200)
First semispace = [0x401a5200,0x402a5200)
Second semispace = [0x402a5200,0x403a5200)
GC[MC]: Initialized mark-compact gen for generational GC
Size of the space in bytes=4194304
Limits of generation = [0x403a5200,0x407a5200)
GC[generational]: Auxiliary data structures
JIT Configuration:
Interpreter transition cost (icost): 20
Mixed transition cost (mcost): 50
Backwards branch cost (bcost): 4
Compilation threshold (climit): 20000
When to compile (compile): policy
What to inline (inline): virtual+nonvirtual+vhints+ihints
Max Inlining Depth (maxInliningDepth): 12
Max Inlining Code Length (maxInliningCodeLength): 68
Min Inlining Code Length (minInliningCodeLength): 16
Policy Triggered Decompilations (policyTriggeredDecompilations): true
Max Working Memory Size (maxWorkingMemorySize): 563200
Max Compiled Method Size (maxCompiledMethodSize): 65535
Code Cache Size (codeCacheSize): 524288
Upper Code Cache Threshold (upperCodeCacheThreshold): 95%
Lower Code Cache Threshold (lowerCodeCacheThreshold): 90%
Pass Phi values in registers (XregisterPhis): true
Pass locals in registers between blocks (XregisterLocals): true
Compiling Causes Class Loading (XcompilingCausesClassLoading): false
Trace (trace): none
Couldnt load module pthres
Cannot configure touchscreen /dev/event0 (No such file or directory)

Any advice or ideas?
I don't wanna give up.
I spent at least three weeks on it.(inculding QT porting)
I jsut want to run a AWT helloworld program on my embedded device.
Pls help me.
Thank you.

Bert Lin
A student of National Taiwan University of Science and Technology.