<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 |