Digilent社에서 발매한 Arty Z7-20 board에 PetaLinux 올리기 #2.

 

※ PetaLinux build의 단계

  1) PetaLinux build tools 설치

  2) PetaLinux source code 압축 해제

  3) PetaLinux build 환경 설정

  4) PetaLinux project 생성 및 기본 설정

  5) PetaLinux build

  6) PetaLinux boot image 생성

  7) PetaLinux image download 및 Board booting

 

3. PetaLinux build 환경 설정

  PetaLinux build를 위한 script 실행등 작업에서 bash shell을 사용해야 함.

  Shell 확인을 위해 echo $SHELL을 실행해보면 /bin/bash로 나오지만 Ubuntu 기본 값은 dash로 다음과 같이 확인할 수 있음.

~$ ls -al /bin/sh
lrwxrwxrwx 1 root root 4  9월 13 23:27 /bin/sh -> dash

  PetaLinux build를 위한 bash shell 변경 방법은 다음과 같이 진행

~$ sudo dpkg-reconfigure dash

  명령을 입력하고 dash 설정 창이 뜨면 <아니오>를 선택해서 dash를 bash로 변경한다.

  굳이 해석을 붙여놓자면 Ubuntu 기본 shell로 dash를 사용할 지 묻는 것으로 <예>를 선택하면 dash를 <아니오>를 선택하면 bash를 사용하도록 설정 변경 된다.

  <아니오>를 눌러 dash에서 bash로 변경, ls -al /bin/sh로도 bash 변경 확인.

 

~$ cd xilinx/petalinux-v20.1f
~/xilinx/petalinux-v20.1f$ ls
components  doc  etc  settings.csh  settings.sh  tools
~/xilinx/petalinux-v20.1f$ echo $PETALINUX

~/xilinx/petalinux-v20.1f$ source settings.sh
PetaLinux environment set to '/home/kimjh/xilinx/petalinux-v20.1f'
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
kimjh@kimjh-ubt1804-VB:~/xilinx/petalinux-v20.1f$ echo $PETALINUX
/home/kimjh/xilinx/petalinux-v20.1f

  $PETALINUX 경로를 확인하면 등록된 경로가 없음. PetaLinux 압축 해제 directory에서 source settings.sh 명령으로 script 실행 후 다시 확인해보면 $PETALINUX 경로로 압축해제 해놓은 /home/[user-acount]/xilinx/petalinux-v20.1f가 등록 되었음을 확인.

 

4. PetaLinux project 생성 및 기본 설정

  Project build를 위한 directory를 하나 생성하고 petalinux-create 명령으로 project를 생성한다.

~/xilinx/project$ petalinux-create --help

  petalinux-create --help로 확인해보면 -t 또는 --type 옵션은 type으로 project, apps, modules 등으로 설정한다.

  --template 옵션에서는 cpu 종류(platform)등을 지정, -n 또는 --name 옵션으로 project의 이름을 지정 (지정 이름으로 directory가 생성됨)

~/xilinx$ mkdir project
~/xilinx$ cd project
~/xilinx/project$ petalinux-create -t project --template zynq -n artyz7-v20.1f

  petalinux-create 명령 실행 후 -n 옵션에서 지정한 값대로 artyz7-v20.1f directory 생성 되었음을 확인

 

  다음으로 petalinux-config 명령을 통해 build 환경 설정 실행 및 저장하기

~/xilinx/project/artyz7-v20.1f$ petalinux-config --get-hw-description ~/share/ArtyZ7_EVB

  Arty Z7-20 board의 hardware 설정 사항이 저장된 xsa file이 저장된 위치를 --get-hw-description 옵션을 통해 지정해줌

  옵션 내용에서 특별히 변경할 내용은 없으며, <Exit>를 눌러 옵션 설정 창 종료하기.

 

5. PetaLinux build

  petalinux-build 명령으로 Boot image build를 시작. 제법 긴 시간이 소요되며, PC 성능에 따라 소요 시간이 달라짐.

~/xilinx/project/artyz7-v20.1f$ petalinux-build

  build 작업이 완료되고  build, components, images 3개 directory가 생성되었음.

 

6. PetaLinux boot image 생성

  Kernel build 작업이 완료 되고 images/linux directory를 확인해보면 아래와 같은 file 들이 생성 되어 있음

 

  petalinux-package 명령을 통해 boot file 제작

