수행기록퀘스트2
Install & Build the OpenSTLinux distribution
@ 아래 링크를 통해 OpenSTLinux distribution 를 받음
https://make.e4ds.com/make/dist/layers.tar.gz
@ \Distribution-Package\openstlinux-20-02-19 에 복사 후 압축해제
$ tar xvf layers.tar.gz
@ 환경변수 설정 후 bitbake 빌드
$ DISTRO=openstlinux-weston MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh
$ bitbake st-image-weston
% 약 6시간 40분 정도 소요되었음
% 저장공간 용량 부족으로 저장공간 확보 후 다시 빌드 진행. 여유공간 25GByte 정도 필요
% 빌드시 Warnning이 발생하였으나 재빌드시 성공함
@ 너무 오래 걸려서 기다리는 동안 Touch Panel에 보호필름을 붙여줌
Flashing the built Image
@ STM32CubeProgrammer 설치 전 필요한 Packages 설치 및 설정
$ sudo apt-get install openjdk-8-jre-headless
$ sudo update-alternatives --config java
Select the java-8-openjdk configuration
$ sudo apt purge openjfx
$ sudo apt install openjfx=8u161-b12-1ubuntu2 libopenjfx-jni=8u161-b12-1ubuntu2 libopenjfx-java=8u161-b12-1ubuntu2
$ sudo apt-mark hold openjfx libopenjfx-jni libopenjfx-java
@ STM32CubeProgrammer 압축해제
$ unzip en.stm32cubeprog_v2-4-0.zip -d stm32cubeprog_v2-4-0
@ STM32CubeProgrammer 설치
$ cd stm32cubeprog_v2-4-0
$ ./SetupSTM32CubeProgrammer-2.4.0.linux
@ STM32_Programmer_CLI의 PATH 추가
$ export PATH=$HOME/stm32mp1/STM32MPU-Tools/STM32CubeProgrammer-2.4.0/bin:$PATH
@ STM32_Programmer_CLI 설치 확인
@ USB Driver 설치
$ sudo apt install libusb-1.0-0
$ cd /STM32MPU-Tools/STM32CubeProgrammer-2.4.0/Drivers/rules
$ sudo cp *.* /etc/udev/rules.d/
@ STM32MP157C-DK2 USB 확인
% 위는 Debug Mode
% 아래는 DFU Mode
@ STM32_Programmer_CLI를 이용한 Flashing
$ STM32_Programmer_CLI -c port=usb1 -w flashlayout_st-image-weston/FlashLayout_sdcard_stm32mp157c-dk2-trusted.tsv
% 새 이미지 Flashing 전 booting Message
% 새 이미지 Flashing 이후 Booting Message
Hello world 어플리케이션 작성 예제
@ hello_world_example 예제 작성
$ mkdir hello_world_example
$ cd hello_world_example
@ devtool을 이용한 Bulild 및 배포
$ devtool add myhelloworld hello_world_example
$ devtool edit-recipe myhelloworld
$ bitbake myhelloworld
$ devtool deploy-target -s myhelloworld root@192.168.35.189
% 192.168.35.189 는 STM32MP157C-DK2의 IP Address
% 호스트와 DK2 보드를 연결하여 터미널에서 ifconfig를 통해 IP Address 확인함
@ hello_world_example 실행
$ ./hello_world_example
로그인 후
참가 상태를 확인할 수 있습니다.