Anns an earrainn seo bheir mi sĂšil air cuid de na roghainnean gnĂ thachaidh a bha a dhĂŹth orm. Chan e liosta iomlan a tha seo de na tha buildroot aâ tabhann, ach tha iad gu math obrachail agus chan fheum iad eadar-theachd ann am faidhlichean buildroot fhèin.
Aâ cleachdadh an uidheamachd EXTERNAL airson gnĂ thachadh
Choimhead sinn air eisimpleir shÏmplidh de bhith a 'cur ris an rèiteachadh agad fhèin le bhith a' cur defconfig a 'bhÚird agus na faidhlichean riatanach gu dÏreach ris an eòlaire Buildroot.
Ach chan eil an dòigh seo gu math goireasach, gu sònraichte nuair a bhios tu ag Ăšrachadh buildroot. Tha inneal ann airson an duilgheadas seo fhuasgladh craobh a-muigh. Is e an rud a thâ ann gun urrainn dhut bòrd, configs, pacaidean agus clĂ ran eile a stòradh ann an eòlaire air leth (mar eisimpleir, bidh mi aâ cleachdadh an eòlaire pasgain gus pasgain a chuir an sĂ s ann am pasganan, barrachd mion-fhiosrachaidh ann an earrann air leth) agus cuiridh buildroot fhèin iad ris an fheadhainn a tha ann an an eòlaire aige.
Thoir an aire: faodaidh tu grunn chraobhan a-muigh a chòmhdach aig an aon à m, tha eisimpleir anns an leabhar-là imhe buildroot
Cruthaichidh sinn eòlaire my_tree, suidhichte ri taobh an eòlaire buildroot agus gluais ar rèiteachadh an sin. Bu chòir gum biodh an structar faidhle a leanas aig an toradh:
[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 filesMar a chĂŹ thu, san fharsaingeachd bidh an structar ag ath-aithris structar buildroot.
eòlaire air a 'bhòrd anns a bheil faidhlichean a tha sònraichte do gach bòrd sa chÚis againn:
- bef_cr_fs_img.sh na sgriobt a thèid a chuir gu bàs às deidh dha an siostam faidhle targaid a thogail, ach mus tèid a phacadh gu Ïomhaighean. Cleachdaidh sinn e san à m ri teachd
- linux.config - rèiteachadh kernel
- rootfs_overlay - eòlaire ri ath-chòmhdach air mullach an t-siostam faidhle targaid
- users.txt - faidhle a' toirt cunntas air na cleachdaichean a thèid a chruthachadh
eòlaire cumaidhean tha defconfig de na bÚird againn. Chan eil againn ach aon.
pasgan - catalog leis na pacaidean againn. An toiseach, buildroot tha tuairisgeulan agus riaghailtean airson a bhith a 'togail Ă ireamh chuingealaichte de phasgan. Nas fhaide air adhart cuiridh sinn am manaidsear uinneig icewm agus am manaidsear logadh a-steach grafaigeach Slim an seo.
PĂ irtean - aâ leigeil leat na pĂŹosan agad a stòradh gu h-iomchaidh airson diofar phasganan. Tuilleadh fiosrachaidh ann an earrann air leth gu h-ĂŹosal.
A-nis feumaidh sinn na faidhlichean tuairisgeul a chuir ris airson ar craobh a-muigh. Tha 3 faidhlichean an urra ri seo: external.desc, Config.in, external.mk.
taobh a-muigh.desc tha an fhĂŹor thuairisgeul ann:
[alexey@alexey-pc my_tree]$ cat external.desc
name: my_tree
desc: My simple external-tree for articleIs e aâ chiad loidhne an tiotal. Anns an Ă m ri teachd buildroot cruthaich caochladair $(BR2_EXTERNAL_MY_TREE_PATH), a bu chòir a chleachdadh nuair a thathar aâ rèiteachadh aâ cho-chruinneachaidh. Mar eisimpleir, faodar an t-slighe gu faidhle cleachdaiche a shuidheachadh mar a leanas:
$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/users.txtTha an dĂ rna loidhne na thuairisgeul goirid, a ghabhas leughadh le daoine.
Config.in, taobh a-muigh.mk - faidhlichean airson cunntas a thoirt air pacaidean a bharrachd. Mura cuir thu na pacaidean agad fhèin ris, faodar na faidhlichean sin fhà gail falamh. Airson a-nis, is e sin a nÏ sinn.
A-nis tha aâ chraobh a-muigh againn deiseil, anns a bheil defconfig ar bòrd agus na faidhlichean a dhâ fheumas e. Rachamaid chun an eòlaire buildroot agus sònraich sinn gus craobh a-muigh a chleachdadh:
[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 menuconfigAnns a 'chiad Ă ithne bidh sinn a' cleachdadh an argamaid BR2_EXTERNAL=../my_tree/, aâ comharrachadh cleachdadh craobh a-muigh. Faodaidh tu grunn chraobhan taobh a-muigh a shònrachadh airson an cleachdadh aig an aon Ă m. Anns aâ chĂšis seo, cha leig thu leas ach seo a dhèanamh aon turas, Ă s deidh sin cruthaichear toradh faidhle/.br-external.mk sin aâ stòradh fiosrachadh mun chraoibh a-muigh a thathar aâ cleachdadh:
[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 articleCudromach! Bidh na slighean san fhaidhle seo iomlan!
Tha rud roghainnean taobh a-muigh air nochdadh sa chlĂ r:

Anns an fho-chlĂ r seo bidh na pacaidean againn bhon chraobh a-muigh againn. Tha an earrann seo falamh an-drĂ sta.
A-nis tha e nas cudromaiche dhuinn na slighean riatanach ath-sgrĂŹobhadh gus craobh a-muigh a chleachdadh.
Thoir an aire, anns na roghainnean Togbhail â Ăite gus sĂ bhaladh buildroot config earrann, bidh slighe iomlan ann chun an defconfig a chaidh a shĂ bhaladh. Tha e air a chruthachadh aig an Ă m a bhith a 'sònrachadh cleachdadh extgernal_tree.
Ceartaichidh sinn cuideachd na slighean ann an roinn rèiteachadh an t-siostaim. Airson clà r le luchd-cleachdaidh cruthaichte:
$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/users.txtAnns an roinn Kernel, atharraich an t-slighe gu rèiteachadh kernel:
$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/linux.configA-nis bidh na faidhlichean againn bhon chraobh a-muigh againn air an cleachdadh aig à m co-chruinneachadh. Nuair a ghluaiseas tu gu eòlaire eile no nuair a bhios tu ag Úrachadh an buildroot, bidh co-dhiÚ duilgheadasan againn.
Aâ cur freumh fs ath-chòmhdach ris:
Leigidh an uidheamachd seo leat faidhlichean a chuir ris / a chuir nan Ă ite gu furasta san t-siostam faidhle targaid.
Ma tha am faidhle ann am freumh fs ath-chòmhdach, ach chan ann san targaid, thèid a chur ris
Ma tha am faidhle ann am freumh fs ath-chòmhdach agus san targaid, thèid a chuir na à ite.
An toiseach, suidhich sinn an t-slighe gu freumh fs overlay dir. Tha seo air a dhèanamh ann an rèiteachadh an t-siostaim â Root siostam faidhlichean ath-chòmhdach roinn eòlairean:
$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/rootfs_overlay/A-nis cruthaichidh sinn dĂ fhaidhle.
[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 overlayThèid aâ chiad fhaidhle (my_tree/board/my_x86_board/rootfs_overlay/etc/hosts) an Ă ite am faidhle /etc/hosts air an t-siostam chrĂŹochnaichte. Thèid an dĂ rna faidhle (cat my_tree/board/my_x86_board/rootfs_overlay/new_file.txt) a chur ris.
Bidh sinn aâ cruinneachadh agus aâ sgrĂšdadh:

Cur an gnĂŹomh sgriobtaichean gnĂ thachaidh aig diofar ĂŹrean de cho-chruinneachadh siostam
Gu tric feumaidh tu beagan obrach a dhèanamh taobh a-staigh an t-siostam faidhle targaid mus tèid a phacaigeadh ann an Ïomhaighean.
Faodar seo a dhèanamh ann an roinn rèiteachadh an t-siostaim:

Thèid aâ chiad dĂ sgriobt a chur gu bĂ s Ă s deidh an siostam faidhle targaid a thogail, ach mus tèid a phacaigeadh ann an ĂŹomhaighean. Is e an eadar-dhealachadh gu bheil an sgriobt fakeroot air a chuir gu bĂ s ann an co-theacsa fakeroot, a tha coltach ri obair mar an neach-cleachdaidh freumh.
Thèid an sgriobt mu dheireadh a chuir gu bàs às deidh na h-Ïomhaighean siostam a chruthachadh. Faodaidh tu gnÏomhan a bharrachd a dhèanamh ann, mar eisimpleir, dèan lethbhreac de na faidhlichean riatanach gu frithealaiche NFS no cruthaich Ïomhaigh de firmware an uidheim agad.
Mar eisimpleir, cruthaichidh mi sgriobt a sgrĂŹobhas an dreach agus a thogas ceann-latha gu /etc/.
An toiseach seallaidh mi an t-slighe chun an fhaidhle seo anns aâ chraobh a-muigh agam:

Agus a-nis an sgriobt fhèin:
[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-releaseĂs deidh co-chruinneachadh, chĂŹ thu am faidhle seo air an t-siostam.
Ann an cleachdadh, faodaidh an sgriobt fàs mòr. Mar sin, anns a 'phròiseact fÏor ghabh mi slighe nas adhartaiche:
- Chruthaich mi eòlaire (my_tree/board_my_x86_board/inside_fakeroot_scripts) anns a bheil sgriobtaichean rin cur gu bà s, le à ireamhan sreathach. Mar eisimpleir, 0001-add-my_small_linux-version.sh, 0002-clear-apache-root-dir.sh
- SgrĂŹobh mi sgriobt (my_tree/board_my_x86_board/run_inside_fakeroot.sh) a tha aâ dol tron ââeòlaire seo agus aâ cur an gnĂŹomh na sgriobtaichean a tha na bhroinn ann an òrdugh
- Shònraich an sgriobt seo ann an roghainnean aâ bhĂšird ann an rèiteachadh an t-Siostaim -> Sgriobtaichean gnĂ thaichte airson ruith taobh a-staigh na h-Ă rainneachd fakeroot ($(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/run_inside_fakeroot.sh) earrann
Source: www.habr.com
