Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Selelekela

Letotong lena la lingoloa, ke batla ho sheba sistimi ea kaho ea kabo ea li-buildroot le ho arolelana boiphihlelo ba ka ba ho e etsa. Ho tla ba le boiphihlelo bo sebetsang ba ho theha OS e nyane e nang le sebopeho sa graphical le ts'ebetso e fokolang.

Pele ho tsohle, ha ua lokela ho ferekanya tsamaiso ea kaho le kabo. Buildroot e ka haha ​​​​sistimi ho tsoa ho sete ea liphutheloana tse fanoang ho eona. Buildroot e hahiloe holim'a li-makefiles ka hona e na le bokhoni bo boholo ba ho e etsa. Kenya sebaka sa sephutheloana ka mofuta o mong, eketsa sephutheloana sa hau, fetola melao ea ho haha ​​​​sephutheloana, fetola tsamaiso ea faele ka mor'a ho kenya liphutheloana tsohle? buildroot e ka etsa tsena tsohle.

Russia, buildroot e sebelisoa, empa ka maikutlo a ka ho na le boitsebiso bo fokolang ba puo ea Serussia bakeng sa ba qalang.

Sepheo sa mosebetsi ke ho bokella lisebelisoa tsa kabo ka ho jarolla ka ho hlaka, sebopeho sa icewm le sebatli. Sethala sa sepheo ke virtualbox.

Ke hobane'ng ha u iketsetsa kabo ea hau? Hangata ho hlokahala ts'ebetso e fokolang ka lisebelisoa tse fokolang. Hangata le ho feta ka boiketsetso o hloka ho theha firmware. Ho ikamahanya le phepelo ea sepheo se akaretsang ka ho hloekisa liphutheloana tse sa hlokahaleng le ho e fetola firmware ho thata ho feta ho aha kabo e ncha. Ho sebelisa Gentoo le hona ho na le mefokolo ea eona.

Sistimi ea Buildroot e matla haholo, empa e ke ke ea u etsetsa letho. E ka nolofalletsa le ho iketsetsa tšebetso ea kopano feela.

Mekhoa e meng ea ho aha (yocto, sistimi e bulehileng ea kaho le tse ling) ha e nahanoe kapa e bapisoa.

Moo u ka e fumanang le mokhoa oa ho qala

Webosaete ea morero - buildroot.org. Mona o ka khoasolla mofuta oa hajoale mme o bale buka ea litaelo. Ha u le moo u ka ikopanya le sechaba, ho na le tracker ea bug, manane a mangolo le mocha oa irc.

Buildroot e sebetsa li-defconfigs bakeng sa boto e reretsoeng ea moaho. Defconfig ke faele ea tlhophiso e bolokang likhetho feela tse se nang boleng ba kamehla. Ke eena ea etsang qeto ea hore na ho tla bokelloa eng le hore na joang. Tabeng ena, o ka hlophisa ka thoko li-configs tsa busybox, linux-kernel, uglibc, u-boot le barebox bootloaders, empa kaofela ha tsona li tla tlamelloa ho boto e shebiloeng.
Kamora ho notlolla li-archive tse jarollotsoeng kapa ho li kopanya ho tsoa ho git, re fumana moaho o itokiselitseng ho o sebelisa. U ka bala haholoanyane ka sebopeho sa bukana ea tataiso; Ke tla u joetsa ka tse bohlokoahali:

boto - bukana e nang le lifaele tse ikhethileng boto ka 'ngoe. Tsena e ka ba lingoloa tsa ho etsa litšoantšo tsa sistimi (iso, sdcart, cpio le tse ling), bukana e holimo, kernel config, jj.
configs - defconfig ea sebele ea boto. Defconfig ke tlhophiso ea boto e sa phethahalang. E boloka li-parameter feela tse fapaneng le litlhophiso tsa kamehla
dl — bukana e nang le likhoutu tsa mohloli o jarollotsoeng / lifaele bakeng sa ho kopanya
tlhahiso/ sepheo - Sistimi e kopaneng ea faele ea OS e hlahisitsoeng. Ka mor'a moo, litšoantšo li bōptjoa ho eona bakeng sa ho khoasolla / ho kenya
tlhahiso/moamohedi - lisebelisoa tsa ho kopanya
tlhahiso/kaha - liphutheloana tse kopaneng

