Couldn't find the jetson nano ipaddress

I have connected jetson nano into ubuntu machine and trying to ssh from it.But not getting the ip address by using ifconfig

command:

ifconfig

output :

enp7s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 08:97:98:b8:c8:ad txqueuelen 1000 (Ethernet)
RX packets 131 bytes 44802 (44.8 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 282 bytes 49618 (49.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

If you have connected to your Jetson Nano via usb, then you can ssh into it using the IP: 192.168.55.1

ifconfig is not showing any ip address because it can’t find any Ethernet connection, please check your cable or router settings.

Based on the first suggestion :
I have connected jetson nano using Ethernet cable, While using the following command , getting "Connection timed out
" error

ssh username@192.168.55.1

Based on second suggestion :
Also the ifconfig showing the jestson device , but not getting the ip address of it

enp7s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 08:97:98:b8:c8:ad txqueuelen 1000 (Ethernet)
RX packets 51 bytes 17442 (17.4 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 279 bytes 47173 (47.1 KB)
TX errors 2 dropped 0 overruns 0 carrier 0 collisions 0

Tried with new cable, still getting the same error

Having an address on wired will require (by default) a router which will assign an address via DHCP. Sometimes routers have security such that you’d have to tell it that it is ok to assign an address. If you just have a consumer router and have not set up anything special, then I would expect an address to be automatically assigned.

I see it sent 279 bytes, but had 2 errors (it should be 0). Something (probably the router) sent 51 bytes to the Jetson, and those were received without error.

What do you see from “dmesg | egrep -i '(eth|enp)'”?

If you monitor “dmesg --follow”, what do you see from the actual command below, plus any log seen in dmesg due to the command:

  • sudo ifdown enp7s0
  • sudo ifup enp7s0
  • sudo systemctl restart networking.service

Recently i have changed method to “shared to other computer” network settings >IPv4 Settings. Then getting the following for ifconfig

enp7s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.42.1.1 netmask 255.255.255.0 broadcast 10.42.1.255
inet6 fe80::e88b:e6dc:c84e:17e5 prefixlen 64 scopeid 0x20
ether 08:97:98:b8:c8:ad txqueuelen 1000 (Ethernet)
RX packets 23 bytes 3374 (3.3 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 54 bytes 6573 (6.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

But couldn’t ssh user@10.42.1.1 , getting timeout error.

Command :

dmesg | egrep -i '(eth|enp)'

Output :

[ 0.914652] wmi_bus wmi_bus-PNP0C14:02: WQ data block query control method not found
[ 0.914655] wmi_bus wmi_bus-PNP0C14:02: WQ data block query control method not found
[ 0.914657] wmi_bus wmi_bus-PNP0C14:02: WQ data block query control method not found
[ 0.914658] wmi_bus wmi_bus-PNP0C14:02: WQ data block query control method not found
[ 0.944409] r8169 0000:07:00.0 eth0: RTL8168h/8111h, 08:97:98:b8:c8:ad, XID 541, IRQ 130
[ 0.944410] r8169 0000:07:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
[ 0.973986] r8169 0000:07:00.0 enp7s0: renamed from eth0
[ 3.974778] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 4.214464] r8169 0000:07:00.0 enp7s0: Link is Down
[ 183.743950] r8169 0000:07:00.0 enp7s0: Link is Up - 1Gbps/Full - flow control off
[ 183.743974] IPv6: ADDRCONF(NETDEV_CHANGE): enp7s0: link becomes ready
[ 203.982142] ipheth 1-2:4.2: Apple iPhone USB Ethernet device attached
[ 203.982183] usbcore: registered new interface driver ipheth
[ 203.986661] ipheth 1-2:4.2 enx8282235f9bef: renamed from eth0
[ 204.572208] r8169 0000:07:00.0 enp7s0: Link is Down
[ 207.837150] r8169 0000:07:00.0 enp7s0: Link is Up - 1Gbps/Full - flow control rx/tx

Command:
sudo ifdown enp7s0

Output

ifdown: unknown interface enp7s0

Command

ifup: unknown interface enp7s0

Can you “ping 10.42.1.1”?

It actually looks like it should work if the route to the Jetson can be traversed. Normally ssh is enabled as a default. Is there any modification of networking on this Jetson, or is it a custom carrier board?

On both host PC and Jetson, what do you see from this with the current 10.42.1.1 assigned and after one attempt to log in via ssh (the login attempt should add some data packet statistics which ifconfig will print)?

  • ifconfig
  • route

Not a custom carrier board, Its a Jetson nano 2GB Developer kit. Also I’m using ubuntu OS , which is recently installed.
I have connected internet to my laptop from a mobile phone using usb cable.

Ifconfig

enp7s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.42.2.1 netmask 255.255.255.0 broadcast 10.42.2.255
inet6 fe80::e88b:e6dc:c84e:17e5 prefixlen 64 scopeid 0x20
ether 08:97:98:b8:c8:ad txqueuelen 1000 (Ethernet)
RX packets 107 bytes 10078 (10.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 174 bytes 22170 (22.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

enx8282235f9bef: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.42.1.1 netmask 255.255.255.0 broadcast 10.42.1.255
inet6 2409:4073:97:57c0:71f1:9785:b5c9:938d prefixlen 64 scopeid 0x0
inet6 fe80::e3a0:f890:f66e:829e prefixlen 64 scopeid 0x20
ether 82:82:23:5f:9b:ef txqueuelen 1000 (Ethernet)
RX packets 6251 bytes 3142056 (3.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6234 bytes 859217 (859.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ping 10.42.2.1

PING 10.42.2.1 (10.42.2.1) 56(84) bytes of data.
64 bytes from 10.42.2.1: icmp_seq=1 ttl=64 time=0.065 ms
64 bytes from 10.42.2.1: icmp_seq=2 ttl=64 time=0.063 ms
64 bytes from 10.42.2.1: icmp_seq=3 ttl=64 time=0.064 ms
^C
— 10.42.2.1 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 2047ms
rtt min/avg/max/mdev = 0.063/0.064/0.065/0.000 ms

ssh username@10.42.2.1

sam@10.42.2.1’s password:
Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-58-generic x86_64)

0 updates can be installed immediately.
0 of these updates are security updates.

Last login: Wed Dec 30 09:48:24 2020 from 10.42.1.1
/home/sam/.zshrc:source:108: no such file or directory: ./zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

ifconfig after ssh

enp7s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.42.2.1 netmask 255.255.255.0 broadcast 10.42.2.255
inet6 fe80::e88b:e6dc:c84e:17e5 prefixlen 64 scopeid 0x20
ether 08:97:98:b8:c8:ad txqueuelen 1000 (Ethernet)
RX packets 188 bytes 17200 (17.2 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 317 bytes 41231 (41.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

enx8282235f9bef: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.42.1.1 netmask 255.255.255.0 broadcast 10.42.1.255
inet6 2409:4073:97:57c0:71f1:9785:b5c9:938d prefixlen 64 scopeid 0x0
inet6 fe80::e3a0:f890:f66e:829e prefixlen 64 scopeid 0x20
ether 82:82:23:5f:9b:ef txqueuelen 1000 (Ethernet)
RX packets 7256 bytes 3361392 (3.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7368 bytes 1169181 (1.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

route

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.42.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp0s20f3
10.42.1.0 0.0.0.0 255.255.255.0 U 100 0 0 enx8282235f9bef
10.42.2.0 0.0.0.0 255.255.255.0 U 101 0 0 enp7s0
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 wlp0s20f3
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0

Warning: I may be misinterpreting which of the ifconfig and route logs are for Jetson versus host PC. It isn’t entirely clear which log belongs to which computer, I am guessing.

In the first ifconfig there is a correctly assigned address and netmask:

  • enp7s0 10.42.2.1/255.255.255.0
  • enx8282235f9bef: 10.42.1.1/255.255.255.0

Note that the two interfaces above are on two different subnets and this is valid. No errors there.

For the ping to make sense I would need to know for sure that this is on the same computer as the above ifconfig items. If the ping is from the listed ifconfig computer, then it is just pinging itself and will never see the outside world. If the ping is from another computer, then the ping says it was able to reach the computer from the first ifconfig. We basically need to define which computer we are talking about.

Similar for “ssh username@10.42.2.1”. The original ifconfig listing shows two subnets, and if 10.42.2.1 was intended to go to another computer, then it will fail and be connecting to enp7s0 or the same computer. If that command was run from a different computer, then the meaning changes. Every command above needs a label for the computer, e.g., you could add “nano” or “pc” as a label next to each of the outputs.

We can say there was no error, and that although I might be missing some information on which computer is which, that the “technical” part of this is working without error.

I see only one “route” command, and once again, I need this for each computer, and I need to know if that computer is the Nano versus if it was the PC.

You’re almost there, mostly it just needs some labels.

I have inserted a memory card into my jetson nano with a “jetson nano developer kit sd card image“. Then i have connected jetson nano into my laptop through a ethernet cable, also connected to the power supply.

Also connected internet to the laptop using mobile through usb cable. Now i was trying to ssh into the jetson nano. But not able to do that…

But you were asking me for the output of ifconfig from jetson nano… I can’t understand how to run ifconfig from jetson nano without ssh into it.

And all the ifconfig, route and other outputs mentioned in the earlier reply was from a my laptop

Is your nano there locally with you? You could use either a monitor/keyboard, or serial console. If not local, then I see the problem :P If you are local, then you might check out serial console since it is incredibly useful:
https://www.jetsonhacks.com/2019/04/19/jetson-nano-serial-console/

It is hard to debug network failure when you can only access via network. The same is true with the GUI when graphics fails…but serial console has so few requirements it is hard to imagine developing without it even if you have a local keyboard/monitor setup.

Btw, if all of the above ifconfig and route is from the laptop, then your ping and ssh was never told to reach the Jetson. Those addresses of those two interfaces were local to the laptop (assuming once more that what I saw was produced from the laptop). The Jetson would have a different IP address. If both Jetson and laptop had been assigned the same addresses, then you would also see collision errors, and those were not present.

Try to enable the uart console so that you can at least have a way to access your board.

https://elinux.org/Jetson/General_debug

And back to the network problem. Does your host have dhcp server installed?

I thought the issue is not with the jetson nano , because getting same ifconfig output when i have connected raspberrypi to the laptop

enp7s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.42.0.1  netmask 255.255.255.0  broadcast 10.42.0.255
        inet6 fe80::e88b:e6dc:c84e:17e5  prefixlen 64  scopeid 0x20<link>
        ether 08:97:98:b8:c8:ad  txqueuelen 1000  (Ethernet)
        RX packets 48  bytes 5761 (5.7 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 202  bytes 27145 (27.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Installed dhcp server , but status is failure

(base)  ~  systemctl status isc-dhcp-server
● isc-dhcp-server.service - ISC DHCP IPv4 server
     Loaded: loaded (/lib/systemd/system/isc-dhcp-server.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Sun 2021-01-03 23:26:29 IST; 2s ago
       Docs: man:dhcpd(8)
    Process: 12408 ExecStart=/bin/sh -ec      CONFIG_FILE=/etc/dhcp/dhcpd.conf;      if [ -f /etc/ltsp/dhcpd.conf ]; then CONFIG_FILE=/etc/ltsp/dhcpd.conf; fi;      [ -e /var/lib/dhcp/dhcpd.leases ] || touch /v>
   Main PID: 12408 (code=exited, status=1/FAILURE)

Jan 03 23:26:29 sam3 dhcpd[12408]: 
Jan 03 23:26:29 sam3 dhcpd[12408]: If you think you have received this message due to a bug rather
Jan 03 23:26:29 sam3 dhcpd[12408]: than a configuration issue please read the section on submitting
Jan 03 23:26:29 sam3 dhcpd[12408]: bugs on either our web page at www.isc.org or in the README file
Jan 03 23:26:29 sam3 dhcpd[12408]: before submitting a bug.  These pages explain the proper
Jan 03 23:26:29 sam3 dhcpd[12408]: process and the information we find helpful for debugging.
Jan 03 23:26:29 sam3 dhcpd[12408]: 
Jan 03 23:26:29 sam3 dhcpd[12408]: exiting.
Jan 03 23:26:29 sam3 systemd[1]: isc-dhcp-server.service: Main process exited, code=exited, status=1/FAILURE
Jan 03 23:26:29 sam3 systemd[1]: isc-dhcp-server.service: Failed with result 'exit-code'.

Actually, there are multiple ways to access jetson nano… my previous comment is also one of them.

Connecting a monitor to nano is also a method.

Some other users also share methods in previous comments.

To me, It seems you are not that familiar with Linux/ubuntu system or how network connection is set up.
In that case, please directly try my suggestion from previous comment to save your own time.

I really want to figure out why ssh is not working , I’m familiar with ubuntu , but not with “how network connection is set up” . Could you suggest anything to solve this issue based on my previous comments ?

@samjith888
what is the output of executing at the Host PC commands below also with usb cable connected to the carrier board?

sudo apt install picocom -y
sudo picocom /dev/ttyACM0

then enter
then at nano terminal
ip addr show
also what will be the output at Host PC terminal if to execute ip addr show?

Any time you run ifconfig or route on your non-Jetson host PC, then that is for your host PC, not the Jetson. You would need to run those commands on the actual Jetson to know its address.

What @Andrey1984 mentions is a way to use serial console to do this even if networking and local monitor/keyboard are unavailable. Using serial console is your best method of accessing any Jetson when something goes wrong. It is hard to overemphasize the value of serial console.

As @linuxdev’s comment here, what you are trying to do now are all on your host side.

I also have few things to tell here:

  1. It looks like you didn’t configure the dhcp server well on your host. Dhcp server configuration needs you to write a config file. I am not sure if you did that or not.

  2. Even if you configure dhcp server correctly, you may not able to know the correct IP assigned on your nano.

  3. It sounds like you are using a computer with only a ethernet cable connected and you are keeping asking why there is no remote access. Back to the basic question, are you really sure your jetson board is booting into OS? If the system does not boot into system at all, ssh will surely not work.

I have connected the Jetson Nano to ethernet. My router gives DHCP IP addresses.
Is there a way to set up Jetson Nano to request the same IP address every time?

I guess it is DHCP reservation and this control is on your DHCP server side. Thus, it is not Jetson nano to determine.

If you have admin access to your router, then many of them allow binding the IP address it assigns for a specific MAC address. That’s a function of the router, not the Jetson. Or, you could manually assign a static address on the Jetson, stop using DHCP, while finding a way to guarantee that nothing else will use that IP address (which would once again require admin access to the router to tell it to never assign that IP address via DHCP).

Note: I always assign every Jetson’s MAC address to a specific IP address on the router. Then I let the Jetson use DHCP.