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
반응형