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 사용 예시는 다음 기회에...

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

  - vim 설치 및 환경 설정

    : vim 설치 및 환경 설정

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

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

  - ssh 설치 및 환경 설정

    : ssh 설치 및 환경 설정

  - tftp 설치 (Petalinux 권장)

    : tftp 설치 및 환경 설정

  - samba 설정

 

윈도우등에서 Ubuntu에 접근하기 위한 수단 중 하나로 ssh 세팅

 

1. ssh server 설치하기

~$ sudo apt install openssh-server

 

2. ssh service 활성화 상태 확인 - Active : active (running) 확인!!

~$ sudo systemctl status ssh

  ※ ssh service 끄기/켜기

~$ sudo systemctl disable --now ssh
~$ sudo systemctl enable --now ssh

 

3. 방화벽에 ssh 접속 허용 규칙 추가하기

~$ sudo ufw allow ssh

 

4. VirtualBox port forwarding 설정하기

  1) VirtualBox Ubuntu의 IP address를 확인해보면 일반적으로 10.0.2.15 값을 할당 받으며, 이 주소로는 접속 불가.

      Host OS인 Windows 10은 IP time등 공유기에서 할당 받은 IP의 경우 192.168.0.xxx 형식임

  2) Host인 Windows 10 ip 설정 확인을 위해 [윈도]+R을 눌러 실행창을 띄우고 cmd 입력 후 확인

  3) Windows 10의 외부 네트웍 접속이 가능한 사설 ip와 VirtualBox Ubuntu 접속이 가능한 내부 사설 ip를 확인

      여기서 필요한 값은 VirtualBox 연결이 가능한 ip address 값임

  4) VirtualBox 관리자 창에서 설정을 누르고 [네트워크] 항목에서 [고급] 메뉴를 펼침

  5) 펼침 메뉴에서 [포트 포워딩(P)] 클릭

  6) 포트 포워딩 규칙 창 오른쪽 상단 규칙 추가 버튼을 누르고 다음과 같이 입력하고 확인 클릭

  6) Ubuntu를 재시작하고 윈도우 teraterm등에서 ssh 접속 시험 진행

      접속 IP는 192.168.56.1, port는 22 (변경 권장. VirtualBox는 가상환경으로 변경하지 않았음)

      SSH Authentication 창에서 계정, 비번 입력후 OK를 눌러 ssh 정상 접속을 확인할 것

 

※※ SSH 접속 port 변경하기 ※※

SSH 접속 port를 변경함으로써 혹시 모를 외부 침입을 방지하는 조치 중 하나.

 

1. sshd_config 파일 편집하기

~$ sudo vim /etc/ssh/sshd_config

    줄번호 13의 #Port 22 확인, 못 찾는 경우 vim 명령 모드 상태에서 /port 등으로 검색해서 찾기

 

2. #Port 22에서 주석 처리를 삭제하고 port 번호를 원하는대로 변경한 후 저장 및 vim 종료

 

3. 포트 변경에 따라 ssh service를 재시작해주고, 방화벽 규칙도 함께 변경해 줄 것

~$ sudo systemctl restart ssh
~$ sudo ufw deny 22
~$ sudo ufw allow 1234

 

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

  - vim 설치 및 환경 설정

    : vim 설치 및 환경 설정

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

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

  - ssh 설치 및 환경 설정

    : ssh 설치 및 환경 설정

  - tftp 설치 (Petalinux 권장)

    : tftp 설치 및 환경 설정

  - samba 설정

 

VirtualBox ubuntu와 윈도우 간 파일 공유를 쉽게 하기 위한 설정 진행

1. VirtualBox 관리자 창에서 Ubuntu18.04를 선택하고 설정 아이콘을 누름

2. 설정 창이 뜨면 [공유 폴더] 항목을 누르고 오른쪽 위 추가 버튼을 클릭

3. 공유 추가 팝업이 뜨면 폴더 경로의 drop-down 버튼을 누르고 기타...를 선택해 공유할 directory를 선택

4. 폴더 이름이 자동으로 채워지면 그대로 두고, 자동 마운트 체크, 마운트 지점은 사용자 home directory에 share 생성하도록 설정

5. 확인을 눌러 창을 닫고 ubuntu 18.04를 부팅!!

  1) ~/share directory 접근시 허가 거부 발생함 : share directory의 소유권한 문제

  2) user 추가 명령으로 사용자 계정을 vboxsf group에 추가

