рдмрд┐рд▓реНрдбрд░реВрдЯ - рднрд╛рдЧ 2. рддреБрдордЪреЗ рдмреЛрд░реНрдб рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рддрдпрд╛рд░ рдХрд░рдгреЗ; рдмрд╛рд╣реНрдп рд╡реГрдХреНрд╖, rootfs-рдЖрдЪреНрдЫрд╛рджрди, рдкреЛрд╕реНрдЯ-рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рдкрд░рдгреЗ

рдпрд╛ рд╡рд┐рднрд╛рдЧрд╛рдд рдореА рдорд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реЗ рдХрд╛рд╣реА рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдкрд░реНрдпрд╛рдп рдкрд╛рд╣рддреЛ. рдмрд┐рд▓реНрдбрд░реВрдЯ рдХрд╛рдп рдСрдлрд░ рдХрд░рддреЛ рдпрд╛рдЪреА рд╣реА рд╕рдВрдкреВрд░реНрдг рдпрд╛рджреА рдирд╛рд╣реА, рдкрд░рдВрддреБ рддреЗ рдЕрдЧрджреА рдХрд╛рд░реНрдпрдХреНрд╖рдо рдЖрд╣реЗрдд рдЖрдгрд┐ рдмрд┐рд▓реНрдбрд░реВрдЯрдЪреНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕рдордзреНрдпреЗ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА.

рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдмрд╛рд╣реНрдп рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░рдгреЗ

рдорд╛рдЧреАрд▓ рд▓реЗрдЦрд╛рдд рдЖрдореНрд╣реА рдереЗрдЯ Buildroot рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдмреЛрд░реНрдбрдЪреЗ defconfig рдЖрдгрд┐ рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реНрд╕ рдЬреЛрдбреВрди рддреБрдордЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЬреЛрдбрдгреНрдпрд╛рдЪреЗ рдПрдХ рд╕рд╛рдзреЗ рдЙрджрд╛рд╣рд░рдг рдкрд╛рд╣рд┐рд▓реЗ.

рдкрд░рдВрддреБ рд╣реА рдкрджреНрдзрдд рдлрд╛рд░ рд╕реЛрдпреАрд╕реНрдХрд░ рдирд╛рд╣реА, рд╡рд┐рд╢реЗрд╖рдд: рдмрд┐рд▓реНрдбрд░реВрдЯ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рддрд╛рдирд╛. рд╣реА рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рдгреНрдпрд╛рд╕рд╛рдареА рдпрдВрддреНрд░рдгрд╛ рдЖрд╣реЗ рдмрд╛рд╣реНрдп рдЭрд╛рдб. рддреНрдпрд╛рдЪреЗ рд╕рд╛рд░ рдЕрд╕реЗ рдЖрд╣реЗ рдХреА рддреБрдореНрд╣реА рдмреЛрд░реНрдб, рдХреЙрдиреНрдлрд┐рдЧрд╕, рдкреЕрдХреЗрдЬреЗрд╕ рдЖрдгрд┐ рдЗрддрд░ рдбрд┐рд░реЗрдХреНрдЯрд░реА рд╡реЗрдЧрд│реНрдпрд╛ рдбрд┐рд░реЗрдХреНрдЯрд░реАрдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░реВ рд╢рдХрддрд╛ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдореА рдкреЕрдЪреЗрд╕ рдбрд┐рд░реЗрдХреНрдЯрд░реА рдкреЕрдЪреЗрд╕рдордзреНрдпреЗ рдкреЕрдЪреЗрд╕ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рддреЛ, рд╡реЗрдЧрд│реНрдпрд╛ рд╡рд┐рднрд╛рдЧрд╛рдд рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓) рдЖрдгрд┐ рдмрд┐рд▓реНрдбрд░реВрдЯ рд╕реНрд╡рддрдГ рддреНрдпрд╛рдордзреНрдпреЗ рдЬреЛрдбреЗрд▓. рддреНрдпрд╛рдЪреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛.

рдЯреАрдк: рддреБрдореНрд╣реА рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЕрдиреЗрдХ рдмрд╛рд╣реНрдп рдЭрд╛рдбреЗ рдЖрдЪреНрдЫрд╛рджрд┐рдд рдХрд░реВ рд╢рдХрддрд╛, рдмрд┐рд▓реНрдбрд░реВрдЯ рдореЕрдиреНрдпреБрдЕрд▓рдордзреНрдпреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЖрд╣реЗ

