Muchikamu chino ndinotarisa dzimwe sarudzo dzekugadzirisa dzandaida. Iyi haisi rondedzero yakazara yezvinopihwa buildroot, asi inoshanda chaizvo uye haidi kupindira mumafaira ebuildroot pachayo.
Kushandisa iyo EXTERNAL michina yekugadzirisa
Takatarisa muenzaniso wakapfava wekuwedzera yako yekumisikidza nekuwedzera defconfig yebhodhi uye mafaera anodiwa zvakananga kuBuildroot dhairekitori.
Asi iyi nzira haina kunyatso batsira, kunyanya kana uchivandudza buildroot. Pane nzira yekugadzirisa dambudziko iri muti wekunze. Chakakosha ndechekuti iwe unogona kuchengeta bhodhi, configs, mapakeji uye mamwe madhairekitori mune yakaparadzana dhairekitori (semuenzaniso, ini ndinoshandisa zvigamba dhairekitori kuisa zvigamba kumapakeji, zvimwe zvakawanda muchikamu chakasiyana) uye buildroot pachayo ichawedzera kune avo vari mukati. dhairekitori rayo.
Ongorora: unogona kufukidza miti yakati wandei yekunze kamwechete, pane muenzaniso mune buildroot manual
Ngatigadzire dhairekitori my_tree, iri padivi peiyo buildroot dhairekitori uye titumire kumisikidzwa yedu ipapo. Iyo inobuda inofanira kunge iri inotevera faira chimiro:
[alexey@alexey-pc my_tree]$ tree
.
βββ board
β βββ my_x86_board
β βββ bef_cr_fs_img.sh
β βββ linux.config
β βββ rootfs_overlay
β βββ users.txt
βββ Config.in
βββ configs
β βββ my_x86_board_defconfig
βββ external.desc
βββ external.mk
βββ package
βββ patches
6 directories, 7 filesSezvauri kuona, kazhinji chimiro chinodzokorora chimiro chebuildroot.
dhairetori bhodhi ine mafaera akananga kune yega bhodhi mune yedu kesi:
- bef_cr_fs_img.sh igwaro rinozoitwa mushure mekuvaka iyo yakanangwa faira system, asi usati wairongedza mumifananidzo. Tichaishandisa mune ramangwana
- linux.config - kernel kumisikidza
- rootfs_overlay - dhairekitori kuti rifukidze pamusoro pechinangwa chefaira system
- vashandisi.txt - faira rinotsanangura vashandisi vachagadzirwa
dhairetori configs ine defconfig yemabhodhi edu. Tine mumwe chete.
nhuri - catalog nemapakeji edu. Pakutanga, buildroot ine tsananguro nemitemo yekuvaka nhamba shoma yemapakeji. Gare gare isu tichawedzera icewm hwindo maneja uye Slim graphical login maneja pano.
Patches - inokutendera kuti uchengetedze zvigamba zvako pamapakeji akasiyana. Mamwe mashoko muchikamu chakasiyana pazasi.
Iye zvino tinoda kuwedzera mafaera etsanangudzo kune yedu yekunze-muti. Pane mafaira matatu ane chekuita neizvi: external.desc, Config.in, external.mk.
external.desc ine tsananguro chaiyo:
[alexey@alexey-pc my_tree]$ cat external.desc
name: my_tree
desc: My simple external-tree for articleMutsetse wekutanga ndiwo musoro. Mune ramangwana buildroot gadzira shanduko $(BR2_EXTERNAL_MY_TREE_PATH), iyo inofanirwa kushandiswa pakugadzirisa gungano. Semuenzaniso, nzira inoenda kune faira remushandisi inogona kuiswa seizvi:
$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/users.txtMutsara wechipiri ipfupi, inoverengwa nevanhu.
Config.in, external.mk - mafaira ekutsanangura mapakeji akawedzerwa. Kana iwe ukasawedzera ako mapakeji, saka mafaera aya anogona kusiiwa asina chinhu. Parizvino, ndizvo zvatichaita.
Iye zvino isu tine yedu yekunze-muti wakagadzirira, ine defconfig yebhodhi redu uye mafaera ainoda. Ngatiende kune iyo buildroot dhairekitori uye tsanangura kushandisa ekunze-muti:
[alexey@alexey-pc buildroot]$ make BR2_EXTERNAL=../my_tree/ my_x86_board_defconfig
#
# configuration written to /home/alexey/dev/article/ramdisk/buildroot/.config
#
[alexey@alexey-pc buildroot]$ make menuconfigMumurairo wekutanga tinoshandisa nharo BR2_EXTERNAL=../my_tree/, zvichiratidza kushandiswa kwemuti wekunze Iwe unogona kutsanangura akati wandei ekunze-miti kuti ishandiswe panguva imwe chete.Muchiitiko ichi, iwe unongoda kuita izvi kamwe chete, mushure meiyo faira kubuda/.br-external.mk inogadzirwa iyo inochengetedza ruzivo rwekunze-muti wakashandiswa:
[alexey@alexey-pc buildroot]$ cat output/.br-external.mk
#
# Automatically generated file; DO NOT EDIT.
#
BR2_EXTERNAL ?= /home/alexey/dev/article/ramdisk/my_small_linux/my_tree
BR2_EXTERNAL_NAMES =
BR2_EXTERNAL_DIRS =
BR2_EXTERNAL_MKS =
BR2_EXTERNAL_NAMES += my_tree
BR2_EXTERNAL_DIRS += /home/alexey/dev/article/ramdisk/my_small_linux/my_tree
BR2_EXTERNAL_MKS += /home/alexey/dev/article/ramdisk/my_small_linux/my_tree/external.mk
export BR2_EXTERNAL_my_tree_PATH = /home/alexey/dev/article/ramdisk/my_small_linux/my_tree
export BR2_EXTERNAL_my_tree_DESC = My simple external-tree for articleZvakakosha! Nzira dziri mufaira iri dzichava dzakakwana!
Chinhu cheKunze chesarudzo chabuda mumenyu:

