Mamorona sary Ubuntu ho an'ny ARM "avy amin'ny scratch"
Rehefa manomboka vao manomboka ny fampandrosoana dia matetika tsy mazava hoe inona no fonosana ho any amin'ny rootfs kendrena.
Raha lazaina amin'ny teny hafa, aloha loatra ny maka LFS, buildroot na yocto (na zavatra hafa), fa efa mila manomboka ianao. Ho an'ny mpanankarena (Manana eMMC 4GB aho amin'ny santionany mpanamory) dia misy fomba iray ahafahana mizara amin'ny mpamorona ny fizarana izay ahafahan'izy ireo manatitra haingana zavatra tsy ampy amin'izao fotoana izao, ary avy eo dia afaka manangona lisitry ny fonosana izahay ary mamorona lisitra ho an'ny ny target rootfs.
Ny tanjon'ny lahatsoratra dia ny fananganana rootfs Ubuntu ho an'ny boards ARM (raha ny ahy, mifototra amin'ny Colibri imx7d).
Manangana sary
Manangona ny rootfs kendrena ho replication.
Mamaha ny Ubuntu Base
Isika ihany no misafidy ny famotsorana araka ny filantsika sy ny safidintsika manokana. Eto aho dia nanome 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
Fanamarinana ny fanohanan'ny BINFMT amin'ny kernel
Raha manana fizarana iraisana ianao dia misy ny fanohanana ny BINFMT_MISC ary ny zava-drehetra dia namboarina, raha tsy izany, dia azoko antoka fa fantatrao ny fomba ahafahana manohana ny BINFMT amin'ny kernel.
Ataovy azo antoka fa alefa ao amin'ny kernel ny BINFMT_MISC:
Ny rakitra lohatenin'ny kernel sy ny maody dia raharaha misaraka. Mazava ho azy fa tsy hametraka ny bootloader, kernel, modules, hazo fitaovana amin'ny Ubuntu izahay. Ho avy any ivelany izy ireo na hamory azy ireo ny tenanay na homena anay avy amin'ny mpanamboatra board, na izany na tsy izany dia tsy voafehin'ity torolΓ lana ity izany.
Amin'ny lafiny iray, azo ekena ny divergence version, fa tsara kokoa ny maka azy ireo amin'ny fananganana kernel.
# apt install --yes linux-headers-generic
Andeha hojerentsika ny zava-nitranga ary be dia be izany:
# apt clean
# du -d 0 -h / 2>/dev/null
770M /
Aza adino ny mametraka tenimiafina.
Fonosana ny sary
$ sudo tar -C rootfs --transform "s|^./||" --numeric-owner --owner=0 --group=0 -c ./ | tar --delete ./ | gzip > rootfs.tar.gz