Virtual JTAG on remote machine (instead of local F1 instance)

0

Hi,

I am trying to run Vivado debug session on a remote machine, as CPUs on f1.2xl instances are not very powerful and makes the debug process very slow.

When I try to connect to remote hw server (using command: "connect_hw_server -url <hostname or IP address>:3121" as described here: https://github.com/aws/aws-fpga/blob/master/hdk/docs/Virtual_JTAG_XVC.md#connecting-xilinx-hardware-manager-vivado-lab-edition-running-on-a-remote-machine-to-the-debug-target-fpga-enabled-ec2-instance, it is not able to connect to it.

I tried to whitelist ports 3121 and 10201 in instance configuration (open for all inbound TCP connections), and also tried to do the ssh tunneling for these ports, but was still not able to connect to remote XVC server.

FAQ section have a question related to this, but these does not have any answers (Q: How do I configure Linux firewalls and EC2 network security groups to enable remote debug?).

Any pointers on how I can connect remote Vivado to F1 instance's JTAG XVC Server would be really helpful.
Thanks!

asked 4 years ago716 views
5 Answers
0

Hello,

Thank you for bringing the documentation hole to our attention! We will fix it asap.
Can yo make sure firewalld is either disabled or is allowing connections for those two ports.

Maybe this is a big hammer, but for debug purposes, lets stop firewalld first on both instances:

sudo systemctl stop firewalld

Second thing is to make sure both instances allow ports 3121 and 10201, not just the F1 instance. One way is to allow all connections between two instances: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-other-instances

Please let me know if this does not help or work for you.

-Deep

Deep_P
answered 4 years ago
0

Hi,

In addition to Deep's suggestion above, please follow below mentioned steps:

  1. Start hw_server in the target F1 instance, and then fpga-start-virtual-jtag:
[$] sudo su 
[$]# hw_server &
****** Xilinx hw_server v2019.2
  **** Build date : Oct 24 2019 at 19:23:45
    ** Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.

INFO: hw_server application started
INFO: Use Ctrl-C to exit hw_server application

INFO: To connect to this hw_server instance use url: TCP:ip-xxx-xx-xx-xxx.ec2.internal:3121

[$]# fpga-start-virtual-jtag -P 10201 -S 0
Starting Virtual JTAG XVC Server for FPGA slot id 0, listening to TCP port 10201.
Press CTRL-C to stop the service.
  1. Then, on the Remote Machine (where you run Vivado) follow the steps described here:
    https://github.com/aws/aws-fpga/blob/master/hdk/docs/Virtual_JTAG_XVC.md#connecting-xilinx-hardware-manager-vivado-lab-edition-running-on-a-remote-machine-to-the-debug-target-fpga-enabled-ec2-instance
    NOTE: the <host name or IP address> mentioned in the link above refers to the public IP address of your target F1 instance.

Please contact us if you run into any issues.

Thanks!
Chakra

AWS
answered 4 years ago
0

Hi Deep,

Thanks for you suggestions, but as I have lot of other setups working on my on-prem server, I won't be able to disable the firewall and open all ports.

Can you please advise on how to do it specifically for a port?

Thanks!

Ronak

answered 4 years ago
0

Hi Deep, Chakra,

Step1 provided by Chakra solved the issue, without disabling firewall and opening all ports.
In AWS documentation, it was not mentioned that I need to start hw_server as well on the instances, in addition to Xilinx's Virtual Cable service.

Just to recap for anyone who might be facing similar issue:
Step1: Whitelist ports 3121 and 10201 in AWS Security Group.
Step2: Start hw_server and XVC service on F1 instance.
Step3: On local server - start Vivado, connect to hw_server, then open_hw_target (as instructed on https://github.com/aws/aws-fpga/blob/master/hdk/docs/Virtual_JTAG_XVC.md#connecting-xilinx-hardware-manager-vivado-lab-edition-running-on-a-remote-machine-to-the-debug-target-fpga-enabled-ec2-instance). Use Public IP for URL.

answered 4 years ago
0

Process summarized in comment by OP.

answered 4 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions