반응형

(추후 수정 예정)

HDMI 띄우기 세팅은 완료했으므로 본격적으로 Linaro LINUX 를 설치해보도록 한다.

먼저, petalinux 가 필요한데, 이는 전에 

[ZYNQ MINI] 보드로 petalinux 돌려보기 - [1] :: 블러그 (tistory.com)

 

[ZYNQ MINI] 보드로 petalinux 돌려보기 - [1]

petalinux 2018.3 버전을 사용하였음 Linux 설치에 앞서, 새로 Vivado Project 를 먼저 생성 해 준다. Project name 은 그림과 같이 설정하고, 나머지는 이전과 동일하게 한다. 물론 소스코드는 생성하지 않는다

hipenhw.tistory.com

 

에서 설명했으므로 생략한다.

다음으로 

 

Linaro Releases

 

Linaro Releases

 

releases.linaro.org

에 접속해 debian > images > alip-armhf > latest > linaro-jessie-alip-20161117-32.tar.gz 를 다운 받는다.

 

그리고 처음으로 나와서, archive > ubuntu > images > gnome > latest > linaro-vivid-gnome-20151215-714.tar.gz 도 다운받는다.

 

 

 

그리고 이전까지 사용했던 arm_fpga_hdmi_output 프로젝트를 살짝 수정해서 사용한다.

블록 디자인을 열어 주고, ZYNQ PS를 더블클릭 해 준다.

 

 

다음 그림에 해당하는 항목을 체크 해 준다.

 

 

 

 

아마 여기까지는 다 되어 있을 확률이 높다.

다음은 안 되어있을 것이므로 체크해 준다.

 

 

 

다음은 MDIO를 배치해야 인터넷이 정상적으로 동작한다고 한다.

이쪽에서는 주의해서 볼 필요가 있다.(아마 다 되어 있을 것임)

 

 

 

 

 

 

클럭도 확인해 준다. 아마 값이 같게 설정되어 있을 것이다.

 

 

 

클럭설정까지 마쳤다면 다시 MIO 설정으로 돌아와 USB reset 세팅을 다시 해 준다.

 

 

GPIO는 아마 되어 있을 것이다.

DDR 세팅도 봐 준다.

 

 

다음은 인터럽트 세팅이다.

다음과 같이 설정 해 준다.

 

다 했다면 OK를 눌러 나온다.

 

이후 기타 설계 변경 사항으로, AXIGPIO 모듈과 HDMIHPD 신호를 삭제해 HDMI 삽입을 능동적으로 감지를 없애고 인터페이스가 능동적으로 출력하게 한다. HDMI은 원래 32비트인데 우리는 데이터를 정렬해서 24비트로 변환했으므로 axi-streamsubset converter 모듈도 함께 삭제한다.

 

 

AXI GPIO를 in0 으로 받던 Concat은 input 라인을 2로 줄여 준다.

 

이후 초기화 된 in2를 다시 in0에 연결해 준다.

 

AXI4-Stream to video out 출력 video out을 RGB_DVI에 직접 연결했고, axi-stream subsetconverter 를 삭제해 더 이상 변환이 불필요하다.

그리고 AXI-GPIO를 삭제했기 때문에 AXI Interconnect 모듈에 인터페이스가 하나 부족해진다.

따라서 다음과 같이 설정한다.

 

AXI Interconnect 모듈을 더블클릭해 마스터 인터페이스를 3으로 조정 해 준다.

여기서 RGB 픽셀 위치를 전환해야 한다.

 

사람마다 링크는 다를텐데, 나는 이쪽에 파일이 들어 있었다.

D:\ZYNQ_MINI\ZYNQ_MINI_ New\03 Sample Projects\7010\LINUX部分\02运行带图形界面的linux系统\zynq_linux_desktop\repo\ip\rbg_rgb

 

대충 보면 알 것으로 생각하고 넘어가겠다.

해당 폴더(rbg_rgb)를 현재 내 프로젝트에 복사해 온다.

RBG 배열을 RGB 로 reordering 할 뿐인 별 것 없는 코드이다.

내 프로젝트의 repo > ip 에 넣어 준다.

 

그리고 IP를 불러 와야 한다.

단순히 Refresh 를 했을 때 IP 추가가 자동으로 되지 않아 내 repo 링크를 삭제하고 다시 추가해서 불러오는 데 성공했다.

Custom IP를 불러오는 것은 

[ZYNQ MINI] Linaro LINUX 사용해 보기 + HDMI 세팅 - [1] :: 블러그 (tistory.com)

 

[ZYNQ MINI] Linaro LINUX 사용해 보기 + HDMI 세팅 - [1]

이번에도 셀러가 제공해준 파일을 참고한다. Vivado를 실행시켜 준다. 프로젝트 생성 전,셀러는 Linaro LINUX를 사용하기 위해 arm_fpga_hdmi_output 프로젝트를 가져왔다고 한다.우리는 아직  HDMI 를 해

hipenhw.tistory.com

의 초반 부분에 기록해 두었다.

 