рдмрд┐рд▓реНрдбрд░реВрдЯ рдбрд┐рд░реЗрдХреНрдЯрд░реАрдЪреНрдпрд╛ рд╢реЗрдЬрд╛рд░реА рдЕрд╕рд▓реЗрд▓реА my_tree рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддрдпрд╛рд░ рдХрд░реВ рдЖрдгрд┐ рддрд┐рдереЗ рдЖрдордЪреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реВ. рдЖрдЙрдЯрдкреБрдЯ рдЦрд╛рд▓реАрд▓ рдлрд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдЕрд╕рд╛рд╡реА:

[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

рдЬрд╕реЗ рдЖрдкрдг рдкрд╛рд╣реВ рд╢рдХрддрд╛, рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рд░рдЪрдирд╛ рдмрд┐рд▓реНрдбрд░реВрдЯрдЪреНрдпрд╛ рд╕рдВрд░рдЪрдиреЗрдЪреА рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдХрд░рддреЗ.

рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмреЛрд░реНрдб рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рдкреНрд░рддреНрдпреЗрдХ рдмреЛрд░реНрдбрд╕рд╛рдареА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╛рдпрд▓реА рдЖрд╣реЗрдд:

  • bef_cr_fs_img.sh рд╣реА рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрд╣реЗ рдЬреА рд▓рдХреНрд╖реНрдп рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реА рдЬрд╛рдИрд▓, рдкрд░рдВрддреБ рдкреНрд░рддрд┐рдорд╛рдВрдордзреНрдпреЗ рдкреЕрдХреЗрдЬ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА. рднрд╡рд┐рд╖реНрдпрд╛рдд рдЖрдореНрд╣реА рддреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВ
  • linux.config - рдХрд░реНрдирд▓ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди
  • rootfs_overlay - рд▓рдХреНрд╖реНрдп рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАрдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА рдЖрдЪреНрдЫрд╛рджрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
  • user.txt - рддрдпрд╛рд░ рдХрд░рд╛рдпрдЪреНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдЪреЗ рд╡рд░реНрдгрди рдХрд░рдгрд╛рд░реА рдлрд╛рдЗрд▓

рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЖрдордЪреНрдпрд╛ рдмреЛрд░реНрдбрдЪреЗ defconfig рд╕рдорд╛рд╡рд┐рд╖реНрдЯреАрдд рдЖрд╣реЗ. рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдлрдХреНрдд рдПрдХ рдЖрд╣реЗ.

рдкреЕрдХреЗрдЬ - рдЖрдордЪреНрдпрд╛ рдкреЕрдХреЗрдЬрд╕рд╣ рдХреЕрдЯрд▓реЙрдЧ. рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛, рдмрд┐рд▓реНрдбрд░реВрдЯрдордзреНрдпреЗ рдорд░реНрдпрд╛рджрд┐рдд рдкреЕрдХреЗрдЬ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд░реНрдгрди рдЖрдгрд┐ рдирд┐рдпрдо рдЕрд╕рддрд╛рдд. рдирдВрддрд░ рдЖрдкрдг рдпреЗрдереЗ icewm рд╡рд┐рдВрдбреЛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЖрдгрд┐ рд╕реНрд▓рд┐рдо рдЧреНрд░рд╛рдлрд┐рдХрд▓ рд▓реЙрдЧрд┐рди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЬреЛрдбреВ.
рдкреЕрдЪреЗрд╕ тАФ рддреБрдореНрд╣рд╛рд▓рд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреЕрдХреЗрдЬреЗрд╕рд╕рд╛рдареА рддреБрдордЪреЗ рдкреЕрдЪ рд╕реЛрдпреАрд╕реНрдХрд░рдкрдгреЗ рд╕рд╛рдард╡рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдЦрд╛рд▓реА рд╡реЗрдЧрд│реНрдпрд╛ рд╡рд┐рднрд╛рдЧрд╛рдд рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓.
рдЖрддрд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдордЪреНрдпрд╛ рдмрд╛рд╣реНрдп-рд╡реГрдХреНрд╖рд╛рд╕рд╛рдареА рд╡рд░реНрдгрди рдлрд╛рдЗрд▓реНрд╕ рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рдпрд╛рд╕рд╛рдареА 3 рдлрд╛рдЗрд▓реНрд╕ рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗрдд: external.desc, Config.in, external.mk.

external.desc рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд░реНрдгрди рд╕рдорд╛рд╡рд┐рд╖реНрдЯреАрдд рдЖрд╣реЗ:

[alexey@alexey-pc my_tree]$ cat external.desc 
name: my_tree
desc: My simple external-tree for article

рдкрд╣рд┐рд▓реА рдУрд│ рд╢реАрд░реНрд╖рдХ рдЖрд╣реЗ. рднрд╡рд┐рд╖реНрдпрд╛рдд рдмрд┐рд▓реНрдбрд░реВрдЯ рдПрдХ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рддрдпрд╛рд░ рдХрд░рд╛ $(BR2_EXTERNAL_MY_TREE_PATH), рдЬреЗ рдЕрд╕реЗрдВрдмреНрд▓реА рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рддрд╛рдирд╛ рд╡рд╛рдкрд░рд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдлрд╛рдЗрд▓рдЪрд╛ рдорд╛рд░реНрдЧ рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рд╕реЗрдЯ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ:

$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/users.txt

рджреБрд╕рд░реА рдУрд│ рдПрдХ рд▓рд╣рд╛рди, рдорд╛рдирд╡реА рд╡рд╛рдЪрдиреАрдп рд╡рд░реНрдгрди рдЖрд╣реЗ.

Config.in, external.mk тАФ рдЬреЛрдбрд▓реЗрд▓реНрдпрд╛ рдкреЕрдХреЗрдЬреЗрд╕рдЪреЗ рд╡рд░реНрдгрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдлрд╛рдЗрд▓реНрд╕. рддреБрдореНрд╣реА рддреБрдордЪреА рд╕реНрд╡рддрдГрдЪреА рдкреЕрдХреЗрдЬреЗрд╕ рди рдЬреЛрдбрд▓реНрдпрд╛рд╕, рдпрд╛ рдлрд╛рдЗрд▓реНрд╕ рд░рд┐рдХрд╛рдореНрдпрд╛ рдареЗрд╡рд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд. рдЖрддреНрддрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рддреЗрдЪ рдХрд░реВ.
рдЖрддрд╛ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЖрдордЪреЗ рдмрд╛рд╣реНрдп-рд╡реГрдХреНрд╖ рддрдпрд╛рд░ рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдЖрдордЪреНрдпрд╛ рдмреЛрд░реНрдбрдЪреЗ рдбрд┐рдлрдХреЙрдиреНрдлрд┐рдЧ рдЖрдгрд┐ рддреНрдпрд╛рд╕ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕ рдЖрд╣реЗрдд. рдмрд┐рд▓реНрдбрд░реВрдЯ рдбрд┐рд░реЗрдХреНрдЯрд░реА рд╡рд░ рдЬрд╛рдК рдЖрдгрд┐ external-tree рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ:

[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

рдкрд╣рд┐рд▓реНрдпрд╛ рдХрдорд╛рдВрдбрдордзреНрдпреЗ рдЖрдкрдг рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯ рд╡рд╛рдкрд░рддреЛ BR2_EXTERNAL=../my_tree/, рдмрд╛рд╣реНрдп рдЭрд╛рдбрд╛рдЪрд╛ рд╡рд╛рдкрд░ рджрд░реНрд╢рд╡рд┐рдд рдЖрд╣реЗ. рддреБрдореНрд╣реА рдПрдХрд╛рдЪ рд╡реЗрд│реА рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдиреЗрдХ рдмрд╛рд╣реНрдп-рд╡реГрдХреНрд╖ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рддреБрдореНрд╣рд╛рд▓рд╛ рд╣реЗ рдлрдХреНрдд рдПрдХрджрд╛рдЪ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓, рддреНрдпрд╛рдирдВрддрд░ рдлрд╛рдЗрд▓ output/.br-external.mk рддрдпрд╛рд░ рдХреЗрд▓реА рдЬрд╛рдИрд▓. рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдмрд╛рд╣реНрдп-рд╡реГрдХреНрд╖рд╛рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЗ:

[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

рдорд╣рддреНрд╡рд╛рдЪреЗ! рдпрд╛ рдлрд╛рдИрд▓рдордзреАрд▓ рдорд╛рд░реНрдЧ рдирд┐рд░рдкреЗрдХреНрд╖ рдЕрд╕рддреАрд▓!

рдореЗрдиреВрдордзреНрдпреЗ рдПрдХ рдмрд╛рд╣реНрдп рдкрд░реНрдпрд╛рдп рдЖрдпрдЯрдо рджрд┐рд╕рд▓рд╛ рдЖрд╣реЗ:

рдмрд┐рд▓реНрдбрд░реВрдЯ - рднрд╛рдЧ 2. рддреБрдордЪреЗ рдмреЛрд░реНрдб рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рддрдпрд╛рд░ рдХрд░рдгреЗ; рдмрд╛рд╣реНрдп рд╡реГрдХреНрд╖, rootfs-рдЖрдЪреНрдЫрд╛рджрди, рдкреЛрд╕реНрдЯ-рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рдкрд░рдгреЗ

рдпрд╛ рд╕рдмрдореЗрдиреВрдордзреНрдпреЗ рдЖрдордЪреНрдпрд╛ рдмрд╛рд╣реНрдп-рд╡реГрдХреНрд╖рд╛рддреАрд▓ рдЖрдордЪреА рдкреЕрдХреЗрдЬреЗрд╕ рдЕрд╕рддреАрд▓. рд╣рд╛ рд╡рд┐рднрд╛рдЧ рд╕рдзреНрдпрд╛ рд░рд┐рдХрд╛рдорд╛ рдЖрд╣реЗ.

рдЖрддрд╛ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдмрд╛рд╣реНрдп-рд╡реГрдХреНрд╖ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдорд╛рд░реНрдЧ рдкреБрдиреНрд╣рд╛ рд▓рд┐рд╣рд┐рдгреЗ рдЕрдзрд┐рдХ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ.

рдХреГрдкрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рдмрд┐рд▓реНрдб рдСрдкреНрд╢рдиреНрд╕ тЖТ рдмрд┐рд▓реНрдбрд░реВрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕реЗрд╡реНрд╣ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдерд╛рди рд╡рд┐рднрд╛рдЧрд╛рдд, рд╕реЗрд╡реНрд╣ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдбрд┐рдлрдХреЙрдиреНрдлрд┐рдЧрдЪрд╛ рдПрдХ рдкрд░рд┐рдкреВрд░реНрдг рдорд╛рд░реНрдЧ рдЕрд╕реЗрд▓. рд╣реЗ extgernal_tree рдЪрд╛ рд╡рд╛рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд╖рдгреА рддрдпрд╛рд░ рд╣реЛрддреЗ.

рдЖрдореНрд╣реА рд╕рд┐рд╕реНрдЯрдо рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╡рд┐рднрд╛рдЧрд╛рддреАрд▓ рдкрде рджреЗрдЦреАрд▓ рджреБрд░реБрд╕реНрдд рдХрд░реВ. рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╣ рдЯреЗрдмрд▓рд╕рд╛рдареА:

$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/users.txt

рдХрд░реНрдирд▓ рд╡рд┐рднрд╛рдЧрд╛рдд, рдХрд░реНрдирд▓ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдЪрд╛ рдорд╛рд░реНрдЧ рдмрджрд▓рд╛:

$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/linux.config

рдЖрддрд╛ рдЖрдордЪреНрдпрд╛ рдмрд╛рд╣реНрдп-рд╡реГрдХреНрд╖рд╛рддреАрд▓ рдЖрдордЪреНрдпрд╛ рдлрд╛рдИрд▓реНрд╕ рдЕрд╕реЗрдВрдмреНрд▓реА рджрд░рдореНрдпрд╛рди рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рддреАрд▓. рджреБрд╕рд░реНтАНрдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдЬрд╛рддрд╛рдирд╛ рдХрд┐рдВрд╡рд╛ рдмрд┐рд▓реНрдбрд░реВрдЯ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рддрд╛рдирд╛, рдЖрдореНрд╣рд╛рд▓рд╛ рдХрдореАрддрдХрдореА рд╕рдорд╕реНрдпрд╛ рдЕрд╕рддреАрд▓.

рд░реВрдЯ рдПрдлрдПрд╕ рдЖрдЪреНрдЫрд╛рджрди рдЬреЛрдбрдгреЗ:

рд╣реА рдпрдВрддреНрд░рдгрд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдЯрд╛рд░реНрдЧреЗрдЯ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯреАрдордордзреНрдпреЗ рд╕рд╣рдЬрдкрдгреЗ рдлрд╛рдЗрд▓реНрд╕ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА/рдмрджрд▓рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ.
рдЬрд░ рдлрд╛рдЗрд▓ рд░реВрдЯ fs рдЖрдЪреНрдЫрд╛рджрдирд╛рдордзреНрдпреЗ рдЕрд╕реЗрд▓, рдкрд░рдВрддреБ рд▓рдХреНрд╖реНрдпрд╛рдд рдирд╕реЗрд▓, рддрд░ рддреА рдЬреЛрдбрд▓реА рдЬрд╛рдИрд▓
рдЬрд░ рдлрд╛рдЗрд▓ рд░реВрдЯ fs рдЖрдЪреНрдЫрд╛рджрди рдЖрдгрд┐ рд▓рдХреНрд╖реНрдпрд╛рдд рдЕрд╕реЗрд▓, рддрд░ рддреА рдмрджрд▓рд▓реА рдЬрд╛рдИрд▓.
рдкреНрд░рдердо, рд░реВрдЯ fs overlay dir рдЪрд╛ рдорд╛рд░реНрдЧ рд╕реЗрдЯ рдХрд░реВрдпрд╛. рд╣реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди тЖТ рд░реВрдЯ рдлрд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо рдУрд╡реНрд╣рд░рд▓реЗ рдбрд┐рд░реЗрдХреНрдЯрд░реА рд╡рд┐рднрд╛рдЧрд╛рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ:

$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/rootfs_overlay/

рдЖрддрд╛ рджреЛрди рдлрд╛рдИрд▓реНрд╕ рдмрдирд╡реВ.

[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

рдкрд╣рд┐рд▓реА рдлрд╛рдИрд▓ (my_tree/board/my_x86_board/rootfs_overlay/etc/hosts) рдкреВрд░реНрдг рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рд╕рд┐рд╕реНрдЯрдорд╡рд░реАрд▓ /etc/hosts рдлрд╛рдЗрд▓рд▓рд╛ рдкреБрдирд░реНрд╕реНрдерд┐рдд рдХрд░реЗрд▓. рджреБрд╕рд░реА рдлрд╛рдИрд▓ (cat my_tree/board/my_x86_board/rootfs_overlay/new_file.txt) рдЬреЛрдбрд▓реА рдЬрд╛рдИрд▓.

рдЖрдореНрд╣реА рдЧреЛрд│рд╛ рдХрд░рддреЛ рдЖрдгрд┐ рддрдкрд╛рд╕рддреЛ:

рдмрд┐рд▓реНрдбрд░реВрдЯ - рднрд╛рдЧ 2. рддреБрдордЪреЗ рдмреЛрд░реНрдб рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рддрдпрд╛рд░ рдХрд░рдгреЗ; рдмрд╛рд╣реНрдп рд╡реГрдХреНрд╖, rootfs-рдЖрдЪреНрдЫрд╛рджрди, рдкреЛрд╕реНрдЯ-рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рдкрд░рдгреЗ

рд╕рд┐рд╕реНрдЯрдо рдЕрд╕реЗрдВрдмреНрд▓реАрдЪреНрдпрд╛ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рдВрд╡рд░ рдХрд╕реНрдЯрдорд╛рдпрдЭреЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА

рдмрд░реНтАНрдпрд╛рдЪрджрд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдЯрд╛рд░реНрдЧреЗрдЯ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯреАрдордордзреНрдпреЗ рдкреНрд░рддрд┐рдорд╛рдВрдордзреНрдпреЗ рдкреЕрдХ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рдХрд╛рд╣реА рдХрд╛рдо рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрддреЗ.

рд╣реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╡рд┐рднрд╛рдЧрд╛рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ:

рдмрд┐рд▓реНрдбрд░реВрдЯ - рднрд╛рдЧ 2. рддреБрдордЪреЗ рдмреЛрд░реНрдб рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рддрдпрд╛рд░ рдХрд░рдгреЗ; рдмрд╛рд╣реНрдп рд╡реГрдХреНрд╖, rootfs-рдЖрдЪреНрдЫрд╛рджрди, рдкреЛрд╕реНрдЯ-рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рдкрд░рдгреЗ

рдкрд╣рд┐рд▓реНрдпрд╛ рджреЛрди рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдЯрд╛рд░реНрдЧреЗрдЯ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯреАрдо рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд, рдкрд░рдВрддреБ рддреЗ рдкреНрд░рддрд┐рдорд╛рдВрдордзреНрдпреЗ рдкреЕрдХ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА. рдлрд░рдХ рд╣рд╛ рдЖрд╣реЗ рдХреА fakeroot рд╕реНрдХреНрд░рд┐рдкреНрдЯ fakeroot рдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реА рдЬрд╛рддреЗ, рдЬреА рд░реВрдЯ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдореНрд╣рдгреВрди рдХрд╛рдорд╛рдЪреЗ рдЕрдиреБрдХрд░рдг рдХрд░рддреЗ.

рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рддрд┐рдорд╛ рддрдпрд╛рд░ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рд╢реЗрд╡рдЯрдЪреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ. рдЖрдкрдг рддреНрдпрд╛рдд рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрд░рд┐рдпрд╛ рдХрд░реВ рд╢рдХрддрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реНрд╕ рдПрдирдПрдлрдПрд╕ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдХреЙрдкреА рдХрд░рд╛ рдХрд┐рдВрд╡рд╛ рдЖрдкрд▓реНрдпрд╛ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рдлрд░реНрдорд╡реЗрдЕрд░рдЪреА рдкреНрд░рддрд┐рдорд╛ рддрдпрд╛рд░ рдХрд░рд╛.

рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди, рдореА рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрдпрд╛рд░ рдХрд░реЗрди рдЬреА рдЖрд╡реГрддреНрддреА рд▓рд┐рд╣реЗрд▓ рдЖрдгрд┐ рддрд╛рд░реАрдЦ /etc/ рд▓рд╛ рддрдпрд╛рд░ рдХрд░реЗрд▓.
рдкреНрд░рдердо рдореА рдорд╛рдЭреНрдпрд╛ рдмрд╛рд╣реНрдп-рд╡реГрдХреНрд╖рд╛рдд рдпрд╛ рдлрд╛рдИрд▓рдЪрд╛ рдорд╛рд░реНрдЧ рд╕реВрдЪрд┐рдд рдХрд░реЗрди:

рдмрд┐рд▓реНрдбрд░реВрдЯ - рднрд╛рдЧ 2. рддреБрдордЪреЗ рдмреЛрд░реНрдб рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рддрдпрд╛рд░ рдХрд░рдгреЗ; рдмрд╛рд╣реНрдп рд╡реГрдХреНрд╖, rootfs-рдЖрдЪреНрдЫрд╛рджрди, рдкреЛрд╕реНрдЯ-рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рдкрд░рдгреЗ

рдЖрдгрд┐ рдЖрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд╡рддрдГ:

[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

рдЕрд╕реЗрдВрдмреНрд▓реАрдирдВрддрд░, рдЖрдкрдг рд╣реА рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдорд╡рд░ рдкрд╛рд╣реВ рд╢рдХрддрд╛.

рд╕рд░рд╛рд╡ рдордзреНрдпреЗ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЛрдареА рд╣реЛрдК рд╢рдХрддреЗ. рдореНрд╣рдгреВрди, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдХрд▓реНрдкрд╛рдд рдореА рдЕрдзрд┐рдХ рдкреНрд░рдЧрдд рдорд╛рд░реНрдЧ рдШреЗрддрд▓рд╛:

  1. рдореА рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (my_tree/board_my_x86_board/inside_fakeroot_scripts) рддрдпрд╛рд░ рдХреЗрд▓реА рдЖрд╣реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдЕрдиреБрдХреНрд░рдорд╛рдВрдХрд╛рдВрд╕рд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рд╛рдпрдЪреНрдпрд╛ рдЖрд╣реЗрдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, 0001-add-my_small_linux-version.sh, 0002-clear-apache-root-dir.sh
  2. рдореА рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ (my_tree/board_my_x86_board/run_inside_fakeroot.sh) рд▓рд┐рд╣рд┐рд▓реА рдЖрд╣реЗ рдЬреА рдпрд╛ рдбрд┐рд░реЗрдХреНрдЯрд░реАрдордзреВрди рдЬрд╛рддреЗ рдЖрдгрд┐ рддреНрдпрд╛рдд рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреНрд░рдорд╛рдХреНрд░рдорд╛рдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ
  3. рд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреАрд▓ рдмреЛрд░реНрдб рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реА рдЖрд╣реЗ -> рдлреЗрдХрд░реВрдЯ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдЪрд╛рд▓рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рдиреБрдХреВрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ ($(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/run_inside_fakeroot.sh) рд╡рд┐рднрд╛рдЧрд╛рдд

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