Instalarea petalinux pe Windows WSL

De la YO3ITI
Sari la navigare Sari la căutare

Instalarea AMD PetaLinux 2025.2 pe WSL2 (Ubuntu 22.04 LTS)

Introducere

Acest ghid descrie instalarea și configurarea suitei AMD PetaLinux 2025.2 într-un mediu WSL2 (Windows Subsystem for Linux), utilizând distribuția Ubuntu 22.04 LTS pe Windows 11.

Scopul este configurarea unui mediu de dezvoltare pentru compilarea imaginilor Linux destinate plăcii Digilent Arty Z7-20, bazată pe dispozitivul AMD/Xilinx Zynq-7000.

Mediul de dezvoltare va utiliza:

  • Windows 11 ca sistem de operare gazdă;
  • WSL2 pentru executarea distribuției Ubuntu;
  • Ubuntu 22.04 LTS pentru instalarea PetaLinux;
  • AMD PetaLinux 2025.2 pentru configurarea și compilarea sistemului Linux;
  • AMD Vivado 2025.2 pentru proiectarea și generarea configurației hardware;
  • Visual Studio Code pentru editarea fișierelor și administrarea proiectului.

Important: Ubuntu 22.04.3, 22.04.4 și 22.04.5 LTS sunt versiuni acceptate pentru PetaLinux 2025.2, însă WSL2 nu este un mediu de compilare certificat explicit de AMD. Configurația prezentată trebuie considerată experimentală.

Cerințe hardware și software

Componentă Recomandare
Sistem de operare Windows 11
Subsistem Linux WSL2
Distribuție Linux Ubuntu 22.04 LTS
PetaLinux 2025.2
Vivado 2025.2
Arhitectură țintă Zynq-7000, ARM Cortex-A9
Placă de dezvoltare Digilent Arty Z7-20
Memorie RAM Minimum 8 GB, preferabil 16–32 GB
Procesor Minimum 8 nuclee conform recomandărilor AMD
Spațiu liber Minimum 100 GB
Editor Visual Studio Code cu extensia WSL

Este recomandată păstrarea proiectelor în sistemul de fișiere Linux, de exemplu în /home/tom, și nu în directoare montate din Windows, precum /mnt/c.

Această abordare oferă performanțe mai bune la compilare și reduce riscul problemelor legate de permisiuni, legături simbolice și metadatele fișierelor.

Pornirea Ubuntu în WSL2

Deschidem Windows PowerShell și verificăm distribuțiile instalate:

wsl --list --verbose

Exemplu de rezultat:

  NAME            STATE           VERSION
* Ubuntu-22.04    Running         2

Coloana VERSION trebuie să indice valoarea 2.

Pornim Ubuntu:

wsl -d Ubuntu-22.04 --cd ~

Verificăm versiunea distribuției:

lsb_release -a

Verificăm arhitectura procesorului:

uname -m

Rezultatul trebuie să fie:

x86_64

Actualizarea Ubuntu

Înaintea instalării PetaLinux, actualizăm lista pachetelor și aplicațiile instalate:

sudo apt update
sudo apt upgrade -y

Opțional, eliminăm pachetele care nu mai sunt necesare:

sudo apt autoremove -y

Instalarea dependențelor

PetaLinux utilizează infrastructura Yocto Project și necesită numeroase instrumente GNU/Linux.

Instalăm dependențele uzuale:

sudo apt install -y \
  build-essential gcc g++ gcc-multilib \
  git git-core make cmake \
  gawk diffstat chrpath socat cpio \
  python3 python3-pip python3-pexpect \
  python3-git python3-jinja2 \
  python3-setuptools \
  wget curl unzip tar xz-utils gzip \
  iproute2 net-tools iputils-ping \
  libncurses5-dev libssl-dev zlib1g-dev \
  flex bison autoconf automake libtool \
  texinfo screen pax debianutils \
  libselinux1 gnupg xterm

