Når utviklingen nettopp begynner, er det ofte ikke klart hvilke pakker som vil gå til målrotfsene.
Med andre ord, det er for tidlig å ta tak i LFS, buildroot eller yocto (eller noe annet), men du må allerede begynne. For de rike (jeg har 4GB eMMC på pilotprøver) er det en utvei for å distribuere til utviklere en distribusjon som gjør at de raskt kan levere noe som mangler, og da kan vi alltid samle lister over pakker og lage en liste for målrotene.
Denne artikkelen er ikke ny og er en enkel copy-paste-instruksjon.
Formålet med artikkelen er å bygge Ubuntu rootfs for ARM-kort (i mitt tilfelle, basert på Colibri imx7d).
Bygg bildet
Vi setter sammen målrootfs for replikering.
Pakker ut Ubuntu Base
Vi velger utgivelsen selv ut fra behov og egne preferanser. Her har jeg gitt 20.
$ mkdir ubuntu20
$ cd ubuntu20
$ mkdir rootfs
$ wget http://cdimage.ubuntu.com/ubuntu-base/releases/20.04/release/ubuntu-base-20.04-base-armhf.tar.gz
$ tar xf ubuntu-base-20.04-base-armhf.tar.gz -C rootfs
Sjekker BINFMT-støtte i kjernen
Hvis du har en felles distribusjon, så er det støtte for BINFMT_MISC og alt er konfigurert, hvis ikke, så er jeg sikker på at du vet hvordan du aktiverer BINFMT-støtte i kjernen.
Kjernehodefiler og moduler er en egen sak. Selvfølgelig vil vi ikke installere bootloader, kjerne, moduler, enhetstreet via Ubuntu. De vil komme til oss utenfra, eller vi vil montere dem selv eller de vil bli gitt til oss av brettprodusenten, i alle fall er dette utenfor rammen av denne instruksjonen.
Til en viss grad er versjonsdivergens akseptabelt, men det er bedre å ta dem fra kjernebygget.
# apt install --yes linux-headers-generic
La oss se hva som skjedde og det viste seg mye:
# apt clean
# du -d 0 -h / 2>/dev/null
770M /
Ikke glem å angi et passord.
Pakker bildet
$ sudo tar -C rootfs --transform "s|^./||" --numeric-owner --owner=0 --group=0 -c ./ | tar --delete ./ | gzip > rootfs.tar.gz
I tillegg kan vi installere etckeeper med autopush-innstillingen
Vel, la oss si at vi distribuerte sammenstillingen vår, arbeidet begynte med hvordan vi best kunne sette sammen senere forskjellige versjoner av systemet vårt.