Amikor a fejlesztés csak elkezdődik, gyakran nem világos, hogy mely csomagok jutnak el a cél rootfokhoz.
Más szóval, még túl korai megragadni az LFS-t, a buildrootot vagy a yocto-t (vagy valami mást), de már el kell kezdeni. A gazdagok számára (nekem 4 GB-os eMMC-m van a kísérleti mintákon) van egy kiút, ha olyan disztribúciót osztanak ki a fejlesztőknek, amely lehetővé teszi számukra, hogy gyorsan eljuttassanak valamit, ami jelenleg hiányzik, és ezután mindig összegyűjthetjük a csomagok listáját, és létrehozhatunk egy listát a célgyökereket.
Ez a cikk nem új, és egy egyszerű másolási és beillesztési utasítás.
A cikk célja, hogy Ubuntu rootfeket építsek ARM kártyákhoz (esetemben Colibri imx7d alapján).
Kép építése
Összeállítjuk a cél rootfokat a replikációhoz.
Ubuntu Base kicsomagolása
Mi magunk választjuk ki a kiadást igényünk és saját preferenciáink alapján. Itt 20-at adtam.
$ 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
A BINFMT támogatás ellenőrzése a kernelben
Ha közös disztribúcióval rendelkezik, akkor van támogatás a BINFMT_MISC-hez, és minden be van állítva, ha nem, akkor biztos vagyok benne, hogy tudja, hogyan engedélyezheti a BINFMT támogatást a kernelben.
Győződjön meg arról, hogy a BINFMT_MISC engedélyezve van a kernelben:
A kernelfejlécfájlok és -modulok külön téma. Természetesen nem Ubuntun keresztül fogjuk telepíteni a rendszerbetöltőt, a kernelt, a modulokat, az eszközfát. Ezek kívülről érkeznek hozzánk, vagy mi magunk szereljük össze, vagy a táblagyártó adja át nekünk, mindenesetre ez meghaladja a jelen utasítás kereteit.
Bizonyos mértékig a verzióeltérés elfogadható, de jobb, ha ezeket a kernel felépítéséből veszed át.
# apt install --yes linux-headers-generic
Lássuk, mi történt, és sok minden kiderült:
# apt clean
# du -d 0 -h / 2>/dev/null
770M /
Ne felejtsen el jelszót beállítani.
A kép becsomagolása
$ sudo tar -C rootfs --transform "s|^./||" --numeric-owner --owner=0 --group=0 -c ./ | tar --delete ./ | gzip > rootfs.tar.gz
Ezenkívül telepíthetjük az etckeeper-t autopush beállítással
Nos, tegyük fel, hogy szétosztottuk az összeállításunkat, elkezdődött a munka, hogyan lehetne a legjobban összeszerelni a rendszerünk későbbi különböző verzióit.