본문 바로가기
임베디드 개발/라즈베리 파이

Raspberry Pi 4 ] Kernel Build

by eteo 2025. 5. 28.

 

 

Raspberry Pi 4 Model B 사용 Native 환경에서 커널을 빌드하는 법

 

 

참고 링크 :

 

https://www.raspberrypi.com/documentation/computers/linux_kernel.html

 

 

1. git 설치

$ sudo apt update
$ sudo apt install git

 

 

(옵셔널) 현재 커널 버전 확인

$ uname -r
6.6.51+rpt-rpi-v8



2. 현재 사용 중인 커널 버전의 커널 소스 다운로드

# git clone --depth=1 --branch <커널 버전(rpi-M.m.y)> https://github.com/raspberrypi/linux
$ git clone --depth=1 --branch rpi-6.6.y https://github.com/raspberrypi/linux

- 위 명령어를 실행한 경로에서 ./linux 라는 디렉토리가 생성되고 그 안에 커널 소스가 존재한다.

 

 

3. 빌드 종속성 설치

$ sudo apt install bc bison flex libssl-dev make

 

 

 

4. 커널 소스 디렉토리로 이동

$ cd linux

 

 

5. 환경 변수 설정

$ KERNEL=kernel8



6. 라즈베리파이 4에 해당하는 기본 커널 설정을 기반으로 .config 파일 생성

$ make bcm2711_defconfig

 

 

(옵셔널) TUI를 통한 커널 설정 커스터마이징

# (옵셔널) TUI를 통한 커널 설정 커스터마이징
$ make menuconfig

 

 

(옵셔널) modules_install 명령으로 커널 모듈 설치시 /lib/modules/ 경로의 기존 커널 모듈이 덮어씌워지는 것을 방지하려면 자신만의 $(uname -r) 문자열을 만들기 위해 .config 파일을 편집기로 열어 CONFIG_LOCALVERSION 파라미터를 수정할 수 있다.

$cat .config | grep LOCAL
CONFIG_LOCALVERSION="-v8"

- 수정 예시

CONFIG_LOCALVERSION="-v8-MY_CUSTOM_KERNEL"

 

 

7. 커널 빌드

$ make -j6 Image.gz modules dtbs

- 압축된 커널 이미지와 커널 모듈, dtb 파일들을 빌드한다.

 

 

(옵셔널) 커널 모듈 설치

$ sudo make -j6 modules_install

- /lib/modules/<kernel-version>/ 디렉토리를 만들고 그 안에 빌드한 커널 모듈을 복사한다.

 

 

(옵셔널) 커널 이미지 교체

$ sudo cp /boot/firmware/$KERNEL.img /boot/firmware/$KERNEL-backup.img
$ sudo cp arch/arm64/boot/Image.gz /boot/firmware/$KERNEL.img

 

 

(옵셔널) 컴파일한 dtb, dtbo 파일 복사

$ sudo cp arch/arm64/boot/dts/broadcom/*.dtb /boot/firmware/
$ sudo cp arch/arm64/boot/dts/overlays/*.dtb* /boot/firmware/overlays/
$ sudo cp arch/arm64/boot/dts/overlays/README /boot/firmware/overlays/

 

 

이제 네이티브 환경에서 디바이스 드라이버 및 디바이스 트리를 개발하기 위한 환경 구축이 완료되었다.