Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Réamhrá

Sa tsraith alt seo, ba mhaith liom breathnú ar an gcóras tógála dáileacháin buildroot agus mo thaithí a roinnt chun é a shaincheapadh. Beidh taithí phraiticiúil ar chruthú OS beag le comhéadan grafach agus feidhmiúlacht íosta.

Ar an gcéad dul síos, níor cheart duit an córas tógála agus an dáileadh a mhearbhall. Is féidir le Buildroot córas a thógáil ó thacar pacáistí a thairgtear dó. Tá Buildroot tógtha ar makefiles agus dá bhrí sin tá cumais saincheaptha ollmhóra. Cuir leagan eile in ionad pacáiste, cuir do phacáiste féin leis, athraigh na rialacha maidir le pacáiste a thógáil, an córas comhaid a shaincheapadh tar éis na pacáistí go léir a shuiteáil? Is féidir le buildroot é seo go léir a dhéanamh.

Sa Rúis, úsáidtear buildroot, ach is é mo thuairim go bhfuil mórán faisnéise Rúisise ann do thosaitheoirí.

Is é sprioc na hoibre ná trealamh dáileacháin a chur le chéile le híoslódáil beo, comhéadan icewm agus brabhsálaí. Is é an sprioc-ardán ná virtualbox.

Cén fáth a thógáil do dháileadh féin? Go minic bíonn feidhm theoranta ag teastáil le hacmhainní teoranta. Fiú amháin níos minice i uathoibriú is gá duit a chruthú firmware. Tá sé níos déine ar shaothar ná dáileadh nua a thógáil trí dháileadh ilfhóinteach a oiriúnú trí phacáistí nach bhfuil gá leo a ghlanadh agus é a thiontú ina fhirmware. Tá teorainneacha ag baint le húsáid Gentoo freisin.

Tá an córas Buildroot an-chumhachtach, ach ní dhéanfaidh sé rud ar bith duit. Ní féidir leis ach an próiseas tionóil a chumasú agus a uathoibriú.

Ní dhéantar córais tógála malartacha (yocto, córas tógála oscailte agus cinn eile) a mheas nó a chur i gcomparáid.

Cá háit a bhfaighidh sé é agus conas tosú

Láithreán Gréasáin an tionscadail - buildroot.org. Anseo is féidir leat an leagan reatha a íoslódáil agus an lámhleabhar a léamh. Is féidir leat dul i dteagmháil leis an bpobal ansin, tá rianaitheoir fabhtanna, liostaí poist agus cainéal irc.

Feidhmíonn Buildroot defconfigs do chlár sprice an tóg. Is comhad cumraíochta é Defconfig a stórálann ach roghanna nach bhfuil luachanna réamhshocraithe acu. Is é an té a chinneann cad a bhaileofar agus conas. Sa chás seo, is féidir leat na cumraíochtaí de bootloaders busybox, linux-kernel, uglibc, u-boot agus barebox a chumrú ar leithligh, ach beidh gach ceann acu ceangailte leis an spriocchlár.
Tar éis an chartlann íoslódála a dhíphacáil nó a chlónáil ó git, faighimid fréamh tógála réidh le húsáid. Is féidir leat tuilleadh a léamh faoin struchtúr eolaire sa lámhleabhar; inseoidh mé duit faoi na cinn is tábhachtaí:

bord — eolaire le comhaid a bhaineann go sonrach le gach bord. Is féidir iad seo a bheith ina scripteanna chun íomhánna córais a fhoirmiú (iso, sdcart, cpio agus eile), eolaire forleagan, cumraíocht eithne, etc.
configs — díchumraíocht iarbhír an bhoird. Is cumraíocht boird neamhiomlán é Defconfig. Ní stórálann sé ach paraiméadair atá difriúil ó na socruithe réamhshocraithe
dl — eolaire le cóid foinse/comhaid íoslódála le haghaidh tionóil
aschur/sprioc — córas comhaid cóimeáilte an OS a thagann as. Ina dhiaidh sin, cruthaítear íomhánna uaidh le híoslódáil/shuiteáil
aschur/óstach - fóntais óstach le haghaidh tionóil
aschur/tógáil - pacáistí le chéile

