RFSoC 4x2 PYNQ remote Build

Hi,

I am trying to build PYNQ remote environment for RFSoC 4x2. Using the guidance given in the link:

Building pynq.remote image checkenv error [RFSoC 4x2].

I build the image without errors and with some warnings given below:

WARNING: zocl-202410.2.17.0-r0 do_package_qa: QA Issue: Recipe LICENSE includes obsolete licenses GPLv2 [obsolete-license]
WARNING: zocl-202410.2.17.0-r0 do_package_qa: QA Issue: File /lib/modules/6.6.10-xilinx-v2024.1-g75b3d98879e8/updates/zocl.ko in package kernel-module-zocl-6.6.10-xilinx-v2024.1-g75b3d98879e8 contains reference to TMPDIR [buildpaths]
WARNING: pynq-cpp-1.0-r0 do_package_qa: QA Issue: File /usr/bin/.debug/pynq-remote in package pynq-cpp-dbg contains reference to TMPDIR [buildpaths]
WARNING: pynq-cpp-1.0-r0 do_package_qa: QA Issue: File /usr/bin/pynq-remote in package pynq-cpp contains reference to TMPDIR [buildpaths]

WARNING: XSCT has been deprecated. It will still be available for several releases. In the future, it's recommended to start new projects with SDT workflow.

I tried using dd(disk dump) and Balena Etcher to write the SD card. However, it seems it can’t write the output image to the SD card properly.

image

When I turn on the device, the jupyter environment doesn’t exist. I was able to access the terminal with Minicom connection. It showed me three things:

  1. I used dd and Balena Etcher to flash the SD card, but the verification process suggests the image may not be writing correctly. Upon booting the RFSoC 4x2, I observed the following in the serial console:

    U-Boot Error:

Loading Environment from FAT... *** Error - No Valid Environment Area found *** Warning - bad env area, using default environment
  1. I believe I can only connect to the board using the ethernet connection remotely, as the USB3 connection doesn’t show up in the connection configuration.
RFSoC4x2:~$ ifconfig                                                            
dummy0    Link encap:Ethernet  HWaddr D6:DE:BC:05:13:BC                         
          inet6 addr: fe80::d4de:bcff:fe05:13bc/64 Scope:Link                   
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1                        
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0                    
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0                  
          collisions:0 txqueuelen:1000                                          
          RX bytes:0 (0.0 B)  TX bytes:1885 (1.8 KiB)    
                       
eth0      Link encap:Ethernet  HWaddr FC:C2:3D:36:D6:78                         
          UP BROADCAST MULTICAST  MTU:1500  Metric:1                            
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0                    
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0                  
          collisions:0 txqueuelen:1000                                          
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)                                
          Interrupt:45    
                                                      
lo        Link encap:Local Loopback                                             
          inet addr:127.0.0.1  Mask:255.0.0.0                                   
          inet6 addr: ::1/128 Scope:Host                                        
          UP LOOPBACK RUNNING  MTU:65536  Metric:1                              
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0                    
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0                  
          collisions:0 txqueuelen:1000                                          
          RX bytes:140 (140.0 B)  TX bytes:140 (140.0 B)
  1. I have a pynq-remote service running. Output is given below; there might be some character issues with Minicom, I think.
RFSoC4x2:~$ sudo systemctl status pynq-remote

● pynq-remote.service - PYNQ Remote Server Application
     Loaded: loaded (/lib/systemd/system/pynq-remote.service; enabled; preset: enabled)
     Active: active (running) since Tue 2026-02-17 19:09:38 UTC; 4min 38s ago
   Main PID: 561 (pynq-remote)
      Tasks: 7 (limit: 4557)
     Memory: 18.5M
     CGroup: /system.slice/pynq-remote.service
             └─561 /usr/bin/pynq-remote

Feb 17 19:09:38 RFSoC4x2 systemd[1]: Started PYNQ Remote Server Application.
Feb 17 19:09:39 RFSoC4x2 pynq-remote[561]: device name: edge
Feb 17 19:09:39 RFSoC4x2 pynq-remote[561]: Server listening on 0.0.0.0:7967

Can you help me with the remote PYNQ build please?

Best

Hi @mtsanic

The PYNQ.remote images do not contain the Jupyter webserver. That is only on the classic PYNQ images.

To interact with PYNQ.remote you need to install Jupyter on your host computer instead.

From a terminal on your host computer in a project directory run:

python -m venv .venv
source .venv/bin/activate
export PYNQ_REMOTE=1

pip install jupyterlab matplotlib pynq
python -m jupyterlab

Then from the Jupyter notebook run something like this:

import os
os.environ["PYNQ_REMOTE_DEVICES"] = "YOUR_BOARD_IP" # e.g. "192.168.0.123"

from pynq import Overlay
ol = Overlay("path_to_your_xsa.xsa")
print(ol.ip_dict)

I think it’s about time we write a blog post about this, so look out for that soon! But for now, hopefully this is enough info to get you started.

Thanks,

Josh

Hi @joshgoldsmith

Thanks for clearing that up, really appreciate it!

Can you confirm whether the U-boot error is an issue? Is there a way to fix the USB3 connection on to get an ip address?

Best

Hi @mtsanic

Glad that helped!

WRT u-boot message, I think this is a warning rather than an actual error (despite it saying otherwise). See this forum post for more info.

Thanks,

Josh