1. 공유기 or Hub 환경 필요
Rasberrypi와 PC가 통신하기 위해 공유기 혹은 Hub 환경 구축 필요.
같은 Local domain에 속해야 통신 가능
2. Virtual box 세팅
Rasberrypi <-> PC <-> Host OS on VirtualBox의 경우, Virtual Box에 Network 세팅 추가 필요.
NAT : Host OS <-> Internet
Host Only Adapter : PC <-> Host OS on Virtual Box
Bridged Adapter : Host OS <-> Rasberrypi
Bridged Adapter 설정시 Host OS에서 추가된 Ethernet interface에 공유기 Domain의 IP 주소가 할당되므로 해당 주소 이용 가능.
3. Host OS 설정
1) 고정 IP 할당을 위해 /etc/network/interface 설정에 아래 내용 필요. (enp0s8이 Bridged Adapter인 경우)
auto enp0s8
iface enp0s8 inet static
address 192.168.0.50
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
2) NFS 서버 설정 (NFS 디렉토리가 /home/dark/nfs/rpi일 경우)
$ sudo apt-get install nfs-kernel-server
$ sudo vi /etc/exports
-> /home/dark/nfs/rpi 192.168.0.*(rw,sync,no_root_squash,no_subtree_check)
3) NFS 디렉토리 설정
원하는 디렉토리 경로 지정 후 Root FS 설치. 주의할 점은 반드시 디렉토리가 Root 권한이어야 함. 아닌 경우 Mount 실패
$ mkdir -p /home/dark/nfs/rpi
$ sudo chown root /home/dark/nfs/rpi
4. U-boot 세팅
U-boot에 환경 변수 주소를 세팅해줘야 함. U-boot console mode에서
setenv gateway '192.168.0.1'
setenv nfsserverip '192.168.0.50'
setenv nfspath '/home/dark/nfs/rpi'
saveenv
run nfsboot
자동으로 nfs booting을 시키고 싶으면 bootcmd를 mmcboot에서 nfsboot로 변경
setenv bootcmd 'run nfsboot'
saveenv
5. NFS 부팅시 OP-TEE Permission 이슈
SD card로 부팅시에는 문제없으나 NFS 부팅시에는 3.4.0에서는 오류 발생
Starting logging: OK
Initializing random number generator... done.
Setting permissions on /dev/tee*... OK
Starting tee-supplicant... ERR [97] TSUP:main:684: error tee_supp_fs_init
FAIL
Starting network: ip: RTNETLINK answers: File exists
FAIL
Network는 이미 설정된거라 문제 없으나 tee_supp_fs_init이 실패하면 op-tee가 정상 동작되지 않음
이와 관련하여 패치가 진행되었음 - https://github.com/OP-TEE/build/pull/341/commits/345ea6b9980a04972f5f057d177d44331c3111d3
Rpi3 nfs fixes by jbech-linaro · Pull Request #341 · OP-TEE/build
Some general fixes and one of them: Fixes: OP-TEE/optee_os#2773
github.com
해당 Patch는 3.4.0에는 미반영되어 있으나, 3.6.0에는 반영되어 있는 것을 확인함.
따라서 최신 버전으로 개발 진행 예정.
6. U-boot env 수정
4번 항목의 U-boot 설정은 rootfs.cpio 를 이용해 boot 업데이트시 매번 파일이 갱신되므로 env 파일을 업데이트해야함.
u-boot.env는 mkenvimage를 통해 encoding되는데, 3.4.0에서는 env에 대한 dependency가 제대로 설정되어 있지 않아 make u-boot-env가 동작하지 않아 수동으로 빌드해줘야 함.
3.6.0에서 수행을 권장.
$ vi <optee-project>/build/rpi3/firmware/uboot.env.txt
원하는 대로 수정한 후
$ cd <optee-project>/build
$ make u-boot-env-clean
$ make u-boot-env
'OPTEE with Rasberry Pi 3B' 카테고리의 다른 글
ARM Trusted Firmware-A (0) | 2019.10.10 |
---|---|
SMC Call Sequence (0) | 2019.09.30 |
OPTEE Log Level (0) | 2019.09.18 |
Rasberry Pi 3B vs 3B+ (0) | 2019.09.04 |
OP-TEE Build for Rasberry Pi 3B (0) | 2019.09.03 |