Lista reprezintă un set practic de dependențe uzuale. Pentru cerințele exacte ale versiunii PetaLinux 2025.2 trebuie consultate și notele oficiale AMD privind pachetele necesare.

Rolul principalelor pachete

Pachet Funcționalitate
build-essential Compilatoare și utilitare pentru dezvoltarea software
gcc, g++ Compilatoare C și C++
gcc-multilib Suport pentru compilarea unor componente pe 32 de biți
git Gestionarea codului sursă
make, cmake Automatizarea procesului de compilare
gawk Procesarea textului
diffstat Analiza diferențelor dintre fișiere și patch-uri
chrpath Modificarea căilor RPATH ale executabilelor ELF
socat Comunicații între procese și socketuri
cpio Manipularea arhivelor utilizate la construirea imaginilor Linux
python3 Execuția scripturilor Python din PetaLinux și Yocto
python3-pexpect Automatizarea aplicațiilor interactive
flex, bison Generatoare de analizatoare lexicale și sintactice
libssl-dev Biblioteci OpenSSL pentru dezvoltare
libncurses5-dev Suport pentru interfețe interactive în terminal

Configurarea interpretorului Bash

PetaLinux necesită ca /bin/sh să utilizeze interpretorul Bash.

Verificăm configurația actuală:

ls -l /bin/sh

Dacă rezultatul indică:

/bin/sh -> dash

executăm:

sudo dpkg-reconfigure dash

La întrebarea:

Use dash as the default system shell (/bin/sh)?

selectăm No.

Verificăm din nou:

ls -l /bin/sh

Rezultatul așteptat:

/bin/sh -> bash

Observație: această modificare afectează interpretarea scripturilor care utilizează /bin/sh în distribuția Ubuntu respectivă.

Descărcarea PetaLinux 2025.2

Installerul PetaLinux poate fi descărcat de pe pagina oficială AMD:

Selectăm installerul pentru PetaLinux 2025.2.

Descărcarea poate necesita autentificarea într-un cont AMD.

Descărcarea directă cu wget

Putem descărca installerul direct în Ubuntu WSL2, fără a utiliza directorul Downloads din Windows.

Mai întâi creăm directorul destinat fișierelor descărcate:

mkdir -p ~/downloads
cd ~/downloads

Dacă avem un URL direct valid către installer, executăm:

wget -c --content-disposition \
  "URL_DIRECT_CĂTRE_INSTALLER"

Parametrii utilizați:

Parametru Funcționalitate
-c Reia o descărcare întreruptă, dacă serverul permite
--content-disposition Utilizează numele de fișier furnizat de server prin antetul HTTP Content-Disposition

Important: AMD poate utiliza mecanisme de autentificare și redirecționare pentru descărcarea installerului. Din acest motiv, un URL copiat din browser nu garantează funcționarea comenzii wget.

Copierea installerului din Windows

Dacă descărcarea directă nu funcționează, putem descărca fișierul folosind browserul Windows și apoi îl putem copia în WSL2.

# Creăm directorul pentru descărcări.
mkdir -p ~/downloads

# Copiem installerul din Windows.
cp /mnt/c/Users/UTILIZATOR_WINDOWS/Downloads/petalinux-v2025.2*-installer.run \
  ~/downloads/

Înlocuim UTILIZATOR_WINDOWS cu numele corespunzător utilizatorului Windows.

Verificăm fișierul:

ls -lh ~/downloads/

Verificarea integrității installerului

După descărcare, este recomandată verificarea integrității installerului.

Pentru calcularea sumei MD5:

md5sum ~/downloads/petalinux-v2025.2*-installer.run

Valoarea calculată trebuie comparată cu suma de verificare publicată de AMD pentru fișierul descărcat.

Instalarea PetaLinux

Vom instala PetaLinux în directorul:

/home/tom/petalinux/2025.2

Creăm directorul de instalare:

mkdir -p ~/petalinux/2025.2

Accesăm directorul care conține installerul:

cd ~/downloads

Acordăm drepturi de execuție:

