Keď vývoj práve začína, často nie je jasné, ktoré balíčky pôjdu do cieľového rootfs.
Inými slovami, je príliš skoro chytiť LFS, buildroot alebo yocto (alebo niečo iné), ale už musíte začať. Pre bohatých (na pilotných vzorkách mám 4GB eMMC) existuje cesta, ako distribuovať vývojárom distribúciu, ktorá im umožní rýchlo dodať niečo, čo momentálne chýba, a potom môžeme vždy zbierať zoznamy balíčkov a vytvárať zoznam pre cieľový rootfs.
Tento článok nie je nový a je to jednoduchý návod na kopírovanie a vkladanie.
Účelom článku je zostaviť Ubuntu rootfs pre ARM dosky (v mojom prípade založené na Colibri imx7d).
Budovanie imidžu
Zhromažďujeme cieľové rootfs na replikáciu.
Rozbalenie Ubuntu Base
Vydanie si vyberáme sami na základe potreby a vlastných preferencií. Tu som 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 jadre
Ak máte spoločnú distribúciu, potom existuje podpora pre BINFMT_MISC a všetko je nakonfigurované, ak nie, potom som si istý, že viete, ako povoliť podporu BINFMT v jadre.
Hlavičkové súbory jadra a moduly sú samostatnou záležitosťou. Cez Ubuntu samozrejme nenainštalujeme bootloader, jadro, moduly, strom zariadení. Prídu k nám zvonku alebo si ich zmontujeme sami alebo nám ich dá výrobca dosky, v každom prípade je to nad rámec tohto návodu.
Do určitej miery je rozdielnosť verzií prijateľná, ale je lepšie ich prevziať zo zostavy jadra.
# apt install --yes linux-headers-generic
Pozrime sa, čo sa stalo a ukázalo sa veľa:
# apt clean
# du -d 0 -h / 2>/dev/null
770M /
Nezabudnite si nastaviť heslo.
Balenie obrazu
$ sudo tar -C rootfs --transform "s|^./||" --numeric-owner --owner=0 --group=0 -c ./ | tar --delete ./ | gzip > rootfs.tar.gz
Okrem toho môžeme nainštalovať etckeeper s nastavením autopush
Povedzme, že sme distribuovali našu zostavu, začala sa práca na tom, ako čo najlepšie zostaviť neskôr rôzne verzie nášho systému.