[nano] how to connect the internet in headless mode

hi, I’m Ryo. Thank you for reading this.

I’m a biginner about everything about AI, ubuntu, jetson .
Now, I’m using Jetson nano.
I proceeded with the tutorial according to the procedure on the homepage, and also tried NVIDIA Deep Learning Institute’s Getting Started with AI on Jetson Nano course by headless mode.

After the tutorial, I changed OS boot image to “Jetcard” because i can use headless mode. Unfortunately, i don’t have another monitor.

but there are no internet connection. so i can not update anything.

i thought i need only the usb cable to connect to my PC.
To use the internet, I have to connect LAN cable or wifi adapter additionally??
Is this a common?? I couldn’t find it by searching the internet.

Would you help me, please? Thank you.

The wired ethernet should “just work” if it is on a router that is also on your host PC, but you’d need to know the IP address the router assigned to the Jetson.

The micro-B USB can pretend to be a wired ethernet device, complete with its own router. When the Jetson is up and running, then the default is that if the cable is connected to the host PC, then one of the things the host PC will think is that the Jetson is itself a network device. In theory the PC would use this and the Jetson’s built in virtual router would assign address “192.168.55.1” to the Jetson, and address “192.168.55.100” to the host PC. Thus you’d be able to use ethernet to “192.168.55.1” if this is working, or else use the wired ethernet address.

The trouble is that the host might not be set to just allow any plugged in device to be used for networking. Most of the Ubuntu 18.04 installs will go ahead and use that device if it is found. At other times you might have to go into the host PC settings and tell it to allow use of the micro-B USB virtual device.

Whenever you enable such a device you need to know its MAC address. If, on your host, you monitor the log via “dmesg --follow”, and then plug in the USB cable, you should see messages which include MAC address. From there any of the network setup tools on the host PC should be able to enable this.

I like using “nm-connection-editor” for this. If you don’t have this, then you could “sudo apt-get install network-manager-gnome”. Within this the “gear” icon will become available if you click on the particular hardware interface you are interested in. Within that you can verify you are looking at the right MAC address, and tell it to allow the connection. After that the network should succeed. You’d be able to “ping 192.168.55.1”, or use “ssh 192.168.55.1”. If not, then you can ask further questions.

FYI, if you log in to the Jetson (e.g., via serial console…very handy, I advise having a USB serial UART cable for a few bucks when working with embedded systems), then the command “ifconfig” will show you all network devices, and provide the IP address of the wired ethernet if an address was assigned. I actually prefer wired ethernet for performance reasons.

1 Like

Hi, thank you for your reply.

First of all, I apologize for my amateur question.
sorry, I’m also beginner about computing, internet, and so on…

“In theory the PC would use this and the Jetson’s built in virtual router would assign address “192.168.55.1” to the Jetson, and address “192.168.55.100” to the host PC. Thus you’d be able to use ethernet to “192.168.55.1” if this is working, or else use the wired ethernet address.”

→this means that we cannot usually connect to internet with only micro-B usb cable, right?

“Whenever you enable such a device you need to know its MAC address. If, on your host, you monitor the log via “dmesg --follow”, and then plug in the USB cable, you should see messages which include MAC address. From there any of the network setup tools on the host PC should be able to enable this.”
→when I use “dmesg-follow” and change network setup by something tools, My jetson nano can connect to like google site?

ping 192.168.55.1 is worked well.
but, like “ping 8.8.8.8” is failed. 100% packet loss is displayed.

I forgot to give the details info of the system.
I’m using Windows10 PC.(This is host PC?)
This PC connected to Jetson nano by USB cable.
And, I’m using JupyterLab to open the Terminal.

following picture is what I typed “ipconfig”.

I aplogize that my reply will be late.

thank you for your kind help.

What device is ping 192.168.55.1?

→this means that we cannot usually connect to internet with only micro-B usb cable, right?

Yes, you need etherent cable connect on RJ45 first.

I’m using Windows10 PC.(This is host PC?)

Yes, this is host PC.

1 Like

Thank you for your clear answer.

“What device is ping 192.168.55.1?”
⇒From Jetson nano Terminal on the Jupyer Lab.
I typed following. Then, I got responses.
“dlinano@jetson-nano:~$ ping 192.168.55.1”

“Yes, you need etherent cable connect on RJ45 first.”
⇒Thanks. definitely, this is the reason what I can not get the data from “sudo apt update”

In conclution, I need the ethernet cable to connect internet and update, upgrade any software.
Without the cable, I can only use pre-installed software about deep learning.

Please let me know if you make any mistakes.

sorry, I typed the last sentences by my mistakes.

Please let me know if I have any misunderstanding…

Hi Ryo,

“What device is ping 192.168.55.1?”
⇒From Jetson nano Terminal on the Jupyer Lab.

When you type “ifconfig” to check the IP, it is actually the IP of that device itself.

Thus, 192.168.55.1 is the IP of usb interface on jetson nano. When you use jetson nano to ping 192.168.55.1, it is just asking jetson nano to ping itself. Thus, it would work.

Such problem is really not the jetson nano specific problem. I guess you are new to Ubuntu or Linux so you don’t know what ifconfig is doing.
Or maybe study some basic concept about TCP/IP of computer networking.

1 Like

I really appreciate your help.

Thus, 192.168.55.1 is the IP of usb interface on jetson nano. When you use jetson nano to ping 192.168.55.1, it is just asking jetson nano to ping itself. Thus, it would work.
⇒I see! I learned a new! It must be of course worked.

Such problem is really not the jetson nano specific problem. I guess you are new to Ubuntu or Linux so you don’t know what ifconfig is doing.
Or maybe study some basic concept about TCP/IP of computer networking.
⇒Ok, I’ll study about basically computing firstly…
Certainly, many terminology confused me.

Jetson nano is certainly a great foundation for AI learning, but it requires a minimum of computing knowledge, isn’t it?

Please let me express my sincere gratitude once again.

1 Like

No problem for that. Welcome to ask if you have other questions.

Just some extra ways of saying what the above is:

  • If the micro-B USB cable is connected and the host PC allows the use of the virtual wired ethernet device, then:
  1. Host can ping itself with “ping 192.168.55.100” (since this is the host PC address).
  2. Host can ping the Jetson with “ping 192.168.55.1” (since this is the Jetson address).
  3. Jetson can ping itself with “ping 192.168.55.1” (since this is the Jetson address).
  4. Jetson can ping host with “ping 192.168.55.100” (since this is the host PC address).
  5. Running “ifconfig” on host PC will show an interface with address “192.168.55.100” if the micro-B USB virtual wired ethernet connection is allowed.
  6. Running “ifconfig” on the Jetson will show an interface with address “192.168.55.1regardless of whether or not the host PC allows the connection (since this is local to the Jetson).
  7. Not seeing an interface on the host PC with address “192.168.55.100” implies either the USB is not connected to a running Jetson, or else the host has not allowed the connection and the MAC address needs to be allowed with host side software.

Hi, sorry for my late reply.

Thank you for nice and kind message!
it’s so clearly for me to understand!
With the USB cable, we can make a local internet. In your message, you told me how to check the internet connection check process.
I understood well.

thanks!