Remote Execution

BP
Brian Padalino
Thu, Feb 20, 2020 10:06 PM

I am trying to wrap my head around remote execution.  I've consulted
section 8.1 of the Application Development documentation here:

https://opencpi.github.io/OpenCPI_Application_Development.pdf

I am able to run ocpiserve on my embedded system, and I can even see it as
an available container when I run:

ocpirun -R -S ip:port -C

I thought I'd be able to use a similar command with ocpihdl to query the
remote served but I can't quite figure out what the hdl-dev string should
be for the device.

Also, since my application I am targeting is based on the
ad9361_config_proxy_test, I essentially load the XML file, start/stop the
application, then read a bunch of parameters:

https://gitlab.com/opencpi/opencpi/-/blob/v1.6.0/projects/assets/applications/ad9361_config_proxy_test/ad9361_config_proxy_test.cc

If I run this on the device itself, things are fine, but if I run it on the
host with -R and -S specified, I get an error that it can't find
something.  On the device, I do see a client connect and disconnect.

I thought I did everything to enable the remote connection and operation,
but it seems I didn't.  Any insight is appreciated.

Thanks,
Brian

I am trying to wrap my head around remote execution. I've consulted section 8.1 of the Application Development documentation here: https://opencpi.github.io/OpenCPI_Application_Development.pdf I am able to run ocpiserve on my embedded system, and I can even see it as an available container when I run: ocpirun -R -S ip:port -C I thought I'd be able to use a similar command with ocpihdl to query the remote served but I can't quite figure out what the hdl-dev string should be for the device. Also, since my application I am targeting is based on the ad9361_config_proxy_test, I essentially load the XML file, start/stop the application, then read a bunch of parameters: https://gitlab.com/opencpi/opencpi/-/blob/v1.6.0/projects/assets/applications/ad9361_config_proxy_test/ad9361_config_proxy_test.cc If I run this on the device itself, things are fine, but if I run it on the host with -R and -S specified, I get an error that it can't find something. On the device, I do see a client connect and disconnect. I thought I did everything to enable the remote connection and operation, but it seems I didn't. Any insight is appreciated. Thanks, Brian
JD
Jerry Darko
Fri, Feb 21, 2020 3:39 PM

Hi Brian,

What version of the framework are you using?


From: discuss discuss-bounces@lists.opencpi.org on behalf of Brian Padalino bpadalino@gmail.com
Sent: Thursday, February 20, 2020 5:06 PM
To: discuss@lists.opencpi.org discuss@lists.opencpi.org
Subject: [Discuss OpenCPI] Remote Execution

I am trying to wrap my head around remote execution.  I've consulted
section 8.1 of the Application Development documentation here:

https://opencpi.github.io/OpenCPI_Application_Development.pdf

I am able to run ocpiserve on my embedded system, and I can even see it as
an available container when I run:

ocpirun -R -S ip:port -C

I thought I'd be able to use a similar command with ocpihdl to query the
remote served but I can't quite figure out what the hdl-dev string should
be for the device.

Also, since my application I am targeting is based on the
ad9361_config_proxy_test, I essentially load the XML file, start/stop the
application, then read a bunch of parameters:

https://gitlab.com/opencpi/opencpi/-/blob/v1.6.0/projects/assets/applications/ad9361_config_proxy_test/ad9361_config_proxy_test.cc

If I run this on the device itself, things are fine, but if I run it on the
host with -R and -S specified, I get an error that it can't find
something.  On the device, I do see a client connect and disconnect.

I thought I did everything to enable the remote connection and operation,
but it seems I didn't.  Any insight is appreciated.

Thanks,
Brian

Hi Brian, What version of the framework are you using? ________________________________ From: discuss <discuss-bounces@lists.opencpi.org> on behalf of Brian Padalino <bpadalino@gmail.com> Sent: Thursday, February 20, 2020 5:06 PM To: discuss@lists.opencpi.org <discuss@lists.opencpi.org> Subject: [Discuss OpenCPI] Remote Execution I am trying to wrap my head around remote execution. I've consulted section 8.1 of the Application Development documentation here: https://opencpi.github.io/OpenCPI_Application_Development.pdf I am able to run ocpiserve on my embedded system, and I can even see it as an available container when I run: ocpirun -R -S ip:port -C I thought I'd be able to use a similar command with ocpihdl to query the remote served but I can't quite figure out what the hdl-dev string should be for the device. Also, since my application I am targeting is based on the ad9361_config_proxy_test, I essentially load the XML file, start/stop the application, then read a bunch of parameters: https://gitlab.com/opencpi/opencpi/-/blob/v1.6.0/projects/assets/applications/ad9361_config_proxy_test/ad9361_config_proxy_test.cc If I run this on the device itself, things are fine, but if I run it on the host with -R and -S specified, I get an error that it can't find something. On the device, I do see a client connect and disconnect. I thought I did everything to enable the remote connection and operation, but it seems I didn't. Any insight is appreciated. Thanks, Brian
BP
Brian Padalino
Fri, Feb 21, 2020 3:40 PM

