Host OS: Windows11 21H2(22000.556)
VM: WSL2 Ubuntu 20.04
Petalinux Ver: 2021.2
Board: Zynq Ultrascale+ zcu104
Windows Terminal(혹은 PowerShell) 을 관리자권한으로 실행하여 아래 명령어를 입력한다.
wsl --install
Default로 Ubuntu가 설치되지만, 특정 Linux Distribution을 선택하여 설치할수도 있다. Ubuntu를 그대로 사용한다.
https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded-design-tools.html
위의 링크로 이동하여 2021.2 버전의 PetaLinux Tools - Installer 를 다운로드한다.
사용할 보드에 맞는 bsp도 설치한다. zcu104 보드를 사용할 것이므로 해당 BSP도 다운로드한다.
ftp 등을 사용하여 wsl2로 위의 파일을 옮긴다. MobaXterm을 사용하여 파일을 전송했다.
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가 설치된 것을 볼 수 있다.
환경 세팅을 위해 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를 사용할 수 있다.
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