Tá an tionól cumraithe trí KConfig. Úsáidtear an córas céanna chun an eithne Linux a thógáil. Liosta de na horduithe is coitianta a úsáidtear (déan sa eolaire buildroot):

  • dhéanamh menuconfig - cuir glaoch ar an chumraíocht thógáil. Is féidir leat an comhéadan grafach a úsáid freisin (déan nconfig, déan xconfig, déan gconfig)
  • déan linux-menuconfig - cuir glaoch ar chumraíocht na eithne.
  • glan - glan na torthaí tógála (gach rud atá stóráilte san aschur)
  • dhéanamh - córas a thógáil. Ní réitíonn sé seo próisis atá le chéile cheana féin.
  • déan defconfig_name - athraigh an chumraíocht go defconfig ar leith
  • make list-defconfigs - taispeáin liosta de defconfigs
  • foinse a dhéanamh - ach na comhaid suiteála a íoslódáil, gan tógáil.
  • cabhrú - liostaigh orduithe féideartha

Nótaí tábhachtacha agus leideanna cabhracha

Ní atógann Buildroot pacáistí atá tógtha cheana féin! Mar sin, d’fhéadfadh cás teacht chun cinn ina bhfuil gá le haththionól iomlán.

Is féidir leat pacáiste ar leith a atógáil leis an ordú dhéanamh packname-atógáil. Mar shampla, is féidir leat an eithne Linux a atógáil:

make linux-rebuild

Stórálann Buildroot staid aon phacáiste trí chomhaid .stampa a chruthú san eolaire aschur/build/$packagename:

Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Mar sin, is féidir leat fréamh-fs agus íomhánna a atógáil gan pacáistí a atógáil:

rm output/build/host-gcc-final-*/.stamp_host_installed;rm -rf output/target;find output/ -name ".stamp_target_installed" |xargs rm -rf ; make

Athróga Úsáideacha

Tá sraith athróg ag buildroot le haghaidh cumraíochta éasca

  • $TOPDIR - eolaire rootroot
  • $BASEDIR - eolaire ASCHUIR
  • $HOST_DIR, $STAGING_DIR, $TARGET_DIR — óstach fs, fs a chur ar stáitse, eolairí a thógáil sprioc fs.
  • $BUILD_DIR - eolaire le pacáistí neamhphacáilte agus tógtha

Amharcléiriú

Tá gné léirshamhlaithe ag Buildroot. Is féidir leat léaráid spleáchais, graf ama tógála, agus graf de mhéideanna pacáiste a thógáil sa chóras deiridh. Tá na torthaí i bhfoirm chomhaid pdf (is féidir leat a roghnú as svn,png) san eolaire aschuir/graif.

Samplaí d'orduithe léirshamhlaithe:

  • make graph-depends crann spleáchais a thógáil
  • make <pkg>-graph-depends crann spleáchais a thógáil do phacáiste ar leith
  • BR2_GRAPH_OUT=png make graph-build am tógála plota le haschur PNG
  • make graph-size méid paicéad plota

Scripteanna úsáideacha

Tá fochomhadlann san eolaire buildroot úsáideach le scripteanna úsáideacha. Mar shampla, tá script ann a sheiceálann cruinneas na tuairiscí pacáiste. D'fhéadfadh sé seo a bheith úsáideach agus do phacáistí féin á gcur leis (déanfaidh mé é seo níos déanaí). Tá cur síos ar na scripteanna seo sa chomhad utils/readme.txt.

Déanaimis dáileadh stoic a thógáil

Tá sé tábhachtach a mheabhrú go ndéantar gach oibríocht thar ceann úsáideoir rialta, ní fréamhacha.
Déantar na horduithe go léir a fhorghníomhú sa buildroot. Áiríonn an pacáiste buildroot sraith cumraíochtaí cheana féin le haghaidh go leor boird choitianta agus fíorúlaithe.

Breathnaímid ar liosta na bhfoirmíochtaí:

Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Athraigh go dtí an cumraíocht qemu_x86_64_defconfig

make qemu_x86_64_defconfig

Agus cuirimid tús leis an tionól

make

Críochnaíonn an tógáil go rathúil, féach ar na torthaí:

Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Tá íomhánna curtha le chéile ag Buildroot ar féidir leat a rith i Qemu agus a fhíorú go n-oibríonn siad.

qemu-system-x86_64 -kernel output/images/bzImage -hda    output/images/rootfs.ext2 -append "root=/dev/sda rw" -s -S

