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

Efficiënte ARM-containerbuilds op x86-systemen

Uitdaging

Voor een snellere ontwikkeling willen we ARM-gebaseerde containers voor de AXCF2152 of AXCF1152 maken op x86-hardware. Hiervoor wordt een virtuele machine gebaseerd op 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 die ons dit toestaat.

Qemu is een van de weinig hypervisors die ARM-binaire code kan emuleren en voor x86 kan compileren. Alles wat we hoeven te doen is Qemu op ons hostsysteem installeren en de emulator activeren. Qemu installeren 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 dit in de container te gebruiken.

Als de extensie alleen tijdelijk nodig is en lokaal bestaat, kan deze simpelweg aan de container worden doorgegeven. Hiervoor wordt de benodigde binaire in de container gemount.

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 benodigde wijzigingen worden aangebracht. De wijzigingen kunnen daarna met een commit naar de images worden overgedragen.

docker commit ...

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

1. De binaire is al beschikbaar, er zijn kant-en-klare images op Dockerhub voor dit doel. https://hub.docker.com/u/multiarch/

2. De binaire wordt aan de container-images toegevoegd. Voorbeeld Dockerfile:

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

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

Eén container voor alles

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

Industriële technologie

  1. Decimaal vs. Binair: Plaatsgewicht, Efficiëntie en Conversie
  2. Binaire Optelling: Regels, Voorbeelden en Rol in Digitale Computers
  3. Negatieve Getallen in Binair: Sign-Magnitude, Complement en Two's Complement
  4. Binaire Aftrekken met Two's Complement
  5. Binaire Overflow: Hoe Sign Bits Binaire Optelling Beïnvloeden
  6. Essentiële Boolesche Vereenvoudigingsregels voor Logisch Schakelingsontwerp
  7. Vier-Bit Binaire Tellers Begrijpen
  8. Robuuste PCB's voor extreme omstandigheden: ontwerp, voordelen en toepassingen
  9. PCB-productie in het 5G-tijdperk: Trends en uitdagingen
  10. Implementaties stroomlijnen met multi-stage container builds
  11. Arm introduceert custom-instructieondersteuning voor Cortex‑M-kernen, vergroot flexibiliteit