Buildroot에서 커널 설정 및 패치 적용 방법
Buildroot를 활용하여 커널을 빌드할 때, 특정 설정을 적용하거나 커널 소스에 패치를 추가해야 하는 경우가 있습니다. 이 글에서는 Buildroot에서 커널 설정을 변경하는 방법과 패치를 적용하는 방법을 단계별로 설명하겠습니다.
1. 커널 설정 변경 방법
Buildroot에서 커널 설정을 변경하려면 다음 절차를 따릅니다.
1.1 커널 설정 인터페이스 열기
Buildroot는 Linux 커널의 menuconfig
를 활용하여 설정을 변경할 수 있습니다. 다음 명령을 실행하여 커널 설정 인터페이스를 엽니다.
make linux-menuconfig
이 명령을 실행하면 터미널 기반의 GUI 인터페이스가 나타납니다. 여기서 필요한 설정을 조정할 수 있습니다.
1.2 커널 설정 저장
설정을 변경한 후, Save
를 선택하여 설정을 저장합니다. 이때 .config
파일에 저장되며, 변경된 설정은 Buildroot의 output/build/linux-custom/.config
파일에 반영됩니다.
1.3 설정 적용 및 빌드
이제 커널을 다시 빌드하여 변경 사항을 반영할 수 있습니다.
make
이 과정에서 linux-rebuild
를 실행하여 기존 빌드 결과를 삭제하고 새로운 빌드를 수행할 수도 있습니다.
make linux-rebuild
2. 커널 패치 적용 방법
커널 소스를 수정해야 할 경우, 직접 소스를 변경하는 대신 패치를 적용하는 방법이 일반적입니다. Buildroot에서는 board/
디렉터리나 package/
디렉터리에 패치를 추가하는 방식으로 패치를 적용할 수 있습니다.
2.1 패치 디렉터리 생성
패치를 추가하려면 Buildroot의 board/
또는 package/
디렉터리 내에 패치 파일을 배치해야 합니다. 일반적으로 다음과 같은 경로를 사용합니다.
mkdir -p board/custom-kernel/patches
이후 패치 파일을 해당 디렉터리에 추가합니다.
2.2 패치 파일 작성
패치는 diff
형식으로 작성됩니다. 예를 들어, kernel_patch.diff
라는 패치 파일을 만들고, 다음과 같이 작성할 수 있습니다.
--- a/drivers/char/random.c 2024-03-06 10:00:00.000000000 +0900
+++ b/drivers/char/random.c 2024-03-06 10:05:00.000000000 +0900
@@ -100,6 +100,8 @@
int my_custom_function(void) {
printk(KERN_INFO "Custom kernel patch applied!\n");
+ return 0;
+}
}
2.3 패치 적용 설정
Buildroot가 빌드 과정에서 패치를 자동으로 적용하도록 설정하려면 linux.mk
파일을 수정해야 합니다. BR2_LINUX_KERNEL_PATCHES
변수를 설정하여 적용할 패치를 등록합니다.
예를 들어, board/custom-kernel/linux.mk
파일을 생성하고 다음 내용을 추가합니다.
BR2_LINUX_KERNEL_PATCHES += $(BR2_EXTERNAL_CUSTOM_PATH)/board/custom-kernel/patches/kernel_patch.diff
2.4 패치 적용 후 빌드
패치가 정상적으로 적용되었는지 확인하기 위해 다음 명령을 실행합니다.
make linux-rebuild
이 명령을 실행하면 Buildroot가 기존 커널 빌드 결과를 삭제하고 새롭게 패치를 적용한 상태로 빌드를 수행합니다.
3. 패치가 정상적으로 적용되었는지 확인하는 방법
3.1 적용된 패치 확인
패치가 정상적으로 적용되었는지 확인하기 위해 Buildroot의 빌드 디렉터리에서 변경 사항을 검사할 수 있습니다. output/build/linux-custom/
디렉터리로 이동하여 git diff
명령을 실행하면 패치 적용 여부를 확인할 수 있습니다.
cd output/build/linux-custom/
git diff
3.2 빌드된 커널 확인
커널이 정상적으로 빌드되었는지 확인하려면, 다음 명령을 실행하여 생성된 커널 이미지를 확인할 수 있습니다.
ls output/images/
이 디렉터리 안에 zImage
, vmlinux
, 또는 Image
파일이 생성되었는지 확인하면 됩니다.
4. 결론
Buildroot에서 커널을 설정하고 패치를 적용하는 방법을 설명하였습니다. linux-menuconfig
를 활용하여 설정을 변경할 수 있으며, 패치는 board/
디렉터리 내에 추가하고 linux.mk
파일을 수정하여 적용할 수 있습니다. 빌드 후에는 git diff
와 ls output/images/
등을 활용하여 패치 적용 여부를 확인할 수 있습니다. 이러한 절차를 통해 Buildroot에서 원하는 대로 커널을 커스터마이징할 수 있습니다.
'Linux > buildroot' 카테고리의 다른 글
Buildroot에서 U-Boot 및 커널 빌드 과정 (0) | 2025.04.24 |
---|---|
Buildroot에서 네트워크 패키지 추가 및 설정 (0) | 2025.04.23 |
gdbserver를 활용한 원격 디버깅 (0) | 2025.04.22 |
SSH, Telnet을 이용한 원격 접속 설정 (0) | 2025.04.21 |
Buildroot 패키지 빌드 및 디버깅 (0) | 2025.04.20 |