Creazione di una maghjina Ubuntu per ARM "da zero"
Quandu u sviluppu ghjustu principia, spessu ùn hè micca chjaru chì pacchetti andaranu à i rootfs di destinazione.
In altri palori, hè troppu prestu per piglià LFS, buildroot o yocto (o qualcos'altro), ma avete digià bisognu di principià. Per i ricchi (aghju 4GB eMMC nantu à i campioni piloti) ci hè un modu per distribuisce à i sviluppatori una distribuzione chì li permetterà di furnisce rapidamente qualcosa chì manca attualmente, è allora pudemu sempre cullà listi di pacchetti è creà una lista per i rootfs di destinazione.
Questu articulu ùn hè micca novu è hè una struzzione simplice di copia-incolla.
U scopu di l'articulu hè di custruisce Ubuntu rootfs per schede ARM (in u mo casu, basatu annantu à Colibri imx7d).
Custruì una maghjina
Assemblamu i rootfs di destinazione per a replicazione.
Unpacking Ubuntu Base
Scegliemu a liberazione noi stessi basatu nantu à i bisogni è e nostre preferenze. Quì aghju datu 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
Verificate u supportu BINFMT in u kernel
Se tenete una distribuzione cumuni, allora ci hè supportu per BINFMT_MISC è tuttu hè cunfiguratu, se no, allora sò sicuru chì sapete cumu attivà u supportu BINFMT in u kernel.
Assicuratevi chì BINFMT_MISC hè attivatu in u kernel:
I schedarii di l'intestazione di u kernel è i moduli sò una materia separata. Di sicuru, ùn installemu micca u bootloader, u kernel, i moduli, l'arburu di u dispositivu via Ubuntu. Ci venenu da l'esternu o l'assembleremu noi stessi o ci saranu dati da u fabricatore di u bordu, in ogni casu questu hè fora di u scopu di sta struzzione.
In una certa misura, a divergenza di versione hè accettata, ma hè megliu piglià da u kernel build.
# apt install --yes linux-headers-generic
Videmu ciò chì hè accadutu è hè risultatu assai:
# apt clean
# du -d 0 -h / 2>/dev/null
770M /
Ùn vi scurdate di stabilisce una password.
Imballà l'imaghjini
$ sudo tar -C rootfs --transform "s|^./||" --numeric-owner --owner=0 --group=0 -c ./ | tar --delete ./ | gzip > rootfs.tar.gz
Ebbè, dicemu chì avemu distribuitu a nostra assemblea, u travagliu hà cuminciatu nantu à cumu megliu assemblee dopu diverse versioni di u nostru sistema.