I would need to connect 2 Jetson Nano to the same Windows desktop. They both connect successfully one at a time. However, If I try both, the issue arises when from the PowerShell “I ssh” the second Nano because known_hosts contains a different key, which is valid for the first Nano. Hope this makes sense. How can I solve the issue?
The USB virtual wired networking is configured in files here: /opt/nvidia/l4t-usb-device-mode/
Each Jetson will “pretend” it is a network router. These are defaults:
Jetson address 192.168.55.1.
Host address 192.168.55.100.
Subnet 192.168.55.0/24 or subnet mask 255.255.255.0 on the 192.168.55.0 subnet.
Your host will refuse when two routers try to configure the same addresses. Sometimes there is an issue if subnets overlap and there is a conflict of overlapping sections.
To explore, try these commands from /opt/nvidia/l4t-usb-device-mode/:
grep 192.168.55 *.sh
grep -i mask *.sh
If each Jetson were on a different subnet, then there would be no conflict. If on one Jetson you changed all of the “192.168.55.x” to “192.168.56.x”, then both Jetsons would work. However, they would be on different subnets…which means the host would talk to both, but the Jetsons could not talk to each other. Any kind of talk between Jetsons would require the host to forward.
An alternative (with the same results) would be to change subnet masks and host and Jetson IP addresses. For example, one Jetson could remain with the address pairing of 192.168.55.1/192.168.55.100, and the other Jetson could switch the .1 to .101, and the host to .102, followed by changing subnet masks on both so that everything below .101 is one subnet, and everything at or above .101 is another subnet. The two would only “appear” to be on the same subnet, but the Jetsons would still not be able to talk to each other. If the two needed to talk together, then once again the host PC would need to forward.
If this were a real router, then more than one device could exist on the same subnet, but you’d have to have a single router. This isn’t a real router, so it isn’t set up like this. There would be some difficulty in doing so, but one Jetson could plug in USB to the other Jetson instead of going to the PC; then the other Jetson could plug into the USB of the PC, and you’d have a single virtual router. Both Jetsons would need modification of their USB configuration for this to work.
An actual network switch and router would be much easier to work with.
Many thanks for your prompt reply. As I am not so familiar with Linux and SSH, could you please tell me which is the easiest and robust way to proceed among the ones you mentioned? For my application: (1) I do not need the Jetsons to talk to each other; (2) I do not have Internet access (not sure if this is relevant).
If they don’t need to talk to each other, and if you are going to use USB virtual wired networking (which requires the correct USB connector), then I would change one of the Jetsons to have the following specs in that virtual wired USB configuration:
Change Jetson address from 192.168.55.1 to 192.168.56.1.
Change host address from 192.168.55.100 to 192.168.56.100.
Keep the /24 subnet, but it would become 192.168.56.0/24;
Equivalent notation: 255.255.255.0 mask on 192.168.56.0 subnet.
In the above the USB virtual wired networking remains 192.168.55.1 on one of them, but on the other you’d talk to it from the host as address 192.168.56.1 (note the 56 instead of 55). In this case, if you wanted to contact the host PC from the Jetson, then the unmodified Jetson would try to ssh to 192.168.55.100 (the original IP of host), while the modified Jetson would try to use 192.168.56.100 if it were to try to talk to the host.
Using wired ethernet on a router would be easiest since (A) there would be no required modification, and (B) it would be faster.
That’s what I would do. Note that if your desktop PC you are plugging them into has a wired connection, then it already has a router. You could just plug a switch into that router, and then use the switch. I personally use two routers in order to have a private LAN which is separate from the public LAN, and thus I use two routers (Jetsons and printer are on the private LAN). You can connect that router to the public router to get public access, which seems backwards, but it allows separate setup on the private LAN router (such as security) which I am a fan of.
I am now using a switch and ethernet cables. Although the set-up is not complete yet, I can see that this is an effective way to proceed. So I consider my issue as solved.