Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Industriële technologie

Container bouwt voor arm op x86

Uitdaging

Voor een snellere ontwikkeling willen we op ARM gebaseerde containers maken voor de AXCF2152 of AXCF1152 op x86-hardware. Hiervoor wordt een virtuele machine op basis van Debian of Ubuntu gebruikt, die op onze normale pc draait.

We hebben een emulator nodig

Om ARM binaire code op een x86-systeem uit te voeren, hebben we een emulator nodig waarmee we dit kunnen doen.

Qemu is een van de weinige hypervisors die ARM binaire code kan emuleren en compileren voor x86. Het enige wat we hoeven te doen is Qemu op ons hostsysteem installeren en de emulator activeren. Installeer Qemu voor Ubuntu of Debian:

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
Voorbeeld voor gebruik

Om Qemu nu te gebruiken hebben we een extensie in de container nodig, namelijk de binaire /usr/bin/qemu-arm-static . Er zijn verschillende manieren om het in de container te gebruiken.

Als de extensie slechts tijdelijk nodig is en lokaal bestaat, kan deze eenvoudig worden doorgegeven aan de container. Om dit te doen, wordt het benodigde binaire bestand in de container gemonteerd.

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

Dit start de container en springt naar een shell in de container. Nu kunnen alle noodzakelijke wijzigingen worden aangebracht. De wijzigingen kunnen achteraf met een commit worden overgebracht naar de afbeeldingen.

docker commit ...

Voor een container-build moet het binaire bestand aanwezig zijn in de container, er zijn twee manieren om dit te doen.

1. Het binaire bestand is al beschikbaar, er zijn voor dit doel geprefabriceerde afbeeldingen op Dockerhub. https://hub.docker.com/u/multiarch/

2. Het binaire bestand wordt toegevoegd aan de containerafbeeldingen. Voorbeeld dockerbestand:

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

De regel COPY moet direct als tweede commando verschijnen na FROM . Het hele ding werkt met alle build-tools.

Eén container voor allemaal

Als u de Qemu-extensie op een AXCF3152 installeert, kunt u voor beide systemen (x86 en ARM) dezelfde container gebruiken. Wat betreft de prestaties zou dit uitgebreid getest moeten worden.


Industriële technologie

  1. Decimaal versus binaire nummering
  2. Binaire toevoeging
  3. Negatieve binaire getallen
  4. Binair aftrekken
  5. Binaire overloop
  6. Booleaanse regels voor vereenvoudiging
  7. Binaire telreeks
  8. Arm maakt aangepaste instructies voor Cortex-M-kernen mogelijk
  9. PCB's voor ruwe omgevingen
  10. PCB-productie voor 5G
  11. Multi-stage builds met container