==== BuildRoot를 설정 ==== BuildRoot의 Version은 2016.11.1 을 사용한다\\ (buildroot-2016.11.1.tar.bz2 : 2016.12.30일 현재 가장 최신 - 2016년 12월 29일 Release) https://buildroot.org/download.html 또는 https://buildroot.org/downloads/ 에서 최신 Version을 다운 받는다. 2022.05.04 : https://github.com/linux4sam/buildroot-external-microchip 를 참조한다 나는 home 폴더에 SAMA5D4라는 폴더를 생성하고 이 안에 다운받은 BuildRoot 파일을 넣고 압축 파일을 해제 했다. {{wiki:atmel_sama5d42:buildroot:buildroot_ec_95_95_ec_b6_95_ed_95_b4_ec_a0_9c.jpg}} buildroot-2016.11.1/configs 폴더의 내용중에 atmel_sama5d4_xplained_defconfig 나 atmel_sama5d4_xplained_dev_defconfig 파일이 있는지 확인한다. buildroot-2016.11.1 폴더에서 아래의 내용을 수행한다. make atmel_sama5d4_xplained_dev_defconfig 이렇게 하면 기본 설정이 완료된다. make menuconfig {{wiki:atmel_sama5d42:buildroot:make_menuconfig_first_screen.jpg}} 위의 것을 수행해서 필요한 설정을 바꾼다. {{wiki:atmel_sama5d42:buildroot:make_menuconfig_uclibc.jpg}} {{wiki:atmel_sama5d42:buildroot:make_menuconfig_change_glibc.jpg}} {{wiki:atmel_sama5d42:buildroot:make_menuconfig_change_glibc_end.jpg}} 이때 gcc를 6로 올린 경우 기본이 5이므로 이를 확인해서 바꾸어준다. {{wiki:atmel_sama5d42:buildroot:make_menuconfig_host_gcc.jpg}} {{wiki:atmel_sama5d42:buildroot:make_menuconfig_host_gcc6.jpg}} 완료되면 설치한다. make 결과물은 buildroot-2016.11.1/output 폴더에 위치한다. {{wiki:atmel_sama5d42:buildroot:buildroot_output.jpg}} buildroot-2016.11.1/output/build 는 Source Code 들이 있다.\\ buildroot-2016.11.1/output/target 은 Root File system 이다.\\ buildroot-2016.11.1/output/images 은 결과물들이 들어 있다.\\ *(bootstrap : boot.bin, at91bootstrap.bin, sama5d4_xplained_nandflashboot-uboot-3.8.7.bin)\\ *(u-boot : u-boot.bin)\\ *(kernel : zImage)\\ *(root filesystem : rootfs.ubifs, rootfs.tar)\\ buildroot-2016.11.1/output/host 는 host 에서 사용되는 것들이 들어 있다.\\ 특히 buildroot-2016.11.1/output/host/usr 는 Cross Compiler 가 있다. buildroot-2016.11.1/output/host/usr/bin 폴더로 이동해서 아래처럼 수행해서 version을 확인한다. ./arm-linux-gcc -v {{wiki:atmel_sama5d42:buildroot:cross-gcc-version.jpg}} ./arm-linux-g++ -v {{wiki:atmel_sama5d42:buildroot:cross-gpp-version.jpg}} 이렇게 만들어진 결과물중 우리가 사용할 수 있는 것은 컴파일러와 파일 시스템 뿐이다. 이유는 이의 결과는 Atmel의 xplained Board에 맞추어져 있어 우리의 제품과는 맞지 않는 HW 사양을 가지고 있기 때문이다. 이에 소스를 일부 수정하여 다시 만들어야 한다. BootStrap 수정 U-Boot 수정 Kernel 수정