Target
Board
STM32MP157F-EV1(ST)
Host
PC - Ubuntu 22.04
목표
STM32MP1 개발 환경 구축 - Developer Package 실행

Developer Package 실행은 다음과 같다.

1. Linux kernel 빌드

2. U-Boot 빌드

 

설치 과정은 커널 및 U-Boot가 설치된 폴더의 README.HOW_TO.txt를 참조한다.


1. Linux kernel 빌드

1-0. 작업 폴더

/home/본인PC이름/STM/Developer-package/stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23/sources/arm-ostl-linux-gnueabi/linux-stm32mp-5.15.67-stm32mp-r2-r0/linux-5.15.67

Linux kernel Compile 순서는 다음과 같다.

1-1. Pre-requisite

1-2. Initialize cross-compilation via SDK

1-3. Prepare kernel source code

1-4. Manage kernel source code

1-5. Configure kernel source code

1-6. Compile kernel source code

1-7. Update software on board

1-8. Update Starter Package with kernel compilation outputs

 

1-1. 사전 준비

- OpenSTLinux SDK 설치 되어 있어야 함

- libncurses and libncursesw dev package libyaml-dev

PC $ cd linux-5.15.67/

PC $ sudo apt-get install libncurses5-dev libncursesw5-dev libyaml-dev
 

 

- mkimage 설치

PC $ sudo apt-get install u-boot-tools
 

 

- yaml (check dts) 설치

PC $ sudo apt-get install libyaml-dev
 

 

- git 설치

PC $ sudo apt-get install git-core gitk
 

1-2. cross-compilation via SDK

- SDK 환경 설정 스크립트 실행

PC $ source /home/본인PC이름/STM/Developer-package/SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
 

 

1-3. Prepare kernel source code

- ST 패치

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

 

1-5. Configure kernel source code

- fragment 적용

PC $ mkdir -p ../build

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

- gcc 없다고 에러 메시지

- make 설치

PC $ sudo apt-get install make
 

- gcc 설치

PC $  sudo apt-get install gcc
 

- fragment 적용

PC $ make ARCH=arm multi_v7_defconfig "fragment*.config"
 
PC $ for f in `ls -1 ../fragment*.config`; do scripts/kconfig/merge_config.sh -m -r .config $f; done
 
PC $ yes '' | make ARCH=arm oldconfig
 

 

1-6. Compile kernel source code

- Kernel images 빌드(시간 오래 걸림)

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

 

- Kernel module 빌드(시간 오래 걸림)

PC $ make ARCH=arm modules
 

- Output build artifacts 생성

PC $ make ARCH=arm INSTALL_MOD_PATH="$PWD/../build/install_artifact" modules_install O="$PWD/../build"
 
PC $ mkdir -p $PWD/../build/install_artifact/boot/
PC $ cp $PWD/../build/arch/arm/boot/uImage $PWD/../build/install_artifact/boot/
PC $ cp $PWD/../build/arch/arm/boot/dts/st*.dtb $PWD/../build/install_artifact/boot/
 

- 생성 파일 확인


2. U-Boot 빌드

2-0. 작업 폴더

/home/본인PC이름/STM/Developer-package/stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23/sources/arm-ostl-linux-gnueabi/u-boot-stm32mp-v2021.10-stm32mp-r2-r0/u-boot-stm32mp-v2021.10-stm32mp-r2

U-Boot Compile 순서는 다음과 같다.

2-1. Pre-requisite

2-2. Initialize cross-compilation via SDK

2-3. Prepare U-Boot source code

2-4. Manage of U-Boot source code with GIT

2-5. Compile U-Boot source code

2-6. Update software on board

2-7. Update starter package with U-Boot compilation outputs

 

2-1. 사전 준비

- OpenSTLinux SDK 설치 되어 있어야 함

 

2-2. cross-compilation via SDK

- SDK 환경 설정 스크립트 실행

PC $ source /home/본인PC이름/STM/Developer-package/SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
 

 

2-3. Prepare U-Boot source code

- ST 패치

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

 

2-5. Compile U-Boot source code

- 컴파일 환경 설정

PC $ make stm32mp15_defconfig
 

- 빌드

PC $ make DEVICE_TREE=stm32mp157f-ev1 all
 

 

 

Target
Board
STM32MP157F-EV1(ST)
Host
PC - Ubuntu 22.04
목표
STM32MP1 개발 환경 구축 - Developer Package 설치

STM32MP1 Cortex-A에서 실행되는 소프트웨어를 개발하기 위한 Developer Package 설치 순서는 아래와 같다.

 

0. 추가 패키지 설치

1. SDK 다운로드 및 설치

2. SDK 시작

3. OpenSTLinux BSP packages 다운로드 및 설치

4. Linux Kernel 설치

5. gcnano 설치

6. U-Boot 설치

7. TF-A 설치

