Petalinux project configuration and build

토리묵·2023년 12월 1일
0

PetaLinux

목록 보기
2/2
post-thumbnail

개요

이전 장의 프로젝트 생성에 이어서 프로젝트의 기본적인 설정 방법과 빌드를 통해 board에 올릴 image를 얻는 방법에 대해 설명한다. 각 과정에 대한 상세한 설명보다는 실제로 자주 사용되는 기능 위주로 설명한다.

Projetc config

Petalinux project 설정은 다음의 명령어로 수행한다.

petalinux-config

특정 evaluation board의 bsp 없이 빈 프로젝트를 생성했다면 맨 처음 초기 설정을 도와줄 xsa확장자의 하드웨어 기술 파일이 필요하다. xsa파일을 만드는 방법은 생략한다.
다음의 명령어를 통해 하드웨어 기술 파일을 통한 프로젝트 설정을 시작한다.

petalinux-config --get-hw-description <PATH-TO-XSA-FILE>

해당 명령어를 실행하면 잠시동안 프로젝트의 설정 작업을 거친 뒤 터미널이 설정 화면에 진입한다.

여기서 주로 설정하는 것은 Subsystem AUTO Hardware SettingsImage Packaging Configuration항목이다.
전자는 board의 flash memory(booting ROM) 파티션 설정이나 다른 HW관련 설정을 담당하고 후자는 build 결과의 image구성 형태 설정을 담당한다.

Rootfs config

다음은 build 결과물의 rootfs에 관한 설정을 진행한다.

petalinux-config -c rootfs

위의 명령어를 실행하면 petalinux-config 명령어와 비슷한 화면이 나오며 build 결과물의 rootfs에 관한 설정이나 rootfs에 포함시킬 package를 지정할 수 있다.

Config file을 통한 프로젝트 설정 수정

위의 명령어를 통한 설정말고도 <PROJECT_ROOT_DIR>/project-spec/configs/ 경로의 config, rootfs_config의 파일 내용 직접 수정하여 설정을 변경할 수 있다.

Build 전 local mirror 지정

petalinux는 yocto를 기반으로 하며 build에 필요한 source를 net상에서 각 project에 download받아 build하게 된다.
이렇게 build할 경우 각 프로젝트마다 용량이 너무 커지고 build 시간도 더 걸리게 된다. 아래의 방법으로 local mirror를 설정한다.

$ cd <PROJECT_ROOT_DIR>/project-spec/meta-user/conf
$ vi petalinuxbsp.conf

/* 아래 두줄의 내용 추가(둘의 경로는 다르게 지정하는게 좋을 것 같다)/
DL_DIR = "<DOWNLOD_DIR_YOU_CHOOSE>"
SSTATE_DIR = "<STATE_DIR_YOU_CHOOSE>"

Project build

이제 project를 생성하고 설정하였으므로 build를 통해 system image를 얻는 방법에 대해 설명한다.
system image는 linux kernel과 device tree, ramdisk image로 이루어진 FIT image이고. build로 인해 생성된 image는 <PROJECT_ROOT_DIR>/images/linux/image.ub 경로에 생성된다.
build는 무척 간단하다 프로젝트의 최상단 경로에서

petalinux-build

위의 명령어를 실행하면 build를 수행한다. 맨 처음 build는 시간이 상당히 걸리는 편이다.
또한 petalinux-build명령어는 옵션을 통한 여러 기능을 제공한다.(build data 삭제, 특정 사용자 생성 app, module build 등...)
하지만 이 글에서는 기본적으로 project 전체를 build하는 방법만 다루고 다른 기능은 다음에 기회가 있으면 다루도록 하겠다.

UBOOT image 생성

system image 다음은 boot image를 생성해보자.
생성된 image는 image.ub와 동일한 경로에 BOOT.bin이라는 이름으로 생성된다.
boot image를 생성하는 기본 명령어는 아래와 같다.

petalinux-package --boot --uboot

여기에 여러 옵션을 추가하여 본인이 개발하고 있는 system의 boot image가 추가로 필요로하는 image를 더해 packaging이 가능하다.
옵션과 그에 따른 추가되는 image는 이곳을 참조하자.

마치며

이번글은 petalinux project의 기본적인 configuration 방법과 system을 기동하는데 필요한 image 생성 방법을 알아보았다. 이는 기본적인 사용방법일 뿐이다.

profile
안녕하세요

0개의 댓글