Petalinux on WSL2 Ubuntu

Chulwoo Lee·2022년 4월 5일
0

개발 환경

Host OS: Windows11 21H2(22000.556)
VM: WSL2 Ubuntu 20.04
Petalinux Ver: 2021.2
Board: Zynq Ultrascale+ zcu104

WSL2 설치

Windows Terminal(혹은 PowerShell) 을 관리자권한으로 실행하여 아래 명령어를 입력한다.

wsl --install

Default로 Ubuntu가 설치되지만, 특정 Linux Distribution을 선택하여 설치할수도 있다. Ubuntu를 그대로 사용한다.

Petalinux Installer 설치

필요 파일 다운로드

https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded-design-tools.html
위의 링크로 이동하여 2021.2 버전의 PetaLinux Tools - Installer 를 다운로드한다.

사용할 보드에 맞는 bsp도 설치한다. zcu104 보드를 사용할 것이므로 해당 BSP도 다운로드한다.

Ubuntu로 파일 전송

ftp 등을 사용하여 wsl2로 위의 파일을 옮긴다. MobaXterm을 사용하여 파일을 전송했다.

Installer 실행

petalinux installer의 실행권한을 바꾸고, 실행한다.

chmod u+x petalinux-v2021.2-final-installer.run
mkdir Petalinux
./petalinux-v2021.2-final-installer.run -d ./Petalinux/

아래와 같이 gcc가 없어 에러가 발생한다.

ERROR: GCC is not installed - unable to continue.  Please install and retry
WARNING: Please install required packages.

gcc를 설치하고 다시 실행한다.

sudo apt-get install gcc
./petalinux-v2021.2-final-installer.run

아래와 같이 필요한 시스템 툴을 나열해준다.

ERROR: You are missing the following system tools required by PetaLinux:

 - netstat => net-tools로 설치
 - xterm
 - autoconf
 - libtool
 - texinfo
 - zlib1g-dev
 - gcc-multilib
 - build-essential
 - ncurses-dev
 - libncurses5-dev

위의 툴들을 모두 설치한다.

설치 도중 zlib1g-dev:i386이 설치가 안되었는데, 아래 과정을 통해 해결하였다.

sudo dpkg --add-architechture i386
sudo apt-get update
sudo apt-get install -y zlib1g:i386

위의 dependecy들을 모두 설치하고 나면 정상적으로 installer가 실행된다.

License들에 동의하고 나면, Petalinux SDK가 설치된 것을 볼 수 있다.

Petalinux Build

환경 세팅을 위해 settings.sh를 source 해주고, Petalinux 폴더로 이동하여 petalinux를 build 한다.

source settings.sh
cd Petalinux
petalinux-build

build가 되지 않고 아래와 같은 에러가 발생하였다.

해결하기위해 아래 dependency를 설치한다.

sudo apt-get install libtinfo5

빌드 중 아래와 같이 파일을 가져오지 못하는 에러가 발생하였다. 이거저거 시도해보다 http://로 시작되는 링크를 wget할 때 어떤 이유에선지(아마 방화벽) 불러오지 못함을 알게 되었다. 따라서 url의 http를 https로 변경해줄 필요가 있다. petalinux-config를 실행하여 url을 수정한다.

petalinux-config
YOCTO_MACHINE_NAME >> Add pre-mirror url >> http를 https로 수정
YOCTO_MACHINE_NAME >> Network sstate feeds URL >> http를 https로 수정


configuration을 수정한 후 저장해준 다음, clean build를 해준다.

petalinux-build -x clean
petalinux-build


빌드가 완료되면 아래와 같이 images/linux/ 폴더 안에 파일들이 생성된다.

위의 파일 중 image.ub에 리눅스 커널이 포함되어 있다.

위의 파일들을 이용해 BOOT.BIN 파일을 생성한다.

 petalinux-package --boot --fsbl ./zynqmp_fsbl.elf --fpga ./system.bit --u-boot --pmufw ./pmufw.elf --atf ./bl31.elf

이제 SD Card에 image.ub파일과 BOOT.BIN파일을 옮겨 보드에서 실행하면 Petalinux를 사용할 수 있다.

Ref

https://www.youtube.com/watch?v=k03r2Ud42jY
https://wiki.trenz-electronic.de/display/PD/Xilinx+Tools+and+Win10+WSL
http://petalinux.xilinx.com/sswreleases/rel-v2021/downloads/
https://wiki.trenz-electronic.de/display/PD/Petalinux+Troubleshoot
https://wiki.trenz-electronic.de/display/PD/PetaLinux

profile
Student.

0개의 댓글