chmod +x petalinux-v2025.2*-installer.run

Instalarea standard

Executăm:

./petalinux-v2025.2*-installer.run \
  --dir "$HOME/petalinux/2025.2" \
  --platform arm

Opțiunea --platform arm selectează componentele necesare platformelor ARM Zynq, inclusiv Zynq-7000.

Pentru placa Digilent Arty Z7-20, această platformă este suficientă.

Instalarea cu afișarea detaliată a operațiunilor

Installerul acceptă opțiunea -D, care activează afișarea detaliată a operațiunilor în terminal.

De asemenea, putem utiliza opțiunea --log pentru specificarea fișierului jurnal.

./petalinux-v2025.2*-installer.run \
  --dir "$HOME/petalinux/2025.2" \
  --platform arm \
  -D \
  --log "$HOME/petalinux-install.log"

Instalarea cu păstrarea întregii ieșiri din terminal

Pentru diagnosticarea eventualelor probleme, putem utiliza și comanda tee.

# Propagăm codul de eroare al installerului
# prin conducta către tee.
set -o pipefail

# Executăm instalarea cu jurnalizare completă.
./petalinux-v2025.2*-installer.run \
  --dir "$HOME/petalinux/2025.2" \
  --platform arm \
  -D \
  --log "$HOME/petalinux-install.log" \
  2>&1 | tee "$HOME/petalinux-console.log"

Această comandă generează două fișiere jurnal:

Fișier Conținut
~/petalinux-install.log Jurnalul generat de installer
~/petalinux-console.log Mesajele afișate în terminal, inclusiv ieșirea standard și mesajele de eroare

Expresia 2>&1 redirecționează ieșirea de eroare standard către ieșirea standard, permițând comenzii tee să înregistreze ambele fluxuri.

Opțiunea pipefail permite detectarea erorilor installerului chiar dacă ieșirea sa este transmisă către tee.

Monitorizarea instalării

Putem monitoriza jurnalul dintr-un al doilea terminal Ubuntu:

tail -f ~/petalinux-console.log

Opțiunea -f permite afișarea continuă a liniilor adăugate în fișier.

Parametrii installerului

Parametru Funcționalitate
--dir Specifică directorul în care va fi instalat PetaLinux
-p, --platform Selectează arhitectura țintă
--platform arm Instalează componentele pentru dispozitivele Zynq
--platform aarch64 Instalează componentele pentru Zynq UltraScale+ MPSoC și Versal
-D Activează afișarea detaliată în terminal
--log Specifică fișierul jurnal
-y Acceptă automat solicitările installerului, inclusiv acceptarea licențelor

Atenție: instalarea PetaLinux trebuie executată folosind un utilizator obișnuit, nu utilizatorul root. Nu utilizăm sudo pentru executarea installerului.

Activarea mediului PetaLinux

După finalizarea instalării, trebuie încărcate variabilele de mediu necesare.

Executăm:

source ~/petalinux/2025.2/settings.sh

Scriptul configurează variabilele de mediu și actualizează PATH pentru utilizarea instrumentelor PetaLinux.

Verificăm variabila principală:

echo $PETALINUX

Rezultat așteptat:

/home/tom/petalinux/2025.2

Verificăm disponibilitatea comenzii de compilare:

which petalinux-build

Apoi executăm:

petalinux-build --help

Dacă este afișat mesajul de ajutor al comenzii, mediul PetaLinux a fost inițializat corect.

Activarea mediului în sesiunile următoare

La deschiderea unui terminal Ubuntu nou, mediul trebuie activat din nou:

source ~/petalinux/2025.2/settings.sh

Pentru simplificare, putem defini un alias în fișierul ~/.bashrc:

echo "alias petalinux-env='source ~/petalinux/2025.2/settings.sh'" \
  >> ~/.bashrc

Reîncărcăm configurația Bash:

source ~/.bashrc

Ulterior, mediul poate fi activat simplu:

petalinux-env