Kopano e hlophisitsoe ka KConfig. Sistimi e tšoanang e sebelisoa ho aha kernel ea Linux. Lethathamo la litaelo tse sebelisoang haholo (phethisa bukeng ea buildroot):

  • etsa menuconfig - letsetsa tlhophiso ea moaho. U ka sebelisa sebopeho sa graphical (etsa nconfig, etsa xconfig, etsa gconfig)
  • etsa linux-menuconfig - letsetsa tlhophiso ea kernel.
  • hloekisa - hloekisa liphetho tsa moaho (tsohle tse bolokiloeng ka tlhahiso)
  • etsa - haha ​​tsamaiso. Sena ha se boele se kopane le lits'ebetso tse seng li kopane.
  • etsa defconfig_name - fetola tlhophiso ho defconfig e itseng
  • etsa lethathamo-defconfigs - bonts'a lethathamo la li-defconfigs
  • etsa mohloli - download feela lifaele tsa ho kenya, ntle le ho haha.
  • etsa thuso - etsa lethathamo la litaelo tse ka khonehang

Lintlha tsa bohlokoa le likeletso tse thusang

Buildroot ha e tsosolose liphutheloana tse seng li hahiloe! Ka hona, boemo bo ka 'na ba hlaha moo ho hlokahalang ho kopanya hape ka ho feletseng.

U ka tsosolosa sephutheloana se arohaneng ka taelo etsa packagename-rebuild. Ka mohlala, o ka tsosolosa kernel ea Linux:

make linux-rebuild

Buildroot e boloka boemo ba sephutheloana leha e le sefe ka ho etsa lifaele tsa .stamp bukeng ea tlhahiso ea lihlahisoa / kaho/$packagename:

Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Ka hona, o ka aha li-root-fs le litšoantšo ntle le ho aha liphutheloana hape:

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

Liphetoho tse Molemo

buildroot e na le sete ea mefuta-futa bakeng sa tlhophiso e bonolo

  • $TOPDIR - buka ea li-buildroot
  • $BASEDIR - OUTPUT directory
  • $HOST_DIR, $STAGING_DIR, $TARGET_DIR - li-fs tse amohelang, staging fs, target fs build directory.
  • $BUILD_DIR - bukana e nang le liphutheloana tse sa buloang le tse hahiloeng

Ponahalo

Buildroot e na le sebopeho sa pono. U ka etsa setšoantšo sa ho itšetleha, kerafo ea nako ea ho haha, le kerafo ea boholo ba sephutheloana tsamaisong ea ho qetela. Liphetho li ka sebopeho sa lifaele tsa pdf (o ka khetha ho svn, png) bukeng ea tlhahiso / graph.

Mehlala ea litaelo tsa pono:

  • make graph-depends haha sefate sa ho itshetleha
  • make <pkg>-graph-depends haha sefate sa ho itshetleha bakeng sa sephutheloana se itseng
  • BR2_GRAPH_OUT=png make graph-build nako ea ho aha morero ka tlhahiso ea PNG
  • make graph-size boholo ba pakete

Mengolo e sebetsang

Ho na le subdirectory bukeng ea buildroot lisebelisoa ka mengolo e sebetsang. Ka mohlala, ho na le script e hlahlobang ho nepahala ha litlhaloso tsa sephutheloana. Sena se ka ba molemo ha u eketsa liphutheloana tsa hau (ke tla etsa sena hamorao). Faele utils/readme.txt e na le tlhaloso ea mangolo ana.

Ha re theheng kabo ea setoko

Ho bohlokoa ho hopola hore lits'ebetso tsohle li etsoa molemong oa mosebelisi oa kamehla, eseng motso.
Litaelo tsohle li etsoa ka buildroot. Sephutheloana sa buildroot se se se ntse se kenyelletsa sete sa litlhophiso bakeng sa liboto tse ngata tse tloaelehileng le virtualization.

Ha re shebeng lethathamo la litlhophiso:

Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Fetolela ho qemu_x86_64_defconfig config

make qemu_x86_64_defconfig

Mme re qala kopano

make

Kaho e phetheloa ka katleho, sheba liphetho:

Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Buildroot e hlophisitse litšoantšo tseo u ka li tsamaisang Qemu le ho netefatsa hore lia sebetsa.

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

