Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

Gabatarwar

A cikin wannan jerin labaran, Ina so in kalli tsarin gina ginin rarraba rarraba kuma in raba gwaninta na keɓance shi. Anan zaku sami gogewa mai amfani wajen ƙirƙirar ƙaramin OS tare da ƙirar hoto da ƙaramin aiki.

Da farko, kada ku rikitar da tsarin ginin da rarrabawa. Buildroot na iya gina tsarin daga saitin fakitin da aka miƙa masa. Buildroot an gina shi akan makefiles don haka yana da babban damar keɓancewa. Sauya kunshin tare da wani sigar, ƙara kunshin ku, canza ƙa'idodin gina fakitin, tsara tsarin fayil bayan shigar da duk fakitin? buildroot iya yin duk wannan.

A cikin Rasha, ana amfani da tushen ginin, amma a ganina akwai ƙananan bayanan harshen Rashanci don masu farawa.

Manufar aikin shine a haɗa kayan rarrabawa tare da zazzagewa kai tsaye, dubawar icewm da mai bincike. Dandalin manufa shine akwatin kama-da-wane.

Me yasa kuke gina naku rarraba? Yawancin lokaci ana buƙatar aiki mai iyaka tare da iyakataccen albarkatu. Ko da sau da yawa a cikin sarrafa kansa kuna buƙatar ƙirƙirar firmware. Daidaita rarraba manufa ta gaba ɗaya ta tsaftace fakitin da ba dole ba kuma juya shi cikin firmware ya fi ƙarfin aiki fiye da gina sabon rarraba. Amfani da Gentoo shima yana da iyakoki.

Tsarin Buildroot yana da ƙarfi sosai, amma ba zai yi muku komai ba. Yana iya kunnawa da sarrafa tsarin haɗin kai kawai.

Madadin tsarin ginawa (yocto, tsarin ginin buɗewa da sauransu) ba a la'akari ko kwatanta su.

Inda za a samu da kuma yadda za a fara

Gidan yanar gizon aikin - buildroot.org. Anan zaku iya saukar da sigar yanzu kuma ku karanta jagorar. A can za ku iya tuntuɓar al'umma, akwai mai bin diddigin bug, jerin wasiku da tashar irc.

Buildroot yana aiki da defconfigs don allon ginin da aka yi niyya. Defconfig fayil ne mai daidaitawa wanda ke adana zaɓuɓɓukan kawai waɗanda ba su da ƙima na asali. Shi ne yake kayyade abin da za a tattara da kuma yadda. A wannan yanayin, zaku iya saita saitunan busybox daban-daban, Linux-kernel, uglibc, u-boot da barebox bootloaders, amma dukkansu za a ɗaure su da allon manufa.
Bayan cire kayan tarihin da aka zazzage ko cloning daga git, mun sami tushen ginin da aka shirya don amfani. Kuna iya karanta ƙarin game da tsarin kundin adireshi a cikin littafin; Zan gaya muku game da mafi mahimmanci:

hukumar - kundin adireshi tare da takamaiman fayiloli ga kowane allo. Waɗannan na iya zama rubutun don ƙirƙirar hotunan tsarin (iso, sdcart, cpio da sauransu), jagorar mai rufi, saitin kernel, da sauransu.
kwantattun bayanai - ainihin defconfig na hukumar. Defconfig shine tsarin allon da bai cika ba. Yana adana sigogi kawai waɗanda suka bambanta da saitunan tsoho
dl - directory tare da zazzage lambobin tushe/fayil don taro
fitarwa/manufa - tsarin fayil ɗin da aka haɗa na OS sakamakon. Daga baya, ana ƙirƙirar hotuna daga gare ta don saukewa / shigarwa
fitarwa/mai watsa shiri - runduna utilities ga taro
fitarwa/gina - kunshin da aka tattara

