<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 명령어를 사용하여 확인할 수 있다.
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을 넣는다.
[ 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 |