Adding extra processes to QNX VMWare target image

fsevmgr
I want to use the fsevmgr process in the QNX x86_64 VM target from the Software Center.

How can I start/embed the fsevmgr in my VM image?

I have code that does

struct stat myStat;
if(::stat("/dev/fsnotify", &myStat) != 0)
{
::system(“fsevmgr”);
}

and

if (::access("/dev/fsnotify", F_OK) < 0)
{
::system(“fsevmgr”);
}

and I get an error -

sh: fsevmgr: cannot execute - No such file or directory

Thanks.

The error message

means one of 4 things:

  1. fsevmgr is not in your VMWare image.
  2. fsevmgr is not in your path.
  3. You don’t have permission to access the directory and/or fsevmgr program.
  4. The file permissions are wrong (no execute bit set)

You can run a ‘find’ command from the root directory to see if it’s in your VMWare image. If it is, then you can put the correct full path to it in your ‘system’ command. You should also check the permissions (items 3/4) especially if you aren’t running as root.

Tim

It’s number 1).
But how would I add fsevmgr to my VMWare VM x86_64 target image which was downloaded from the QNX Software Center?

It’s a complicated answer because I don’t have enough information about the VMWare image you downloaded.

For example are you able to save/add your own test program to the image so that it’s there the next time you start the VM? Or do you have to boot the image and then download your program to it each time you start the VM?

If it’s the latter, then it means the image doesn’t have a virtual hard drive and your only options are:

  1. Download fsevmgr to the VM each time you boot up
  2. Create your own QNX VM (this is long term what you should be doing anyway)

If it’s the former, then just download fsevmgr to VM in the appropriate directory (can even be the local directory where you run your test program from).

My guess it that the answer is that you can’t save anything to the QNX VM in which case you’ll have to create your own QNX VM which as I said you should be doing anyway.

Tim

Hello Tim,
Thanks again for the reply.

I can create files that persist following a reboot.
I am using the VM from QNX as shown in the attachment.

So I think my question becomes

How do I
Download fsevmgr to the VM ?

Thanks

qnx.com/developers/docs/6.5. … RGET_.html

Alternatively you could start the FTP daemon process and ftp the files but that’s a bit more work.

Tim

Hello Tim,

So on my host I should just copy

C:\QNX700\target\qnx7\x86_64\sbin\fsevmgr

to the target and then start the process?

What would be a good destination folder on the Virtual target ?

On my QNX7 system I have fsevmgr in /x86/sbin so that seems like the right place to put it. Your target probably has /x86_64/sbin since I’m only running QNX in 32 bit mode. Also I have a fsevmgr.sym file on my system as well. Not sure if that’s required or not but you should consider copying it as well.

After you copy the file you’ll have to change the file permissions to add the execute (x) bit on the files (both of them). Then you can start the process.

Tim

Thanks again Tim.

Do you know if the absence of fsevmgr will affect anything like semaphores or message queues?

I’ve got a potentially related problem debugging some breakpoints which I’ve also posted to this forum.
I’ve just created a youtube video to demonstrate the problem.

fsevmgr has nothing to do with semaphores or message queues. It’s just designed to inform processes about changes to the filesystem.

qconn is the process that allows remote debugging from the Momentic IDE (your other issue).

Tim