An saita taron ta hanyar KConfig. Ana amfani da wannan tsarin don gina kernel na Linux. Jerin umarnin da aka fi amfani da shi (aiki a cikin tsarin ginin ginin):

  • yi menuconfig - kira ginin ginin. Hakanan zaka iya amfani da ƙirar hoto (yi nconfig, yin xconfig, yin gconfig)
  • yi linux-menuconfig - kira tsarin kernel.
  • yi tsabta - tsaftace sakamakon ginin (duk abin da aka adana a cikin fitarwa)
  • yi - gina tsarin. Wannan baya sake tara matakan da aka riga aka haɗa.
  • yi defconfig_name - canza sanyi zuwa takamaiman defconfig
  • yi jerin-defconfigs - nuna jerin defconfigs
  • yi tushen - kawai zazzage fayilolin shigarwa, ba tare da gini ba.
  • yin taimako - jera yuwuwar umarni

Muhimman bayanai da shawarwari masu taimako

Buildroot baya sake gina fakitin da aka riga aka gina! Saboda haka, wani yanayi na iya tasowa inda ake buƙatar cikakken sake haɗuwa.

Kuna iya sake gina fakitin daban tare da umarnin yi sunan kunshin-sake ginawa. Misali, zaku iya sake gina kernel na Linux:

make linux-rebuild

Buildroot yana adana yanayin kowane fakiti ta hanyar ƙirƙirar fayilolin .stamp a cikin fitarwa/gina/$un directoryname directory:

Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

Don haka, zaku iya sake gina tushen-fs da hotuna ba tare da sake gina fakiti ba:

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

Sauye-sauye masu amfani

buildroot yana da saitin masu canji don sauƙi mai sauƙi

  • $TOPDIR - directory directory
  • $BASEDIR - Fitar da directory
  • $HOST_DIR, $STAGING_DIR, $TARGET_DIR — fs mai masaukin baki, faifan fs, manufa fs gina kundin adireshi.
  • $BUILD_DIR - kundin adireshi tare da fakitin da ba a cika fakitin da aka gina ba

Nunawa

buildroot yana da fasalin hangen nesa.Zaku iya gina zanen dogaro, jadawali na lokaci, da jadawali na girman fakiti a tsarin ƙarshe. Sakamakon yana cikin nau'in fayilolin pdf (zaku iya zaɓar daga svn, png) a cikin kundin fitarwa/jadawali.

Misalai na umarnin gani:

  • make graph-depends gina dogara itace
  • make <pkg>-graph-depends gina bishiyar dogara don takamaiman kunshin
  • BR2_GRAPH_OUT=png make graph-build lokacin gina makirci tare da fitowar PNG
  • make graph-size girman fakitin makirci

Rubutun masu amfani

Akwai babban kundin adireshi a cikin kundin adireshin ginin kayan aiki tare da rubutun masu amfani. Misali, akwai rubutun da ke bincika daidai bayanin fakitin. Wannan na iya zama da amfani yayin ƙara fakitinku (zan yi wannan daga baya). Fayil ɗin utils/readme.txt ya ƙunshi bayanin waɗannan rubutun.

Bari mu gina hannun jari

Yana da mahimmanci a tuna cewa ana aiwatar da duk ayyukan a madadin mai amfani na yau da kullun, ba tushen ba.
Ana aiwatar da duk umarni a cikin tushen ginin. Kunshin ginin ginin ya riga ya haɗa da saitin daidaitawa don yawancin alluna gama gari da ƙima.

Bari mu kalli jerin abubuwan daidaitawa:

Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

Canja zuwa saitin qemu_x86_64_defconfig

make qemu_x86_64_defconfig

Kuma mun fara taro

make

Ginin ya kammala cikin nasara, duba sakamakon:

Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

Buildroot ya tattara hotuna waɗanda zaku iya gudu a cikin Qemu kuma ku tabbatar suna aiki.

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

Sakamakon shine tsarin da ke gudana a cikin qemu:

Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

Ƙirƙirar tsarin tsarin hukumar ku