Sephetho ke sistimi e sebetsang ka qemu:

Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Ho iketsetsa tlhophiso ea boto ea hau

Ho eketsa Lifaele tsa Boto

Ha re shebeng lethathamo la litlhophiso:

Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Lethathamong re bona pc_x86_64_efi_defconfig. Re tla iketsetsa boto ea rona ka ho e kopitsa ho tsoa ho tlhophiso:

cp configs/pc_x86_64_bios_defconfig configs/my_x86_board_defconfig

Ha re theheng hang-hang buka ea boto ho boloka mangolo a rona, li-rootfs-overlay le lifaele tse ling tse hlokahalang:

mkdir board/my_x86_board

Fetolela ho defconfig ena:

make my_x86_board_defconfig

Ka hona, hona joale mohaho oa mohaho (o bolokiloeng ho .config motso oa buka ea li-buildroot) o lumellana le x86-64 lefa (bios) mochini oa sepheo sa boot.

Ha re kopise tlhophiso ea linux-kernel (e tla thusa hamorao):

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

Ho beha liparamente tsa moaho ka KConfig

Ha re qale ho seta:

make menuconfig 

Fesetere ea KConfig e tla buleha. Hoa khoneha ho hlophisa ka sebopeho sa graphical (etsa nconfig, etsa xconfig, etsa gconfig):

Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Re kenya karolo ea pele Likhetho tsa Sepheo. Mona o ka khetha meralo e reriloeng eo moaho o tla etsoa ho eona.

Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Haha likhetho - ho na le litlhophiso tse fapaneng tsa ho aha mona. O ka hlakisa li-directory tse nang le likhoutu tsa mohloli, palo ea likhoele tsa kaho, liipone bakeng sa ho jarolla likhoutu tsa mohloli le litlhophiso tse ling. Ha re tloheleng li-setting ka ho sa feleng.

Toolchain - lisebelisoa tsa kaho ka botsona li hlophisitsoe mona. Bala ho eketsehileng ka eena.

Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Mofuta oa Toolchain - mofuta oa lisebelisoa tse sebelisoang. Ena e ka ba sesebelisoa se hahiloeng ka har'a buildroot kapa sa kantle (o ka hlakisa bukana e nang le e seng e hahiloe kapa url bakeng sa ho e jarolla). Ho na le likhetho tse eketsehileng bakeng sa meaho e fapaneng. Ka mohlala, bakeng sa letsoho u ka khetha feela phetolelo ea Linaro ea toolchain e ka ntle.

C laebrari - khetho ea laebrari ea C. Ts'ebetso ea tsamaiso eohle e itšetlehile ka sena. Ka tloaelo, glibc e sebelisoa, e ts'ehetsang ts'ebetso eohle e ka khonehang. Empa e kanna ea ba kholo haholo bakeng sa sistimi e kentsoeng, kahoo hangata ho khethoa uglibc kapa musl. Re tla khetha glibc (sena se tla hlokoa hamorao ho sebelisa systemd).

Lihlooho tsa Kernel le Letoto la Lihlooho tsa Kernel tse Tloaelehileng - li tlameha ho ts'oana le mofuta oa kernel e tla ba tsamaisong e kopaneng. Bakeng sa lihlooho tsa kernel, u ka boela ua hlalosa tsela e eang ho tarball kapa git repository.

GCC COMPILER VERSIONS - khetha mofuta oa compiler o tla sebelisoa ho aha
Numella tšehetso ea C ++ - khetha ho aha ka tšehetso bakeng sa lilaebrari tsa C++ tsamaisong. Sena se tla ba molemo ho rona nakong e tlang.

Likhetho tse ling tsa gcc - o ka seta likhetho tse ling tsa compiler. Ha re e hloke hajoale.