~$ sudo adduser [user-id] vboxsf 또는
~$ sudo usermod -G vboxsf -a [user-id]

  3) Ubuntu 재부팅 후 groups 명령으로 group 추가를 확인하고 ~/share/ 접근 가능 확인.

     - ~/share directory의 소유자/그룹은 변경되지 않음

     - Ubuntu 바탕화면에 ~/share/ 바로가기(파일탐색기) 아이콘 생성됨

 

Cli 환경 기본 편집기인 vi가 있으나 개선된 vim이 손에 익어 vim을 설치하고 환경 설정도 진행.

 

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

  - vim 설치 및 환경 설정

    : vim 설치 및 환경 설정

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

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

  - ssh 설치 및 환경 설정

    : ssh 설치 및 환경 설정

  - tftp 설치 (Petalinux 권장)

    : tftp 설치 및 환경 설정

  - samba 설정

 

1. vim 설치

  1) 단축키 Ctrl+Alt+T로 터미널을 실행하고 vim 설치 명령 입력

~$ sudo apt install vim

  2) 설치가 완료되면 환경 설정 파일 편집

~$ vim .vimrc

       vim이 실행되면 i를 눌러 편집 모드로 들어가서 아래 문구들을 입력

set number			" 편집기에 줄 번호 표시
set ai				" 자동 들여쓰기 설정
set si				" Smart 들여쓰기 설정
set cindent			" C언어 style 들여쓰기 설정
set shiftwidth=4		" 들여쓰기 간격 4칸(공백)
set tabstop=4			" tab 간격 4칸
set ignorecase			" 대소문자 구분 없이 검색 진행
set hlsearch			" 검색한 문자열 highlight 표시
set nocompatible		" Cursor(방향)키로 이동 가능
set fileencodings=utf-8,euc-kr	" File 저장 시 utf-8, euc-kr 형식으로 
set fencs=ucs-bom,utf-8,euc-kr	" 한글 파일은 euc-kr, 유니코드는 utf-8
set bs=indent,eol,start		" Back-space키 사용 가능
set ruler			" 상태 표시줄에 cursor 위치 표시
set title			" 상태 표시줄에 파일 이름 표시
set showmatch			" 쌍이 되는 괄호를 표시
set wmnu			" tab키를 누른 경우 자동완성 목록을 보여줌
syntax on			" 문법에 따라 color code 적용
filetype on			" File 유형을 감지하도록
filetype indent on		" File 유형에 따른 들여쓰기
set mouse=a			" 마우스로 cursor 이동 가능하게 함

       .vimrc file을 저장하고 재 실행해보면 왼쪽이 오른쪽처럼 줄 번호 표시로 바뀌어 있음

 

2. vim의 color theme (color scheme) 설정

  1) 개인적으로는 Source insight의 Cocoa theme 또는 dracula theme가 좋으나 cocoa scheme은 찾지 못했고, dracula scheme은 적용이 어려운 것 같아 나중에 업데이트 예정. Jellybeans scheme도 괜찮은 듯 하여 우선 사용!!

아래 link에서 jellybeans.vim 파일을 다운받아 저장.

GitHub - nanotech/jellybeans.vim: A colorful, dark color scheme for Vim.

 

GitHub - nanotech/jellybeans.vim: A colorful, dark color scheme for Vim.

A colorful, dark color scheme for Vim. Contribute to nanotech/jellybeans.vim development by creating an account on GitHub.

github.com

 

  2) 다운 받은 jellybeans.vim 파일을 vim color scheme 보관 directory로 이동

      vim color scheme이 보관된 경로는 /usr/share/vim/vim00/colors이며 여기서 00은 설치된 vim version에 따라 다름

~$ sudo mv ./다운로드/jellybeans.vim /usr/share/vim/vim80/colors/

  3) jellybeans.vim 파일의 소유자, 그룹을 root로 변경

~$ sudo chown root:root /usr/share/vim/vim80/colors/jellybeans.vim

  4) 다시 .vimrc 파일을 편집하면서 colorscheme jellybeans 문구를 추가하고 저장 및 종료

 

※ Jellybeans color scheme capture

Ubuntu 18.04 설치가 끝나고 OS 기본 설정 과정

 

