Instalarea petalinux pe Windows WSL: Diferență între versiuni
| Linia 135: | Linia 135: | ||
wget curl unzip tar xz-utils gzip \ | wget curl unzip tar xz-utils gzip \ | ||
iproute2 net-tools iputils-ping \ | iproute2 net-tools iputils-ping \ | ||
libtinfo5 \ | |||
libncurses5-dev libssl-dev zlib1g-dev \ | libncurses5-dev libssl-dev zlib1g-dev \ | ||
flex bison autoconf automake libtool \ | flex bison autoconf automake libtool \ | ||
Versiunea curentă din 8 noiembrie 2026 00:39
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 ~
NOTĂ: această comandă poate fi folosită pentru re-conectarea la o instanță Ubuntu WSL dacă terminalul PowerShell a fost închis accidental.
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 \
libtinfo5 \
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.