Ko se razvoj šele začne, pogosto ni jasno, kateri paketi bodo šli v ciljni rootfs.
Z drugimi besedami, prezgodaj je zagrabiti LFS, buildroot ali yocto (ali kaj drugega), vendar morate že začeti. Za bogate (v pilotnih vzorcih imam 4 GB eMMC) obstaja izhod, da razvijalcem razdelimo distribucijo, ki jim bo omogočila hitro dostavo nečesa, kar trenutno manjka, nato pa lahko vedno zberemo sezname paketov in ustvarimo seznam za ciljni rootfs.
Ta članek ni nov in je preprosta navodila za kopiranje in lepljenje.
Namen članka je zgraditi Ubuntu rootfs za plošče ARM (v mojem primeru na podlagi Colibri imx7d).
Grajenje podobe
Sestavimo ciljne rootfs za replikacijo.
Razpakiranje Ubuntu Base
Izpust izberemo sami glede na potrebe in lastne želje. Tukaj sem 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
Preverjanje podpore za BINFMT v jedru
Če imate skupno distribucijo, potem obstaja podpora za BINFMT_MISC in je vse konfigurirano, če ne, potem sem prepričan, da veste, kako omogočiti podporo za BINFMT v jedru.
Prepričajte se, da je BINFMT_MISC omogočen v jedru:
Datoteke glave jedra in moduli so ločena zadeva. Seveda ne bomo namestili zagonskega nalagalnika, jedra, modulov, drevesa naprav prek Ubuntuja. K nam bodo prišle od zunaj ali pa jih bomo sestavili sami ali pa nam jih bo dal proizvajalec plošč, v vsakem primeru pa to presega obseg tega navodila.
Do neke mere so razlike v različicah sprejemljive, vendar jih je bolje vzeti iz gradnje jedra.
# apt install --yes linux-headers-generic
Poglejmo, kaj se je zgodilo in izkazalo se je veliko:
# apt clean
# du -d 0 -h / 2>/dev/null
770M /
Ne pozabite nastaviti gesla.
Pakiranje slike
$ sudo tar -C rootfs --transform "s|^./||" --numeric-owner --owner=0 --group=0 -c ./ | tar --delete ./ | gzip > rootfs.tar.gz
Poleg tega lahko namestimo etckeeper z nastavitvijo autopush
No, recimo, da smo razdelili naš sklop, začelo se je delo na tem, kako najbolje sestaviti pozneje različne različice našega sistema.