Is é an toradh atá air ná córas ag rith i qemu:

Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Do chumraíocht boird féin a chruthú

Comhaid Bhoird á gcur leis

Breathnaímid ar liosta na bhfoirmíochtaí:

Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Sa liosta feicimid pc_x86_64_efi_defconfig. Cruthóimid ár gclár féin trína chóipeáil ón gcumraíocht:

cp configs/pc_x86_64_bios_defconfig configs/my_x86_board_defconfig

Cruthaímid eolaire cláir láithreach chun ár scripteanna, rootfs-overlay agus comhaid riachtanacha eile a stóráil:

mkdir board/my_x86_board

Athraigh go dtí an Defconfig seo:

make my_x86_board_defconfig

Mar sin, anois comhfhreagraíonn an cumraíocht tógála (stóráilte i .config i bhfréamh an eolaire buildroot) do spriocmheaisín tosaithe x86-64 oidhreacht (bios).

Déanaimis an chumraíocht linux-eithne a chóipeáil (úsáideach níos déanaí):

cp board/pc/linux.config board/my_x86_board/

Paraiméadair tógála a shocrú trí KConfig

Cuirimis tús leis an socrú:

make menuconfig 

Osclófar an fhuinneog KConfig. Is féidir é a chumrú le comhéadan grafach (déan nconfig, déan xconfig, déan gconfig):

Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Cuirimid isteach sa chéad chuid Roghanna Sprioc. Anseo is féidir leat an sprioc-ailtireacht a roghnú as a ndéanfar an tógáil.

Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Roghanna tógála - tá socruithe tógála éagsúla anseo. Is féidir leat eolairí a shonrú le cóid foinse, líon na snáitheanna tógála, scátháin chun cóid foinse a íoslódáil agus socruithe eile. Fágfaimid na socruithe mar réamhshocrú.

Toolchain - tá na huirlisí tógála féin cumraithe anseo. Léigh tuilleadh mar gheall air.

Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Cineál slabhra uirlisí – cineál slabhra uirlisí a úsáidtear. Is féidir é seo a bheith ina slabhra uirlisí a tógadh isteach i buildroot nó ina cheann seachtrach (is féidir leat an t-eolaire a shonrú leis an gceann atá tógtha cheana féin nó an url le híoslódáil). Tá roghanna breise ann le haghaidh ailtireachtaí éagsúla. Mar shampla, le haghaidh lámh is féidir leat an leagan Linaro den slabhra uirlisí seachtrach a roghnú go simplí.

Leabharlann C – roghnú leabharlann C. Braitheann oibriú an chórais iomláin air seo. De ghnáth, úsáidtear glibc, a thacaíonn le gach feidhmiúlacht is féidir. Ach d'fhéadfadh sé a bheith ró-mhór do chóras leabaithe, mar sin is minic a roghnaítear uglibc nó musl. Roghnóimid glibc (beidh sé seo ag teastáil níos déanaí chun systemd a úsáid).

Sraitheanna Ceanntásca Eithne agus Ceanntásca Eithne Chustaim - caithfidh siad a bheith ag teacht leis an leagan den eithne a bheidh sa chóras comhchruinnithe. Le haghaidh ceanntásca eithne, is féidir leat an cosán chuig an stór tarball nó git a shonrú freisin.

LÉACHANNA Tiomsaitheoir GCC – roghnaigh an leagan tiomsaithe a úsáidfear le haghaidh tógála
Cumasaigh tacaíocht C++ – roghnaigh le tógáil le tacaíocht do leabharlanna C++ sa chóras. Beidh sé seo úsáideach dúinn amach anseo.

Roghanna gcc breise - is féidir leat roghanna tiomsaitheora breise a shocrú. Níl sé de dhíth orainn faoi láthair.

