<Spec>

  • Ubuntu : ubuntu-18.04.5-desktop-amd64
  • stm32mpu Major ecosystem releases version : v3.0.0
  • kernel : Linux® kernel v5.10 (LTS)

 

 

-Working path

$ pwd
~/STM/Developer-Package

 

1. Kernel build

 - 압축 풀기 및 패치

$ tar -xvf en.SOURCES-kernel-stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31.tar.xz
$ cd stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31/sources/arm-ostl-linux-gnueabi/linux-stm32mp-5.10.10-r0
$ tar -xvf linux-5.10.10.tar.xz
$ cd linux-5.10.10
$ for p in `ls -1 ../*.patch`; do patch -p1 < $p; done
$ 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

 

 - <my>_defconfig, <my>.dts 생성

$ cp -rfvp .config arch/arm/configs/stm32_whatmam_defconfig
$ cp -rfvp arch/arm/boot/dts/stm32mp157f-ev1.dts arch/arm/boot/dts/stm32mp157f-whatmam-ev1.dts
$ vi arch/arm/boot/dts/Makefile 
$	# stm32mp157f-whatmam-ev1.dts추가

 

 

 - Build

$ source ~/STM/Developer-Package/SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
$ make stm32_whatmam_defconfig
$ make ARCH=arm uImage vmlinux dtbs LOADADDR=0xC2000040

 

 - output copy

$ sudo cp -rfvp arch/arm/boot/dts/stm32mp157f-whatmam-ev1.dtb  /media/whatmam/bootfs/
$ sudo cp -rfvp arch/arm/boot/uImage  /media/whatmam/bootfs/

SD 카드를 삽입 후 bootfs Partition에 image를 넣는다.

 

 - extlinux.conf 수정

$ sudo vi /media/whatmam/bootfs/mmc0_extlinux/stm32mp157f-ev1_extlinux.conf
LABEL OpenSTLinux
+FDT /stm32mp157f-whatmam-ev1.dtb

OpenSTLinux 레이블에 FDT를 지정하도록 추가해준다.

 

 - uboot 수동으로 부팅

STM32> setenv bootargs root=/dev/mmcblk0p6 rootwait rw console=ttySTM0,115200
STM32> ext4load mmc 0:4 0xc2000000 uImage
STM32> ext4load mmc 0:4 0xc4000000 stm32mp157f-whatmam-ev1.dtb
STM32> bootm 0xc2000000 - 0xc4000000

extlinux.conf를 수정하거나 uboot로 수동으로 부팅해 주면된다.

 

SD카드를 Target에 삽입하고 부팅시켜주어 디버그 내용을 확인한다.

 

2. kernel modules build

 - 압축 풀기 및 패치

$ make ARCH=arm modules
$ make ARCH=arm INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH="$PWD/../build_kernel_modules"  modules_install

INSTALL_MOD_STRPI=1 

kernel modules Size를 줄이기 위해서 모든 디버깅 기호가 제거되어 약 90%까지 줄일 수 있다.

 

 - output copy

$ cd ../build_kernel_modules/lib/modules/5.10.10/
$ rm -rf build source
$ cd ..
$ sudo cp -rfvp 5.10.10 /media/whatmam/rootfs/lib/modules/

SD 카드를 삽입 후 bootfs Partition에 kerne modules을 넣는다.

 

 

 

부팅을 하면 다음과 같이 GPU Driver가 없다고 나온다. 다음장에서 GPU Driver module을 넣어보자

'STM32' 카테고리의 다른 글

4. STM32mp157 u-boot 분석  (0) 2021.07.20
3. STM32mp157 eMMC Booting  (1) 2021.07.19
2-3. STM32mp157 Distibution Package - galcore  (0) 2021.07.13
2-1. STM32mp157 Developer Package - uBoot  (0) 2021.07.13
1. STM32mp157 Yocto build  (0) 2021.07.13

+ Recent posts