아래 BeagleBone Black을 이용한 이미지 만들기 가이드 설명을 참고로 만들면 된다.

https://www.digikey.com/eewiki/display/linuxonarm/BeagleBone+Black

 

BeagleBone Black - Linux on ARM - eewiki

This is a page about TI's Cortex-A8 based; BeagleBone Black. Availability Boards: BeagleBone Black at Digi-Key BeagleBone Green at Digi-Key Embest BeagleBone Black at Digi-Key BeagleBone Black Wireless at Digi-Key BeagleBone Green Wireless at Digi-Key Powe

www.digikey.com

리눅스 이미지를 BeagleBone Black에 올리기 위해서는 3가지가 필요하다.

첫째로는 부트로더(U-Boot 사용), 둘째로는 리눅스 커널(linux org 배포판), 마지막으로는 루트 파일시스템(Ubuntu 사용)이다.

# ARM Cross Compiler: GCC 설치하기

하기와 같이 wget을 이용하여 gcc를 설치한다.

그 다음 압축 파일을 풀기 위해 아래 명령어를 실행한다.

ls 명령어를 사용하여, 위와 같이 압축 파일과 압축 파일을 해제한 폴더를 확인 할 수 있다.

그 다음 컴파일러 경로를 다음과 같이 설정 한다.

여기에서 주의 할 점은 `pwd`에서 ``는 키보드에서 홑따옴표가 아닌, 물결무늬(~)라는 것이다.

컴파일러 경로를 확인하기 위해 다음과 같이 입력을 한다.

${CC}gcc --version

입력 후 아래와 같이 메세지가 출력이되면 정상적으로 경로가 입력된 것을 확인할 수 있다.

1. 부트로더(U-Boot) 다운로드 및 컴파일(빌드)

부트로더란 운영체제가 시동되기 전 실행되는 최초의 시스템 프로그램으로, 하드웨어 초기화 및 검사등의 기초적인 작업으로 커널이 올바르게 실행되기 위한 작업을 하는 프로그램이다.

U-Boot는 요즘 임베디드 시스템에서 가장 많이 쓰이는 부트로더이다.

먼저 git을 깔아야 한다. 그래서 아래 창에서 설명된 것과 같이 "sudo apt install git"을 실행하여 git을 먼저 다운로드 받는다.

ㅣㄷㅁㄱ

그리고 Y를 눌러서 install이 완료되면 하기와 같은 화면이 뜰것이다.

그 다음 U-Boot Download가 필요하다.

~/ (루트 폴더에서)

git clone https://github.com/u-boot/u-boot

cd u-boot/

git checkout v2019.04 -b tmp

하기 붉은 색 명령어들을 순차적으로 실시

여기까지 잘 따라 왔다면, 하기와 같이 u-boot 폴더에 파일이 존재하는 것을 확인 할 수 있다.

그 다음 과정은 Patch를 설치하는 과정이다.

~/u-boot (u-boot 폴더에서)

wget -c https://github.com/eewiki/u-boot-patches/raw/master/v2019.04/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch

wget -c https://github.com/eewiki/u-boot-patches/raw/master/v2019.04/0002-U-Boot-BeagleBone-Cape-Manager.patch

  

patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch

patch -p1 < 0002-U-Boot-BeagleBone-Cape-Manager.patch

위의 명령어들을 아래와 같이 순차적으로 실행.

먼저 패치를 두번 받고....

패치를 설치한다.

그 다음 작업은 설정 및 컴파일(빌드)이다.

컴파일을 하기 이전에 하기 패키지들을 install 해주어야 한다.

sudo apt install build-essential

sudo apt install bison

sudo apt install flex

그다음, make 명령어를 입력한다..

~/u-boot (u-boot 폴더에서)

make ARCH=arm CROSS_COMPILE=${CC} distclean   #1. Clean하는 작업

make ARCH=arm CROSS_COMPILE=${CC} am335x_evm_defconfig #2. Configuration 작업

make ARCH=arm CROSS_COMPILE=${CC} #3. 컴파일 작업

위의 make 명령어를 #1 ~ #3 단계까지 순차적으로 다음과 같이 입력을 한다.