1. 로그인 창에서 사용자 이름을 누르고 설치 중 설정했던 계정 비밀 번호를 입력해서 로그인!!

 

2. 로그인이 되면 Ubuntu에서 새로운 점 창이 기본으로 떠있음. 그냥 닫아도 되나 입력해도 무방.

3. 시간이 좀 지나면 우분투 20.04.6 LTS 업그레이드 권장 팝업이 뜨는데 업그레이드 하지 않음을 선택!!!!

4. 소프트웨어 업데이터 창이 뜨면 지금 설치를 눌러 업데이트 진행, 업데이트 완료 후 지금 다시 시작을 눌러 재부팅!

5. 재부팅이 완료되면 장치 - 게스트 확장 CD 이미지 삽입... 을 눌러 VirtualBox 확장 기능 설치 필요.

  1) 바탕화면에 VBox_GAs_6.1.44 아이콘이 생기고 실행 여부를 확인하는 팝업 창이 뜨면 실행을 클릭

  2) Terminal 창이 뜨고 Press Return to close this window... 메시지가 뜨면 설치 완료. VBox_GAs_6.1.44 아이콘 오른쪽 클릭하고 꺼내기 선택해서 제거하고 Ubuntu 재부팅!!

  3) 이 단계까지 진행하고 나면 재부팅시 해상도 변경 되는 현상 없앨 수 있음

     - Ubuntu settings - Device - Display에서 설정한 해상도는 가상 머신 재부팅 시 유지 안됨

     - Oracle VM VirtualBox 실행 창을 마우스 드래그로 해상도 변경한 경우 재부팅해도 해상도 유지됨

 

6. 한영키 사용을 위한 fcitx 설치하기

  1) Setting(설정) 창에서 지역 및 언어 -> 설치된 언어 관리 실행

  2) 언어 지원 팝업에서 설치 선택

  3) Terminal 창을 실행하고 fcitx-hangul 설치하기

~$ sudo apt-get update && sudo apt-get upgrade
~$ sudo apt install fcitx-hangul

  4) fcitx-hangul 설치가 끝나고 언어 지원 창을 다시 실행하면 키보드 입력기에 fcitx 항목이 추가됨.

      키보드 입력기를 fcitx로 변경하고 재부팅하면 한영키 사용 가능!!

Xilinx社 Zynq를 이용한 Embedded linux 개발을 시작하면서 이런 저런 작업을 하다보니 100GB로 할당했던 Ubuntu 가상머신 용량에 부족함을 느끼게 되어 200GB로 재할당하고 Ubuntu 설치 및 초기 설정, 개발 환경 설정등을 새로 하게 되었습니다.

이왕 하는거 블로그에 그 기록을 남겨 재 설정하는 경우가 다시 발생한다면 준비 시간을 조금이라도 줄여보고자 기록을 남깁니다.

VirtualBox에서 resize 옵션으로 크기를 조절하는 방법도 있으나 Ubuntu에서 파티션 재설정도 해야하는데 이 부분이 잘 되지 않아 그냥 새로 설정하였습니다.

 

사용환경

  - Host OS : Windows 10 또는 Windows 11

  - Virtual OS : Ubuntu 18.04 LTS (Zynq용 petalinux가 18.04에서만 build 가능했음. 20.04부터 불가)

  - Virtual machine program : VirtualBox 6.1.44 (Ubuntu 설치 시 세부 설정 가능. 7.x부터는 간편 설정으로 넘어감)

1. VirtualBox 프로그램을 실행하고 우측 상단 새로 만들기 (N) 클릭

  1) 가상 머신 만들기 팝업창에서 [머신 폴더] 드랍다운 버튼을 누르고 [기타...]를 선택해 가상 OS 파일이 저장될 위치 지정

  2) 가상 머신의 이름을 입력하고 종류는 [Linux], 버전은 [Ubuntu (64-bit)]을 선택

  3) 메모리 크기는 8192MB - Xilinx의 petalinux 개발 환경 권장사양

  4) 하드 디스크 항목은 [지금 새 가상 하드 디스크 만들기]를 선택하고 [만들기] 클릭

※ 가상 머신 만들기 팝업창 모양이 바로 아래와 같다면 아래 전문가 모드(E) 버튼을 클릭하고 진행

 

