반응형

petalinux 설치를 VM 에 완료했다.

 

 

다음과 같은 파일이 생성되었다.

 

source settings.sh

 

settings.sh 를 반드시 실행시켜야 petalinux 커맨드가 동작한다.

 

Warning 코드들이 뜨는데, 일단 무시하고 진행해보도록 한다.

 

다음 코드를 커맨드 창에 입력하면 아래 그림과 같은 폴더 petalinux_prj 가 하나 생긴다.

petalinux-create --type project --template zynq --name petalinux_prj

 

 

 

폴더에 접근한다.

 

처음에 system.hdf 파일은 없고, 이 파일은 SDK 에서 system.hdf 라는 파일을 가져 온 것이다.

[1] 편을 보면 SDK 실행까지 있는데, 거기서 가져왔다.

 

petalinux-config --get-hw-description=.

 

로 실행을 시켜 보자.

 

 

에러가 났다.

 

혹시 몰라 권한을 바꿔 줬다.

 

 

자일링스 커뮤니티에서는 이렇게 말하고 있다.

 

우분투 Minimal 설치를 했다면 패키지 설치가 안 되었을 가능성이 있다. 라고 한다.

그래서 설치 시도를 해 봤는데, 이미 설치되어있다고 한다.

 

어떤 사람은 libtinfo5 가 설치되어 있지 않아서 안 되었었다고 한다.

sudo apt install libtinfo5

 

이걸 설치하니 Kconfig 는 넘어가는데 다른 에러가 나온다.

 

 

짜증나서 모든 의존성 관련 패키지를 설치해 보았다.

 

 

PetaLinux Tools Documentation: Reference Guide - 2020.1 English

 

docs.amd.com

 

그래도 안 되는 것 같다.

일단 보류.. 리눅스 재설치를 풀 패키지를 포함해서 한 번 해봐야겠다.

 


 

Ubuntu 18.04.7 LTS 버전, normal installation 으로 설치를 했다.

8 Core, 12GB RAM, 300GB storage 로 새로 생성하였다.

 

VM을 키고, SW update를 진행해주고 다시 petalinux 2018.3 을 설치했다.

 

알고보니 Ubuntu 버전이 안 맞을수도 있다는 생각이 들었다.

 

 

This error is coming though it installed petalinux-2018.3 installation on ubuntu 18.04

 

support.xilinx.com

 

다 안되고 처음으로 되돌아와서 log 를 보기로 했다.

 

 

결론은 창 크기가 작아서 안 된 거라고 한다..../

콘솔을 항상 작게 쓰다 보니까 이런 일이 발생한 것 같다

 

18.04는 다음과 같은 환경 설정을 해 줬다.

 

sudo apt-get install -y tofrodos iproute2 gawk gcc g++ git make net-tools libncurses5-dev tftpd-hpa zlib1g:i386 libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential libsdl1.2-dev libglib2.0 screen pax gzip automake python-dev

 

petalinux 는 전과 동일하게 해 줬다.

dpkg/status 파일은 바꾸지 않아도 잘 동작하는 것을 확인했다.

 

아무튼 petalinux-config 커맨드를 실행시키면

 

 

다음과 같은 창이 뜬다.

근데 이번엔 failed to source bitbake 에러가 난다.

 


더 삽질하지 않고 petalinux 2018.3 버전에 맞게 ubuntu 2016.04 LTS 로 설치를 시도해 보았다.(얘는 minimal installation이 없다)

정말 놀랍게도

오류가 하나도 나오지 않는다.

 

환경 설정은 다음과 같이 해줬다.

sudo apt-get install -y tofrodos iproute2 gawk gcc g++ git make net-tools libncurses5-dev tftpd-hpa zlib1g:i386 libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential libsdl1.2-dev libglib2.0 screen pax gzip automake python-dev

 

이후 

 

 

Downloads

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

www.xilinx.com

2018.3 Petalinux 2018.3 Installer 를 다운받아 준다.

받은 파일을 적당한 디렉토리에 넣어 준다.(/home 디렉토리 하위 폴더여야 된다)

 

petalinux-v2018.3-final-installer.run 파일이 있는 폴더에서 권한을 먼저 바꿔준다.

chmod 777 petalinux-v2018.3-final-installer.run

 

그리고 실행시킨다.

 

./petalinux-v2018.3-final-installer.run

 

 

실행하면 위와 같이 PetaLinux SDK has been installed to <path> 라고 나온다.

.run 파일이 있는 해당 폴더에서 아래의 명령어를 실행한다.

source settings.sh

 

실행이 완료되었다면 다음의 명령어를 입력한다.

petalinux-create --type project --template zynq --name petalinux_prj

 

끝나면 현재 폴더 하위에 petalinux_prj 라는 폴더가 생성된 것을 볼 수 있는데, 그 폴더로 가면 

config.project, project-spec 라는 파일과 폴더 2개만 있다.

여기서 

petalinux-config

 

명령을 해 주면 build, components 폴더 두개가 더 생긴다.

 

그리고 이 폴더에 system.hdf 를 넣어 줬다.(Vivado SDK 에 있던 파일)

 

system.hdf 의 권한도 바꿔준다.

 

petalinux-config --get-hw-description=.

 

명령어도 잘 동작한다.(안 되면 터미널 창을 최대화 하고 해보자. 시행착오중에 관련 내용이 있다)

 

 

다른건 할 필요가 없고

아래의 save 클릭하고 저장이 끝났으면 Exit 를 눌러준다.

 

 

