산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

x86의 arm용 컨테이너 빌드

도전

더 빠른 개발을 위해 x86 하드웨어에서 AXCF2152 또는 AXCF1152용 ARM 기반 컨테이너를 만들고 싶습니다. 이를 위해 일반 PC에서 실행되는 Debian 또는 Ubuntu 기반 가상 머신을 사용합니다.

에뮬레이터가 필요합니다

x86 시스템에서 ARM 바이너리 코드를 실행하려면 이를 수행할 수 있는 에뮬레이터가 필요합니다.

Qemu는 ARM 바이너리 코드를 에뮬레이트하고 x86용으로 컴파일할 수 있는 몇 안 되는 하이퍼바이저 중 하나입니다. 호스트 시스템에 Qemu를 설치하고 에뮬레이터를 활성화하기만 하면 됩니다. Ubuntu 또는 Debian용 Qemu 설치:

apt-get update && apt-get install -y --no-install-recommends qemu-user-static binfmt-support
update-binfmts --enable qemu-arm
update-binfmts --display qemu-arm
사용 예

이제 Qemu를 사용하려면 컨테이너에 확장이 필요합니다. 즉, 바이너리 /usr/bin/qemu-arm-static . 컨테이너에서 사용하는 방법은 여러 가지가 있습니다.

확장이 일시적으로만 필요하고 로컬에 존재하는 경우 단순히 컨테이너에 전달할 수 있습니다. 이를 위해 필요한 바이너리가 컨테이너에 마운트됩니다.

docker run -it --restart always \
    -v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static \
    arm32v7/debian /bin/sh

이것은 컨테이너를 시작하고 컨테이너의 쉘로 점프합니다. 이제 필요한 모든 변경을 수행할 수 있습니다. 커밋을 통해 변경 사항을 나중에 이미지로 전송할 수 있습니다.

docker commit ...

컨테이너 빌드의 경우 바이너리가 컨테이너에 있어야 하며 두 가지 방법이 있습니다.

1. 바이너리는 이미 사용 가능하며 Dockerhub에 이 목적을 위한 사전 제작된 이미지가 있습니다. https://hub.docker.com/u/multiarch/

2. 바이너리가 이미지 컨테이너에 추가됩니다. 도커 파일의 예:

From debian:armhf
COPY qemu-arm-static /usr/bin/qemu-arm-static
RUN .....

COPYFROM 다음의 두 번째 명령으로 직접 나타나야 합니다. . 모든 것이 모든 빌드 도구에서 작동합니다.

모두를 위한 하나의 컨테이너

AXCF3152에 Qemu 확장을 설치하면 두 시스템(x86 및 ARM)에 대해 동일한 컨테이너를 사용할 수 있습니다. 성능과 관련하여 광범위하게 테스트해야 합니다.


산업기술

  1. 10진수 대 이진법
  2. 이진 덧셈
  3. 음수 이진수
  4. 이진법 뺄셈
  5. 바이너리 오버플로
  6. 단순화를 위한 부울 규칙
  7. Arm은 Cortex-M 코어에 대한 맞춤형 지침을 가능하게 합니다.
  8. 열악한 환경을 위한 PCB
  9. 5G용 PCB 제조
  10. 컨테이너를 사용한 다단계 빌드