När utvecklingen precis börjar är det ofta inte klart vilka paket som kommer att gå till målrootfs.
Med andra ord, det är för tidigt att ta tag i LFS, buildroot eller yocto (eller något annat), men du måste redan börja. För de rika (jag har 4GB eMMC på pilotprover) finns det en väg ut att distribuera till utvecklare en distribution som gör att de snabbt kan leverera något som för närvarande saknas, och då kan vi alltid samla listor med paket och skapa en lista för målrötterna.
Den här artikeln är inte ny och är en enkel copy-paste-instruktion.
Syftet med artikeln är att bygga Ubuntu rootfs för ARM-kort (i mitt fall baserat på Colibri imx7d).
Att bygga en bild
Vi sätter ihop målrotfs för replikering.
Packar upp Ubuntu Base
Vi väljer själva releasen utifrån behov och våra egna preferenser. Här har jag gett 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
Kontrollerar stöd för BINFMT i kärnan
Om du har en gemensam distribution så finns det stöd för BINFMT_MISC och allt är konfigurerat, om inte så är jag säker på att du vet hur du aktiverar BINFMT-stöd i kärnan.
Kärnhuvudfiler och moduler är en separat fråga. Naturligtvis kommer vi inte att installera bootloader, kärna, moduler, enhetsträd via Ubuntu. De kommer till oss utifrån eller så monterar vi dem själva eller så kommer de att ges till oss av kortets tillverkare, i vilket fall som helst ligger detta utanför ramen för denna instruktion.
Till viss del är versionsavvikelser acceptabelt, men det är bättre att ta dem från kärnbyggnaden.
# apt install --yes linux-headers-generic
Låt oss se vad som hände och det blev mycket:
# apt clean
# du -d 0 -h / 2>/dev/null
770M /
Glöm inte att ange ett lösenord.
Packar bilden
$ sudo tar -C rootfs --transform "s|^./||" --numeric-owner --owner=0 --group=0 -c ./ | tar --delete ./ | gzip > rootfs.tar.gz
Dessutom kan vi installera etckeeper med autopush-inställningen
Tja, låt oss säga att vi distribuerade vår montering, arbetet började med hur man bäst monterar senare olika versioner av vårt system.