SBC (Single Board Computer)/Raspberry Pi 3

라즈베리파이3, 라즈비안 커널 소스 내려받기 < 크로스 컴파일 >

LEEHANDS 2021. 9. 2. 15:40
반응형

https://wikidocs.net/3243

 

(2) 커널 빌드하기

# 커널 빌드하기 커널을 빌드하기 위한 두 가지 주요 방법이 있습니다. Raspberry Pi에서 로컬로 빌드할 수 있으며 시간이 오래 걸립니다. 또는 훨씬 빨리 크로스 ...

wikidocs.net

apt-get install git bc bison flex libssl-dev

리눅스 유틸리티 프로그램을 설치

 

 

git clone --depth=1 https://github.com/raspberrypi/linux

리눅스 커널 소스를 다운로드

브랜치를 지정하지않으면 현재시점의 최종 커널이 다운로드한다.

 

만약 책이나 가이드를 받고있다면 가이드중인 커널을 다운로드 받는것이 가장 좋다.

git clone --depth=1 --branch rpi-4.19.y https://github.com/raspberrypi/linux

디버깅을 통해 배우는 리눅스 커널의 구조원리 책에서 사용한 커널은 4.19 이기때문에 해당 버전으로 다운로드 받았다.

cd linux
KERNEL=kernel7
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig

 

이렇게했다면 이제 커널 빌드합니다.

 

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs

----------------------------------------------

커널빌드 완료 후 Target 보드의 SD 카드의 위치를 확인하기위해 

연결 전후 lsblk 명령어로 위치를 알아냅니다.

 

 

mkdir mnt
mkdir mnt/fat32
mkdir mnt/ext4
sudo mount /dev/sdb6 mnt/fat32
sudo mount /dev/sdb7 mnt/ext4

모듈 설치

sudo env PATH=$PATH make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=mnt/ext4 modules_install

마지막으로 커널과 장치 트리 blob을 SD 카드에 복사하여 이전 커널을 백업하십시오.

sudo cp mnt/fat32/$KERNEL.img mnt/fat32/$KERNEL-backup.img
sudo cp arch/arm/boot/zImage mnt/fat32/$KERNEL.img
sudo cp arch/arm/boot/dts/*.dtb mnt/fat32/
sudo cp arch/arm/boot/dts/overlays/*.dtb* mnt/fat32/overlays/
sudo cp arch/arm/boot/dts/overlays/README mnt/fat32/overlays/
sudo umount mnt/fat32
sudo umount mnt/ext4

----------------------------------------------------------------

 

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
반응형