본문 바로가기
Development/Xilinx

[Petalinux] Ubuntu 22.04 에서 2019.01 빌드 하기

by qWooWp 2024. 6. 12.
반응형

 

목적

우분투 22.04 버전에서 Petalinux 2019.01 프로젝트 개발을 위한 Ubuntu 18.04 Docker 타입으로 설치하여 개발

 

준비 사항

참고 자료 : https://gitee.com/thomasz/petalinux-docker-2019.1

 

1.     우분투 22.04를 설치 합니다.

2.     Docker 설치 ($ 가 붙어 있는 내용은 Terminal 에 입력)

A.    $  sudo apt-get update

B.    $   sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

C.    $   curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

D.      Docker의 공식 apt 저장소를 추가

E.     $   sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

F.       시스탬 패키지 업데이트

G.     $ sudo apt-get update

H.      Docker 설치

I.      $   sudo apt-get install docker-ce docker-ce-cli containerd.io

J.       설치 상태 확인

K.     $ sudo systemctl status docker

L.       테스트 실행

       i.  $  sudo docker run hello-world

M.     Docker 에 현재 사용자 권한 부여 (옵션)

       i.  $  usermod -aG docker $USER

N.      service docker restart

3.     Docker 개발 이미지 생성

A.      $ mkdir PetaDocker

B.      accept-eula.sh, build.sh, Dockerfile, petalinux-v2019.1-final-installer.run, run.sh 파일 복사

sh 파일의 실행권을 위해서 아래 스크립트 수행

sudo chmod 755 ./*.sh

sudo chmod +x ./*.sh 

 

C.      $  sudo ./build.sh 

D.      ./run.sh 파일에서 아래 내용을 수정해야 한다.

docker run -ti --rm -e DISPLAY=$DISPLAY \

         --net="host"   -u `id -u miru` \

          -v ${PRJ_DIR}:/home/vivado/project:Z \

           pabitra-petalinux:2019.1 /bin/bash

miru : 유저 계정

(처음 run.sh 를 하면 유저 계정이 없기 때문에 아래 명령으로 생성 또는 vivado 로 수정하여 접속)

$ adduser miru

run.sh 가 실행되는 위치에 기존 사용하는 petalinux 프로젝트 소스를 위치 시키고 이 위치를 docker /home/vivado/project:z 위치에 매핑 시킨다.

즉 Petalinux Project 소스 파일을 ./run.sh 가 있는 파일과 같은 위치에 있으면 된다. 

 

 

l  petalinux 프로젝트에서 수정할 것

   project-spec/configs/config 파일에 KernelSrc 위치를 docker 의 경로로 변경해야 함

     (External Kernel 이 아닌 경우 무시)

   petalinux-build 수행시 유저 계정으로 빌드해야 동작함.

 

Docker 명령

a.     image 삭제

sudo docker ps -a

sudo docker rm 컨데이너 ID

 

위와 같이 volume 매핑을 하면 파일 복사를 별도로 할 필요가 없기 때문에 파일 복사를 따로 할 필요는 없다. 다만 아래와 같은 명령으로 파일 및 디렉토리 복사를 Docker Host 간에 할 수 있음.

 

Docker 컨테이너로 파일/디렉토리 복사하기

 

docker cp <복사할 파일 경로> <컨테이너 이름>:<컨테이너 내부 파일 경로>

ex) docker cp test.txt container:/test

 

Docker 컨테이너에서 파일 가져오기

docker cp <컨테이너 이름>:<컨테이너 내부 파일 경로> <복사할 파일 경로>

docker cp container:/test.txt /test/

 

docker 내부에서 apt-get 을 사용하기 위한 방법

apt-get update

apt-get install subversion

 

docker 내부에서 계정 추가

adduser miru

반응형

댓글