~/xilinx/project/artyz7-v20.1f$ petalinux-package --boot --force --fpga --u-boot --kernel

 

7. PetaLinux image download 및 Board booting

  BOOT.BIN, boot.scr, image.ub 3개의 file을 FAT32 형식으로 format된 micro-SD의 /에 복사하고, Arty Z7 board를 SD boot로 맞춘 후 micro-SD memory를 삽입하여 전원을 인가하면 petalinux booting을 확인할 수 있다.

초기 계정과 비번은 root::root

 

※ 남은 작업은 Boot image를 QSPI용으로 제작 및 Flash download.

[Bootloader] u-boot 로 qspi booting시 확인 사항 (zc706기준) (tistory.com)

 

[Bootloader] u-boot 로 qspi booting시 확인 사항 (zc706기준)

xilinx에서 나온 zc706보드를 가지고 linux booting시 제일 먼저 다뤄야 할게 bootloader 설정이다.왠만한게 wiki에 나와있다고는 하는데, 안나와있는 내용도 많아서 삽질을 좀 많이 했다. 아무튼 u-boot을 쓰

talkingaboutme.tistory.com

boot.scr을 qspi에 적용하는 방법 : 네이버 블로그 (naver.com)

 

boot.scr을 qspi에 적용하는 방법

안녕하세요. 오랜만에 글을 작성하게 되었습니다. VIVADO 2020.1 버전부터 u-boot에서 boot.scr을 사...

blog.naver.com

 

'전자 관련 이야기 > Embedded' 카테고리의 다른 글

Digilent Arty Z7 - PetaLinux #1  (0) 2023.09.17
Vitis Compile error  (0) 2023.09.01

Digilent社에서 발매한 Arty Z7-20 board에 PetaLinux 올리기.

Vivado, Vitis 등을 이용해 xsa, bit file을 먼저 생성해야 하나 이미 생성된 파일을 재사용 가능해서 이 부분 관련 기록은 다음으로 미루기로 함.

 

개발 환경

  - Host OS    : Windows10 또는 Windows11

  - Virtual OS : Ubuntu 18.04.6 LTS

  - PetaLinux : V2020.1 final

  - Target B'D : Digilent Arty Z7-20

  - Boot image 저장 : Micro SD 64GB

 

Xilinx社 Reference Guide : UG1144 PetaLinux Tools Documentation (2020.07.24 - v2020.1)을 참조하여 진행하며,

최신 내용(개정판)은 아래 링크에서 UG1144 검색하여 확인 가능함.

(현재 시점 최신 개정판은 2023.05.16 - v2023.1 이나 여러 버전을 build해본 결과 v2020.1-final만 정상 build 확인)

 

Homepage • AMD Adaptive Computing Documentation Portal (xilinx.com)

 

AMD Adaptive Computing Documentation Portal

 

docs.xilinx.com

 

PetaLinux build를 위한 source는 아래 link에서 다운 받을 수 있으며, v2020.1-final을 사용함

Downloads (xilinx.com)

 

Downloads

Vivado, Vitis, Vitis Embedded Platform, PetaLinux, Device models

www.xilinx.com

다운로드 링크에서 PetaLinux Tab - Archive로 이동,

2020.1을 클릭하고 Drop-down 메뉴에서 PetaLinux 2020.1 Installer (TAR/GZIP - 1.23 GB)를 클릭하면

petalinux-v2020.1-final-installer.run file이 download됨.

Ubuntu에서 직접 받거나 윈도우 환경에서 download 후 VirtualBox 공유 폴더에 이동해 사용.

 

※ PetaLinux build의 단계

  1) PetaLinux build tools 설치

  2) PetaLinux source code 압축 해제

  3) PetaLinux build 환경 설정

  4) PetaLinux project 생성 및 기본 설정

  5) PetaLinux build

  6) PetaLinux boot image 생성

  7) PetaLinux image download 및 Board booting

 

1. PetaLinux build tools 설치하기

  1) PetaLinux source code를 build하기 위해 필요한 프로그램들을 설치하기

      아래 링크에 접속하여 페이지 하단 plnx-env-setup.sh 파일을 다운받기

      Homepage • AMD Adaptive Computing Documentation Portal (xilinx.com)

 