아무튼 RBGtoRGB IP를 불러 온다.

 

이 세 모듈에 대해서 처리를 해 준다.

Output 핀에 있는 + 를 누르면 세부적으로 볼 수 있다.

 

다음과 같이 연결 해 준다.

연결을 다 했다면 저장하고, Wrapping 하고(아마 되어 있을 것임) 합성을 진행한다.

I/O 핀은 아마 다 되어 있을 건데 확인만 한 번 한다.

 

이후 Bitstream 까지 생성 해 준다. Export Hardware(include bitstream) 해 주고

다 했다면 SDK를 켜 준다.

 

다음으로, petalinux 를 설치했을 때 처럼 hdf 파일이 필요하다.

design_1_wrapper_hw_platform_0 에 있는 system.hdf 를 백업 해 둔다.

 

이제 다시 VM을 켜 준다.

Ubuntu 16.04 버전으로 키는 것을 잊지 말자

 

VM 으로 와서 먼저 

source settings.sh

로 petalinux 툴을 init 한다.

다음으로 프로젝트에 system.hdf 를 추가해 준다.

 

$ petalinux-create --type project --template zynq --name petalinux_desktop

으로 새로 프로젝트를 하나 생성한다.

 

생성한 petalinux_desktop 프로젝트에 system.hdf 파일을 넣어 준다.

 

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

 

을 이용해 설정에 들어간다.

다음 과정을 따른다.

 

 

Image Packaging Configuration > Root filesystem type > SD card 선택 > 아래 Save > OK > Exit > Esc 두번 눌러서 다시 메인 화면으로 > Linux Components Selection > linux-kernel > ext-local-src > External linux-kernel local source settings > External linux-kernel local source path > /petalinux_prj/linux_kernel 기입(사진참고, petalinux_prj 소스는 자기 환경에 맞게 설정하기) > OK > 아래 Save > OK > Exit > Esc 또는 Exit 계속 해서 나가기

 

 

아까 지정했던 /petalinux_prj/linux_kernel 을 만족하기 위해 /petalinux_prj 위치에서

$ mkdir linux_kernel

 

을 사용해 폴더를 하나 생성 해 준다.

이후 Linaro LINUX 파일을 모두 VM으로 옮겨 온다.

 

 

추가로 셀러가 제공해 준 5) linux software 의 linux-4.14.0-v2018.3.tar.gz 도 가져 와야 한다.

 

 

그럼 파일이 이렇게 3개 남게 된다. 

그런데 나는 조금 불안해서 petalinux_prj 하위에 kernel_software 라는 폴더를 만들어 이 3개를 거기에다가 저장했다.

 

$ tar --gzip -zxvf <linux-4.14.0-v2018.3.tar.gz 있는 위치>

실행해 준다.

 

 

다시 petalinux_desktop 프로젝트로 돌아가서 

$ petalinux-config -c kernel 

 

을 완료해 준다.

(오류가 나면 linux-4.14.0 파일의 owner, group 을 자기 자신으로 세팅하고 다시 해보자)

 

진행되다 보면 커널 설정이 나온다.

 

 

아래 쭉 내려서 Device Drivers > Graphics support > Digilent VGA/HDMI DRM Encoder Driver, Xilinx LCD/HDMI driver support 두 항목이 체크되어 있는지 확인한다.(기본값은 체크 되어 있음.)

 

 

다 했다면 Exit 로 나오자. 만약 수정 사항이 있다면 save 해야 한다.

 

뭐 다운받을게 이렇게 많은지 모르겠는데, 계속 나온다.

셀러가 제공해 준 파일에서, 3)sample projects > 7010 > linux 어쩌고 > 02 (내 임의로 linarolinux라 이름붙임) > system-user.dtsi 파일을 vm으로 옮겨 주자.

 

 

다운받은 이 파일은 좀 복잡한 폴더로 넣을 예정이다. 내 경우 경로가

/peta/petalinux_prj/petalinux_desktop_project-spec/meta-user/recipes-bsp/device-tree/files
내에 있는 system-user.dtsi 파일을 교체해 준다.

 

교체했다면 petalinux_desktop 프로젝트 폴더에서 

$ petalinux-build

 

로 빌드를 시작한다.

오류 메세지가 하나 나왔지만 일단 진행 해 본다.

 

 

 

TFTPBOOT 폴더에 접근을 할 수 없어서 카피를 건너뛰었다고 나온다.

컨픽에서 설정을 다시 해주기는 귀찮다.

일단 BOOT.BIN 은 생성되었으니 사용해 본다.

 

- 추후 수정 예정 -

 

 

 


 

일단 먼저 진행했는데

 

유선 라인으로는 잘 동작하긴 하는데 디스플레이 되는 화면에 아무것도 나타나지 않아 해결을 좀 해야 할 것 같다..

설정 상에서 뭔가 잘 못 건든 것 같다. 셀러가 제공해 준 BOOT.BIN, image.ub 는 정상인걸 보면 말이다.

 

 

 

 

반응형

+ Recent posts