Iyi submenu ichava nemapakeji edu kubva kune yedu yekunze-muti. Chikamu ichi hachina chinhu.
Iye zvino zvakakosha kuti isu tinyore zvakare nzira dzinodiwa dzekushandisa kunze-muti.
Ndokumbira utarise kuti muVaka sarudzo β Nzvimbo yekuchengetedza buildroot config chikamu, pachave neyakakwana nzira kune yakachengetedzwa defconfig. Inoumbwa panguva yekutsanangura kushandiswa kweextgernal_tree.
Tichagadzirisawo nzira dziri muSitimu yekumisikidza chikamu. Kune tafura ine vashandisi vakagadzirwa:
$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/users.txtMuchikamu cheKernel, shandura nzira yekumisikidza kernel:
$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/linux.configIye zvino mafaira edu kubva kunze-muti wedu achashandiswa panguva yegungano. Paunenge uchienda kune rimwe dhairekitori kana kugadzirisa iyo buildroot, isu tichava neashoma ematambudziko.
Kuwedzera mudzi fs overlay:
Iyi meshini inobvumidza iwe kuwedzera nyore / kutsiva mafaera mune yakananga faira system.
Kana iyo faira iri mumudzi fs overlay, asi isiri muchinangwa, inozowedzerwa
Kana iyo faira iri mumudzi fs overlay uye mune chinangwa, inozotsiviwa.
Kutanga, ngatiise nzira yekudzika fs overlay dir. Izvi zvinoitwa muSystem kumisikidza β Root filesystem overlay madhairekitori chikamu:
$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/rootfs_overlay/Iye zvino ngatigadzire mafaera maviri.
[alexey@alexey-pc my_small_linux]$ cat my_tree/board/my_x86_board/rootfs_overlay/etc/hosts
127.0.0.1 localhost
127.0.1.1 my_small_linux
8.8.8.8 google-public-dns-a.google.com.
[alexey@alexey-pc my_small_linux]$ cat my_tree/board/my_x86_board/rootfs_overlay/new_file.txt
This is new file from overlayIyo yekutanga faira (my_tree/board/my_x86_board/rootfs_overlay/etc/hosts) ichatsiva iyo /etc/hosts faira pane yapera system. Yechipiri faira (katsi my_tree/board/my_x86_board/rootfs_overlay/new_file.txt) ichawedzerwa.
Tinounganidza uye kutarisa:

Kuitwa kwezvinyorwa zvekugadzirisa pamatanho akasiyana emusangano wesystem
Kazhinji iwe unofanirwa kuita rimwe basa mukati mechinangwa faira system isati yaiswa mumifananidzo.
Izvi zvinogona kuitwa muChikamu chekugadzirisa chikamu:

Zvinyorwa zviviri zvekutanga zvinoitwa mushure mekunge chinangwa chefaira chavakwa, asi chisati chaiswa mumifananidzo. Musiyano ndewekuti iyo fakeroot script inoitwa mumamiriro eiyo fakeroot, iyo inoteedzera basa semudzi mushandisi.
Chinyorwa chekupedzisira chinoitwa mushure mekunge mifananidzo yehurongwa yagadzirwa. Iwe unogona kuita zvimwe zviito mairi, semuenzaniso, kukopa mafaera anodiwa kune sevha yeNFS kana kugadzira mufananidzo weiyo kifaa firmware.
Semuenzaniso, ini ndichagadzira script inonyora vhezheni uye kuvaka zuva ku /etc/.
Kutanga ini ndicharatidza nzira yeiyi faira mune yangu yekunze-muti:

Uye zvino script pachayo:
[alexey@alexey-pc buildroot]$ cat ../my_tree/board/my_x86_board/bef_cr_fs_img.sh
#!/bin/sh
echo "my small linux 1.0 pre alpha" > output/target/etc/mysmalllinux-release
date >> output/target/etc/mysmalllinux-releaseMushure megungano, iwe unogona kuona iyi faira pane system.
Mukuita, script inogona kuva yakakura. Naizvozvo, mupurojekiti chaiyo ndakatora nzira yepamusoro:
- Ini ndakagadzira dhairekitori (my_tree/board_my_x86_board/inside_fakeroot_scripts) umo mune zvinyorwa zvinofanirwa kuurayiwa, zvine nhamba dzesiriri. Semuenzaniso, 0001-add-my_small_linux-version.sh, 0002-clear-apache-root-dir.sh
- Ndakanyora script (my_tree/board_my_x86_board/run_inside_fakeroot.sh) iyo inofamba neiri dhairekitori uye inoteedzera zvinyorwa zvirimo.
- Yakatsanangudza chinyorwa ichi mumaseting ebhodhi muSistimu kumisikidzwa -> Tsika zvinyorwa kuti zvifambe mukati meiyo fakeroot nharaunda ($(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/run_inside_fakeroot.sh) chikamu
Source: www.habr.com
