Name Last Update
app Loading commit data...
bootloader Loading commit data...
buildroot Loading commit data...
docker Loading commit data...
kernel Loading commit data...
scripts Loading commit data...
README.md Loading commit data...
env-4.9.4.env Loading commit data...
project.md Loading commit data...
run-docker.sh Loading commit data...

README.md

[컴파일러 설치]


  • docker/toolchain 디렉토리의 arm-buildroot-linux-gnueabihf-4.9.4.tar.gz 파일을 /opt 디렉토리에 풀어 사용한다.

    $ cd docker/toolchain/
    $ sudo tar zxvf arm-buildroot-linux-gnueabihf-4.9.4.tar.gz  -C /opt
    

[컴파일을 위한 환경파일]


  • 환경파일 env-4.9.4.env

    export WORK_TOP_PATH=$(pwd)
    
    export FA_COMPANY=falinux
    export FA_CHIPSET=imx6s
    export FA_PRODUCT=prime_oven
    
    export BR_TOOLCHAIN_PREFIX=arm-buildroot-linux-gnueabihf
    export BR_TOOLCHAIN_PATH=/opt/toolchain/${FA_CHIPSET}/${FA_PRODUCT}
    
    export CROSS_COMPILE=${BR_TOOLCHAIN_PREFIX}-
    export ARCH=arm
    
    export PATH=${BR_TOOLCHAIN_PATH}/usr/bin:$PATH
    export WORK_LD_LIBRARY_PATH=${BR_TOOLCHAIN_PATH}/usr/lib
    
  • source 유틸리티를 사용하여 환경을 설정한다.

    $ source env-4.9.4.env
    

[부트로더 컴파일]


  • 부트로더 컴파일을 위해서 gcc-arm-none-eabi 가 필요하다.

    $ sudo apt-get install -y gcc-arm-none-eabi
    
  • 부트로더 디렉토리로 이동한다.

    $ cd bootloader/u-boot_2015_04
    $ source ../../env-4.9.4.env   #  (이미 실행하였다면 하지 않아도 된다)
    
  • u-boot 환경 파일

    imx6s_prime_oven_defconfig
    
  • 컴파일은 make.sh 를 사용한다.

    $ ./make.sh
    
    -- 필요한 경우 clean ----
    $ ./make.sh  clean
    
  • 컴파일 결과물은 ../output-u-boot_2015_04 에 저장된다.

  • 빌드가 정상적으로 완료되면 u-boot.imx 파일이 /tftpboot/prime-oven 및 /nfs/prime-oven에 복사된다.

[커널 컴파일]


  • 커널 디렉토리로 이동한다.

    $ cd kernel/linux-imx6_3.14.28
    $ source ../../env-4.9.4.env   #  (이미 실행하였다면 하지 않아도 된다)
    
  • kernel 환경 파일

    arch/arm/configs/imx6s_prime_oven_defconfig
    
  • 컴파일은 make.sh 를 사용한다.

    $ ./make.sh
    
    -- 필요한 경우 clean ----
    $ ./make.sh  clean
    
    -- 환경수정이 필요하다면 ----
    $ ./make.sh  menuconfig
    
  • 컴파일 결과물은 ../output-linux-imx6_3.14.28 에 저장된다.

  • 컴파일이 완료되면 uImage 파일과 imx6s-prime-oven.dtb 파일이 /tftpboot/prime-oven 및 /nfs/prime-oven에 복사된다.

[RFS, buildroot 컴파일]


  • buildroot 디렉토리 buildroot 로 이동한다.

    $ cd buildroot/buildroot-2016.08.1
    
  • 컴파일은 make.sh 를 사용한다.

    $ ./make.sh
    
  • 환경 수정을 위해 menuconfig 를 사용할때는 아래와 같이 사용한다.

    $ ./make.sh menuconfig
    
  • 환경 파일을 defconfig 에 저장하려면 아래와 같이 사용한다. (함부로 저장하면 안되니 주의할것!!)

    $ ./make.sh savedefconfig
    
  • toolchain을 다시 빌드하고 싶으면 아래와 같이 실행한다. (/opt/toolchain 경로에 쓰기 권한이 있어야함)

    $ ./make.sh bootstrap
    $ ./make.sh
    
  • 환경 파일을 저장하고 싶다면 새로운 환경파일을 만들어 사용며 이때는 menuconfig 명령을 통해 해당 파일 이름을 수정하여 사용한다.

  • 컴파일된 후 파일들은 ../output-buildroot-2016.08.1 디렉토리에 생성된다.

  • 램디스크 작업을 위해 아래와 같이 실행한다. 생성된 ramdisk-prime_oven.gz 파일은 /tftpboot/prime-oven 및 /nfs/prime-oven에 복사된다.

    $ ./make.sh image
    
  • ssh-key를 다시 생성하고 싶으면 아래와 같이 실행한다.

    $ ./make.sh ssh-key
    
  • menuconfig 를 통해 환경을 수정한 이 후 컴파일시 에러가 발생할 경우 clean 명령을 실행한다.

    $ ./make.sh
    ...some errors...
    $ ./make.sh clean
    $ ./make.sh
    

[파티션]


    start       size        desc
    ----------  ----------  ------------------
     00-MB       64-MB      reserved area
     64-MB       64-MB      partition#0, FAT32 : BOOT0
    128-MB       64-MB      partition#1, FAT32 : BOOT1
    192-MB      128-MB      partition#2, ext4  : APP
    320-MB      all         partition#3, ext4  : DATA