Ƙara Fayilolin allo

Bari mu kalli jerin abubuwan daidaitawa:

Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

A cikin jerin muna ganin pc_x86_64_efi_defconfig. Za mu ƙirƙiri namu allon ta yin kwafinsa daga tsarin:

cp configs/pc_x86_64_bios_defconfig configs/my_x86_board_defconfig

Nan da nan bari mu ƙirƙiri kundin adireshi don adana rubutun mu, rootfs-overlay da sauran mahimman fayiloli:

mkdir board/my_x86_board

Canja zuwa wannan defconfig:

make my_x86_board_defconfig

Don haka, yanzu tsarin ginawa (an adana shi a cikin .config a cikin tushen ginin ginin ginin) ya yi daidai da na'ura mai niyya ta x86-64 (bios) na gado.

Bari mu kwafi tsarin Linux-kernel (mai amfani daga baya):

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

Saita sigogin gini ta hanyar KConfig

Bari mu fara saitin:

make menuconfig 

Tagan KConfig zai buɗe. Yana yiwuwa a daidaita tare da ƙirar hoto (yi nconfig, yin xconfig, yin gconfig):

Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

Mun shigar da sashin farko Zaɓuɓɓukan Target. Anan zaka iya zaɓar tsarin gine-ginen da aka yi niyya wanda za a yi ginin.

Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

Zaɓuɓɓukan Gina - akwai saitunan ginawa iri-iri anan. Kuna iya ƙididdige kundayen adireshi tare da lambobin tushe, adadin zaren ginawa, madubai don zazzage lambobin tushe da sauran saitunan. Bari mu bar saitunan a tsoho.

Kayan aiki - kayan aikin ginin da kansu an saita su anan. Kara karantawa game da shi.

Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

Nau'in kayan aiki - nau'in kayan aikin da aka yi amfani da shi. Wannan na iya zama sarkar kayan aiki da aka gina a cikin ginin tushe ko na waje (zaka iya saka kundin adireshi tare da wanda aka riga aka gina ko url don saukewa). Akwai ƙarin zaɓuɓɓuka don gine-gine daban-daban. Misali, don hannu zaka iya kawai zaɓi sigar Linaro na sarkar kayan aiki na waje.

C ɗakin karatu - zaɓi na ɗakin karatu na C. Ayyukan dukan tsarin ya dogara da wannan. Yawanci, ana amfani da glibc, wanda ke goyan bayan duk yuwuwar ayyuka. Amma yana iya yin girma da yawa don tsarin da aka haɗa, don haka ana zabar uglibc ko musl sau da yawa. Za mu zaɓi glibc (za a buƙaci wannan daga baya don amfani da systemd).

Maganganun Kernel da jerin Masu Katun Kernel - dole ne su dace da nau'in kwaya wanda zai kasance a cikin tsarin da aka haɗa. Don masu kai kernel, Hakanan zaka iya ƙididdige hanyar zuwa wurin ajiyar kwalta ko git.

GCC COMPILER VERSIONS - zaɓi sigar mai tarawa don amfani da ginin
Kunna goyon bayan C++ - zaɓi don ginawa tare da goyan bayan ɗakunan karatu na C++ a cikin tsarin. Wannan zai yi mana amfani a nan gaba.

Ƙarin zaɓuɓɓukan gcc - zaku iya saita ƙarin zaɓuɓɓukan mai tarawa. Ba mu bukata a yanzu.

Tsarin tsarin yana ba ku damar saita sigogin tsarin da aka ƙirƙira a gaba:

Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

