프로그래밍/XILINX

[FPGA] Arty Z7-20에 PetaLinux 올리기 - 다양한 Package 추가하기(4)

GariGreen 2024. 3. 3. 22:37
반응형

지난 포스팅에서는 Petalinux를 이용하여 부팅 가능한 기본 환경구성을 완료하였다.

이번 포스팅에서는 Petalinux에서 사용 가능한 Package(python, gcc, iperf3...)를 추가하는 방법에 대해 알아보겠다.

 

petalinux-config

지난 게시글에서 petalinux-config 명령을 이용해 H/W description을 가져오고 menuconfig를 변경하는 부분이 있었는데, 특별히 변경할 부분이 없어서 넘어간 부분이 있다.

petalinux sdk는 기본적으로 yocto project를 이용하는데, menuconfig를 이용하여 yocto project에서 제공하는 Opensoruce package를 간단하게 설치 할 수 있도록 구성해 놓은 것이 특징이다.

 

아래의 명령을 통해 지난번에 넘어갔던 menuconfig를 자세히 관찰해보자.

# petalinux-config -c <Linux OS component to configure>

# rootfs의 설정을 변경하는 경우. 패키지를 추가하는 경우에 해당된다.
petalinux-config -c rootfs

# u-boot의 deconfig를 수정하는 경우
# petalinux-config -c u-boot

# Linux kernel의 defconfig를 수정하는 경우
# petalinux-config -c kernel

 

 

python 추가하기

menuconfig를 이용해 아래의 경로로 이동한다.

Petalinux Package Groups->packagegroup-petalinux-python-modules로 이동한다.

기본적인 python interpreter, pip 등과 함께 간단한 package(numpy...)가 함께 설치된다.

gcc(buildessential) 추가하기

menuconfig를 이용해 아래의 경로로 이동한다.

Filesystem Packages-> misc-> packagegroup-core-buildessential

코드를 빌드 할 수 있는 compiler(gcc)와 함께 관련된 유틸들(gdb, cmake...)등이 함께 설치된다.

 

opencv 추가하기

동일한 방법으로 menuconfig를 이용해 아래의 경로로 이동한다.

Petalinux Package Groups->packagegroup-petalinux-opencv

아래의 opencv package가 설치된다.


  │        libopencv-core
  │        libopencv-highgui
  │        libopencv-imgproc
  │        libopencv-objdetect
  │        libopencv-ml
  │        libopencv-calib3d 
  │        libopencv-ccalib

 

iperf3 추가하기

iperf는 ethernet의 benchmark를 위한 Opensource package이다.

해당 package는 menuconfig로 제공되지 않아, yocto project 구성 방법을 이용해 수동으로 추가해줘야한다.

vi project-spec/meta-user/conf/petalinuxbsp.conf

해당 파일의 최하단에 아래의 Line을 추가해준다.

IMAGE_INSTALL:append = " iperf3 "

 

petalinux-build

원하는 패키지의 추가가 완료되면, menuconfig를 save한 뒤, petalinux를 빌드한다.

# 1. Petalinux 빌드
petalinux-build
# 2. 부팅 이미지 생성
petalinux-package --boot --fsbl ./images/linux/zynq_fsbl.elf --fpga ./images/linux/system.bit --u-boot ./images/linux/u-boot.elf --force
# 3. SD카드용 이미지 생성
petalinux-package --wic --bootfiles "BOOT.BIN image.ub system.dtb boot.scr" --rootfs-file ./images/linux/rootfs.tar.gz

 

 

package 확인

SD Card에 image를 write한 뒤 부팅시켜본다.

추가한 패키지들이 정상적으로 install되었다.

 

 

Troubleshoot

petalinux-build 명령을 통해 빌드 중 아래와 같은 오류 메세지가 출력되는 경우가 있다.

패키지를 추가하면서 rootfs의 크기 제한을 초과하기 때문이다.

아래의 파일을 수정하여 오류를 피해 갈 수 있다.

vi project-spec/meta-user/conf/petalinuxbsp.conf

파일 최하단에 아래의 2줄을 추가한다.

IMAGE_FSTYPES:remove = "cpio cpio.gz cpio.bz2 cpio.xz cpio.lzma cpio.lz4 cpio.gz.u-boot"
IMAGE_FSTYPES_DEBUGFS:remove = "cpio cpio.gz cpio.bz2 cpio.xz cpio.lzma cpio.lz4 cpio.gz.u-boot"
반응형