그럼 자동으로 이후 과정이 실행된다.

이후 다음 명령어를 입력한다.

petalinux-build

 

빌드에는 시간이 어느정도 소요된다.

 

빌드가 완료되었다면 다음과 같은 창으로 들어간다.

/petalinux_prj/images/linux

 

uboot, image, fsbl 파일이 들어있는 것을 볼 수 있다.

 

다음으로,

우리가 만약 bitstream 파일을 hdf 에 포함했다면 명령어는 다음과 같다.(이번에 하는 것은 이게 아님)

petalinux-package --boot --fsbl zynq_fsbl.elf --fpga --u-boot --force

 

하지만 지금까지 만든 파일에는 bitstream 파일을 넣지 않았으므로 명령어는 다음과 같다.

petalinux-package --boot --fsbl zynq_fsbl.elf --u-boot --force

 

 

 

 

컴파일된 BOOT.BIN 파일이 output 으로 나오게 된다.(얘는 필요없는 것 같긴 하다)

BOOT.BIN, image.ub, u-boot.elf, zynq_fsbl.elf 파일을 Windows 환경으로 다시 가지고 온다.

 

zynq_fsbl.elf : 시스템 부팅, DDR3 초기화, 시스템 클럭 초기화, FLASH 또는 SD카드의 firstagebootloader 를 DDR3에 로딩해 수행, u-boot를 DDR3에 로딩하여 FPGA의 BIT 구성을 주로 수행하며, BIT가 없으면 무시하는 작업, PS를 구성하는 MIO등 일련의 작업 수행

u-boot.elf : boot 부팅 파일, image.ub를 DDR3에 로딩하는 것을 책임짐

image.ub : petalinux의 커널(?)

 

나는 윈도우즈 환경 상에서 petalinux 라는 폴더를 하나 바탕화면에 생성하고 다음 파일들을 저장했다.

 

상태는 클라우드 관련이므로 신경쓰지 말자.

 

(petalinux-v2018.3-final-installer.run 파일이 없다고 해서 다운받을 필요는 없다)

 

다시 Vivado 를 켜서 저번에 만들어 뒀던 프로젝트의 SDK를 실행시키자.

그리고 위의 Xilinx > Create Boot Image 탭에 들어간다.

 

Output BIF file path 는 기존 프로젝트의 sdk 폴더에 저장한다.

(output path를 지정하는 것이지 output 파일을 열어야 하는 것이 아님)

Output path 는 BOOT.bin 파일이 자동으로 잡힌다.

 

나는 경로가 이렇게 나왔다.

 

 

다음으로 Boot image partitions 에 ubuntu 에서 받아왔던 fsbl, u-boot 를 추가할 것이다.

path 에 한글이 들어가지 않게 주의하자. 만약 들어간다면 C:\ 에 옮겨서 진행하는 것이 좋을 것이다.

 

Bootloader 로 zynq_fsbl.elf 를 추가하고

Datafile 로 u-boot.elf 를 추가해 준다.

 

 

다 했으면 Create Image 로 이미지 생성을 해 준다.

 

여기서 생성한 BOOT.bin 을 우분투에서 가져온 파일들을 저장하는 공간으로 넘겨준다.

나는 petaOS라는 폴더를 추가로 생성해 거기에 저장했다.

 

그리고 SD 카드를 하나 준비한다.(32GB, 다이소에서 삼)

SD 카드 리더기도 하나 필요하다(다이소에서 삼)

 

SD 카드 리더기에 sd카드를 꼽고 컴퓨터에 마운트시키면

 

 

나의 경우 E 드라이브로 잡혔다.

E드라이브를 FAT32로 포맷해 준다.

 

 

딱히 건드릴 것은 없다.

BOOT.bin 과 image.ub를 여기에 넣어 주도록 한다.

 

SD 카드를 빼서 보드에 끼워준다.

 

 

BOOT(sd0) 쪽으로 끼워 준다.

 

그리고 ON KE 스위치를 11로 맞춰준다.

 

 

우리는 COM 포트로 연결해야 하기 때문에 UART를 사용한다.

 

보드의 UART 포트와 PC를 연결하고 장치 관리자를 열면 포트(COMx, x는 숫자) 가 연결된 것을 볼 수 있다.

 

 

나는 COM4 포트로 연결되었다.

 

그리고 Serial 연결을 위해 putty.exe 를 실행시켜 준다.

putty 다운은 여기서 한다.

 

Download PuTTY - a free SSH and telnet client for Windows

Is Bitvise affiliated with PuTTY? Bitvise is not affiliated with PuTTY. We develop our SSH Server for Windows, which is compatible with PuTTY. Many PuTTY users are therefore our users as well. From time to time, they need to find the PuTTY download link. W

www.putty.org

 

putty 를 실행한다.

 

처음에는 Connection type 이 SSH로 되어 있을 텐데 Serial 로 바꿔 준다.

그리고 Serial line에 장치 관리자에서 봤던 포트 번호를 입력해 준다.(COMx)

속도(Baud rate) 는 115200 으로 지정해 준다.

 

다 했다면 open 을 눌러 열어준다.

들어가서 엔터 한번 쳐 주면 창이 정상적으로 작동한다.

 

 

최초 로그인 id와 pw는 건드리지 않았다면 모두 root 로 동일하다.

 

petalinux가 보드 상에서 실행된 것을 볼 수 있다.

 

 

이것으로 petalinux 시스템 올리기를 완료했다.

반응형

+ Recent posts