
리눅스 커널 모듈 개발을 위해 샘플 코드를 빌드하고 설치하려고 했는데 아래와 같은 에러가 발생했습니다.
module hello_world: .gnu.linkonce.this_module section size must match the kernel's built struct module size at run time
구글링을 통해 여러 방법들 ( 리눅스 헤더 설치, build-essential 설치 등)을 시도해보다가
해결방법을 찾아서 공유합니다.
해결방법
해결방법은 리눅스 헤더 재설치였습니다. 아래와 같은 명령어를 사용합니다.
sudo apt install --reinstall linux-headers-$(uname -r)
샘플 리눅스 커널 모듈 소스
hello_world.c
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("roquen4145");
MODULE_DESCRIPTION("A simple hello world module");
MODULE_VERSION("0.1");
static int __init hello_world_init(void) {
printk(KERN_INFO "Hello, World!\n");
return 0;
}
static void __exit hello_world_exit(void) {
printk(KERN_INFO "Goodbye, World!\n");
}
module_init(hello_world_init);
module_exit(hello_world_exit);
Makefile
obj-m += hello_world.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) clean
빌드 및 설치 방법
make
sudo insmod hello_world.ko
# 결과 확인
sudo dmesg | tail
커널 모듈 제거
sudo rmmod hello_world
반응형
'학습 > 리눅스' 카테고리의 다른 글
리눅스 커널 빌드하기 (0) | 2025.02.17 |
---|---|
우분투 개발환경 커스터마이징 (0) | 2025.01.25 |
버추얼박스로 우분투를 백그라운드 실행하기 (0) | 2025.01.25 |
윈도우에 원격접속 가능한 우분투 개발환경 만들기 (1) | 2025.01.25 |
우분투 18.04 세팅 (0) | 2018.07.23 |