Když vývoj teprve začíná, často není jasné, které balíčky půjdou do cílového rootfs.
Jinými slovy, je příliš brzy na to, abyste získali LFS, buildroot nebo yocto (nebo něco jiného), ale už musíte začít. Pro bohaté (na pilotních vzorcích mám 4GB eMMC) existuje cesta, jak distribuovat vývojářům distribuci, která jim umožní rychle dodat něco, co aktuálně chybí, a pak můžeme vždy shromáždit seznamy balíčků a vytvořit seznam pro cílový rootfs.
Tento článek není nový a jedná se o jednoduchou instrukci kopírování a vkládání.
Účelem článku je vytvořit Ubuntu rootfs pro ARM desky (v mém případě založené na Colibri imx7d).
Budování obrazu
Sestavíme cílové rootfs pro replikaci.
Rozbalení Ubuntu Base
Vydání si volíme sami na základě potřeby a vlastních preferencí. Zde jsem dal 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
Kontrola podpory BINFMT v jádře
Pokud máte společnou distribuci, pak existuje podpora pro BINFMT_MISC a vše je nakonfigurováno, pokud ne, pak jsem si jistý, že víte, jak povolit podporu BINFMT v jádře.
Soubory hlaviček jádra a moduly jsou samostatnou záležitostí. Přes Ubuntu samozřejmě nenainstalujeme bootloader, jádro, moduly, strom zařízení. Přijdou k nám zvenčí nebo si je smontujeme sami nebo nám je dá výrobce desky, každopádně je to nad rámec tohoto návodu.
Do jisté míry je rozdílnost verzí přijatelná, ale je lepší je převzít ze sestavení jádra.
# apt install --yes linux-headers-generic
Podívejme se, co se stalo a ukázalo se hodně:
# apt clean
# du -d 0 -h / 2>/dev/null
770M /
Nezapomeňte si nastavit heslo.
Balení obrázku
$ sudo tar -C rootfs --transform "s|^./||" --numeric-owner --owner=0 --group=0 -c ./ | tar --delete ./ | gzip > rootfs.tar.gz
Navíc můžeme nainstalovat etckeeper s nastavením autopush
No, řekněme, že jsme distribuovali naši sestavu, začala práce na tom, jak nejlépe sestavit později různé verze našeho systému.