라즈베리파이 4의 커널을 빌드하는 과정은 특별한 상황이나 하드웨어 지원을 확장하고자 할 때 유용하다. 이 글에서는 라즈베리파이 4의 커널을 빌드하는 방법에 대해 알아본다.
1. 필수 도구 설치
커널을 빌드하기 위해 필요한 도구를 설치한다.
sudo apt update
sudo apt install -y git bc bison flex libssl-dev make
2. 라즈베리파이 4 커널 소스 다운로드
라즈베리파이 4의 커널 소스를 다운로드한다.
git clone --depth=1 https://github.com/raspberrypi/linux
아래와 같이 branch를 확인한다. 여기서는 rpi-6.1.y
를 사용할 것이므로 그대로 둔다.
raspi@raspberrypi:~/linux $ git branch -a
* rpi-6.1.y
remotes/origin/HEAD -> origin/rpi-6.1.y
remotes/origin/rpi-6.1.y
3. 커널 설정
커널 설정을 위해 라즈베리 파이 4의 디폴트 설정을 사용한다.
KERNEL=kernel8
make bcm2711_defconfig
LOCALVERSION
를 설정한다. 로컬 빌드인 것을 알 수 있는 문구를 입력한다.
CONFIG_LOCALVERSION="-v8-local"
4. 커널 빌드
32bit 커널의 경우 아래와 같이 빌드하고 이미지를 설치한다.
make -j4 zImage modules dtbs
sudo make modules_install
sudo cp arch/arm/boot/dts/*.dtb /boot/firmware/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/firmware/overlays/
sudo cp arch/arm/boot/dts/overlays/README /boot/firmware/overlays/
sudo cp arch/arm/boot/zImage /boot/firmware/$KERNEL.img
64bit 커널의 경우 아래와 같이 빌드하고 이미지를 설치한다.
make -j4 Image.gz modules dtbs
sudo make modules_install
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/
sudo cp arch/arm64/boot/Image.gz /boot/firmware/$KERNEL.img
5. 재부팅
새로운 커널로 부팅하기 위해 라즈베리파이를 재부팅한다.
sudo reboot
재부팅이 완료되었으면 uname 으로 새로 빌드한 커널로 동작 중인지 확인한다.
raspi@raspberrypi:~ $ uname -a
Linux raspberrypi 6.1.63-v8-local+ #3 SMP PREEMPT Fri Nov 24 00:13:29 KST 2023 aarch64 GNU/Linux
참고 사이트
- 라즈베리 파이 커널 빌드 공식 문서: Raspberry Pi Kernel Compilation