Ligeann cumraíocht an chórais duit paraiméadair an chórais chruthaithe amach anseo a shocrú:

Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Tá an chuid is mó de na pointí soiléir ón teideal. Tugaimis aird ar na pointí seo a leanas:
Conair chuig na táblaí úsáideoirí - tábla le húsáideoirí le cruthú (https://buildroot.org/downloads/manual/manual.html#makeuser-syntax).

Comhad samplach. Cruthófar an t-úsáideoir úsáideora leis an admin pasfhocal, go huathoibríoch gid/uid, /bin/sh shell, úsáideoir grúpa réamhshocraithe, fréamh bhall an ghrúpa, nóta tráchta Foo úsáideoir

[alexey@alexey-pc buildroot ]$ cat board/my_x86_board/users.txt 
user -1 user -1 =admin /home/user /bin/sh root Foo user

Eolairí forleagan córas comhaid fréimhe - eolaire forleagtha ar bharr na sprioc-fs comhchruinnithe. Cuirtear comhaid nua leis agus cuirtear na cinn atá ann cheana féin in áit.

Scripteanna saincheaptha le rith roimh íomhánna córais comhad a chruthú - Scripteanna a cuireadh i gcrích díreach roimh an córas comhaid a fhilleadh in íomhánna. Fágfaimid an script folamh faoi láthair.

A ligean ar dul go dtí an rannóg Kernel

Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Tá socruithe eithne socraithe anseo. Tá an eithne féin cumraithe trí make linux-menuconfig.
Is féidir leat an leagan eithne a shocrú ar bhealaí éagsúla: roghnaigh ó na cinn a thairgtear, cuir isteach an leagan de láimh, sonraigh stór nó tarball réidh.

Cumraíocht eithne - cosán go dtí an chumraíocht eithne. Is féidir leat an chumraíocht réamhshocraithe a roghnú don ailtireacht roghnaithe nó defocnfig ó Linux. Tá sraith defconfigs i bhfoinse Linux do spriocchórais éagsúla. Is féidir leat teacht ar an gceann atá uait trí bhreathnú go díreach ar na foinsí anseo. Mar shampla, le haghaidh bord dubh cnámh beagle is féidir leat roghnaigh config.

Ligeann rannán na bpacáistí Sprioc duit na pacáistí a shuiteálfar ar an gcóras atá á thógáil a roghnú. Fágaimis é gan athrú go ceann tamaill. Cuirfimid ár bpacáistí leis an liosta seo níos déanaí.
Íomhánna córas comhaid - liosta d'íomhánna córas comhaid a bhaileofar. Cuir íomhá iso leis

Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Bootloaders - roghnú na bootloaders le bailiú. A ligean ar a roghnú isolinix

Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Systemd á chumrú

Tá Systemd ag éirí mar cheann de philéar Linux, mar aon le heithne agus glibc. Mar sin, bhog mé a shocrú go mír ar leith.

Cumraithe trí make menuconfig, ansin Spriocphacáistí → Uirlisí córais → systemd. Anseo is féidir leat a shonrú cé na seirbhísí systemd a shuiteálfar agus a thosófar nuair a thosaíonn an córas.

Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Cumraíocht an chórais a shábháil

Sábháilimid an cumraíocht seo trí KConfig.

Ansin sábháil ár defconfig:

make savedefconfig

Cumraíocht Eithne Linux

Tá an chumraíocht eithne Linux agairt leis an ordú seo a leanas:

make linux-menuconfig

Cuirimis tacaíocht don chárta físeán Virtualbox

Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Cuirimis tacaíocht comhtháthú Virtualbox Guest leis

Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Sábháil agus scoir. TÁBHACHTACH: sábhálfar cumraíocht in aschur/build/linux-$version/config, ach ní sa board/my_x86_board/linux.config

Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Mar sin, ní mór duit an chumraíocht a chóipeáil de láimh chuig suíomh stórála:

cp output/build/linux-4.19.25/.config board/my_x86_board/linux.config

Ina dhiaidh sin déanfaimid athchruinniú iomlán ar an gcóras iomlán. ní atógann buildroot an méid atá tógtha cheana féin, ní mór duit pacáistí le haghaidh atógáil a shonrú de láimh. Chun gan am agus nerves a chur amú, tá sé níos éasca córas beag a atógáil go hiomlán):

make clean;make

Nuair a bheidh an tógáil críochnaithe, seol an tosaithe VirtualBox (tástáil ar leaganacha 5.2 agus 6.0) ón CD. Paraiméadair an chórais:

Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Ag rith ón iso cóimeáilte:

Buildroot - cuid 1. Eolas ginearálta, ag tógáil córas íosta, ag bunú tríd an roghchlár

Liosta ábhar a úsáideadh

  1. Lámhleabhar buildroot

Foinse: will.com

Add a comment