BSP(Board Support Package)는 개발 보드 대한 설명은 아래 링크 참조, 간단히 설명하면 "보드(프로세서 및 주변 회로)를 사용하기 위한 소프트웨어 모음"이다. Bootloader, Kernel, file system로 구성된다.
https://ko.wikipedia.org/wiki/BSP_(%EC%9E%84%EB%B2%A0%EB%94%94%EB%93%9C)
이번 포스팅에서는 Bootloader를 먼저 설치해보도록 하겠다.
1. 부트로더 ?
Bootloader 란 HDD, SSD 또는 Flash memory에 있는 커널 및 펌웨어 이미지를 로딩하는 역할을 한다. 시스템의 전원을 켜면 가장 먼저 동작되는 것으로 시스템의 동작을 준비하는 역할을 한다고 볼 수 있다.
Bootloader의 종류는 아주(?) 다양하다. 소형 MCU나 작은 시스템의 경우는 개발자가 직접 부트로더를 만들어 사용할 것이고, 이처럼 Linux를 활용하고자 한다면 이미 검증되고 널리 사용되는 Bootloader를 사용할 것이다. 현재 ARM 기반의 임베디드 시스템에서 사용하는 Bootloader는 크게 3가지가 있다. 검색된 설명 링크 참조 바람.
이 중 최근 대세는 U-BOOT인 것 같다. 비글본 블랙에서도 U-BOOT를 사용하기 때문에 U-BOOT 설치방법에 대해 알아보도록 하겠다.
BLOB
https://bootlin.com/doc/legacy/blob/blob.pdf
ARMBOOT
http://armboot.sourceforge.net/
U-BOOT
https://en.wikipedia.org/wiki/Das_U-Boot
2. U-BOOT 설치
U-boot를 설치하기 위해서는 먼저 다운을 받아야겠지? U-boot의 홈페이지는 아래 링크 참조
http://www.denx.de/wiki/U-Boot/WebHome
터미널에 아래와 같이 입력한다.
git clone git://git.denx.de/u-boot.git
u-boot가 생성된 걸 확인할 수 있다. u-boot로 git branch를 만들어 준다. 포스팅 당시 최신 버전은 2021.07 버전이기 때문에 2021.07 버전으로 switch(git 최신 버전이 아닐 경우 checkout, 이 부분에 대해 잘 모르겠다면 구글링~~!)
git switch -c v2021.07
여기까지 완료했다면 이전에 설치한 Cross Compiler를 이용해 u-boot를 컴파일해보자! 컴파일하기 전 스크립트 파일을 만들어야 한다. 잘 모르겠으면 일단 따라 한다.(사실 나도 잘 모름 ㅎㅎ 따라 하다 보니 알게 됨)
vi "파일명"
파일명에 원하는 파일명을 입력하면 된다. 본 포스팅에서는 cortex_a8_sh, 아래와 같이 입력 후 저장한다.
PATH=${HOME}/x-tools/arm-cortex_a8-linux-gnueabihf/bin/:$PATH
export CROSS_COMPILE=arm-cortex_a8-linux-gnueabihf-
export ARCH=arm
본 포스팅에서는 u-boot 파일에 넣어놨는데 이 스크립트 파일의 위치는 어느 곳에 놓아도 무방하다.
아래와 같이 입력해 컴파일 실행
source cortex_a8_sh
make CROSS_COMPILE=arm-cortex_a8-linux-gnueabihf- am335x_boneblack_vboot_defconfig
make CROSS_COMPILE=arm-cortex_a8-linux-gnueabihf-
스크립트 파일(cortex_a8_sh)을 다른 곳에 놓았다면 cortex_a8_sh앞에 파일의 경로를 넣어주면 된다.
컴파일이 완료되면 아래와 같이 관련. cfg파일과. bin파일이 생긴 걸 볼 수 있다.
여기까지 완료했다면 u-boot를 다운로드하고, 컴파일까지 성공해 beaglebone black의 Flash memory에 write 할 수 있는 u-boot.bin 파일 만들기가 끝난 것이다.
-끝-