工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 産業技術

x86システム上での効率的なARMコンテナビルド

課題

より高速な開発のために、AXCF2152またはAXCF1152向けのARMベースのコンテナをx86ハードウェア上で作成したいと考えています。このために、通常のPC上で実行されるDebianまたはUbuntuベースの仮想マシンを使用します。

エミュレーターが必要

x86システム上でARMバイナリコードを実行するには、それを可能にするエミュレーターが必要です。

QEMUは、ARMバイナリコードをエミュレートし、x86向けにコンパイルできる数少ないハイパーバイザーの1つです。ホストシステムに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

これによりコンテナが起動し、コンテナ内のシェルに移動します。必要な変更をすべて行えます。変更は後でcommitでイメージに転送できます。

docker commit ...

コンテナビルドの場合、バイナリがコンテナ内に存在する必要があります。これには2つの方法があります。

1. バイナリがすでに利用可能。Docker Hubにはこのためのプレファブリケートイメージがあります。https://hub.docker.com/u/multiarch/

2. バイナリをコンテナイメージに追加。Dockerfileの例:

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

COPY行は、FROMの直後の2番目のコマンドとして直接記述する必要があります。これはすべてのビルドツールで機能します。

1つのコンテナですべてに対応

AXCF3152にQEMU拡張をインストールすると、同じコンテナを両方のシステム(x86とARM)で使用できます。パフォーマンスについては十分なテストが必要です。


産業技術

  1. 十進法と二進法:位取り重み、効率、変換
  2. 二進法加算のルール、例、デジタルコンピュータでの役割
  3. 二進法における負の数表現:符号付き絶対値、補数、二の補数
  4. 二の補数を用いた二進法減算
  5. 二進法オーバーフロー:符号ビットが二進法加算に与える影響
  6. 論理回路設計のための必須ブール簡略化ルール
  7. 4ビット2進カウンタの理解
  8. 過酷環境向け堅牢PCB:設計、メリット、アプリケーション
  9. 5G時代のPCB製造:トレンドと課題
  10. マルチステージコンテナビルドでデプロイを効率化
  11. Arm、Cortex-Mコアでカスタム命令サポートを導入——柔軟性を拡大