Avantajul acestui mecanism este că mediul PetaLinux se activează numai la cerere.

Organizarea directoarelor

Este recomandată separarea instalării PetaLinux de proiectele utilizatorului.

O structură posibilă este:

/home/tom/
|
+-- petalinux/
|   +-- 2025.2/
|
+-- downloads/
|   +-- petalinux-v2025.2-...-installer.run
|
+-- projects/
    +-- arty-z7-iq/
        +-- project-spec/
        +-- components/
        +-- build/
        +-- images/

Această organizare permite păstrarea mai multor versiuni PetaLinux, fără amestecarea acestora cu fișierele proiectelor.

Creăm directorul pentru proiecte:

mkdir -p ~/projects

Copierea unui proiect PetaLinux existent

Dacă avem deja un proiect PetaLinux funcțional pe o altă mașină Ubuntu, acesta poate fi transferat în WSL2.

Transferul prin SCP

scp -r tom@IP_UBUNTU:/cale/catre/proiect \
  ~/projects/arty-z7-iq

Înlocuim adresa IP și calea către proiectul original.

Transferul prin rsync

Pentru proiecte de dimensiuni mari, putem utiliza rsync:

rsync -avh --progress \
  tom@IP_UBUNTU:/cale/catre/proiect/ \
  ~/projects/arty-z7-iq/

Avantajele utilizării rsync:

  • copierea incrementală a fișierelor;
  • păstrarea permisiunilor și a legăturilor simbolice;
  • evitarea retransmiterii fișierelor nemodificate;
  • posibilitatea reluării transferurilor întrerupte.

Important: copierea proiectului nu înlocuiește instalarea suitei PetaLinux. Instrumentele de compilare trebuie instalate separat în sistemul WSL2.

De asemenea, trebuie verificate eventualele căi absolute rămase din mediul original.

Compilarea proiectului PetaLinux

Activăm mediul:

source ~/petalinux/2025.2/settings.sh

Accesăm proiectul:

cd ~/projects/arty-z7-iq

Lansăm compilarea:

petalinux-build

Pentru mesaje suplimentare de diagnostic:

petalinux-build -v

Procesul de compilare poate include:

  • pregătirea codului sursă;
  • compilarea componentelor bootloader;
  • compilarea kernelului Linux;
  • generarea Device Tree;
  • compilarea pachetelor software;
  • generarea sistemului de fișiere rădăcină;
  • generarea imaginilor Linux.

Fișierele rezultate sunt plasate, în mod normal, în directorul:

<director_proiect>/images/linux/

Exemple de fișiere generate:

image.ub
rootfs.ext4
rootfs.tar.gz
system.dtb

Prezența fiecărui fișier depinde de configurația proiectului.

Atenție: pentru proiectele copiate de pe altă mașină trebuie verificate configurațiile Yocto și referințele către directoarele originale. Nu este recomandată ștergerea automată a directoarelor generate înaintea acestei verificări.

PetaLinux 2025.2 trebuie utilizat cu un design hardware exportat din Vivado 2025.2.

Integrarea cu Visual Studio Code

Visual Studio Code poate accesa direct fișierele Ubuntu prin intermediul extensiei WSL.

În Windows instalăm extensia oficială Microsoft WSL pentru Visual Studio Code.

Din terminalul Ubuntu executăm:

cd ~/projects/arty-z7-iq
code .

Visual Studio Code deschide proiectul într-o sesiune conectată la Ubuntu WSL2.

În terminalul integrat activăm PetaLinux:

source ~/petalinux/2025.2/settings.sh

În acest mod putem edita și compila:

  • fișiere de configurare PetaLinux;
  • rețete Yocto .bb și .bbappend;
  • fișiere Device Tree .dts și .dtsi;
  • scripturi Bash;
  • aplicații C/C++;
  • module pentru kernelul Linux.

Configurarea resurselor WSL2

Compilarea PetaLinux poate necesita resurse importante de memorie, procesor și stocare.

