STM32MP157C-DK2는 우분투 환경에서 개발을 진행합니다.

 

그래서 Window 10 Hyper-V 가상환경에서 Ubuntu18.04.4를 설치하여 진행합니다.

아래 링크를 참조하여 개발환경 구축을 참고합니다.

* Starter Package

https://wiki.st.com/stm32mpu/index.php/STM32MP15_Discovery_kits_-_Starter_Package

 

* Developer Package

https://wiki.st.com/stm32mpu/index.php/STM32MP1_Developer_Package

 

* STM32 MPU Wiki

https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157C-DK2/Develop_on_Arm%C2%AE_Cortex%C2%AE-A7/Modify,_rebuild_and_reload_the_Linux%C2%AE_kernel

 

 

STM32CubeProgrammer tool 설치

 

1. (없는 사람만 진행) JAVA JRE 설치

$ sudo apt-get install openjdk-8-jre

 

2.  https://www.st.com/en/development-tools/stm32cubeprog.html에서 STM32CubeProgrammer 다운로드

 

3. 압축을 풀고 다음을 입력하여 설치

$ ./SetupSTM32CubeProgrammer-2.4.0.linux

 

4. binary PATH 등록

$ export PATH=<my STM32CubeProgrammer install directory>/bin:$PATH

 

Developer Package 설치    

 

1. STM32MP1 Developer Package SDK 설치
     en.SDK-x86_64-stm32mp1-openstlinux-20-02-19.tar.xz에서 SDK를 다운로드

 

2. 압축 해제

$ tar xvf en.SDK-x86_64-stm32mp1-openstlinux-20-02-19.tar.xz

 

3. 파일 권한 변경

$ sudo chmod +x stm32mp1-openstlinux-20-02-19/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-2.6-openstlinux-20-02-19.sh

 

4. 설치 스크립트 실행 

$ ./stm32mp1-openstlinux-20-02-19/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-2.6-openstlinux-20-02-19.sh -d <working directory absolute path>/Developer-Package/SDK

필자의 <working directory absolute path>는 /home/jeon/STM 이다.

 

SDK 설치가 성공적으로 완료된 화면

 

5. SDK 환경 설정 스크립트 - SDK 시작

      ** SDK 환경 설정 스크립트는 크로스 컴파일 하는 터미널마다 한번씩 실행되어야 합니다.

$ source <SDK installation directory>/environment-setup-cortexa7hf-neon-vfpv4-ostl-linux-gnueabi

위 스크립트가 성공적으로 적용되었으면 아래와 같은 커맨드를 입력하였을 경우 아래 그림처럼 나타난다.

$ echo $ARCH

$ echo $CROSS_COMPILE

$ $CC --version

$ echo $OECORE_SDK_VERSION

성공적으로 SDK가 실행된 화면

 

Linux Kernel 설치

1. Developer-package 폴더에 Kernel source 다운로드

            en.SOURCES-kernel-stm32mp1-openstlinux-20-02-19.tar.xz    

 

2. 압축 해제

$ tar xvf en.SOURCES-kernel-stm32mp1-openstlinux-20-02-19.tar.xz

$ cd stm32mp1-openstlinux-20-02-19/sources/arm-ostl-linux-gnueabi/linux-stm32mp-4.19-r0/

$ tar xvf linux-4.19.94.tar.xz

 

3. ST 패치 적용

$ cd linux-4.19.94/

$ for p in `ls -1 ../*.patch`; do patch -p1 < $p; done

 

4. fragment 적용

$ make ARCH=arm multi_v7_defconfig "fragment*.config"

$ for f in `ls -1 ../fragment*.config`; do scripts/kconfig/merge_config.sh -m -r .config $f; done

$ yes '' | make ARCH=arm oldconfig

* 이때 각종 프로그램이 설치되어있지 않다고 메세지가 나타날 수 있다. apt-get install로 설치해주자.

 

* make가 없다고 메시지가 나타날 수 있다. sudo apt-get install make를 입력하여 설치하자.

make가 설치되어있지 않아 나타나는 메세지

* gcc가 없다고 메세지가 나타날 수 있다. sudo apt-get install gcc를 입력하여 설치.

gcc가 설치되어있지 않아 나타나는 메세지

 

* bison이 없다고 메세지가 나타날 수 있다. sudo apt-get install bison을 입력하여 설치하자.

bison이 설치되어있지 않아 나타나는 메세지

* flex가 없다고 메세지가 나타날 수 있다. sudo apt-get install flex를 입력하여 설치하자.

flex가 설치되어있지 않아 나타나는 메세지

 

 

yes '' make ARCH=arm oldconfig 를 입력 후 화면 / 리눅스 커널 소스 코드 준비 완료

5. 커널 이미지 빌드 (10분이상 소요)

$ make ARCH=arm uImage vmlinux dtbs LOADADDR=0xC2000040

 

* 아래 gcc unrecognized argument와 같은 에러를 만나면 source 커맨드를 다시 진행한다.

$ source <SDK installation directory>/environment-setup-cortexa7hf-neon-vfpv4-ostl-linux-gnueabi

make할 때 다음과 같은 에러를 만날 수 있다.

* 아래 openssl/bio.h와 같은 에러를 만나면 libssl-dev를 설치한다.

$ sudo apt-get install libssl-dev

make할 때 다음과 같은 에러도 만날 수 있다.

 

Build가 완료된 화면

6. 커널 모듈 빌드

$ make ARCH=arm modules

커널 모듈 빌드가 완료된 화면

 

7. output build artifacts 생성

$ mkdir -p $PWD/install_artifact/

$ make ARCH=arm INSTALL_MOD_PATH="$PWD/install_artifact" modules_install

output build artifacts 완료

 

U-Boot 설치

1. Developer-package 폴더에 U-boot source 다운로드

     en.SOURCES-u-boot-stm32mp1-openstlinux-20-02-19.tar.xz 

 

2. 압축 해제 및 패치

$ tar xvf en.SOURCES-u-boot-stm32mp1-openstlinux-20-02-19.tar.xz

$ cd stm32mp1-openstlinux-20-02-19/sources/arm-ostl-linux-gnueabi/u-boot-stm32mp-2018.11-r0/

$ tar xvf v2018.11.tar.gz   

$ cd u-boot-2018.11

$ for p in `ls -1 ../*.patch`; do patch -p1 < $p; done

 

3. 컴파일 환경 설정

$ make stm32mp15_basic_defconfig

정상적으로 컴파일 환경이 설정된 화면

 

4. 빌드

$ make DEVICE_TREE=stm32mp157c-dk2 all

u-boot build 완료된 화면

반응형

'MCU > STM32MP1' 카테고리의 다른 글

[STM32MP1]STM32MP157C-DK2 개봉기  (0) 2020.05.09
STM32MP157C-DK2 소개  (1) 2020.04.20

+ Recent posts