On Fri, Feb 21, 2020 at 10:39 AM Jerry Darko jerry.darko@cnftech.com
wrote:

Hi Brian,

What version of the framework are you using?

v1.5.1

But I'm also looking to work with v1.6.0 in the future, so if things are
different between them, it would be nice to know as well.

Thanks,
Brian

On Fri, Feb 21, 2020 at 10:39 AM Jerry Darko <jerry.darko@cnftech.com> wrote: > Hi Brian, > > What version of the framework are you using? > v1.5.1 But I'm also looking to work with v1.6.0 in the future, so if things are different between them, it would be nice to know as well. Thanks, Brian
JD
Jerry Darko
Fri, Feb 21, 2020 8:02 PM

I don't have familiarity with using remote containers with release 1.5 but I've used it with release 1.6 and the current develop. I think some things have changed between 1.6 and 1.5. In 1.6 my flow for using remote containers was:

For centos make the edit this to ocpiremote.sh:

  •  tar -c -z -H -f $tmpdir/tar.tgz $files
    
  •  tar -c -z -h -f $tmpdir/tar.tgz $files
    

Export the OCPI_SERVER_ADDRESSES variable using the ip address of the remote system and a port number

export OCPI_SERVER_ADDRESSES=<ip_address>:<port_number>

Then run

ocpiremote -P <software_platform> load

Assuming make deploy was previously run and if there is a hardware specific system.xml, I copy the contents of the system.xml located in opencpi/cdk/<hw-platform>/sdcard-<rcc_platform>/opencpi/ because the system.xml that is copied to the remote system after running ocpiremote load, is the software specific system.xml. On the remote system, in the sandbox directory, I edit the system.xml with the correct contents.

You will also have to open the firewall and that can be done with the command firewall-cmd --zone=trusted --add-interface=<name of interface> or using firewall-cmd gui.

After that I run:

ocpiremote start

If you get an EOF on socket error when trying to run an app, the ocpiserve process seems to disappear on the remote system so you have to start it up again. Check the log on the remote system sandbox to see what caused the error.

An example of running an app:

ocpirun -v -d testbias.xml

To kill a running server:

ocpiremote stop


From: Brian Padalino bpadalino@gmail.com
Sent: Friday, February 21, 2020 10:40 AM
To: Jerry Darko jerry.darko@cnftech.com
Cc: discuss@lists.opencpi.org discuss@lists.opencpi.org
Subject: Re: [Discuss OpenCPI] Remote Execution

On Fri, Feb 21, 2020 at 10:39 AM Jerry Darko <jerry.darko@cnftech.commailto:jerry.darko@cnftech.com> wrote:
Hi Brian,

What version of the framework are you using?

v1.5.1

But I'm also looking to work with v1.6.0 in the future, so if things are different between them, it would be nice to know as well.

Thanks,
Brian

I don't have familiarity with using remote containers with release 1.5 but I've used it with release 1.6 and the current develop. I think some things have changed between 1.6 and 1.5. In 1.6 my flow for using remote containers was: For centos make the edit this to ocpiremote.sh: - tar -c -z -H -f $tmpdir/tar.tgz $files + tar -c -z -h -f $tmpdir/tar.tgz $files Export the OCPI_SERVER_ADDRESSES variable using the ip address of the remote system and a port number export OCPI_SERVER_ADDRESSES=<ip_address>:<port_number> Then run ocpiremote -P <software_platform> load Assuming make deploy was previously run and if there is a hardware specific system.xml, I copy the contents of the system.xml located in opencpi/cdk/<hw-platform>/sdcard-<rcc_platform>/opencpi/ because the system.xml that is copied to the remote system after running ocpiremote load, is the software specific system.xml. On the remote system, in the sandbox directory, I edit the system.xml with the correct contents. You will also have to open the firewall and that can be done with the command firewall-cmd --zone=trusted --add-interface=<name of interface> or using firewall-cmd gui. After that I run: ocpiremote start If you get an EOF on socket error when trying to run an app, the ocpiserve process seems to disappear on the remote system so you have to start it up again. Check the log on the remote system sandbox to see what caused the error. An example of running an app: ocpirun -v -d testbias.xml To kill a running server: ocpiremote stop ________________________________ From: Brian Padalino <bpadalino@gmail.com> Sent: Friday, February 21, 2020 10:40 AM To: Jerry Darko <jerry.darko@cnftech.com> Cc: discuss@lists.opencpi.org <discuss@lists.opencpi.org> Subject: Re: [Discuss OpenCPI] Remote Execution On Fri, Feb 21, 2020 at 10:39 AM Jerry Darko <jerry.darko@cnftech.com<mailto:jerry.darko@cnftech.com>> wrote: Hi Brian, What version of the framework are you using? v1.5.1 But I'm also looking to work with v1.6.0 in the future, so if things are different between them, it would be nice to know as well. Thanks, Brian