ST 퀘스트 이벤트
Quest 2
퀘스트 2/7 - Yocto 환경 구축 및 STM32MP157C-DK2 보드 실행 작성자 : Telcard

안녕하세요.

 

역시나 리눅스 초보자는 항상 접근하기가 쉽지가 않네요. (배경 지식이 풍부해야...)

 

초반에 bitbake 사용을 위해서 TIP에서 소개한대로 하드디스크 공간이 많이 필요로 합니다.

그래서 VMWare등을 이용해서 가상 공간을 활용하는 경우, VMWare 설정에서 HDD 공간을 추가로 30GB 이상 확보해야 합니다.

전체적으로 4~60GB를 확보해야 할 듯 합니다.

그리고 리눅스 부팅 후에 파디션 확장(Resize)을 해 주어야 합니다.

-> 그렇지 않은 경우, bitbake 작업에서 멈춤 증상 발생 (QnA 게시판 참조)

 

참조 :

wlsfbgh**님 글 : 마지막 hello_world 예제 작성 시 도움!

https://make.e4ds.com/make/st_board_view.asp?idx=97&t=2

zmflfto**님 글 : 전체적인 흐름 파악에 도움!

https://make.e4ds.com/make/st_quest_view.asp?q=2&idx=299

 

1. 배포판 bitbake 성공 화면

 

* 위에서 언급을 했지만, 파디션(HDD) 공간의 부족으로 bitbake 진행이 초반에 멈추고 더이상 진행을 하지 않게 되는 경우가 발생하여, 2~3일 소비하게 되었습니다. 아래와 같이 Parsing recipes : 진행에서 멈춤 상태 유지

 

* 참고  과ㅇ은 상당한 시간을 소비합니다. 대략 5~6시간, 저의 경우는 12시간 이상.

 

처음 bitbake 성공 화면은 아래와 같으며, 이 경우, warning이 발생했는데, 별로 문제 소지가 없다고 하여서 그냥 진행했습니다.

(참고로 다시 bitbake 수행했더니, Warning을 없어졌습니다.)

 

2. 이미지 Flashing 하기

- 이 작업을 수행하기 위해서는 Quest-1에서 수행했던, Starter-Package가 이용되게 됩니다.

(STM32CubeProgrammer)

 

보드에 전원용 USB-C가 아닌, USB-C 커넥터와 PC를 연결합니다.

이 경우, VMware의 경우, 아래와 같은 창이 나오는데, 이 때 "Virtual machine" 쪽으로 선택 필요!

* 이작업을 해야 STM32Programmer 수행 시 DFU 인식이 됩니다.

 

그리고 보드 아래면에 있는 BOOT 선택용 DIP SW 1, 2 모두 OFF 쪽으로 옮기고,

보드의 전원을 인가 함 (or RESET 스위치 이용)

 

이후 STM32Programmer_CLI 명령을 통해서 보드의 DFU 인식 확인

 

이제 보드에 이미지 파일 Flashing 하기

* 리눅스에서는 항상 작업 폴더 위치가 어디인지 혼돈을 주는 경우가 많다. 저처럼 초보자는 주의가 필요할 듯.

 

Flashing은 10분정도 소요된 듯 합니다. (USB-C를 통해서 SD 카드에 바로 Flashing을 수행한 것으로 판단 됩니다.)

 

마지막으로 부팅 화면을 확인해 보겠습니다.

이를 위해서는 보드에 ST-LINK로 표기되어 있는 micro-USB 커넥터와 PC를 연결해야 합니다.

 

이렇게 하면, PC에서는 가상COM 포트가 잡히게 됩니다.

PC에서 Terminal 프로그램을 이용해서 보드의 부팅 상태를 확인할 수 있습니다.

 

3. 사용자 예제 작성 : hello_world

* 이 작업을 위해서는 보드와 PC를 LAN 케이블을 이용해서 연결하여야 합니다.

 

이 작업은 제공해 준 링크에서 7. 항목에 해당하는 부분입니다.

(이 경우도 어느 폴더에서 해야 하는지? 처음에 막막하더군요. 그냥 작업 폴더 /work/STM32MP1 아래에서 진행하였습니다.)

예제 코드 작성하고, bitbake를 이용해서 빌드 과정을 거쳐야 하는데, 이 부분 설명이 빠져 있습니다.

 

* 그리고 오타가 있어서, 혼돈이 올 수 있는 부분이 있습니다. (myhelloword) 와 같이 world가 아닌 word로 되어 있습니다.

하지만, 전체적인 흐름으로는 문제가 없어 보입니다. -> 어느 하나로 통일해서 기입하면 될 것으로 판단 됩니다.

 

"Push this binary on board" 항목을 수행하기 전에 bitbake를 이용해서 빌드작업을 수행해야 합니다.

 

PC $> bitbake myhelloworld

 

이렇게 해서 수행을 하고, 다음으로 보드에 binary 파일을 전송합니다.

 

PC $> devtool deploy-target -s myhelloworld root@192.168.10.100

이렇게 수행하였으며, PC와 보드를 1:1로 연결하여서, 보드의 IP가 DHCP에 의한 할당을 못 한 상황이었습니다.

 

그래서 수동으로 보드의 IP 지정하였습니다.

BOARD $> ifconfig eth0 192.168.10.100

https://wiki.st.com/stm32mpu/wiki/How_to_configure_ethernet_interface

 

 

이와 같이 마무리 합니다.

 

역시, 초보자가 진행하기는 쉽지가 않네요.

Wiki에 문서 내용을 알차고 좋지만, 따라하기식으로 이루어져 있어서,

이 작업이 무엇이고, 왜 해야 하는지 등에 대한 부연 설명이 많이 부족한 듯 합니다.

 

(개인적인 역량이긴 하지만, 이렇게 정보를 서로 공유할 수 있어서 참 좋은 듯 합니다.)

 

사전 게시글들을 통해서 많은 도움을 얻었습니다.

감사합니다.