1. 툴체인 받기
   $ git clone https://github.com/raspberrypi/tools raspi_toolchain

2. 툴체인 환경 변수에 추가
   $ cd raspi_toolchain
   $ cp -av  arm-bcm2708/ /opt/toolchains/
   $ vi ~/.bashrc
   
* 추가 내용
export PATH="$PATH:/opt/toolchains/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian:/opt/toolchains/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin"
추가 후 저장 종료

   $ source ~/.bashrc
   $ echo $PATH   <-- 잘 적용 됬는지 확인

3. 소스 받기
   $ git clone --depth=1 https://github.com/raspberrypi/linux raspi_kernel

4. 소스 빌드
   $ cd raspi_kernel

   $ KERNEL=kernel7
   $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
   $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs(-j n옵션으로 빠르게 빌드 가능)


Target board에서 Kernel build!!

1. Source 받기
   $ git clone --depth=1 https://github.com/raspberrypi/linux

2. bc라는 패키지 설치(근데 이게 먼지 찾아봐도 모르겠음..)
   $ sudo apt-get install bc

3. Build configuration 설정
 -. 라즈베리파이 1은...
   $ cd linux
   $ KERNEL=kernel
   $ make bcmrpi_defconfig

-. 라즈베리파이 2는...
   $ cd linux
   $ KERNEL=kernel7
   $ make bcm2709_defconfig

4. build 하기
   $ make zImage modules dtbs

5. 모듈도 build 하기
   $ sudo make modules_install

6. 빌드한거 적용하기
   $ sudo cp arch/arm/boot/dts/*.dtb /boot/
   $ sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
   $ sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
   $ sudo scripts/mkknlimg arch/arm/boot/zImage /boot/$KERNEL.img

* 라즈베리파이 2는 kernel7.img 로 복사한다.


+ Recent posts