Pan fydd datblygiad newydd ddechrau, yn aml nid yw'n glir pa becynnau fydd yn mynd i'r gwreiddiau targed.
Mewn geiriau eraill, mae'n rhy gynnar i fachu LFS, buildroot neu yocto (neu rywbeth arall), ond mae angen i chi ddechrau eisoes. Ar gyfer y cyfoethog (mae gen i 4GB eMMC ar samplau peilot) mae yna ffordd allan i ddosbarthu dosbarthiad i ddatblygwyr a fydd yn caniatáu iddynt gyflwyno rhywbeth sydd ar goll ar hyn o bryd yn gyflym, ac yna gallwn bob amser gasglu rhestrau o becynnau a chreu rhestr ar gyfer y rootfs targed.
Nid yw'r erthygl hon yn newydd ac mae'n gyfarwyddyd copi-gludo syml.
Pwrpas yr erthygl yw adeiladu rootfs Ubuntu ar gyfer byrddau ARM (yn fy achos i, yn seiliedig ar Colibri imx7d).
Adeiladu delwedd
Rydym yn cydosod y gwreiddiau targed ar gyfer atgynhyrchu.
Dadbacio Sylfaen Ubuntu
Rydym yn dewis y datganiad ein hunain yn seiliedig ar angen a'n dewisiadau ein hunain. Yma rwyf wedi rhoi 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
Gwirio cefnogaeth BINFMT yn y cnewyllyn
Os oes gennych chi ddosbarthiad cyffredin, yna mae cefnogaeth i BINFMT_MISC ac mae popeth wedi'i ffurfweddu, os na, yna rwy'n siŵr eich bod chi'n gwybod sut i alluogi cefnogaeth BINFMT yn y cnewyllyn.
Sicrhewch fod BINFMT_MISC wedi'i alluogi yn y cnewyllyn:
Mae ffeiliau pennawd cnewyllyn a modiwlau yn fater ar wahân. Wrth gwrs, ni fyddwn yn gosod y cychwynnwr, cnewyllyn, modiwlau, coeden dyfais trwy Ubuntu. Byddant yn dod atom o'r tu allan neu byddwn yn eu cydosod ein hunain neu fe'u rhoddir i ni gan wneuthurwr y bwrdd, beth bynnag mae hyn y tu hwnt i gwmpas y cyfarwyddyd hwn.
I ryw raddau, mae dargyfeiriad fersiwn yn dderbyniol, ond mae'n well eu cymryd o'r adeiladu cnewyllyn.
# apt install --yes linux-headers-generic
Gawn ni weld beth ddigwyddodd ac fe drodd allan lawer:
# apt clean
# du -d 0 -h / 2>/dev/null
770M /
Peidiwch ag anghofio gosod cyfrinair.
Pacio'r ddelwedd
$ sudo tar -C rootfs --transform "s|^./||" --numeric-owner --owner=0 --group=0 -c ./ | tar --delete ./ | gzip > rootfs.tar.gz
Yn ogystal, gallwn osod etckeeper gyda'r gosodiad autopush
Wel, gadewch i ni ddweud ein bod wedi dosbarthu ein gwasanaeth, dechreuodd y gwaith ar y ffordd orau o gydosod gwahanol fersiynau diweddarach o'n system.
Gallwn, wrth gwrs, greu canghennau ar y ddyfais ymlaen llaw (gadewch i ni ddweud ein bod ni'n gwneud sgript neu wasanaeth a fydd yn rhedeg y tro cyntaf iddo gael ei lansio).