arm64 Linux로 모모 강제 구축

Oracle Cloud에서arm64의 실례를 사용할 수 있기 때문에 저는 여러 가지 방법을 시도했습니다. 이렇게 하면 만들 수 있습니까momo.결과적으로 빌딩이 건설되었지만 매우 억지스럽다.모모의 구축은 x86입니다.64 Linux는 올바른 방법입니다.

어쨌든 구축을 해봤습니다.


Oracle Cloud의arm64의 실례에서 나는 일반적인 모모를 구축하려고 했다.
$ ./build.sh ubuntu-18.04_armv8_jetson_nano
boost 구축에서 오류가 발생했습니다.
잘못된 이유는 "clang++가 없습니다."
실제로clang++의 실행 파일이 있지만 x8664용 바이너리.
C++ 컴파일러 도구는 다른 창고에서libwebrtc를 사용합니다.구축 a와 같은 파일을 다운로드하고 있습니다.
저기는 x86.64개 환경이므로 x8664개의 실행 파일이것은arm64로 움직일 수 없습니다.
포기하면

arm64Mac에서 구축 설정 발견


build.나는sh에서 이런 코드를 발견했다.
 if [ "`uname -sm`" = "Darwin arm64" ]; then
   # M1 Mac の場合は --platform を指定する
   DOCKER_PLATFORM="--platform=linux/amd64"
 fi
arm64Mac--platform=linux/amd64에서 전체 Docker 용기를 시뮬레이션으로 조작할지 여부.
이렇게 하면 똑같이 전체 동작을 모방한다.

Docker의 수정 사항을 십자로 이동


예전에 쓴 기사처럼 하면 십자로 Docker를 이동할 수 있을 거예요.
https://embedded.hatenadiary.org/entry/20140820/p1
diff --git a/build/build.sh b/build/build.sh
index 3d458fc..2bd0c8d 100755
--- a/build/build.sh
+++ b/build/build.sh
@@ -62,6 +62,19 @@
 if [ "`uname -sm`" = "Darwin arm64" ]; then
   # M1 Mac の場合は --platform を指定する
   DOCKER_PLATFORM="--platform=linux/amd64"
 fi
+if [ "`uname -sm`" = "Linux aarch64" ]; then
+  # Linux arm64 の場合は --platform を指定する
+  DOCKER_PLATFORM="--platform=linux/amd64"
+  if [ ! -x $PACKAGE/qemu-x86_64-static ]; then
+    if [ ! -x /usr/bin/qemu-x86_64-static ];then
+      echo "Do the follwing command and try again."
+      echo "   sudo apt install qemu-user-static"
+      exit 1
+    else
+      cp /usr/bin/qemu-x86_64-static $PACKAGE/
+    fi
+  fi
+fi
 
 _FOUND=0
 for package in $_PACKAGES; do
diff --git a/build/ubuntu-18.04_armv8_jetson_nano/Dockerfile b/build/ubuntu-18.04_armv8_jetson_nano/Dockerfile
index fcee6be..1ada343 100644
--- a/build/ubuntu-18.04_armv8_jetson_nano/Dockerfile
+++ b/build/ubuntu-18.04_armv8_jetson_nano/Dockerfile
@@ -1,5 +1,6 @@
 # syntax = docker/dockerfile:1.1.1-experimental
 FROM ubuntu:18.04
+COPY ./qemu-x86_64-static /usr/bin/
이렇게 구축하면 성공한다.근데 40분 정도 걸렸어요.맥북 프로의 VirtualBox에서는 12분 정도면 구축이 가능하기 때문에 속도의 장점이 없다.모든 x8664개의 실행 파일이 qemu에서 실행되기 때문에 시간이 걸리는 것도 어쩔 수 없습니다

binfmt_미스터리


그럼 이렇게 해서 Jetson nano를 향한 빌딩이 나옵니다.라떼를 향한 파도 세워져 있습니까?
$ ./build.sh raspberry-pi-os_armv7
구축 완료.
Docker file이 수정되지 않았는데요?
그 컨테이너 안에는 없어/usr/bin/qemu-x86_64-static,근데 왜 제대로 집행할 수 있는지.
binfmt_Misc 해석기의 캐시 방법은 수수께끼입니다.
그 커널로x8664개의 실행 파일이 /usr/bin/qemu-x86_64-static를 통해 실행되면 이후에도 계속 기억될 것이다.reboot 후에도 유지됩니다.수수께끼야.
2202/05/01 추기.나는 이 수수께끼를 깊이 파헤쳤다.
https://zenn.dev/tetsu_koba/articles/b9545eb0231d7e

구축도 해봤어요.


이 기세를 타고 제이슨 나노에서도 구축을 시도해 봤다.
이렇게 하면 아래의 메시지를 많이 보내지 않을 것이다.warning: TCG doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5]이것에 관해서는 이쪽 보도를 보십시오.
https://zenn.dev/tetsu_koba/articles/35cadd8a5a3bd0
결국 Jetson nano도 건설됐다.근데 느려요.한나절이 걸렸다.w

좋은 웹페이지 즐겨찾기