Tlhophiso ea Sisteme e u lumella ho beha liparamente tsa nakong e tlang tsa sistimi e bōpiloeng:

Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Lintlha tse ngata li hlakile ho tsoa sehloohong. Ha re ele hloko lintlha tse latelang:
Tsela ea litafole tsa basebelisi - tafole e nang le basebelisi e lokelang ho etsoa (https://buildroot.org/downloads/manual/manual.html#makeuser-syntax).

Faele ea mohlala. Mosebelisi o tla etsoa ka password ea admin, ka bo eona gid/uid, /bin/sh shell, mosebelisi oa sehlopha sa kamehla, motso oa setho sa sehlopha, fana ka maikutlo mosebelisi oa Foo

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

Li-directory tse koahelang tsamaiso ea metso - directory e koahetsoeng ka holim'a li- target-fs tse kopaneng. E eketsa lifaele tse ncha ebe e nkela tse seng li ntse li le teng.

Lingoliloeng tse tloahelehileng ho sebetsa pele u theha litšoantšo tsa sistimi - Lingoliloeng li etsoa hang hang pele u mena sistimi ho etsa litšoantšo. Ha re tloheleng mongolo o se na letho hajoale.

Ha re ee karolong ea Kernel

Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Litlhophiso tsa Kernel li behiloe mona. Kernel ka boeona e hlophisitsoe ka ho etsa linux-menuconfig.
O ka seta mofuta oa kernel ka mekhoa e fapaneng: khetha ho tse fanoeng, kenya mofuta ka letsoho, bolela sebaka sa polokelo kapa tarball e lokiselitsoeng.

Phetoho ea kernel - tsela ea ho ea ho kernel config. U ka khetha tlhophiso ea kamehla bakeng sa meralo e khethiloeng kapa defocnfig ho tsoa ho Linux. Mohloli oa Linux o na le sehlopha sa li-defconfigs bakeng sa litsamaiso tse fapaneng tsa sepheo. U ka fumana eo u e hlokang ka ho sheba ka kotloloho mehloling mona. Ka mohlala, bakeng sa lesapo le letšo la beagle u ka khona khetha config.

Karolo ea liphutheloana tsa Target e u lumella ho khetha hore na ke liphutheloana life tse tla kenngoa tsamaisong e ntseng e hahuoa. Ha re e tloheleng e sa fetoha hajoale. Re tla kenya liphutheloana tsa rona lethathamong lena hamorao.
Litšoantšo tsa Filesystem - lethathamo la litšoantšo tsa tsamaiso ea faele tse tla bokelloa. Kenya setšoantšo sa iso

Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Bootloader - khetho ea li-bootloader tse lokelang ho bokelloa. Ha re khethe isolinix

Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Ho lokisa Systemd

Systemd e fetoha e 'ngoe ea litšiea tsa Linux, hammoho le kernel le glibc. Ka hona, ke fetiselitse boemo ba eona ho ntho e fapaneng.

E hlophisitsoe ka ho etsa menuconfig, ebe liphutheloana tsa Target → Lisebelisoa tsa sistimi → systemd. Mona o ka hlakisa hore na ke lits'ebeletso life tsa systemd tse tla kenngoa le ho qala ha sistimi e qala.

Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Ho boloka tlhophiso ea sistimi

Re boloka tlhophiso ena ka KConfig.

Ebe u boloka defconfig ea rona:

make savedefconfig

Phetoho ea Linux Kernel

Tokiso ea kernel ea Linux e kopuoa ka taelo e latelang:

make linux-menuconfig

Ha re eketse tšehetso bakeng sa karete ea video ea Virtualbox

Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Ha re kenyeng tšehetso ea kopanyo ea Virtualbox Guest

Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Boloka 'me u tsoe. BOHLOKOA: tlhophiso e tla bolokoa ho tlhahiso/build/linux-$version/config, empa eseng ka board/my_x86_board/linux.config

Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Ka hona, o hloka ho kopitsa config ka letsoho sebakeng sa polokelo:

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

Ka mor'a moo re tla etsa ressembly e feletseng ea tsamaiso eohle. buildroot ha e tsosolose se seng se hahiloe, o tlameha ho bolela ka letsoho liphutheloana tsa ho aha bocha. E le hore u se ke ua senya nako le methapo, ho bonolo ho tsosolosa tsamaiso e nyenyane ka ho feletseng):

make clean;make

Ha o qeta ho aha, qala VirtualBox (e lekiloeng ho mefuta ea 5.2 le 6.0) e qala ho tsoa ho CD.

Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Ho matha ho tloha ho iso e kopaneng:

Buildroot - karolo ea 1. Boitsebiso bo akaretsang, ho bokella tsamaiso e fokolang, ho hlophisoa ka menu

Lethathamo la lisebelisoa tse sebelisitsoeng

  1. Buka ea Buidroot

Source: www.habr.com

Eketsa ka tlhaloso