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

x86 시스템에서 효율적인 ARM 컨테이너 빌드하기

과제

더 빠른 개발을 위해 AXCF2152 또는 AXCF1152용 ARM 기반 컨테이너를 x86 하드웨어에서 생성하고자 합니다. 이를 위해 정상 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. 바이너리를 컨테이너 이미지에 추가합니다. 예제 Dockerfile:

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

COPY 줄은 FROM 직후 두 번째 명령어로 직접 나타나야 합니다. 이 방법은 모든 빌드 도구에서 작동합니다.

하나의 컨테이너로 모두 해결

AXCF3152에 Qemu 확장을 설치하면 x86과 ARM दोनों 시스템에 동일한 컨테이너를 사용할 수 있습니다. 성능 측면에서는 광범위한 테스트가 필요합니다.

산업기술

  1. 십진법과 이진법 비교: 자리 가중치, 효율성, 변환
  2. 이진 덧셈 설명: 규칙, 예시, 디지털 컴퓨터에서의 역할
  3. 이진법에서 음수 이해: 부호-크기, 보수, 2의 보수
  4. 2의 보수를 이용한 이진 뺄셈
  5. 이진 오버플로: 부호 비트가 이진 덧셈에 미치는 영향
  6. 논리 회로 설계를 위한 필수 불 대수 단순화 규칙
  7. Arm, Cortex-M 코어에 커스텀 명령어 지원 도입...유연성 확대
  8. 극한 환경을 위한 견고한 PCB: 설계, 이점, 애플리케이션
  9. 5G 시대의 PCB 제조: 트렌드, 과제 및 기회
  10. 멀티 스테이지 컨테이너 빌드로 배포 간소화하기