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

x86 上のアーム用のコンテナー ビルド

チャレンジ

より迅速な開発のために、x86 ハードウェアで AXCF2152 または AXCF1152 用の ARM ベースのコンテナーを作成したいと考えています。この目的のために、通常の 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

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

docker commit ...

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

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 の後の 2 番目のコマンドとして直接指定する必要があります .全体がすべてのビルド ツールで動作します。

1 つのコンテナですべて

Qemu 拡張機能を AXCF3152 にインストールすると、両方のシステム (x86 と ARM) に同じコンテナーを使用できます。パフォーマンスに関しては、これを広範囲にテストする必要があります。


産業技術

  1. 10進数と2進数
  2. バイナリ加算
  3. 負の2進数
  4. バイナリ減算
  5. バイナリオーバーフロー
  6. 簡略化のためのブール規則
  7. バイナリカウントシーケンス
  8. Armにより、Cortex-Mコアのカスタマイズされた命令が可能になります
  9. 過酷な環境向けのPCB
  10. 5G用のPCB製造
  11. コンテナーを使用したマルチステージ ビルド