2. 새롭게 뜬 팝업 창에서 아래처럼 설정

  1) 파일 위치 : 지정 위치가 맞는지 다시 확인 및 생성될 OS image명 확인

  2) 파일 크기 : 목적에 맞게 최대 한계치 입력 (여기서는 200GB로 설정)

  3) 물리적 하드 드라이브에 저장 : 동적 할당 (실제 사용량에 따라 vdi 파일이 커지거나 작아짐)

       - 고정 크기 선택 시 파일 크기에서 할당한 크기만큼 고정 크기를 가짐 (여기서는 200GB 크기가 됨)

 

3. [만들기]를 누르고 관리자 창에서 왼쪽 Ubuntu18.04 항목이 생긴 것을 확인, 설정 아이콘을 클릭하여 설정 창 띄움

  1) 일반 - 고급 탭에서 클립보드 공유와 드래그 앤 드롭 모두 양방향으로 설정

  2) 시스템 - 마더보드 탭에서 부팅순서에 플로피 체크 해제하고 제일 아래로 이동 (필수 아님)

      앞 단계에서 RAM 용량 설정을 잘못했다면 여기서 다시 설정 가능

  3) 시스템 - 프로세서 탭에서 CPU 개수를 원하는 만큼 설정

 

  4) 디스플레이 - 화면 탭에서 비디오 메모리를 원하는 만큼 할당

  5) 저장소 - 저장 장치 - 컨트롤러:IDE의 ODD 비어 있음을 클릭하고 광학드라이브의 CD 아이콘 - 디스크 파일 선택... 순서로 눌러 설치할 ubuntu의 iso 파일 위치를 지정, 아래 캡쳐처럼 사용했던 이력이 남아 있는 경우 해당 이미지 이름 바로 클릭, 여기까지 설정하고 확인을 눌러 설정을 종료함

 

4. 다시 VirtualBox 관리자 창에서 Ubuntu18.04가 선택된 상태에서 시작 아이콘을 누름

 

5. Ubuntu18.04 [실행 중] - Oracle VM VirtualBox 창이 뜨고 잠시 동안 깜빡거리다가 Ubuntu 설치 창이 뜸. x를 눌러 종료!

    (그냥 진행 시 해상도 문제로 [다음], [취소], [확인]등의 버튼이 보이지 않음.

  1) Quit the installation? 팝업창에서 Quit를 눌러 설치 종료

  2) Ubuntu 체험하기 창에서 오른쪽 위 Dropdown 버튼을 누르고 설정 선택

  3) Settings창에서 Devices를 선택하고, Display에서 Resolution 1280x960이상으로  변경

      Resolution 부분을 누르면 나타나는 목록중에 새로운 해상도를 선택.

      이 후 Apply Changes? 부분에서 몇 번 왼쪽으로 드래그하다 보면 창이 이동하면서 Apply 버튼 나타남

      녹색 Apply 버튼을 눌러 해상도 설정하고 Keep Changes 버튼을 눌러 해상도 값 유지

  4) Setting 창을 닫고 바탕화면에 Install Ubuntu 18.04.6 LTS 아이콘을 더블 클릭해서 다시 설치 시작!

  5) Welcome 창에서 언어 목록 스크롤하여 [한국어] 선택하고 계속하기

  6) 키보드 레이아웃도 한국어 - 한국어-한국어(101/104키 호환)으로 설정하고 계속하기 클릭

  7) 일반 설치를 선택, 기타 설정에 2가지 항목은 모두 체크 상태에서 계속하기

  8) 설치 형식에서는 파티션 세부 설정이 가능하도록 기타를 선택할 것

  9) 새 파티션 테이블...을 누르고 팝업창에서 계속하기를 눌러 새 파티션 만들기 작업 시작.

  10) 남은 공간 - + 순서로 클릭하면서 아래와 같은 용량으로 파티션 설정

        - 용도 : 스왑 영역, 크기 : 8192MB로 설정

        - 용도 : EXT4, 마운트 위치 : /, 크기 : 20480MB (20GB)

        - 용도 : EXT4, 마운트 위치 : /boot, 크기 : 500MB

        - 용도 : EXT4, 마운트 위치 : /home, 크기 : 나머지 용량 전부

  11) 파티션 설정이 끝나면 지금 설치 버튼을 누르고 팝업 창에서 계속하기를 눌러 설치 진행

  12) 거주 위치 설정

  13) 사용자 계정 생성을 위해 빈칸을 채우고 계속하기 버튼이 활성화 되면 클릭해서 설치 진행

  14) 지금 다시 시작을 누르고 재부팅 메시지가 뜨면 파일 - 종료 - 시스템 끄기로 가상 머신 종료하고 다시 시작,

        Ubuntu 로그인 화면이 뜨면 설치 과정은 완료!