8. OP-TEE 설치

9. debug symbol files 확인

 

여기까지 하면 작성일 기준으로 아래의 개발 환경이 만들어 진다.

Target Board
STM32mp157F-EV1
STM32 MPU ecosystem release
v4.1.0
Ubuntu
ubuntu-22.04.1-desktop-amd64
yocto version
OpenEmbedded v4.1 (Kirkstone)

 


아래 링크를 참조하여 진행 한다. hello-world application은 개발 환경 설정 후에 하도록 한다.

0. 추가 패키지 설치

basic cross-compilation(Developer Package를 통해)이나 complex cross-compilation(Distribution Package를 통해)를 하려면 추가 우분투 패키지를 설치하라고 한다.

PC $ sudo apt-get update
 
PC $ sudo apt-get install gawk wget git diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint xterm bsdmainutils libssl-dev libgmp-dev libmpc-dev lz4 zstd
 
PC $ sudo apt-get install make xsltproc docbook-utils fop dblatex xmlto
 
PC $ sudo apt-get install libmpc-dev libgmp-dev
 
PC $ sudo apt-get install build-essential libncurses-dev libyaml-dev libssl-dev 
 

 

지금 부터는 아래 링크를 참조하여 진행한다.

1. SDK 다운로드 및 설치

1-1. 아래 링크에서 'Yocto_SDK(Yocto SDK)' Download

 
en.SDK-x86_64-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar.gz

 

1-2. 다운로드 받은 파일 gzip 풀기

PC $ gzip -d en.SDK-x86_64-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar.gz
 

1-3. tar 풀기

PC $ tar xvf en.SDK-x86_64-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar
 

1-4. 스크립트를 실행 가능하게 하기 위해 권한 변경

PC $ chmod +x st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-4.0.4-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.sh
 

1-5. st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-4.0.4-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.sh

스트립트를 실행 하여 설치

PC $ ./st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-4.0.4-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.sh
 

1-6. 설치 경로는

/home/본인PC이름/STM/Developer-package/SDK

로 지정

Terminal에서 실행하던, X 윈도우에서 실행하던 결과는 동일

1-7. 설치 확인

 

2. SDK 시작

2-1. SDK 환경 설정 스크립트 실행

PC $ source /home/본인PC이름/STM/Developer-package/SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
 

2-2. 환경 설정 확인

PC $ echo $ARCH
 
PC $ echo $CROSS_COMPILE
 
PC $ $CC --version
 
PC $ echo $OECORE_SDK_VERSION
 

 

3. OpenSTLinux BSP packages 다운로드 및 설치

3-1. 아래 링에서 'STM32MP1Dev(STM32MP1 OpenSTLinux Developer Package)' 다운로드

 
en.SOURCES-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar.gz

 

3-2. 다운로드 받은 파일 gzip 풀기

PC $ gzip -d en.SOURCES-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar.gz
 

3-3. /home/본인PC이름/STM/Developer-package 설치 경로에다 tar 풀기

PC $ tar xvf en.SOURCES-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar
 

 

/home/본인PC이름/STM/Developer-package/stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23/sources/arm-ostl-linux-gnueabi

폴더로 이동

 

4. Linux Kernel 설치

PC $ cd linux-stm32mp-5.15.67-stm32mp-r2-r0/
 
PC $ tar xvf linux-5.15.67.tar.xz
 
PC $ cd linux-5.15.67/
 

 

5. gcnano 설치

PC $ cd gcnano-driver-stm32mp-6.4.9-stm32mp-r2-r0/
 
PC $ tar xvf gcnano-driver-stm32mp-6.4.9-stm32mp-r2-r0.tar.xz
 
PC $ cd gcnano-driver-6.4.9/
 

 

6. U-Boot 설치

PC $ cd u-boot-stm32mp-v2021.10-stm32mp-r2-r0/
 
PC $ tar xvf u-boot-stm32mp-v2021.10-stm32mp-r2-r0.tar.xz
 
PC $ cd u-boot-stm32mp-v2021.10-stm32mp-r2/
 

7. TF-A 설치

PC $ cd tf-a-stm32mp-v2.6-stm32mp-r2-r0/
 
PC $ tar xvf tf-a-stm32mp-v2.6-stm32mp-r2-r0.tar.xz
 
PC $ cd tf-a-stm32mp-v2.6-stm32mp-r2/
 

 

8. OP-TEE 설치

PC $ cd optee-os-stm32mp-3.16.0-stm32mp-r2-r0/
 
PC $ tar xvf optee-os-stm32mp-3.16.0-stm32mp-r2-r0.tar.xz
 
PC $ cd optee-os-stm32mp-3.16.0-stm32mp-r2/
 

 

9. debug symbol files 확인

/home/본인PC이름/STM/Developer-package/stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23/images/stm32mp1/

폴더로 이동

 

+ Recent posts