Name Last Update
app Loading commit data...
bootloader Loading commit data...
buildroot Loading commit data...
docker Loading commit data...
kernel Loading commit data...
release 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
    $ cd ../../
    $ source env-4.9.4.env   #  (이미 실행하였다면 하지 않아도 된다)
    $ cd bootloader/u-boot_2015_04
    
  • 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
    $ cd ../../
    $ source env-4.9.4.env   #  (이미 실행하였다면 하지 않아도 된다)
    $ cd kernel/linux-imx6_3.14.28
    
  • 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
    $ cd ../../
    $ source env-4.9.4.env   #  (이미 실행하였다면 하지 않아도 된다)
    $ cd buildroot/buildroot-2016.08.1
    
  • 컴파일은 make.sh 를 사용한다.

    $ ./make.sh
    
  • 컴파일을 위한 도움말을 보기 위해서는 아래와 같이 사용한다.

    $ ./make.sh help
    
    [Help]
    ssh-key       : generate ssh key
    defconfig     : reload config
    toolchain     : apply config file for toolchain
    qt4_gst       : apply config file for QT4/Gstreamer
    qt5_gst       : apply config file for QT5/Gstreamer
    image         : generate ramdisk image file
    clean-target  : clean target directory
    distclean     : delete all non-source files (.config)
    savedefconfig : Save current config to BR2_DEFCONFIG (minimal confi
    
  • 환경 수정을 위해 menuconfig 를 사용할때는 아래와 같이 사용한다.

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

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

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

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

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

    $ ./make.sh image
    
  • 기본 파일 시스템(램디스크 이미지)을 컴파일하기 위해서는 아래와 같이 사용한다.

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

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

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

[파티션]


      start      size       desc
    ----------   ----------  ------------------
      00-MB       64-MB     reserved area
      64-MB      192-MB     partition#0, ext4  : BOOT0
     256-MB     2048-MB     partition#1, ext4  : APP
    2304-MB         all     partition#2, ext4  : DATA

    ------------------------------------------
    00-MB        64-MB      reserved area
    ------------------------------------------
               start    size    start    size
    U-boot  :    1KB    640KB  ( 0x2      0x500   )
    Logo    :    1MB    4.5MB  ( 0x800    0x2400  )
    DTB     :  5.5MB    128KB  ( 0x2C00   0x100   )
    KERNEL  :    6MB      7MB  ( 0x3000   0x3800  ) 
    RAMDISK :   14MB     32MB  ( 0x7000   0x10000 )