Raspberry Pi - Ubuntu간 smaba를 통한 파일 공유

양쪽 모두 Samba server 설정은 되어 있고, 윈도우에서 Raspberry Pi, Ubuntu 모두 smaba 접속 정상 확인

 

 

Ubuntu - Windows - Raspberry Pi 이렇게 Windows를 경유하여 파일 공유 가능한 상태에서 중간 경로를 삭제하고 직접 공유를 하기 위한 설정 시작

 

Samba client 설치

~$ sudo apt install smbclient cifs-utils

 

Samba 접속하여 사용할 공유 폴더 생성 및 설정

~$ mkdir smb_client
~$ sudo mount -t cifs //접속대상IP/pi ~/smb_client/ -o user=[id],pass=[passwd]

 

Ubuntu 바탕화면에 smb_client 바로가기 아이콘 생성되고, 해당 아이콘 실행 시 파일 앱에서 Raspberry Pi 공유 디렉토리 정상 확인됨

마찬가지로 terminal에서도 정상 연결 확인

 

Ubuntu 재부팅 후에도 자동 mount 되도록 설정하기

~$ sudo vim /etc/fstab

제일 아랫줄에 아래 내용 추가

//[접속대상_IP]/[Section_이름]  /Mount위치(절대경로) cifs user=[id],pass[passwd] 0 0

이 후 재부팅 시 Ubuntu에서 Raspberry Pi samba에 자동 접속 및 mount 됨.

 

※ 공유 디렉토리로 설정한 smb_client 권한이 root로 잡혀 있어 파일 복사가 안되는 상황

    (추후 방법 찾아 update하기!!)

Arty Z7 Out of Box Demo 예제를 다운로드 받아 Web 설명대로 board에 심었을 때 정상 동작을 확인.

아래 링크에서 다운로드 가능함.

개발 환경은 Windows 10 pro, Vitis 2021.2 사용

Digilent 예제는 최신 버전인 Arty Z7-20 Out-of-Box Demo Xilinx Tools 2020.1 pre-release code를 사용함.

 

Arty Z7 - Digilent Reference

 

Arty Z7 - Digilent Reference

 

digilent.com

 

Vitis에서 [import sources]를 통해 예제 source code를 전부 추가하고 [Build project]를 실행했을 때 2개의 error가 발생함.

1. AudioPWM - audiopwm.c [line 97] sin 함수 호출

  line 58에서 math.h를 포함 시키고 있으나, sin 함수가 선언되지 않았다며 compile error 발생

  해결방법

    Project explorer에서 Application 속성으로 들어가 [C/C++ Build] - [Setting] - [ARM v7 gcc linkers] - [Libraries] 선택 후 [Enter Value]에서 'm' 입력하고 저장하면 error 없어짐.

2. AudioPWM - audiopwm.h [line 114] Audio_BitField의 다중 선언

  아직 해결 방법을 찾지 못함. Workspace 단위내에서 Audio_BitField 변수는 audiopwm.h에 union으로 1곳만 선언됨.

  다만 Search 결과를 보면 audiopwm.h에서 line 114를 2번 찾은 것으로 인식하고 있음.

참조 링크 (내용 분석 중)

  ▷ GCC version 문제라는 이야기 인 듯 하며, compile flag 추가로 해결할 수 있다는 이야기인데...

       추가할 위치를 찾지 못하고 있음.

Multiple definition of ... first defined here (xilinx.com)

 

Multiple definition of ... first defined here

 

support.xilinx.com

Porting to GCC 10 - GNU Project

 

Porting to GCC 10 - GNU Project

The GCC 10 release series differs from previous GCC releases in a number of ways. Some of these are a result of bug fixing, and some old behaviors have been intentionally changed to support new standards, or relaxed in standards-conforming ways to facilita

gcc.gnu.org

 

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

Digilent Arty Z7 - PetaLinux #2  (0) 2023.10.03
Digilent Arty Z7 - PetaLinux #1  (0) 2023.09.17

+ Recent posts