How to connect my Jetson TX2 to the internet?

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:

  1. Connect the Jetson TX2 directly to internet via Ethernet cable.
  2. Use a USB wireless internet adapter.
  3. Or install a mini PCIe network adapter.
    My attempts:
  4. Ok, so I tried doing the first option, connecting directly via Ethernet cable, and no luck.
  5. 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.

This is my setup:

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.

Yes I completed my first boot setup. This is what I get when I type ifconfig in prompt.

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?

The log file is on my TX2, but I don’t know how to get it from my TX2 to my laptop to post it. Furthermore, my friend gave me this TX2 with Gstreamer installed so that I can do the tutorials on it.

If it helps, people have been able to ssh the TX2 onto their laptops using the tx2 IP address, but I don’t know have to do that either…

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.
IPaddress: 10.160.13.21
User: uav
When I type scp uav@10.160.13.21:/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 “uav@10.160.13.21” 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:
uav@10.160.13.21:/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 uav@10.160.13.21:/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:

ssh uav@10.160.13.21
ls
exit

("scp" is “file copy over ssh”)

You could also run some commands on the Jetson from the PC:
ssh uav@10.160.13.21 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 uav@10.160.13.21”? If not, can you “ping 10.160.13.21”?

Ok.
When I type scp uav@10.160.13.21:/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 uav@10.160.13.21 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).

This is what I get for ifconfig:
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
nd6 options=201<PERFORMNUD,DAD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en5: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether ac:de:48:00:11:22
inet6 fe80::aede:48ff:fe00:1122%en5 prefixlen 64 scopeid 0x4
nd6 options=201<PERFORMNUD,DAD>
media: autoselect (100baseTX )
status: active
ap1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
options=400<CHANNEL_IO>
ether fa:ff:c2:6a:a2:4d
media: autoselect
status: inactive
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=400<CHANNEL_IO>
ether f8:ff:c2:6a:a2:4d
inet6 fe80::14ad:551:aec9:33a%en0 prefixlen 64 secured scopeid 0x6
inet6 2601:c1:c000:f130:73:9130:d41f:d455 prefixlen 64 autoconf secured
inet6 2601:c1:c000:f130:8d4d:e657:67a0:7281 prefixlen 64 autoconf temporary
inet 10.0.0.248 netmask 0xffffff00 broadcast 10.0.0.255
inet6 2601:c1:c000:f130::ab57 prefixlen 64 dynamic
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
en2: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=460<TSO4,TSO6,CHANNEL_IO>
ether 82:37:bc:27:a4:00
media: autoselect
status: inactive
en1: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=460<TSO4,TSO6,CHANNEL_IO>
ether 82:37:bc:27:a4:01
media: autoselect
status: inactive
en3: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=460<TSO4,TSO6,CHANNEL_IO>
ether 82:37:bc:27:a4:05
media: autoselect
status: inactive
en4: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=460<TSO4,TSO6,CHANNEL_IO>
ether 82:37:bc:27:a4:04
media: autoselect
status: inactive
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=63<RXCSUM,TXCSUM,TSO4,TSO6>
ether 82:37:bc:27:a4:01
Configuration:
id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
ipfilter disabled flags 0x0
member: en1 flags=3<LEARNING,DISCOVER>
ifmaxaddr 0 port 8 priority 0 path cost 0
member: en2 flags=3<LEARNING,DISCOVER>
ifmaxaddr 0 port 7 priority 0 path cost 0
member: en3 flags=3<LEARNING,DISCOVER>
ifmaxaddr 0 port 9 priority 0 path cost 0
member: en4 flags=3<LEARNING,DISCOVER>
ifmaxaddr 0 port 10 priority 0 path cost 0
nd6 options=201<PERFORMNUD,DAD>
media:
status: inactive
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
options=400<CHANNEL_IO>
ether 0a:ff:c2:6a:a2:4d
media: autoselect
status: inactive
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1484
options=400<CHANNEL_IO>
ether a2:53:2b:0f:14:9c
inet6 fe80::a053:2bff:fe0f:149c%awdl0 prefixlen 64 scopeid 0xd
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
llw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=400<CHANNEL_IO>
ether a2:53:2b:0f:14:9c
inet6 fe80::a053:2bff:fe0f:149c%llw0 prefixlen 64 scopeid 0xe
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
inet6 fe80::71f7:f422:cb6c:eadc%utun0 prefixlen 64 scopeid 0xf
nd6 options=201<PERFORMNUD,DAD>
utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000
inet6 fe80::62bf:3612:afd0:125a%utun1 prefixlen 64 scopeid 0x10
nd6 options=201<PERFORMNUD,DAD>
utun2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
inet6 fe80::3993:7538:abc9:8f61%utun2 prefixlen 64 scopeid 0x11
nd6 options=201<PERFORMNUD,DAD>
utun3: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
inet6 fe80::4f4:76f3:4227:90ae%utun3 prefixlen 64 scopeid 0x12
nd6 options=201<PERFORMNUD,DAD>
en7: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=6407<RXCSUM,TXCSUM,VLAN_MTU,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM>
ether 00:e0:4c:08:03:7b
inet6 fe80::1044:aad0:c60:4f0%en7 prefixlen 64 secured scopeid 0x14
inet 169.254.193.213 netmask 0xffff0000 broadcast 169.254.255.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect (1000baseT )
status: active

and when I type route, I get:
usage: route [-dnqtv] command [[modifiers] args]

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.

I don’t use TX2, but try to get the real linux console usb (the one that spews output at powerup), connected to your dev machine then use minicom to see/capture the logs.

And can you try the network connection without running it from a container. It generally does work unless your company sets up MAC filtering, etc.

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 uav@10.160.13.21:/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 uav@10.160.13.21 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.

Anything which copies that file to where you can post on the forums works. A USB flash drive works well for this. Serial console would directly connect to your laptop. For serial console, see:
http://www.jetsonhacks.com/2017/03/24/serial-console-nvidia-jetson-tx2/