Cannot connect to Jupyter: Unable to ping Board from Host PC

  • PYNQ version & Board name & Tool Version
    ZU+ RFSoC ZCU111, latest pynq SD image v3.0.1.

  • Full details of the error message you see, or a detailed description of the problem you experience.

Unable to open Jupyter on host device, device is connected to wifi via ethernet, host pc is connected via WiFi. I am using cutecom serial console and UART connection between device and host to log.

[14:14:38:041] xilinx@pynq:~$ ifconfig -a␍␊
[14:14:55:542] <0x1b>[?2004l␍dummy0: flags=130<BROADCAST,NOARP>  mtu 1500␍␊
[14:14:55:574]         ether 52:75:6b:54:fd:f6  txqueuelen 1000  (Ethernet)␍␊
[14:14:55:574]         RX packets 0  bytes 0 (0.0 B)␍␊
[14:14:55:574]         RX errors 0  dropped 0  overruns 0  frame 0␍␊
[14:14:55:590]         TX packets 0  bytes 0 (0.0 B)␍␊
[14:14:55:590]         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0␍␊
[14:14:55:590] ␍␊
[14:14:55:590] eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500␍␊
[14:14:55:606]         inet 192.168.1.63  netmask 255.255.255.0  broadcast 192.168.1.255␍␊
[14:14:55:606]         inet6 fe80::2039:4eff:feb8:aeba  prefixlen 64  scopeid 0x20<link>␍␊
[14:14:55:622]         ether 22:39:4e:b8:ae:ba  txqueuelen 1000  (Ethernet)␍␊
[14:14:55:622]         RX packets 65  bytes 7198 (7.1 KB)␍␊
[14:14:55:622]         RX errors 0  dropped 0  overruns 0  frame 0␍␊
[14:14:55:622]         TX packets 84  bytes 10473 (10.4 KB)␍␊
[14:14:55:638]         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0␍␊
[14:14:55:638]         device interrupt 37  ␍␊
[14:14:55:638] ␍␊
[14:14:55:638] eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500␍␊
[14:14:55:638]         inet 192.168.2.99  netmask 255.255.255.0  broadcast 192.168.2.255␍␊
[14:14:55:654]         ether 22:39:4e:b8:ae:ba  txqueuelen 1000  (Ethernet)␍␊
[14:14:55:654]         device interrupt 37  ␍␊
[14:14:55:654] ␍␊
[14:14:55:654] lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536␍␊
[14:14:55:670]         inet 127.0.0.1  netmask 255.0.0.0␍␊
[14:14:55:670]         inet6 ::1  prefixlen 128  scopeid 0x10<host>␍␊
[14:14:55:670]         loop  txqueuelen 1000  (Local Loopback)␍␊
[14:14:55:670]         RX packets 126  bytes 17610 (17.6 KB)␍␊
[14:14:55:686]         RX errors 0  dropped 0  overruns 0  frame 0␍␊
[14:14:55:686]         TX packets 126  bytes 17610 (17.6 KB)␍␊
[14:14:55:686]         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0␍␊
[14:14:55:702] ␍␊
[14:14:55:702] sit0: flags=128<NOARP>  mtu 1480␍␊
[14:14:55:702]         sit  txqueuelen 1000  (IPv6-in-IPv4)␍␊
[14:14:55:702]         RX packets 0  bytes 0 (0.0 B)␍␊
[14:14:55:702]         RX errors 0  dropped 0  overruns 0  frame 0␍␊
[14:14:55:718]         TX packets 0  bytes 0 (0.0 B)␍␊
[14:14:55:718]         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0␍␊

I can ping the boards dynamic IP from host computer, I can also ping the pc from the device. I can however, not ping the boards static ip, which is 192.168.2.99, which is how I connect to JupyterLab. I noticed that in existing solutions communication was most not possible from board to host pc due to firewall issues, this is not the case here.

Going to https://192.168.2.99 or https://192.168.2.99/lab or https://192.168.2.99:8888 doesn’t work either.

Checking Jupyter status, seems to suggest everything okay on the jupyter end.



[14:48:09:160] <0x1b>[?2004hxilinx@pynq:~$ systemctl status jupyter.service␍␊
[14:48:13:926] <0x1b>[?2004l␍␍<0x1b>[0;1;32m<0xe2><0x97><0x8f><0x1b>[0m jupyter.service - Jupyter Notebook Server<0x1b>[m␍␊
[14:48:13:957]      Loaded: loaded (/lib/systemd/system/jupyter.service; enabled; vendor prese<0x1b>[m<0x1b>[7m><0x1b>[27m␍␊
[14:48:13:957]      Active: <0x1b>[0;1;32mactive (running)<0x1b>[0m since Mon 2023-09-25 21:37:31 UTC; 10min ago<0x1b>[m␍␊
[14:48:13:974]     Process: 407 ExecStart=/usr/local/bin/start_jupyter.sh (code=exited, status<0x1b>[m<0x1b>[7m><0x1b>[27m␍␊
[14:48:13:974]       Tasks: 2 (limit: 4561)<0x1b>[m␍␊
[14:48:13:974]      Memory: 156.2M<0x1b>[m␍␊
[14:48:13:990]         CPU: 10.437s<0x1b>[m␍␊
[14:48:13:990]      CGroup: /system.slice/jupyter.service<0x1b>[m␍␊
[14:48:13:990]              <0xe2><0x94><0x9c><0xe2><0x94><0x80>603 /usr/local/share/pynq-venv/bin/python3 /usr/local/share/pynq<0x1b>[m<0x1b>[7m><0x1b>[27m␍␊
[14:48:14:006]              <0xe2><0x94><0x94><0xe2><0x94><0x80>947 python3 /usr/local/bin/redirect_server<0x1b>[m␍␊
[14:48:14:006] <0x1b>[m␍␊
[14:48:14:006] Sep 25 21:37:23 pynq start_jupyter.sh[407]: Waiting for Jupyter<0x1b>[m␍␊
[14:48:14:006] Sep 25 21:37:24 pynq start_jupyter.sh[407]: Waiting for Jupyter<0x1b>[m␍␊
[14:48:14:022] Sep 25 21:37:25 pynq start_jupyter.sh[407]: Waiting for Jupyter<0x1b>[m␍␊
[14:48:14:022] Sep 25 21:37:26 pynq start_jupyter.sh[407]: Waiting for Jupyter<0x1b>[m␍␊
[14:48:14:022] Sep 25 21:37:27 pynq start_jupyter.sh[407]: Waiting for Jupyter<0x1b>[m␍␊
[14:48:14:037] Sep 25 21:37:28 pynq start_jupyter.sh[407]: Waiting for Jupyter<0x1b>[m␍␊
[14:48:14:037] Sep 25 21:37:29 pynq start_jupyter.sh[407]: Waiting for Jupyter<0x1b>[m␍␊
[14:48:14:054] Sep 25 21:37:30 pynq start_jupyter.sh[407]: Waiting for Jupyter<0x1b>[m␍␊
[14:48:14:054] Sep 25 21:37:31 pynq start_jupyter.sh[407]: Starting redirect server<0x1b>[m␍␊
[14:48:14:054] Sep 25 21:37:31 pynq systemd[1]: Started Jupyter Notebook Server.<0x1b>[m␍␊
[14:48:14:070] <0x1b>[7mlines 1-21/21 (END)<0x1b>[27m<0x1b>[K

I set up my static IP through the GUI by going to WiFi>MyConnection>IPv4> and providing address, subnet mask, and gateway, as well as making DHCP to 8.8.8.8, 8.8.4.4. Which is different method than what the Assign your computer a static IP address suggests.

So first I checked my Ip a and ifconfig -a on host computer.


tiami-manu@tiamimanu-Zenbook-UX535QE-UM535QE:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether c4:23:60:ea:b4:6a brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global noprefixroute wlp3s0
       valid_lft forever preferred_lft forever
    inet6 fe80::1741:52dd:a17f:38e0/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:21:55:48:2f brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
tiami-manu@tiamimanu-Zenbook-UX535QE-UM535QE:~$ ifconfig -a
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:21:55:48:2f  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

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

wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::1741:52dd:a17f:38e0  prefixlen 64  scopeid 0x20<link>
        ether c4:23:60:ea:b4:6a  txqueuelen 1000  (Ethernet)
        RX packets 16920  bytes 8948010 (8.9 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8956  bytes 2139369 (2.1 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

And edited the interfance file using
sudo gedit /etc/network/interfaces

Output:

auto lo eth0 
iface lo inet loopback
iface eth0 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        gateway 192.168.1.1

I noticed this only includes my eth, not WiFi which is how my board would ping to the device, any help here is highly appreciated!

Hi @manudwd,

Welcome to the PYNQ community.

Have you tried connecting to 192.168.1.63:8888/lab?

Best,
Mario

Hi @marioruiz
Thanks for the welcome! :slight_smile:
I have tried that as well to no success, and my current suspicions are on how my sudo gedit /etc/network/interfaces is organized, I did try adding the dhcp=no entry as well but that didn’t help either. I did however have a question about how I assigned the static IP. Since I used the GUI to assign static IP, shouldn’t the sudo gedit /etc/network/interfaces correspond to it? And since they are not showing the same entries (unless I changed them myself) could that be a possible cause?

Thanks again.

Hi @manudwd,

I suggest you go back to the configuration where you can ping the board dynamic IP. And then use that IP to connect to Jupyter.

Best,
Mario

@marioruiz I thought I can only connect to the board using the static IP, that is not the case?

that is not the case?

No, that’s not the case. You can also connect using the dynamic IP.

You will only be able to connect to the static IP if you are also in the same sub network as this IP.

1 Like

@marioruiz That sounds great! I’ll update you the progress, thank you!

@marioruiz That is absolutely correct, hurrah! Thank you!

1 Like