<Spec>

  • Ubuntu version : ubuntu-18.04.5-desktop-amd64
  • stm32mpu Major ecosystem releases version : v3.0.0(openstlinux-5.10-dunfell-mp1-21-03-31)
  • kernel : Linux® kernel v5.10 (LTS)

 

이번에는 galcore.ko moduel을 넣어 보도록 한다. 

 

-Working path

$ pwd
~/STM/Developer-Package/stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31/sources/arm-ostl-linux-gnueabi/linux-stm32mp-5.10.10-r0/linux-5.10.10

 

1. galcore version 확인

yocto source에서 다음과 같이 version 및 사용한 galcore가 무엇인지 확인할 수 있다.

해당 내용의 galcore를 올려 보도록 하자.

$ vi ~/STM/openstlinux-5.10-dunfell-mp1-21-03-31/layers/meta-st/meta-st-stm32mp/recipes-graphics/gcnano-userland/gcnano-userland-binary.inc

 

먼저 ①kernel 외부에서 빌드하여 수동으로 올리는 방법과 ②kernel modules make시 포함하도록 하는 방법 두 가지를 해보도록 하겠다.

 

-Working path

2. 수동으로 galcore 올리기

 - 압축 풀기 및 패치

$ git clone https://github.com/STMicroelectronics/gcnano-binaries
$ cd gcnano-binaries
$ tar -xvf gcnano-driver-6.4.3.tar.xz
$ cd gcnano-driver-6.4.3

 

 - modules build

$ source ~/STM/Developer-Package/SDK/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
$ export KERNEL_DIR=$PWD/../../
$ make
$ make install

사용하는 kernel source의 경로를 잡아준다.

 

 - output copy

$ sudo mkdir -p /media/whatmam/rootfs/lib/modules/5.10.10/extra
$ sudo cp -rfvp galcore.ko  /media/whatmam/rootfs/lib/modules/5.10.10/extra
$ sudo vi /media/whatmam/rootfs/lib/modules/5.10.10/modules.dep
 + extra/galcore.ko:

SD 카드를 삽입 후 rootfs Partition에 module을 넣는다.

 

 

 - target board 실행하여 depmod 실행 후 reboot

TARGET> depmod
TARGET> reboot

아래와 같이 디버그에서 확인할 수 있고 lsmod 명령어를 사용하여 확인할 수 있다.

# debug message
# lsmod 명령 실행

 

3. kernel source에 driver 추가

 - Source download

$ git clone https://github.com/STMicroelectronics/gcnano-binaries
$ cd gcnano-binaries
$ tar -xvf gcnano-driver-6.4.3.tar.xz
$ cp -rfvp gcnano-driver-6.4.3 ../drivers/gpu/gcnano
$ cd ../drivers/gpu/gcnano

새로운 driver를 생성한다.

 

 - Source 수정

$ vi Kbuild
+AQROOT := $(srctree)/drivers/gpu/gcnano
-include $(AQROOT)/config

$ vi ../Makefile
+ obj-y                   += drm/ vga/ gcnano/

 

 - Kernel module build

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

 

 - 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 카드를 삽입 후 rootfs Partition에 module을 넣는다.

# debug message
# lsmod 명령 실행

 

[   72.795553] galcore: module verification failed: signature and/or required key missing - tainting kernel
위와 같은 에러가 나오면 kernel defconfig 수정해 준다 ->  CONFIG_MODULE_SIG_ALL=n

'STM32' 카테고리의 다른 글

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

+ Recent posts