[컴파일러 설치] -- 내용무시
toolchain 디렉토리의 arm-buildroot-linux-gnueabi-4.9.3.tar.gz 파일을 디렉토리에 풀어 사용한다.
$> cd toolchain/ $> tar zxvf arm-buildroot-linux-gnueabi-4.9.3.tar.gz .
[컴파일을 위한 환경파일] -- 내용무시
환경파일 env-br-4.9.3.env
export CROSS_COMPILE=arm-buildroot-linux-gnueabi- export ARCH=arm export WORK_TOP_PATH=$(pwd) export G2C_TOOLCHAIN_PATH=${WORK_TOP_PATH}/toolchain/usr export PATH=${G2C_TOOLCHAIN_PATH}/bin:$PATH export WORK_LD_LIBRARY_PATH=${G2C_TOOLCHAIN_PATH}/lib
source 유틸리티를 사용하여 환경을 설정한다.
$> source env-br-4.9.3.env
[부트로더 컴파일] -- 내용무시
부트로더 디렉토리 bootloader/u-boot_2015_01 로 이동한다.
$> cd bootloader/u-boot_2015_01
make-imx6.sh 파일을 실행한다. (처음실행이거나 혹은 재컴파일인 경우도 동일하게 실행한다)
$> ./make-imx6.sh
환경을 변경하려면 쉘을 사용하지 않고 아래와 같이 사용한다.
$> make menuconfig
u-boot 환경파일
mx6sl_apsi_defconfig
[커널 컴파일] -- 내용무시
커널 디렉토리 kernel/linux-imx6-3.14.52 로 이동한다.
$> cd kernel/linux-imx6-3.14.52
make-imx6.sh 파일을 실행한다. (처음실행이거나 혹은 재컴파일인 경우도 동일하게 실행한다)
$> ./make-imx6.sh
컴파일 후 생성된 uImage 파일과 dtb 파일은 자동으로 특정 디렉토리로 복사된다.
컴파일시 에러가 발생하였다면 mrproper 명령을 적용한다.
$> ./make-imx6.sh mrproper $> ./make-imx6.sh
dt, module 등을 컴파일 하려고 한다면 해당명령어를 입력한다. (dt는 커널 컴파일시 자동으로 컴파일된다)
컴파일된 module은 "../out_linux_3.14.52" 디렉토리에 복사된다.
$> ./make-imx6.sh dtb $> ./make-imx6.sh modules $> ls ../out_linux_3.14.52
커널 환경을 위해 menuconfig 를 사용하려면 아래와 같이 실행한다. ( make menuconfig 사용하면 안됨 )
$> ./make-imx6.sh menuconfig
[RFS, buildroot 컴파일] -- 내용무시
buildroot 디렉토리 buildroot-new 로 이동한다.
$> cd buildroot-new
컴파일을 위해서 make-imx6.sh를 수행한다.
$> ./make-imx6.sh
환경 수정을 위해 menuconfig 를 사용할때는 아래와 같이 사용한다.
$> ./make-imx6.sh menuconfig
환경 파일을 defconfig 에 저장하려면 아래와 같이 사용한다. (함부로 저장하면 안되니 주의할것!!)
$> ./make-imx6.sh savedefconfig
환경 파일을 저장하고 싶다면 새로운 환경파일을 만들어 사용며 이때는 menuconfig 명령을 통해 해당 파일 이름을 수정하여 사용한다.
환경파일 이름이 apsi_A 로 시작되는 파일은 오재경 이사(혹은 김민수 팀장)가 관리하는 파일이니 절대 저장 혹은 변경하지 않도록 주의한다.
컴파일된 후 파일들은 ../output-apsi 디렉토리에 생성된다.
램디스크 작업을 위해 make-imx6.sh를 아래와 같이 실행한다.
$> ./make-imx6.sh image
ssh key를 (재)생성하기 위해서는 아래와 같이 실행한다.
$> ./make-imx6.sh ssh-key
menuconfig 를 통해 환경을 수정한 이 후 컴파일시 에러가 발생할 경우 clean 명령을 실행한다.
$> make ...some errors... $> make clean $> make