Nhanganyaya
Mune ino nhevedzano yezvinyorwa, ini ndinoda kutarisa iyo buildroot yekugovera kuvaka system uye kugovera ruzivo rwangu mukuigadzirisa. Pachave neruzivo runoshanda mukugadzira diki OS ine graphical interface uye kushoma kushanda.
Chekutanga pane zvese, haufanirwe kuvhiringa iyo kuvaka system uye kugovera. Buildroot inogona kuvaka sisitimu kubva kune seti yemapakeji inopihwa kwairi. Buildroot yakavakirwa pane makefiles uye nekudaro ine hukuru hwekugadzirisa hunyanzvi. Tsiva pasuru neimwe vhezheni, wedzera yako pasuru, shandura mitemo yekuvaka pasuru, gadzirisa iyo faira system mushure mekuisa ese mapakeji? buildroot inogona kuita zvese izvi.
MuRussia, buildroot inoshandiswa, asi mukuona kwangu kune ruzivo ruduku rwemutauro weRussia kune vanotanga.
Chinangwa chebasa ndechekuunganidza kit yekugovera ine live download, icewm interface uye browser. Iyo inonangwa chikuva ndeye virtualbox.
Sei uchigadzira yako yekugovera? Kazhinji kushanda kushoma kunodiwa nezvinhu zvishoma. Kunyanya kazhinji mune otomatiki iwe unofanirwa kugadzira firmware. Kugadzirisa kugovera-chinangwa-chakawanda nekuchenesa kunze zvisina basa mapakeji uye nekuishandura kuita firmware inonyanya kushanda pane kuvaka kugovera kutsva. Kushandisa Gentoo zvakare kune painogumira.
Iyo Buildroot system ine simba kwazvo, asi haina chainokuitira. Inogona chete kugonesa uye otomatiki maitiro egungano.
Alternative kuvaka masisitimu (yocto, yakavhurika kuvaka sisitimu uye nevamwe) haina kutariswa kana kuenzaniswa.
Ndokuiwanepi uye wotanga sei
Project webhusaiti -
Buildroot inoshanda defconfigs yechinangwa chebhodhi rekuvaka. Defconfig iyi faira yekumisikidza inochengeta chete sarudzo dzisina maitiro ekutanga. Ndiye anosarudza zvichaunganidzwa uye sei. Muchiitiko ichi, unogona kupatsanura magadzirirwo ebhokisi rakabatikana, linux-kernel, uglibc, u-boot uye barebox bootloaders, asi ese anosungirirwa kune chinangwa chebhodhi.
Mushure mekusunungura iyo yakadhindwa archive kana cloning kubva git, tinowana yakagadzirira-kushandisa-buildroot. Iwe unogona kuverenga zvakawanda nezve dhairekitori chimiro mugwaro rekushandisa; Ini ndichakuudza nezve akanyanya kukosha:
bhodhi - dhairekitori rine mafaera akananga kubhodhi rega rega. Izvi zvinogona kuve zvinyorwa zvekugadzira system mifananidzo (iso, sdcart, cpio nevamwe), dhairekitori repamusoro, kernel config, nezvimwe.
configs - iyo chaiyo defconfig yebhodhi. Defconfig haina kukwana bhodhi gadziriro. Inochengeta chete ma parameter akasiyana kubva kune default marongero
dl - dhairekitori ine yakadhindwa kodhi makodhi / mafaera ekusangana
kubuda/chinangwa - iyo yakaunganidzwa faira sisitimu yeinozobuda OS. Zvadaro, mifananidzo inogadzirwa kubva pairi yekurodha/kuisa
kubuda/kugamuchira - shandisa zvinoshandiswa pakusangana
kubuda/kuvaka - akaunganidzwa mapakeji
Iyo gungano inogadziriswa kuburikidza neKConfig. Iyo yakafanana sisitimu inoshandiswa kuvaka iyo Linux kernel. Rondedzero yemirairo inonyanya kushandiswa (ita mubuilroot dhairekitori):
- gadzira menyuconfig - fonera iyo kuvaka gadziriso. Iwe unogona zvakare kushandisa iyo graphical interface (ita nconfig, ita xconfig, ita gconfig)
- gadzira linux-menuconfig - fonera iyo kernel kumisikidza.
- chenesa - chenesa mhedzisiro yekuvaka (zvese zvakachengetwa mukubuda)
- kugadzira - kuvaka system. Izvi hazvisanganise maitiro atounganidzwa.
- ita defconfig_name - shandura iyo gadziriso kune chaiyo defconfig
- ita runyoro-defconfigs - ratidza runyorwa rwe defconfigs
- make source - ingo tora mafaera ekuisa, pasina kuvaka.
- ita rubatsiro - nyora zvinogoneka mirairo
Zvinyorwa zvakakosha uye mazano anobatsira
Buildroot haivakezve mapakeji akatovakwa! Nokudaro, mamiriro ezvinhu anogona kuitika apo kuunganazve kwakakwana kunodiwa.
Iwe unogona kuvaka patsva pasuru yakaparadzana nemirairo ita packagename-kuvakazve. Semuenzaniso, unogona kuvakazve iyo Linux kernel:
make linux-rebuild
Buildroot inochengetedza mamiriro echero package nekugadzira .stamp mafaera mune zvinobuda/kuvaka/$packagename dhairekitori:
Naizvozvo, iwe unogona kuvakazve midzi-fs uye mifananidzo pasina kuvakazve mapakeji:
rm output/build/host-gcc-final-*/.stamp_host_installed;rm -rf output/target;find output/ -name ".stamp_target_installed" |xargs rm -rf ; make
Inobatsira Variables
buildroot ine seti yezvakasiyana kuti zvigadziriswe zviri nyore
- $TOPDIR - buildroot directory
- $BASEDIR - OUTPUT directory
- $HOST_DIR, $STAGING_DIR, $TARGET_DIR - host fs, staging fs, target fs kuvaka madhairekitori.
- $BUILD_DIR - dhairekitori ine isina kurongedzerwa uye yakavakwa mapakeji
Kufungidzira
Buildroot ine chimiro chekuona. Unogona kuvaka dhayagiramu yekutsamira, girafu yenguva yekuvaka, uye girafu yemasaizi epasuru mune yekupedzisira system. Mhedzisiro yacho iri muchimiro chepdf mafaera (unogona kusarudza kubva svn, png) mune inobuda / girafu dhairekitori.
Mienzaniso yemirairo yekuona:
make graph-depends
kuvaka kutsamira mutimake <pkg>-graph-depends
gadzira muti wekutsamira kune chaiyo packageBR2_GRAPH_OUT=png make graph-build
kuronga kuvaka nguva nePNG kubudamake graph-size
saizi yepakiti yepakiti
Zvinyorwa zvinobatsira
Iko kune subdirectory mune iyo buildroot dhairekitori zvishandiso nemagwaro anobatsira. Semuenzaniso, pane script inotarisa kurongeka kwepakeji tsananguro. Izvi zvinogona kubatsira kana uchiwedzera ako mapakeji (ini ndichaita izvi gare gare). Iyo faira utils/readme.txt ine tsananguro yezvinyorwa izvi.
Ngativake kugovera kwemasheya
Zvakakosha kuyeuka kuti mabasa ese anoitwa pachinzvimbo chemushandisi wenguva dzose, kwete mudzi.
Yese mirairo inoitwa mubuildroot. Iyo buildroot package inotosanganisira seti yezvigadziriso zveakawanda akajairwa mabhodhi uye virtualization.
Ngatitarisei runyoro rwemagadzirirwo:
Chinja kune qemu_x86_64_defconfig config
make qemu_x86_64_defconfig
Uye tinotanga gungano
make
Kuvaka kunopera zvinobudirira, tarisa mhinduro:
Buildroot yakaunganidza mifananidzo yaunogona kumhanya muQemu uye kuona kuti inoshanda.
qemu-system-x86_64 -kernel output/images/bzImage -hda output/images/rootfs.ext2 -append "root=/dev/sda rw" -s -S
Mhedzisiro iyi system inoshanda muqemu:
Kugadzira yako bhodhi configuration
Kuwedzera Board Files
Ngatitarisei runyoro rwemagadzirirwo:
Muchinyorwa tinoona pc_x86_64_efi_defconfig. Isu tichagadzira yedu bhodhi nekuikopa kubva pakumisikidzwa:
cp configs/pc_x86_64_bios_defconfig configs/my_x86_board_defconfig
Ngatitangei nekukasika dhairekitori rekuchengetedza magwaro edu, rootfs-overlay uye mamwe mafaera anodiwa:
mkdir board/my_x86_board
Chinja kune iyi defconfig:
make my_x86_board_defconfig
Saka, ikozvino kuvaka config (yakachengetwa mu .config mumudzi webuildroot directory) inoenderana ne x86-64 legacy (bios) boot target machine.
Ngatitevedzere iyo linux-kernel kumisikidzwa (inobatsira gare gare):
cp board/pc/linux.config board/my_x86_board/
Kuseta kuvaka paramita kuburikidza neKConfig
Ngatitange kuseta:
make menuconfig
Hwindo reKConfig richavhurika. Zvinogoneka kugadzirisa neiyo graphical interface (ita nconfig, ita xconfig, ita gconfig):
Tinopinda chikamu chekutanga Target Options. Pano iwe unogona kusarudza chinangwa chekuvaka icho chivakwa chichaitwa.
Kuvaka sarudzo - kune akasiyana ekuvaka marongero pano. Iwe unogona kutsanangura madhairekitori ane masource codes, nhamba yekuvaka tambo, magirazi ekurodha masosi macode uye mamwe marongero. Ngatisiye zvigadziriso pazvimiro.
Toolchain - iwo maturusi ekuvaka pachawo akagadzirirwa pano. Verenga zvakawanda nezvake.
Toolchain mhando - rudzi rwechishandiso chinoshandiswa. Ichi chinogona kuve chishandiso chakavakirwa mubuildroot kana chekunze (unogona kutsanangura dhairekitori neyakatovakwa kana url yekurodha). Pane zvimwe zvingasarudzwa zvezvivakwa zvakasiyana. Semuenzaniso, kune ruoko iwe unogona kungosarudza iyo Linaro vhezheni yekunze toolchain.
C library - kusarudzwa kweraibhurari yeC. Kushanda kwehurongwa hwose kunoenderana neizvi. Kazhinji glibc inoshandiswa, iyo inotsigira zvese zvinogoneka kushanda. Asi inogona kunge yakakurisa kune yakamisikidzwa system, saka uglibc kana musl inowanzosarudzwa. Isu tichasarudza glibc (izvi zvichazodiwa gare gare kushandisa systemd).
Kernel Misoro uye Tsika Kernel Misoro yakatevedzana - inofanirwa kuenderana neshanduro yekernel ichave iri muhurongwa hwakaunganidzwa. Kune misoro yekernel, unogona zvakare kutsanangura nzira inoenda kune tarball kana git repository.
GCC COMPILER VERSIONS - sarudza iyo compiler vhezheni ichashandiswa pakuvaka
Gonesa C ++ rutsigiro - sarudza kuvaka nerutsigiro rweC ++ maraibhurari muhurongwa. Izvi zvichatibatsira mune ramangwana.
Yekuwedzera gcc sarudzo - iwe unogona kuseta yekuwedzera compiler sarudzo. Hatichida parizvino.
Kugadziriswa kweSistimu kunobvumidza iwe kuseta ramangwana paramita yeyakagadzirwa system:
Zvizhinji zvezvibodzwa zvakajeka kubva mumusoro. Ngatitarisei kune zvinotevera pfungwa:
Nzira kumatafura evashandisi - tafura ine vashandisi kuti igadzirwe (
Muenzaniso faira. Mushandisi wemushandisi achagadzirwa nepassword admin, otomatiki gid/uid, / bin/sh shell, default boka mushandisi, nhengo yeboka mudzi, comment Foo mushandisi.
[alexey@alexey-pc buildroot ]$ cat board/my_x86_board/users.txt
user -1 user -1 =admin /home/user /bin/sh root Foo user
Root filesystem overlay madhairekitori - dhairekitori rakafukidzwa pamusoro peakaungana chinangwa-fs. Inowedzera mafaera matsva uye inotsiva iripo.
Tsika magwaro ekuti umhanye usati wagadzira mafaera emifananidzo - Magwaro anoitwa pakarepo asati apeta iyo faira system mumifananidzo. Ngatisiye script isina chinhu izvozvi.
Handei kuchikamu cheKernel
Kernel marongero akaiswa pano. Iyo kernel pachayo inogadziriswa kuburikidza nekuita linux-menuconfig.
Iwe unogona kuseta iyo kernel vhezheni nenzira dzakasiyana: sarudza kubva kune izvo zvinopihwa, isa iyo vhezheni nemaoko, tsanangura repository kana tarball yakagadzirira.
Kernel kumisikidzwa - nzira kune iyo kernel config. Iwe unogona kusarudza iyo yekumisikidzwa kweiyo yakasarudzwa dhizaini kana defocnfig kubva kuLinux. Iyo Linux sosi ine seti ye defconfigs kune akasiyana anotangwa masisitimu. Unogona kuwana waunoda
Iyo Target mapakeji chikamu chinokubvumira kuti usarudze kuti ndeapi mapakeji achaiswa pane iyo system iri kuvakwa. Ngatizvisiye zvisina kuchinja izvozvi. Tichawedzera mapakeji edu kune iyi runyorwa gare gare.
Filesystem mifananidzo - runyoro rwefaira system mifananidzo inozounganidzwa. Wedzera mufananidzo we iso
Bootloaders - kusarudzwa kwema bootloaders kuunganidza. Ngatisarudzei isolinix
Kugadzirisa Systemd
Systemd iri kuita imwe yembiru dzeLinux, pamwe nekernel uye glibc. Naizvozvo, ndakatamisa marongero ayo kune chimwe chinhu chakasiyana.
Yakagadzirirwa kuburikidza nekugadzira menuconfig, ipapo Target mapakeji β System zvishandiso β systemd. Pano unogona kutsanangura kuti ndeapi masevhisi esystemd achaiswa uye otangwa kana sisitimu yatanga.
Kuchengetedza masisitimu ehurongwa
Isu tinochengetedza iyi config kuburikidza neKConfig.
Zvadaro chengetedza defconfig yedu:
make savedefconfig
Linux Kernel Configuration
Iyo Linux kernel kumisikidzwa inokumbirwa nemurairo unotevera:
make linux-menuconfig
Ngatiwedzerei rutsigiro rweVirtualbox vhidhiyo kadhi
Ngatiwedzerei Virtualbox Guest yekubatanidza rutsigiro
Sevha uye buda. ZVINOKOSHA: gadziriso ichachengetwa mukubuda/kuvaka/linux-$version/config, asi kwete mubhodhi/my_x86_board/linux.config
Naizvozvo, iwe unofanirwa kukopa nemaoko config kunzvimbo yekuchengetedza:
cp output/build/linux-4.19.25/.config board/my_x86_board/linux.config
Mushure mezvo tichaita reassembly yakakwana yehurongwa hwose. buildroot haivake zvakare izvo zvakatovakwa, iwe unofanirwa kutsanangura nemaoko mapakeji ekuvakazve. Kuti usatambise nguva uye tsinga, zviri nyore kuvakazve diki system zvachose):
make clean;make
Kana wapedza kuvaka, tanga VirtualBox (yakaedzwa pashanduro 5.2 uye 6.0) kutanga kubva kuCD.
Kumhanya kubva kune yakaunganidzwa iso:
Rondedzero yezvinhu zvakashandiswa
- Buidroot manual
Source: www.habr.com