OP-TEE에서 제공하는 절차로 sdcard image를 생성하면 라즈베리 파이3 B+보드에서는 부팅이 되지 않는다. 보드에 OP-TEE sdcard를 넣고 전원을 키면 초록색 led가 같은 패턴으로 점등된다. 해당 에러는 보드가 부팅시 start.elf 파일을 찾았지만 읽을 수 없을 때 나타나는 에러이다. 이것을 해결하기 위해 보드가 읽을 수 있는 start.elf 파일로 변경해 주었다.

1. OP-TEE sdcard image file 생성

https://optee.readthedocs.io/en/latest/building/devices/rpi3.html

op-tee 문서에서 제공해주는 절차에 따라서 부팅 sdcard를 만든다.

$ apt update && apt upgrade -y
$ apt install -y adb acpica-tools autoconf automake bc bison build-essential \\
								 ccache cpio cscope curl device-tree-compiler e2tools expect \\
								 fastboot flex ftp-upload gdisk git libattr1-dev libcap-dev \\
                 libfdt-dev libftdi-dev libglib2.0-dev libgmp3-dev libhidapi-dev \\
                 libmpc-dev libncurses5-dev libpixman-1-dev libslirp-dev \\
                 libssl-dev libtool libusb-1.0-0-dev make mtools netcat \\
                 ninja-build python3-cryptography python3-pip python3-pyelftools \\
                 python3-serial python-is-python3 rsync swig unzip uuid-dev wget \\
                 xdg-utils xterm xz-utils zlib1g-dev
$ mkdir -p rpi3-optee
$ cd rpi3-optee
$ curl <https://storage.googleapis.com/git-repo-downloads/repo> > /bin/repo && chmod a+x /bin/repo
$ repo init -u <https://github.com/OP-TEE/manifest.git> -m rpi3.xml
$ repo sync -j4 --no-clone-bundle
$ cd build
$ make -j2 toolchains
$ make -j{nproc}
$ make sdcard-image

2. Buildroot

Buildroot는 임베디드 시스템에 부팅 가능한 Linux 환경을 만들어주는 tool 이다. buildroot를 이용해서 라즈베리파이 b+ 부팅 sdcard를 만들어서 start.elf 파일을 추출 한다.

  1. buildroot 파일 받기
$ git clone <https://github.com/buildroot/buildroot.git>
$ cd buildroot
  1. build 타겟 설정
$ make raspberrypi3_64_defconfig

지원하는 플랫폼은 configs 디렉터리에서 확인할 수 있다.

  1. config 설정
$ make menuconfig