AMD Adaptive Computing Documentation Portal

 

docs.xilinx.com

  2) 다운 받은 script를 실행해서 build에 필요한 프로그램들을 설치 가능하나 제대로 build되지 않는다는 글을 확인.

      아래 command를 통해 의존성 프로그램들을 직접 설치함.

~$ sudo apt install iproute2 gcc g++ net-tools libncurses5-dev zlib1g:i386 libssl-dev
~$ sudo apt install flex bison libselinux1 xterm autoconf libtool texinfo zlib1g-dev
~$ sudo apt install gcc-multilib build-essential screen pax gawk pylint3 cpio
~$ sudo apt install python3 python3-pexpect python3-pip python3-git python3-jinja2
~$ sudo apt install xz-utils debianutils iputils-ping libegl1-mesa libsdl1.2-dev

 

2. PetaLinux source code 압축 해제

  1) PetaLinux V2020.1 압축 파일을 VirtualBox 공유 폴더에 이동해 두고 Ubuntu에서 확인

~$ ls -alh ~/share

  2) Zynq7000 관련 Project를 관리하기 위한 directory 생성

~$ mkdir xilinx
~$ cd xilinx
~/xilinx$ pwd
/home/kimjh/xilinx

  3) petalinux-v2020.1-final-installer.run의 압축 해제

      ./petalinux-v2020.1-final-installer.run 명령만 실행해도 압축 해제 가능하지만 log도 남기고, 지정 위치에 압축해제를 위해 아래처럼 옵션을 설정하고 압축 해제 실행함

~/xilinx$ cd ~/share
~/share$ ./petalinux-v2020.1-final-installer.run --log peta-v20.1f.log -d ~/xilinx/petalinux-v20.1f

     Press Enter to display the licese agreements 메시지가 나오면 Enter key를 눌러 license 화면을 띄운 뒤 q를 눌러 빠져나오고 y를 눌러 계속 진행 ← 3회 반복 후 PetaLinux code 압축 해제 시작.

     캡쳐 마지막 줄 메시지처럼 지정된 ~/xilinx/petalinux-v20.1f에 압축 해제 진행됨

 

PetaLinux build 환경 설정부터 Arty Z7 board에 PetaLinux를 올려 부팅하는 내용은 다음 글에서!

'전자 관련 이야기 > Embedded' 카테고리의 다른 글

Digilent Arty Z7 - PetaLinux #2  (0) 2023.10.03
Vitis Compile error  (0) 2023.09.01

Ubuntu 기본 환경 설정은 아래 목록대로 진행 (필요에 따라 목록 업데이트 예정)

  - vim 설치 및 환경 설정

    : vim 설치 및 환경 설정

  - VirtualBox ubuntu와 윈도우 공유 directory 설정

    : VirtualBox ubuntu ↔ 윈도우 공유 폴더 설정

  - ssh 설치 및 환경 설정

    : ssh 설치 및 환경 설정

  - tftp 설치 (Petalinux 권장)

    : tftp 설치 및 환경 설정

  - samba 설정

 

Petalinux image build 시 compile image가 $project dir/images/linux에 생성되나, /tftpboot/ directory에도 함께 생성된다.

이 때문에 tftp 설치를 권장하고 있어 설치와 환경 설정을 진행한다.

 

1. tftp 설치하기

    터미널 창에서 아래 명령을 입력해서 관련 프로그램을 설치한다.

~$ sudo apt install tftp tftpd xinetd

 

2. tftp를 사용하기 위한 환경 설정

~$ sudo vim /etc/xinetd.d/tftp
service tftp
{
    socket_type	= dgram
    protocol	= udp
    wait	= yes
    user	= root
    server	= /usr/sbin/in.tftpd
    server_arg	= -s /tftpboot
    disable	= no
    per_source	= 11
    cps		= 100 2
    flags	= IPv4
}

 

3. file up/down등을 위한 directory 생성과 권한 수정

~$ sudo mkdir /tftpboot/
~$ sudo chmod 777 /tftpboot/

 

4. tftp service 재시작

~$ sudo /etc/init.d/xinetd restart

 

5. tftp 사용 예시는 다음 기회에...

+ Recent posts