Unix & Linux/Kernel

라즈베리파이 크로스컴파일

LEEHANDS 2021. 7. 19. 19:13
반응형

참고사이트 : https://wikidocs.net/3243

 

1. 툴체인 설치

git clone https://github.com/raspberrypi/tools ~/tools

2. $ PATH 환경 변수를 업데이트

echo PATH=\$PATH:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin >> ~/.bashrc
source ~/.bashrc

3. 소스 받기

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

4. 소스 빌드

sudo apt install git bc bison flex libssl-dev make

5. 소스 및 장치 트리 파일을 빌드하려면 다음 명령

cd linux
KERNEL=kernel7l
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2711_defconfig

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

6. menuconfig 를 하기 위해서 ncurses header 필요

sudo apt install libncurses5-dev

7. 설치후에 menuconfig 진입하자

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

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

8. 빌드

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

 

9. SD카드에 설치

장치에 인식된 장치 검색 " lsblk "

SD카드 삽입하면 SDB 장치가 보인다.

mkdir mnt
mkdir mnt/fat32
mkdir mnt/ext4
sudo mount /dev/sdb1 mnt/fat32
sudo mount /dev/sdb2 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
반응형