I’m very new to the Jetson TX2 and I’m trying to connect it to the internet, however I not sure I know how. To my understanding, you can do 3 things:
Connect the Jetson TX2 directly to internet via Ethernet cable.
Use a USB wireless internet adapter.
Or install a mini PCIe network adapter.
Ok, so I tried doing the first option, connecting directly via Ethernet cable, and no luck.
After the first option failed, I bought an AC1200 USB-AC53 NANO adapter, but it comes with a CD into install a driver. I don’t know how I’m going to install a driver using a CD. From me trying to parse through similar post, I think you can install drivers from git hubs, but I don’t know how to connect to the internet to do so, or do I know which GitHub has the correct driver compatible with my USB.
Additional information: I’ve noticed that when I check the network settings, I get the following error
It wouldn’t make sense for the TX2 to be able to connect to internet. After researching this error, others are having this problem too, however the solutions suggested( one’s mentioned above) doesn’t seem to work for me. What should I do? Also, can you use a Usb to transfer data from my laptop to the TX2?
Wired usually “just works” if the router does not have a security issue (such as requiring ok of MAC address). Are you connecting the wired ethernet to a router? What kind of cable arrangement, e.g., switches, are used?
If you have the cable connected, and then power up the Jetson, what do you see from “ifconfig”? At that point you can save a copy of the dmesg logs, and post the file ("log_dmesg.txt" in the example): dmesg 2>&1 | tee log_dmesg.txt
There is WiFi available on a TX2 as well, but setup is probably going to be a lot more complicated for that.
USB adapters often work, and there may be drivers available, but I’d save that for last. If wired does not work, then the USB adapter is not going to work any better even if it has all the software it needs. There is a good chance your router just is not issuing an address via DHCP. The logs should say more.
I’m using an Ethernet Cable AWM 2835 24AWG that is connected to my TX2 on one end and my router on the other.
Also, I’m guessing “ifconfig” is the random messages that pops up when you first turn on the TX2, right?
“ifconfig” is something you have to type in after logging in. If you have not completed first boot setup, then you won’t be able to log in (including not being able to log in via ethernet). That first boot has you create a user account and password, and set the time zone. Have you completed first boot account creation? If not, then no network will help.
If you have completed first boot setup, and are logged in, then simply typing those commands at a prompt should result in getting the information needed.
You don’t need to use screenshots (which cut off text and cannot be searched). Typing this would create a log file you can upload (named log_ifconfig.txt): ifconfig 2>&1 | tee log_ifconfig.txt
You could append to this same log. For example, “route” would be useful to know, and you could create a new log file for that, but this would append to the original: route 2>&1 | tee log_ifconfig.txt
I do find the network device list which shows up as rather odd. I did not expect to see “eth-native”. I see docker there, and am thinking maybe something you installed related to docker has altered the configuration.
However, your “eth-native” and docker both have an address assigned. Are you trying to work inside of a container, or is there some docker special setup going on?
Suppose you have a file named “log_ifconfig.txt”, and the file is at: /home/someone/log_ifconfig.txt
From the laptop, if you know the IP address of the Jetson, and if the login user name is “someone”, then: scp someone@<the ip address>:/home/someone/log_ifconfig.txt .
If it is the first use then it will probably ask if you trust the connection.
FYI, the “.” in the command means the “current directory”. So you are copying “/home/someone/log_ifconfig.txt ” of the computer “the ip address” to your current location from which you are running scp, using the login credentials of “someone”.
I will emphasize here that the screenshot shows a wired ethernet with an address 10.160.13.21. If your laptop can scp from that (or ssh), then the interface was set up. You might still be missing a correct route or DNS might not be set up. The logs should say, but it is unusual to see the name “eth-native”.
I see you talk about accessing a particular file. What if I want to run the TX2 from my laptop, do I do the same thing? Sorry I’m new to this.
When I type scp firstname.lastname@example.org:/home/uav/log_ifconfig.txt . in my terminal, I get: ssh: connect to host 10.160.13.21 port 22: Operation timed out.
I’m guessing it not able to find the device or the device isn’t accepting it…or I’m doing something wrong here.
“scp” copies files from one computer to another (or it could copy on the same computer, but people don’t usually bother with this).
With scp “email@example.com” should identify, from the host PC, then Jetson and the account. You cut the command short, but more or less what you said is correct.
If you have this file on the Jetson: “/home/uav/log_ifconfig.txt”, then on the PC you identify this with a “:” between path and machine identifier. So this is how your host PC will name that exact file: firstname.lastname@example.org:/home/uav/log_ifconfig.txt
(notice the “:” between machine identifier and file path)
To copy “that over there” to “where I am now”, type this into a terminal on the PC: scp email@example.com:/home/uav/log_ifconfig.txt .
(notice it begins with command scp, and ends with the alias to “where I am currently at”, or “.”)
You could also log in to the Jetson from the host to a command prompt:
("scp" is “file copy over ssh”)
You could also run some commands on the Jetson from the PC: ssh firstname.lastname@example.org df -H
(which would show you the disk usage on the Jetson from the PC, which is what “df -H” does)
Can you just “ssh email@example.com”? If not, can you “ping 10.160.13.21”?
When I type scp firstname.lastname@example.org:/home/uav/log_ifconfig.txt .on my Mac, I get the following: ssh: connect to host 10.160.13.21 port 22: Operation timed out
Then I typed: ssh email@example.com and got: ssh: connect to host 10.160.13.21 port 22: Operation timed out
Then I tried to ping it with ping 10.160.13.21 and got:
PING 10.160.13.21 (10.160.13.21): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
Request timeout for icmp_seq 5
…(continues on )…
It seems like it can’t connect to the device…
When you say “someone”, I’m guessing you mean the username of the device right?
Let me clarify,
my Jetson username is ‘uav’ and my Jetson ip is ‘10.160.13.21’. Would I have to do anything to the Jetson’s terminal so that it can receive the signals? Maybe because the TX2 isn’t connected to the internet?
I’m not really a “Mac” guy, but much of it is a very close match to Linux on command line. I suspect it is a question of security and/or route setup on the Mac which is getting in the way (although if you go through a high end “managed” switch it could also be the network itself getting in the way). On the Mac, what do you see from the command “ifconfig” and from “route”? This will tell us about network setup, but not about security. Let’s first see if it is possible for the networks to connect.
Also, is the Jetson connected directly to the same switch or router the Mac is connected to?
Yes, when I say “someone” I intend for this to be substituted with the actual user name.
The TX2 will “just work” if you have wired ethernet (the existence of the “10.160.13.21” IP address tends to say this is working unless you performed some sort of special setup to force that address). The “Internet” is the outside world, but what we need is for the Mac to be directly connected to the Jetson. As long as they are on the same router or switch they should not need the internet (there are other reasons for needing the internet, but for the Mac and Jetson to communicate, this won’t be needed when on the same router or switch).
I will suggest that uploading as a file would make it easier to read. Or, if you edit your post with the ifconfig content, then you could place this line before the command outputs are quoted, and then also add this line after…the result would be preserving spacing and blank lines:
…I had to use backspaces to have those 3 “back quotes” actually show up instead of causing formatting.
The “route” command should not have given that error. Perhaps try “route -v” if just “route” does not work.
Your device “en0” does have an address, “10.0.0.248”.
Your device “en7” has address “169.254.193.213”.
Your device “en5” does not have an address.
Your device “en2” does not have an address.
Your device “en1” does not have an address.
Your device “en3” does not have an address.
Your device “en4” does not have an address.
Other miscellaneous devices not examined, e.g., llw0 and awdl0 since I do not know what they are.
Wow, that is a lot of internet devices!!! The device I can say is possible to use is en0. This address, over that port, should work: “10.0.0.248”. Just so you know, the address you had been using “10.160.13.21”, does not belong to the Jetson. At least not from the above. Addresses would change if you connect to a different wired ethernet somewhere else, but in the ifconfig output you just posted, “ 10.160.13.21”, only “10.0.0.248” would work.
Regarding “en7” at address “169.254.193.213”: I typically only see a 169.x.x.x address when an address is automatically assigned due to failure to assign over DHCP. This is not necessarily the case, and perhaps en7 can be used, but I would be suspicious of this.
We need to know about the output of “route” to have a better idea of what will or won’t work. Can you try the “route” command again, and see if it works? The output error you mentioned is for when route has an invalid argument, but “route” by itself does not have an argument, and should always work (perhaps there was a stray character you didn’t see).
Also, do you really need that many network devices? I even cut my list short and only showed the regular hardware ethernet devices, but there were more devices beyond even the large list I mentioned.
Ok, just to clarify I few things. You said that 10.160.13.21 ”, does not belong to the Jetson. This is confusing because I was told that the TX2 IP address is 10.160.13.21, there’s even a sticker on the TX2 with the same . Plus a colleague of mine said that I should be able to ssh using that address as long as my machine and the device is on the same subnet. Can you expand on what you meant by that?
Also, here is the response I get when I type route. I know you ask me not to post screenshots, but when I type scp firstname.lastname@example.org:/home/uav/log_ifconfig.txt .on my laptop, it tells me ssh: connect to host 10.160.13.21 port 22: Connection refused. In fact, this is the same error message I get when I type `ssh email@example.com as well. Anyways, here’s the screenshot:
Normally this address is determined by a router. Change the router, and the address changes. Often a router will cache the MAC address and reissue the same address, but this is not a guarantee unless the router itself has been programmed to associate that MAC address with just that IP address.
The ifconfig output is authoritative. If the inet value changed, then the old address is 100% invalid.
What we really need is the full “ifconfig” output and the “route” output from the same moment in time. The screenshots make this difficult. You could either mouse copy and paste into a text (".txt") file, or simply create a log of the command output directly, then upload that file. I’ll add a command to describe WiFi as well, with this example:
echo "IFCONFIG:" > tee 'log_network.txt'
ifconfig 2>&1 | tee -a 'log_network.txt'
echo "RFKILL:" | tee -a 'log_network.txt'
rfkill 2>&1 | tee -a 'log_network.txt'
echo "ROUTE:" | tee -a 'log_network.txt'
route 2>&1 | tee -a 'log_network.txt'
If you mouse copy and paste those commands, then everything will scroll by, plus a log file named “log_network.txt” will be created. Simply upload the “log_network.txt”. Note that piping to “tee” creates a new file and copies what you see. The “-a” option to tee says to do the same thing, but to not erase previous content…instead it appends. The first tee without “-a” creates a new file. The rest of the “tee -a” commands append instead of truncating. The “2>&1” is to be certain any errors are also logged. No screenshots required.
When you mean upload, I’m guessing you want me to use a USB flash drive to upload the file onto my laptop and post it on here?
I am using my laptop to access the web because I don’t have internet on my Jetson. Thus I can’t copy and paste the commands on my Jetson.