Internet access from the Nvidia AGX Xavier

I have set up and flashed the AGX by following the steps on nvidia sdk manager.

On the first run, the internet could be accessed through the host pc. After booting it up again, the internet could not be accessed.

I have connected my device through an ethernet cable to the host pc. I don’t have a wireless module.

How do I access the internet through my host pc on subsequent boots?

Thank you. I am new to this environment.

Hi dansologist,

Are you means after device boot up, the ethernet not working?
Are you connect etherent cable from Jetson device to host PC? or via hub?
Please list your ‘ifconfig’ status for reference.

The ethernet connection works. I can ssh into my device.

I am connecting the jetson device to host pc through an ethernet cable. I wish to access the internet through this connection. How do I do that?

ifconfig is as follows:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:04:4b:cb:a8:72 txqueuelen 1000 (Ethernet)
RX packets 159 bytes 35446 (35.4 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 206 bytes 36959 (36.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 40

l4tbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.55.1 netmask 255.255.255.0 broadcast 192.168.55.255
inet6 fe80::1 prefixlen 128 scopeid 0x20
inet6 fe80::f8a3:ddff:fe86:d488 prefixlen 64 scopeid 0x20
ether 6e:42:2f:06:d7:35 txqueuelen 1000 (Ethernet)
RX packets 5016 bytes 391964 (391.9 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 12500 bytes 15812831 (15.8 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Local Loopback)
RX packets 11125 bytes 677619 (677.6 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11125 bytes 677619 (677.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

rndis0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::6c42:2fff:fe06:d735 prefixlen 64 scopeid 0x20
ether 6e:42:2f:06:d7:35 txqueuelen 1000 (Ethernet)
RX packets 1187 bytes 126539 (126.5 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3122 bytes 3509440 (3.5 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::6c42:2fff:fe06:d737 prefixlen 64 scopeid 0x20
ether 6e:42:2f:06:d7:37 txqueuelen 1000 (Ethernet)
RX packets 3829 bytes 265425 (265.4 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 9801 bytes 12677421 (12.6 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

I think you should assign a IP or install dhcp server on your host.

Could you please explain how to do this and why.

By default the Xavier (and any Linux, MAC, or Windows system) will ask a router to assign an IP address. You could manually assign an address, but then every point in your system has to have this set up. DHCP is the mechanism for automatic assignment, and your router has a DHCP server (the Xavier is a DHCP client). Thus, if you don’t have an actual router, then it implies your host PC must act as a DHCP server.

Here is just one example article on adding a DHCP server to the host PC:
https://linoxide.com/linux-how-to/install-configure-dhcp-ubuntu/

Realize that if the same NIC on your host goes to a router that usually the router could be set up to do this job and it would “just work”. If you go through the host PC which has a single NIC, then the host PC NIC probably gets its address somewhere upstream by a router, and would need to be set up to provide DHCP only to the MAC address of the Jetson (in this case it appears to be “00:04:4b:cb:a8:72”). This way the host PC wouldn’t try to answer address requests by other computers than just this one. Giving a valid address to associate this particular MAC address with (and not conflicting with the router the host itself gets its own address from) is the manual setup part for the host acting as router.

In my case I run two network cards. One is public facing and it gets its IP from the router. The second NIC never touches the outside world and is a private net. The private net is assigned by the DHCP server in the PC host. Knowing how things are arranged (the topology of routers and hosts and switches) can help, but the above is the basic concept for all of this.

I almost forgot: Once the Xavier has an address you may also need to enable bridging/forwarding on the host PC to pass network traffic through from the private address to the public address.

Thank you for the response.

I have set up a DHCP server but I am facing issues with the configuration. what would I set the value as in these blocks for the dhcpd.conf file:

option definitions common to all supported networks…

option domain-name “your_domain.com”;
option domain-name-servers ns1.your_domain.com, ns2.your_domain.com;

A slightly different configuration for an internal subnet.

subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.100 10.0.0.150;
option domain-name-servers 8.8.8.8 8.8.4.4;
option subnet-mask 255.255.255.0;
option routers 10.0.0.1;
default-lease-time 43200;
max-lease-time 86400;
}

host fixed-ip-client {
hardware ethernet 00:04:4b:cb:a8:72;
fixed-address 192.168.55.100;
}

The values for the network configuration gui settings in the client (Network Connections selected from the top right corner of desktop). To be specific, under ‘IPv4 settings’, the fields of: method, address, netmask, gateway and additional DNS servers.

Also, I have activated IP forwarding. I am unsure about how to set up a bridge and use it to connect to the Xavier.

Please help me out with this as I have no prior experience about these. I have tried various settings but still, am unable to access the internet.

ifconfig of host:
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:b7:13:76:31 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

docker_gwbridge: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.18.0.1 netmask 255.255.0.0 broadcast 172.18.255.255
inet6 fe80::42:efff:fe2e:2166 prefixlen 64 scopeid 0x20
ether 02:42:ef:2e:21:66 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 247 bytes 25723 (25.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

enp0s20f0u1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.55.100 netmask 255.255.255.0 broadcast 192.168.55.255
inet6 fe80::ce56:7f4c:6125:3237 prefixlen 64 scopeid 0x20
ether c6:b2:93:ef:6a:9d txqueuelen 1000 (Ethernet)
RX packets 1735 bytes 328359 (328.3 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 950 bytes 238065 (238.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

enp0s20f0u1i5: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::4790:aee1:3527:807f prefixlen 64 scopeid 0x20
ether 6e:42:2f:06:d7:36 txqueuelen 1000 (Ethernet)
RX packets 265 bytes 31133 (31.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 829 bytes 154273 (154.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

enx74da38d8f2c5: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::7676:c01a:fe4b:e610 prefixlen 64 scopeid 0x20
ether 74:da:38:d8:f2:c5 txqueuelen 1000 (Ethernet)
RX packets 5469 bytes 265805 (265.8 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1568 bytes 303737 (303.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 15242 bytes 1458301 (1.4 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 15242 bytes 1458301 (1.4 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

vethee736d9: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::87d:dcff:fe03:943d prefixlen 64 scopeid 0x20
ether 0a:7d:dc:03:94:3d txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 350 bytes 36660 (36.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 128.189.211.216 netmask 255.255.248.0 broadcast 128.189.215.255
inet6 fe80::1881:702d:3cc0:a627 prefixlen 64 scopeid 0x20
ether 44:03:2c:62:0c:6e txqueuelen 1000 (Ethernet)
RX packets 159713 bytes 144742917 (144.7 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 31596 bytes 6316066 (6.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ifconfig of nvidia agx xavier:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.55.1 netmask 255.255.255.0 broadcast 192.168.55.255
inet6 fe80::cb96:5f4a:665f:1fbb prefixlen 64 scopeid 0x20
ether 00:04:4b:cb:a8:72 txqueuelen 1000 (Ethernet)
RX packets 496 bytes 118914 (118.9 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2863 bytes 127045 (127.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 40

l4tbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.55.1 netmask 255.255.255.0 broadcast 192.168.55.255
inet6 fe80::fde5:d2a2:5958:5956 prefixlen 64 scopeid 0x20
ether 6e:42:2f:06:d7:35 txqueuelen 1000 (Ethernet)
RX packets 1832 bytes 334022 (334.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 904 bytes 188916 (188.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Local Loopback)
RX packets 6087 bytes 496803 (496.8 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6087 bytes 496803 (496.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

rndis0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::6c42:2fff:fe06:d735 prefixlen 64 scopeid 0x20
ether 6e:42:2f:06:d7:35 txqueuelen 1000 (Ethernet)
RX packets 998 bytes 190298 (190.2 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1779 bytes 440267 (440.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::6c42:2fff:fe06:d737 prefixlen 64 scopeid 0x20
ether 6e:42:2f:06:d7:37 txqueuelen 1000 (Ethernet)
RX packets 834 bytes 143724 (143.7 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 265 bytes 34843 (34.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

It would be helpful if you could provide links to the methods like you did in the previous answer. Thanks!

Did you ever resolve this issue? I am currently following the tutorial and have set up the DHCP server but am also stuck on the configuration. I’m not sure what to substitute for “your_domain.com”. Any help would be greatly appreciated.

Sorry, I didn’t see the prior question asking more about dhcpd configuration. There is some dependence upon the version of o/s, e.g., Ubuntu 16.04 is probably very close to 18.04, but might change things slightly. I’m currently using Fedora, so this likely has some very different configuration steps.

Note that if you’ve run SDK Manager or JetPack with a configuration where the host was told to act as a DHCP server, then likely no additional packages are required…only configuration. Some of that configuration may even still be in place, but if the configuration aimed at the USB virtual device, then no configuration would exist (the IP address for the virtual USB ethernet is static and already set…there is no attempt to set up DHCP for the USB virtual ethernet).

About all I can do is point at some Ubuntu documents:
https://help.ubuntu.com/lts/serverguide/dhcp.html
https://linuxhint.com/install_dhcp_server_ubuntu/
https://linoxide.com/linux-how-to/install-configure-dhcp-ubuntu/

Note that you do want to be sure that the network you are adding a DHCP server response to should not be served by another DHCP server at the same time…both might end up answering DHCP requests. In my case I have two network cards and a private network for all of my embedded work. I used to run a DHCP server on the host, but ended up getting a router appliance instead.