Yawancin maki sun fito fili daga taken. Mu kula da wadannan abubuwa:
Hanyar zuwa teburin masu amfani - tebur tare da masu amfani don ƙirƙirar (https://buildroot.org/downloads/manual/manual.html#makeuser-syntax).

Misali fayil. Za a ƙirƙiri mai amfani da mai amfani tare da admin kalmar sirri, gid/uid ta atomatik, / bin/sh harsashi, mai amfani da tsoho, tushen memba na rukuni, mai amfani Foo

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

Tushen filesystem overlay kundayen adireshi - kundin adireshi da aka lullube a saman manufa-fs da aka taru. Yana ƙara sabbin fayiloli kuma yana maye gurbin waɗanda suke.

Rubutun al'ada don gudana kafin ƙirƙirar hotunan tsarin fayil - Rubutun da aka kashe nan da nan kafin nada tsarin fayil zuwa hotuna. Bari mu bar rubutun fanko a yanzu.

Mu je sashin kwaya

Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

An saita saitunan kernel anan. An saita kernel kanta ta hanyar yin linux-menuconfig.
Kuna iya saita nau'in kernel ta hanyoyi daban-daban: zaɓi daga waɗanda aka bayar, shigar da sigar da hannu, saka ma'ajiyar ajiya ko ƙwallon kwandon da aka shirya.

Tsarin kernel - hanyar zuwa saitin kwaya. Kuna iya zaɓar saitunan tsoho don zaɓaɓɓen gine-gine ko defocnfig daga Linux. Tushen Linux ya ƙunshi saitin defconfigs don tsarin manufa daban-daban. Kuna iya samun wanda kuke buƙata ta hanyar kallon majiyoyin kai tsaye a nan. Misali, ga allon baka na kashin beagle zaka iya zaɓi saitin.

Sashen fakitin Target yana ba ku damar zaɓar fakitin da za a shigar akan tsarin da aka gina. Bari mu bar shi ba canzawa a yanzu. Za mu ƙara fakitinmu zuwa wannan jerin daga baya.
Hotunan tsarin fayil - jerin hotunan tsarin fayil waɗanda za a tattara. Ƙara hoton iso

Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

Bootloaders - zaɓi na bootloaders don tattarawa. Bari mu zaɓi isolinix

Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

Yana daidaita tsarin

Systemd yana zama ɗaya daga cikin ginshiƙan Linux, tare da kernel da glibc. Saboda haka, na matsar da saitin sa zuwa wani abu daban.

An saita ta hanyar yin menuconfig, sannan fakitin Target → Kayan aikin tsarin → systemd. Anan zaku iya tantance waɗanne ayyuka na systemd za a girka kuma a fara lokacin da tsarin ya fara.

Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

Ajiye tsarin tsarin

Muna adana wannan saitin ta hanyar KConfig.

Sannan ajiye defconfig na mu:

make savedefconfig

Kanfigareshan Kernel na Linux

Ana kiran saitin kernel na Linux tare da umarni mai zuwa:

make linux-menuconfig

Bari mu ƙara goyon baya ga Virtualbox video katin

Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

Bari mu ƙara tallafin haɗin gwiwar Baƙi na Virtualbox

Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

Ajiye ku fita. Muhimmanci: za a adana sanyi a fitarwa/gina/linux-$ sigar/daidaita, amma ba a cikin jirgi/my_x86_board/linux.config

Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

Don haka, kuna buƙatar kwafin saitin da hannu zuwa wurin ajiya:

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

Bayan haka za mu yi cikakken sake haɗuwa da tsarin gaba ɗaya. buildroot baya sake gina abin da aka riga aka gina ba, dole ne ka saka da hannu don sake ginawa. Don kada a ɓata lokaci da jijiyoyi, yana da sauƙi don sake gina ƙaramin tsarin gaba ɗaya):

make clean;make

Bayan kammala ginin, ƙaddamar da VirtualBox (an gwada shi akan nau'ikan 5.2 da 6.0) ana yin booting daga CD. Sifofin tsarin:

Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

Gudu daga isowar da aka haɗa:

Buildroot - Sashe na 1. Gabaɗaya Bayani, haɗa tsarin ƙaramin tsari, daidaitawa ta menu

Jerin kayan da aka yi amfani da su

  1. Buildroot manual

source: www.habr.com

Add a comment