WSL2 permite configurarea acestora prin fișierul .wslconfig din directorul utilizatorului Windows.

Calea fișierului:

C:\Users\UTILIZATOR_WINDOWS\.wslconfig

Pentru un calculator cu 32 GB RAM, o configurație posibilă este:

[wsl2]
memory=20GB
processors=8
swap=8GB
Parametru Funcționalitate
memory Limita maximă de memorie RAM disponibilă pentru WSL2
processors Numărul de procesoare logice disponibile
swap Dimensiunea spațiului swap

După modificarea fișierului, executăm în Windows PowerShell:

wsl --shutdown

Repornim Ubuntu:

wsl -d Ubuntu-22.04

Verificarea resurselor

Verificăm memoria:

free -h

Verificăm spațiul disponibil pe disc:

df -h ~

Verificăm numărul de procesoare:

nproc

Este recomandată păstrarea unui spațiu liber de minimum 100 GB pentru compilarea PetaLinux și stocarea artefactelor Yocto.

Probleme posibile în WSL2

Problemă Cauză posibilă Soluție recomandată
Compilare foarte lentă Proiectul este plasat în /mnt/c Mutarea proiectului în sistemul de fișiere Linux, de exemplu /home/tom/projects
Erori de permisiuni Proprietar sau permisiuni incorecte Verificarea permisiunilor și a proprietarului fișierelor
Procese terminate neașteptat Memorie RAM insuficientă Creșterea resurselor WSL2 sau reducerea paralelismului compilării
Erori privind căile Referințe absolute din proiectul original Verificarea configurațiilor proiectului și a căilor
Erori de descărcare Yocto Probleme DNS, proxy sau conectivitate Verificarea accesului la Internet
Comanda petalinux-build nu este găsită Mediul PetaLinux nu este activat Executarea scriptului settings.sh
Erori ale unor instrumente AMD Incompatibilități specifice WSL2 Repetarea testului într-un mediu Ubuntu nativ

Verificarea finală a instalării

După instalare, executăm următoarele comenzi:

# Verificăm distribuția Ubuntu.
lsb_release -a

# Verificăm arhitectura.
uname -m

# Activăm PetaLinux.
source ~/petalinux/2025.2/settings.sh

# Verificăm variabila de mediu.
echo $PETALINUX

# Verificăm executabilul.
which petalinux-build

# Verificăm funcționarea comenzii.
petalinux-build --help

# Verificăm memoria.
free -h

# Verificăm spațiul liber.
df -h ~

Dacă petalinux-build --help funcționează, instalarea și inițializarea mediului PetaLinux sunt operaționale.

Totuși, această verificare nu garantează compilarea cu succes a unui proiect complet în WSL2.

Utilizarea PetaLinux în proiectul Arty Z7-20

Pentru proiectul de procesare a semnalelor I/Q, arhitectura propusă este:

Raspberry Pi 5
    |
    | Ethernet / UDP
    v
PetaLinux - Zynq ARM Cortex-A9
    |
    | AXI DMA
    v
FPGA - Programmable Logic
    |
    +-- Loopback
    |
    +-- Frequency shifting
    |
    +-- Filtering
    |
    +-- Doppler correction

În această arhitectură, PetaLinux gestionează comunicația Ethernet, buffer-ele de date, transferurile DMA și aplicațiile care rulează pe procesoarele ARM.

FPGA-ul execută operațiunile de procesare digitală a semnalelor.

Vivado 2025.2 poate rămâne instalat nativ în Windows 11, iar PetaLinux 2025.2 poate fi utilizat în Ubuntu WSL2.

Pentru proiectul existent este recomandată:

  • păstrarea configurației funcționale pe mașina Ubuntu originală;
  • copierea proiectului într-un director independent în WSL2;
  • verificarea compatibilității cu PetaLinux 2025.2;
  • verificarea căilor absolute din configurațiile Yocto;
  • compilarea și verificarea imaginilor generate;
  • testarea imaginilor pe placa Arty Z7-20.

Referințe