#1. Clean 하는 작업

#2. Configuration 작업

#3. 컴파일 작업

중략...

컴파일까지 모두 완료가 되었다면, u-boot 폴더에 MLO와 u-boot.img 가 생성된다.

각각을  first 부트로더 second 부트로더라고 하는데, 그 이유로는 초기화 안된 초기 하드웨어의 가용할 수 있는 rom용량이 작아서 first부트로더가 second 부트로더를 올릴수 있게 최소한의 하드웨어 초기화를 하고, 초기화가 된 ram에 second 부트로더를 올려 나머지 초기화를 진행하기 때문이다.

 

2. Linux Kernel

여기에서는 kernel, module, device tree binaries를 빌드하고 deploy 폴더에 카피하는 일을 할 것이다.

Mainline>

Linux커널 다운로드:

~/ (루트폴더에서)

git clone https://github.com/RobertCNelson/bb-kernel

cd bb-kernel/

하기와 같이 명령어를 실행한다.

그 다음으로 커널 체크 아웃을 하는데, am33x-rt-v4.19 버젼을 이용할 것이다.

~/bb-kernel/

git checkout origin/am33x-rt-v4.19 -b tmp

위의 체크아웃 과정까지 거치면 bb-kernel 폴더에는 하기와 같이 파일 및 폴더가 Download 되었음을 확인 할 수 있다.

커널을 컴파일 하기 전에 다음 패키지를 install 해야 한다.

sudo apt install lzop

sudo apt-get update

sudo apt-get install lzma pkg-config libmpc-dev u-boot-tools

그 다음 커널을 컴파일(build)한다.

커널 Build:

~/bb-kernel/

./build_kernel.sh

 

중략...

중략...

위의 메세지 중에 "Your display is too small to run Menuconfig!"라는 메세지가 있다.

따라서, 컴파일을 진행하는 터미널 창을 더욱 키운 다음(최대화 후) 다시 ./build_kernel.sh를 실행하면 이상없이 잘 컴파일이 된다.

그런데, Menuconfig라는 파란색 GUI 창이 뜨며 설정을 요구한다. 다른 글에서 보니 이 설정들은 build_kernel.sh에서 잘 설정을 해 줄거라고 한다. 나중에 확인이 필요해 보인다.

여튼 정상적으로 컴파일이 완료되고 하기와 같이 마무리가 된다.

참고로 컴파일 할때 걸린 시간은 대략 2시간 정도 걸린거 같다. 정확하진 않다.

컴파일이 완료되면, kernel이라는 폴더가 생성된 것을 확인할 수 있다.

 

3. 루트 파일시스템 설치

이제 SD 카드에 이미지를 넣기 전에 마지막 단계인 루트 파일시스템 설치이다.

파일 시스템은 여러 가지(데비안, 우분투, Anstrom... 등등)가 존재하는데, 여기서는 우분투를 사용하기로 한다.

Ubuntu 18.04 LTS

User / Password : ubuntu / temppwd

먼저 Ubuntu를 다운로드한다.

Download:

~/ (루트폴더에서)

wget -c https://rcn-ee.com/rootfs/eewiki/minfs/ubuntu-18.04.2-minimal-armhf-2019-02-16.tar.xz

그 다음 단계는 Verify 단계로 다운 받은 압축 파일에 문제가 없는지를 체크 한다.

Verify:

~/ (루트폴더에서)

sha256sum ubuntu-18.04.2-minimal-armhf-2019-02-16.tar.xz

299f278ff446f0e427cb1a6650d1fa5d42d6744fff627c804f0afc918129b6b6  ubuntu-18.04.2-minimal-armhf-2019-02-16.tar.xz

이제 마지막 단계로 압축 파일을 압축 해제 하는 일이다.

Extract:

~/ (루트폴더에서)

tar xf ubuntu-18.04.2-minimal-armhf-2019-02-16.tar.xz

압축을 해제 한 후, 다음과 같이 ls 명령어로 파일 폴더 내용을 보면, ubuntu-18.04.2-minimal-armhf-2019-02-16 폴더가 생성되어 있음을 확인 할 수 있다.

다음 편에서 계속.....

+ Recent posts