I lenei vaega ou te vaʻavaʻai i nisi o filifiliga faʻapitoa na ou manaʻomia. E le o se lisi atoa lea o mea e ofoina mai e buildroot, ae e matua aoga lava ma e le manaʻomia ai se faʻalavelave i faila o buildroot lava ia.
Fa'aaogāina ole fa'ainisinia FAFO mo le fa'avasegaina
Ae o lenei metotia e le faigofie tele, aemaise lava pe a faʻafouina buildroot. O loʻo i ai se masini e foia ai lenei faʻafitauli laau i fafo. O lona uiga e mafai ona e teuina le laupapa, configs, afifi ma isi tusitaiala i se isi lisi (mo se faʻataʻitaʻiga, ou te faʻaogaina le lisi o patch e faʻaoga ai patch i afifi, nisi faʻamatalaga i se vaega ese) ma buildroot lava ia o le a faʻaopoopoina i latou i totonu. lona fa'atonuga.
Manatua: e mafai ona e faʻapipiʻi nisi o laʻau i fafo i le taimi e tasi, o loʻo i ai se faʻataʻitaʻiga i le buildroot manual
Sei o tatou faia se lisi my_tree, o loʻo i tafatafa o le buildroot directory ma faʻafeiloaʻi la tatou faʻatulagaga iina. Ole fa'aulufalega e tatau ona fa'apea le fa'atulagaina o faila:
[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 files
E pei ona e vaʻaia, i se tulaga lautele, o le fausaga e toe fai le fausaga o buildroot.
aufaʻatonu komiti o loʻo i ai faila faʻapitoa i laupapa taʻitasi i la matou mataupu:
- bef_cr_fs_img.sh o se tusitusiga o le a faʻatinoina pe a uma ona fausia le faila faila, ae leʻi faʻapipiʻiina i ata. O le a matou faʻaaogaina i le lumanaʻi
- linux.config - fa'atulagaina o fatu
- rootfs_overlay - lisi e faʻapipiʻi i luga o le faila faila
- users.txt - o se faila e fa'amatala ai tagata e fa'aogaina
aufaʻatonu fetuunai o lo'o iai defconfig oa tatou laupapa. E tasi lava a matou.
afī - fa'amaumauga fa'atasi ma a matou afifi. Muamua, buildroot o loʻo i ai faʻamatalaga ma tulafono mo le fausiaina o se numera faʻatapulaʻa o afifi. Mulimuli ane o le a matou faʻaopoopoina le pule faʻamalama icewm ma le Slim graphical login manager iinei.
Patches - faʻatagaina oe e teu lelei au paʻu mo afifi eseese. Fa'amatalaga atili i se isi vaega i lalo.
Ole taimi nei e mana'omia le fa'aopoopoina o faila fa'amatalaga mo la tatou la'au i fafo. E 3 faila e nafa ma lenei: external.desc, Config.in, external.mk.
fafo.desc o loʻo i ai le faʻamatalaga moni:
[alexey@alexey-pc my_tree]$ cat external.desc
name: my_tree
desc: My simple external-tree for article
O le laina muamua o le ulutala. I le lumanaʻi buildroot faia se fesuiaiga $(BR2_EXTERNAL_MY_TREE_PATH), lea e tatau ona faʻaaogaina pe a faʻapipiʻi le faʻapotopotoga. Mo se faʻataʻitaʻiga, o le ala i le faila tagata e mafai ona seti e pei ona taʻua i lalo:
$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/users.txt
O le laina lona lua o se faʻamatalaga puupuu, e mafai ona faitau e tagata.
Config.in, fafo.mk — faila e faamatala ai afifi faaopoopo. Afai e te le faʻaopoopoina au lava afifi, o nei faila e mafai ona tuʻu avanoa. Mo le taimi nei, o le mea lena o le a tatou faia.
O lea ua saunia la matou laau i fafo, o loʻo i ai le faʻaogaina o le matou laupapa ma faila e manaʻomia. Tatou alu i le buildroot directory ma faʻamaonia e faʻaaoga fafo-laau:
[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 menuconfig
I le poloaiga muamua matou te faʻaaogaina le finauga BR2_FAFO=../la'u_laau/, e fa'aalia ai le fa'aogaina o se la'au i fafo. E mafai ona e fa'ama'oti nisi o la'au i fafo mo le fa'aoga i le taimi e tasi. I lenei tulaga, e na'o le tasi lava le mea e te mana'omia, a mae'a ona faia lea o se faila faila/.br-external.mk. teuina faʻamatalaga e uiga i fafo-laau faʻaaogaina:
[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 article
Taua! O auala i totonu o lenei faila o le a atoatoa!
O lo'o fa'aalia se mea mai fafo i le lisi:
O lenei submenu o le a iai a tatou afifi mai la tatou laau i fafo. O lo'o gaogao le vaega lea.
Ole taimi nei e sili atu ona taua mo i tatou le toe tusia o auala talafeagai e faʻaoga ai fafo-laau.
Faamolemole ia matau i totonu o le Fausia filifiliga → Nofoaga e teu ai buildroot config vaega, o le ai ai se ala atoatoa i le defconfig faasaoina. E faia i le taimi e faʻamaonia ai le faʻaogaina o le extgernal_tree.
O le a matou faʻasaʻo foʻi auala i le vaega Faʻatulagaina o le System. Mo se laulau o lo'o i ai tagata fa'aogaina:
$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/users.txt
I le vaega o le Kernel, sui le ala i le kernel configuration:
$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/linux.config
O le taimi nei o le a faʻaaogaina a matou faila mai le matou laau i fafo i le taimi o le faʻapotopotoga. Pe a siitia atu i se isi lisi poʻo le faʻafouina o le buildroot, o le a itiiti a tatou faʻafitauli.
Fa'aopoopo a'a fs fa'apipi'i:
O lenei masini e mafai ai e oe ona faigofie ona faʻaopoopo / sui faila i le faila faila.
Afai o le faila o loʻo i totonu o le root fs overlay, ae le o le sini, ona faʻaopoopoina lea
Afai o le faila o loʻo i totonu o le root fs overlay ma i le faʻamoemoe, ona suia lea.
Muamua, se'i o tatou seti le ala e a'a ai fs overlay dir. E faia lenei mea i le System configuration → Root filesystem overlay directories section:
$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/rootfs_overlay/
Sei o tatou fatuina faila se lua.
[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 overlay
O le faila muamua (my_tree/board/my_x86_board/rootfs_overlay/etc/hosts) o le a suitulaga i le faila /etc/hosts i luga o le polokalama maeʻa. O le faila lona lua (cat my_tree/board/my_x86_board/rootfs_overlay/new_file.txt) o le a faaopoopo.
Matou te aoina ma siaki:
Fa'atinoina o tusitusiga fa'apitoa i la'asaga 'ese'ese o le fa'apotopotoga fa'apitoa
E masani ona e manaʻomia le faia o ni galuega i totonu o le faila faila aʻo leʻi faʻapipiʻiina i ata.
E mafai ona faia lenei mea i le vaega o le System configuration:
O tusitusiga muamua e lua e faʻatinoina pe a uma ona fausia le faila faila, ae leʻi faʻapipiʻiina i ata. O le eseesega o le fakeroot script o loʻo faʻatinoina i totonu o le faʻasologa o fakeroot, lea e faʻataʻitaʻiina le galuega o le aʻa faʻaoga.
O le fa'amaumauga mulimuli e fa'atino pe a uma ona faia ata o le faiga. E mafai ona e faia ni gaioiga faaopoopo i totonu, mo se faʻataʻitaʻiga, kopi faila manaʻomia i se NFS server pe fatuina se ata o lau masini firmware.
Mo se faʻataʻitaʻiga, o le a ou fatuina se tusitusiga o le a tusia ai le lomiga ma fausia le aso i /etc/.
Muamua o le a ou faʻaalia le ala i lenei faila i laʻu laau i fafo:
Ma o lea la o le tusitusiga lava ia:
[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
A maeʻa le faʻapotopotoga, e mafai ona e vaʻai i lenei faila i luga o le polokalama.
I le faʻataʻitaʻiga, e mafai ona tele le tusitusiga. O le mea lea, i le galuega moni na ou uia se auala sili atu ona alualu i luma:
- Na ou faia se lisi (my_tree/board_my_x86_board/inside_fakeroot_scripts) o loʻo i ai faʻamaumauga e faʻatino, ma numera faʻasologa. Mo se fa'ata'ita'iga, 0001-add-my_small_linux-version.sh, 0002-clear-apache-root-dir.sh
- Na ou tusia se tusitusiga (my_tree/board_my_x86_board/run_inside_fakeroot.sh) e alu i totonu o lenei lisi ma faʻasolosolo faʻasologa o tusitusiga o loʻo iai i totonu.
- Fa'ailoa mai lenei fa'amaumauga i le fa'atulagaina o le laupapa i le System configuration -> Fa'asinomaga fa'apitoa e tamo'e i totonu ole siosiomaga fakeroot ($(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/run_inside_fakeroot.sh) vaega
puna: www.habr.com