라즈베리파이 커널 컴파일 x86 환경에서 하기
2025. 1. 4. 21:07ㆍ리눅스
# 커널 컴파일에 필요한 도구 설치
$ sudo apt install bc bison flex libssl-dev make libc6-dev libncurses5-dev -y
$ sudo apt install crossbuild-essential-arm64 -y
# 라즈베리파이 커널 컴파일 작업 폴더 만들기
$ mkdir raspberry
$ cd raspberry
# 소스 다운로드
$ git clone --depth=1 https://github.com/raspberrypi/linux
# 작업 폴더 들어가기
$ cd linux
$ vi build.sh
$ chmod 755 build.sh
# 환경변수 설정 - 제대로 안되는듯.. EXPORT 로 하지 않으면 빌드중에 인식을 못한다.
$ ARCH=arm64
$ CROSS_COMPILE=aarch64-linux-gnu-
$ .build.sh
컴파일 확인 버전 build.sh 안에 ARCH, CROSS_COMPILE 직접
#!/bin/bash
echo "configure build output path"
KERNEL_TOP_PATH="$( cd "$(dirname "$0")" ; pwd -P)"
OUTPUT="$KERNEL_TOP_PATH/out"
echo "$OUTPUT"
KERNEL=kernel8
BUILD_LOG="$KERNEL_TOP_PATH/rpi_build_log.txt"
echo "move kernel source"
cd linux
echo "make defconfig"
make O=$OUTPUT ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711_defconfig
echo "kernel build"
make O=$OUTPUT ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs -j64 2>&1 | tee $BUILD_LOG
ARCH, CROSS_COMPILE 은 export 되어야 한다. 빌드 시스템에서 사용하기 때문에.
make j 옵션 현재 시스템 코어수로 변경
#!/bin/bash
echo "configure build output path"
KERNEL_TOP_PATH="$( cd "$(dirname "$0")" ; pwd -P)"
OUTPUT="$KERNEL_TOP_PATH/out"
echo "$OUTPUT"
CURRENT_DATETIME=$(date +"%Y-%m-%d_%H-%M-%S")
KERNEL=kernel8
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
echo $ARCH
echo $KERNEL
echo $CROSS_COMPILE
BUILD_LOG="$KERNEL_TOP_PATH/rpi_build_log_$CURRENT_DATETIME.txt"
echo "move kernel source"
cd linux
echo "make mrproper"
make mrproper
echo "make defconfig"
make O=$OUTPUT bcm2711_defconfig
echo "kernel build"
make O=$OUTPUT Image modules dtbs -j$(nproc) 2>&1 | tee $BUILD_LOG
참고
https://www.inflearn.com/courses/lecture?courseId=335007&unitId=245167&subtitleLanguage=ko
https://www.inflearn.com/courses/lecture?courseId=335007&unitId=245168&subtitleLanguage=ko
https://www.raspberrypi.com/documentation/computers/linux_kernel.html#cross-compile-the-kernel
'리눅스' 카테고리의 다른 글
[리눅스] 커널 컴파일 멀티코어 활용하기 (1) | 2023.12.09 |
---|---|
[리눅스] 한글 폴더명 변경 (3) | 2023.09.17 |
bash history 명령어 실행시간 (0) | 2023.03.21 |
[리눅스] check last login time (0) | 2023.02.21 |
rocky linux 8.7 설치후 네트워크 안되는 현상 (1) | 2023.02.12 |