PetaLinux 빌드 환경 구성
지난 포스팅에서 설치한 petalinux sdk를 사용할 수 있도록 환경 구성 스크립트(.sh)를 먹인다.
source /opt/pkg/petalinux/settings.sh
아래와 같은 메세지가 출력되어야 정상이다.
PetaLinux environment set to '/opt/pkg/petalinux'
WARNING: /bin/sh is not bash!
bash is PetaLinux recommended shell. Please set your default shell to bash.
WARNING: This is not a supported OS
INFO: Checking free disk space
INFO: Checking installed tools
INFO: Checking installed development libraries
INFO: Checking network and other services
PetaLinux Project 생성
아래의 명령을 이용해 petalinux 프로젝트를 생성한다.
이 예제에서는 프로젝트 이름을 artyz7으로 사용한다.
명령어 실행 뒤에는 실행 경로에 프로젝트 이름으로 폴더가 생성된다.
petalinux-create --type project --template zynq --name artyz7
cd artyz7
이후, SDK의 H/W 구성 정보를 설정한다.
지난 포스팅에서 vivado를 이용해 .XSA 파일을 생성하였는데, 이 파일을 이용해 자동으로 H/W 구성을 편집한다.
--get-hw-description 뒤쪽에 .XSA 파일이 존재하는 경로를 적어준다.
petalinux-config --get-hw-description ../arty-z7-20/
명령을 수행하면 아래와 같이 menuconfig창이 출력이 되는데, 특별히 수정할 부분은 없다.
Save 이후 Exit 버튼을 눌러 빠져 나온다.
아래와 같은 메세지가 출력되어야 정상이다.
petalinux-config --get-hw-description ../arty-z7-20/
[INFO] Sourcing buildtools
[INFO] Getting hardware description...
INFO: Renaming design_1_wrapper.xsa to system.xsa
[INFO] Menuconfig project
[INFO] Silentconfig rootfs
[INFO] Generating workspace directory
[INFO] Successfully configured project
PetaLinux Build
모든 구성을 마쳤으니, PetaLinux를 빌드해본다.
빌드에 사용되는 명령어는 매우 간단하다.
petalinux-build
아래와 같은 화면이 출력된다.
Yocto Project를 이용해 BSP(linux, u-boot)와 root filesystem을 빌드한다.
PC의 성능에 따라 시간이 상당히 소요되며, i9 cpu 기준 약 2시간이 소요되었다.
빌드가 완료되면 ''[INFO] Successfully built project" 메세지가 출력된다.
Boot Image 생성
빌드된 linux, u-boot, root filesystem을 하나의 이미지(.wic) 파일로 묶어주는 작업이 필요하다.
아래의 명령을 통해 wic 파일을 생성한다.
petalinux-package --boot --fsbl ./images/linux/zynq_fsbl.elf --fpga ./images/linux/system.bit --u-boot
petalinux-package --wic --bootfiles "BOOT.BIN image.ub system.dtb boot.scr" --rootfs-file ./images/linux/rootfs.tar.gz
명령을 수행 이후에, 아래의 경로에 wic 파일이 생성된다.
Micro SD Card에 boot image flash하기
Image build를 마쳤으니, SD Card에 이미지를 flash해보자.
부팅 이미지를 플래싱하는 다양한 툴이 존재하지만, .wic 파일을 플래싱 할 수있는 balena-etcher를 설치해보자.
wget https://github.com/balena-io/etcher/releases/download/v1.19.4/balena-etcher_1.19.4_amd64.deb
sudo apt install ./balena-etcher_1.19.4_amd64.deb
balena-etcher
이전 단게에서 생성한 .wic 파일을 선택한 뒤, flash 버튼을 누른다.
이미지의 크기가 6.4GB정도로, flashing에 2분정도 소요된다.
Boot on SD card
보드에서 JP4 커넥터를 찾은 뒤, 부트 모드를 SD로 변경한다.
점퍼 커넥터를 SD[ 라고 써져있는 부분으로 옮기면 된다.
이후 PROG UART에 Micro 5 Pin 케이블을 연결한다.
케이블이 연결되면 /dev/ttyUSB1이 생성된다.
선호하는 터미널 프로그램을 이용하여 위 노드에 접속한다.
이 예제에서는 putty를 사용하도록 한다.
putty가 없는 경우, 아래의 명령을 통해 설치/실행한다.
sudo apt install putty
sudo putty
콘솔창이 연결된 뒤 Enter를 입력하면 아래와 같이 로그인 프롬프트가 출력된다.
초기 로그인 아이디는 petalinux이며, 최초 로그인 시 비밀번호를 변경하라는 메세지가 나타난다.
'프로그래밍 > XILINX' 카테고리의 다른 글
[FPGA] Arty Z7-20에 PetaLinux 올리기 - 다양한 Package 추가하기(4) (0) | 2024.03.03 |
---|---|
[FPGA] Arty Z7-20에 PetaLinux 올리기 - Vivado(2) (0) | 2024.02.05 |
[FPGA] Arty Z7-20에 PetaLinux 올리기 - 개발 환경 구성(1) (0) | 2024.02.04 |