x86 QT QVFB problem.

saazajins
hi,

I downloaded x86-qtopia from
FriendlyARM web page and I try to compile it.

It was a success.
But new problems arose.


#./run

Using display 0

Cannot create lock file as an old version of QVFb has opened
/tmp/qtembedded-root/QtEmbedded-0. Close other QVFb and try again

Warning: QSocket::writeBlock: Socket is not open
.
.



The compile was successful, but not run it..

What is the solution.?

Help me plz... T^T

thanks have a good day.

saazajins
P.S
OS : Ubuntu 10.04 LTS ver.

arthas
Have you soluted this problem?

caozhzh
I meet the question too.
and to me the reason maybe a bug in source file:
"qtopia-2.2.0-FriendlyARM/qt2/tools/qvfb/qvfbview.cpp "
at line 97,I modify
    if (oldPipeLockId >= 0){
to
    if (oldPipeSemkey >= 0){

and run the command into the path "qtopia-2.2.0-FriendlyARM/"
make tools
cd ..
make
and the error was gone, and qtopia can run well.

but now I encounter a mistake,when i close the qvfb window and run again,
it seems hung with no reponse.i must run kill -9 to kill the qss process,i
dont know whether it is because my modification.

caozhzh
modify a typo:
the command should:
make tools
cd ..
./build

JWV
caozhzh,

Well your solution is not pretty, but in effect works. Using the kill -s 9
to kill the qvfb processes is not graceful, but I have not seen any
negative effects yet.

If you leave the blank Virtual Frambuffer running and you run another qvfb
command, it will run again and leave another hung process, but it works. It
appears you can run qvfb in pairs, meaning you run it and nothing happens,
then you ctrl c to get out of the process. Then run it again and it works,
leaving two qvfb hung processes each time, which you have to clean up with
the kill -s 9 command.

I have no idea why, but it works, so I am sticking with it until someone
finds a better fix.

JWV
Here is a bash file that will kill all the qvfb processes that build up.
Also, a correction to previous post, only one hung process is left for each
pair of commands. 

Example:
./run-hello # this process will fail and you will ctrl-c out; hung process
remains
./run-hello # this process runs and as far as I can tell works fine


#!/bin/sh

# Kill all qvfb processes

  pid=`pidof qvfb`
  if [ -n "$pid" ]; then
    kill -9 $pid
  fi
exit 0

JWV
Well if that were all that would be great. But I found my computer runing
like a dog after a bunch of testing of some programs. It turns out this
leaves the program you were using as a hung process as well. So I added a
varible to my script to kill the processes of the programs I was running.
So far this is the best work around I have. Seems to be ok so far, I would
like to try some more complicated QT programs to see if it works.

#!/bin/sh
# usage example: ./kill-qvfb hello
# This will kill both the qvfb and the hello processes
# Kill all qvfb processes

        temproc=`pidof $1`
  pid=`pidof qvfb`
  if [ -n "$pid" ]; then
    kill -9 $pid
  fi
        if [ -n "$temproc" ]; then
    kill -9 $temproc
  fi
exit 0