αα αααα»ααααααααα αααα»ααα·αα·αααααΎααααααΎαααααΌαααΆααααααα½αα ααα½αααααααα»αααααΌαααΆαα ααααα·ααααααΆαααααΈααααααααα’αααΈααα buildroot αααααααΌαααααα ααα»αααααα½αααααΆααα»αααΆα αα·ααα·αααααΌαααΆαα’αααααΆαααααα αααα»αα―αααΆααα buildroot αααα½αααΆαααααα
αααααααΎααααααΆαααΆααααα αααααΆααααΆαααααΌαααΆααααα
ααα»αααααα·ααΈααΆααααααααααΊαα·αααΆααααα½αααααΆαα·ααααα αααααααΎαα αα α»ααααααααΆα buildroot α ααΆαααααααΆαααΎααααΈαααααααΆααααα αΆαααα ααΎαααΎααΆααααα . ααααΉαααΆαααααααΆααΊααΆα’αααα’αΆα αααααΆαα»α board, configs, packages αα·α directory αααααααααα αααα»α directory ααΆα ααααα‘αααα½α (α§ααΆα ααα αααα»αααααΎ patches directory ααΎααααΈα’αα»αααα patches αα packages ααααααΆααααα’α·ααααααααα αααα»ααααααααΆα ααααα‘αα) α αΎα buildroot αααα½αααΆααΉαααααααααΆαα α’αααααααα αααα»α ααααααααΆα
α αααΆαα α’αααα’αΆα ααΆααααΎααΎαααΎααΆααααα ααΆα αααΎααααα»αααααααα½α ααΆαα§ααΆα ααααα αααα»αααααα αα buildroot
ααααααααΎααα my_tree αααααΆαααΈααΆαααα ααΆααααΉααα buildroot α αΎααααααααΆααααααααααααΎααα ααΈαααα αααααααα½αααααΆαα ααΆααααααααα―αααΆαααΆααααααα
[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
ααΌα αααα’αααα’αΆα ααΎαααΆααΌαα αα ααΆααααααααααααΎα‘αΎααα·αααΌααα ααΆαααααααααα buildroot α
αα αααα»αααααΉααααΆαα·ααΆα ααΆαα―αααΆαααΆααααΆααα ααααααααΆαααΈαα½αααααα»αααααΈααααααΎαα
- bef_cr_fs_img.sh ααΊααΆααααααΈααααααΉαααααΌαααΆαααααα·ααααα·αααααΆααααΈαααααΎαααααααααα―αααΆαααααα ααα»αααααα»ααααααα ααα ααααΆαα ααΆααΌαααΆαα ααΎαααΉαααααΎααΆαα αααα’ααΆαα
- linux.config - ααΆαααααααα ααΆααααααααααΊαααα
- rootfs_overlay - αααααααααΌαααΆααααΎααααΌαααααααααααα―αααΆαααααα
- users.txt - α―αααΆααα·αααααΆα’αααΈα’αααααααΎααααΆαααααααααΌααααααΎα
αα ααΆαααα»αα ααΆα defconfig αααααα»αααααΉααααΆααααααΎαα ααΎαααΆααααα½αα
αααα
αααααΆαα·α - ααΆααΆα‘α»αααΆαα½ααααα
ααααααααΎαα ααααΌαα‘αΎα buildroot ααΆαααΆααα·αααααΆ αα·αα
αααΆαααααααΆαααααααΎααααα
ααα
ααα½ααααααα αααααααααΎαααΉααααααααααααα·ααΈααααααααααααα’α½α
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
αα½αααΈαα½αααΊα αααααΎαα ααΆαααα’ααΆαα buildroot αααααΎαα’ααααα½αα $(BR2_EXTERNAL_MY_TREE_PATH)ααααα½αααααΎαα αααααααααα ααΆααααααααααΆααα½αααααα»αααααΆα α§ααΆα ααα ααααΌααα ααΆααα―αααΆαα’αααααααΎααααΆααα’αΆα ααααΌαααΆααααααααΌα ααΆααααααα
$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/users.txt
αα½αααΈααΈαααΊααΆααΆααα·αααααΆααααΈααααα’αΆα α’αΆαααΆαααααααα»αααα
Config.in, external.mk - α―αααΆαααΎααααΈαα·αααααΆα’αααΈαααα
ααααααααα ααααα·αααΎα’ααααα·ααααααααααα
ααααααΆαααααα½αααααα’ααααα αααα―αααΆαααΆαααααα’αΆα
ααααΌαααΆααα»αα
ααα αααααΆαααααααα αααα αΎαααΆα’αααΈαααααΎαααΉαααααΎα
α₯α‘αΌααααααΎαααΆααααααΆαααΆααααα
ααααααΎααα½α
ααΆαα αααααΆα defconfig ααααααΆαααααααΎα αα·αα―αααΆααααααΆααααΌαααΆαα αααα
αΌααα
ααΆαααα buildroot α αΎααααααΆααααΎααααΈααααΎ 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/αααα αΆαααΈααΆαααααΎααααΆαααααααΆαααΆααααα α α’αααα’αΆα αααααΆααααΎαααΎααΆααααα ααΆα αααΎααααααΆααααααΎαααα»αααααααα½αα αααα»αααααΈααα α’αααααααΌαααααΎααΆααααααααα»ααααα αααααΆααααΈαααα―αααΆααααααα/.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
ααααΆαα! ααααΌααα αααα»αα―αααΆααααααΉαααααΌαααΆαααΆα αααΆα!
ααΆαα»αααααΎαααΆααααα ααΆαααα α‘αΎααααα»ααααΊαα»αα
αααΊαα»ααααααααΉαααΆααααα ααααααααΎαααΈααΎαααΎααΆααααα ααααααΎαα αααααααααα αα α»αααααααααα
α₯α‘αΌαααα ααΆααΆααααααΆαααΆααααααΆαααααααΆααααΎααααα»αααΆααααααα‘αΎααα·αααΌαααααΌαα αΆαααΆα αααΎααααΈααααΎααααΆααααΎαααΎααΆααααα α
ααΌαα αααΆαααΆαα αααα»ααααααΎα Build β ααΈααΆααααΎααααΈαααααΆαα»αααααα buildroot config ααΉαααΆαααααΌαααΆα αααΆααα ααΆαα defconfig αααααΆααααααΆαα»αα ααΆααααΌαααΆααααααΎαα‘αΎααα αααααααΆααααααΆααααΆαααααΎααααΆαα extgernal_tree α
ααΎαααααΉααααααααΌαααααΌααα αααα»ααααααααΆαααααααα ααΆαααααααααααααααααααααα αααααΆααααΆααΆααααααΆαα’αααααααΎααααΆαααααααΆααααααΎαα
$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/users.txt
αα αααα»ααααααααΊααα ααααΆααααααΌαααααΌααα ααΆααααΆαααααααα ααΆααααααααααΊαααα
$(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/linux.config
α₯α‘αΌααααα―αααΆαααααααΎαααΈααΎαααΎααΆααααα ααααααΎαααΉαααααΌαααΆαααααΎααα‘α»ααααααα‘αΎαα αα αααααααΆααααΈαα ααααααααααα¬ααααΎαα αα α»ααααααααΆα buildroot ααΎαααΉαααΆααααα αΆα’αααααααΆα
ααΆαααααααα«α fs αααα½αααΎααααΆα
ααααααΆααααα’αα»ααααΆαα±ααα’αααααΆααααα½ααααααα/αααα½αα―αααΆααα
αααα»αααααααααα―αααΆαααααα
α
ααααα·αααΎα―αααΆααααα·ααα
αααα»α root fs overlay ααα»αααααα·ααααα·ααα
αααα»αααααα
αα αααααΆααΉαααααΌαααΆααααααα
ααααα·αααΎα―αααΆααααα·ααα
αααα»α root fs overlay α αΎααα
αααα»αααααα
αααααΆααΉαααααΌαααΆααααα½αα
ααααΌαααΎααααααααααΌααα
root fs overlay dir α αααααααΌαααΆαααααΎαα½α
αα
αααα»αααααα ααΆαααααααα
ααΆαααααααααααααααα β ααααααααα―αααΆα Root ααααααααααα½αααΎααααΆα
$(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) ααΉαααααΌαααΆαααααααα
ααΎααααααΌααα·ααα·αα·αααα
ααΆαααααα·ααααα·ααααααααΈαααααΌαααΆααααααα ααααΆααααΆααααααααααΆααααΆααααα»ααααααααα
ααΆααΉαααΆααα’αααααααΌαα’αα»ααααααΆαααΆααα½αα ααα½ααα αααα»αααααααααα―αααΆαααααα αα»ααααααΆααααΌαααΆαααα ααααΆααΌαααΆαα
αααα’αΆα ααααΌαααΆαααααΎαα αααα»ααααααααΆαααααααα ααΆααααααααααααααααα
ααααααΈαααΈαααααΌαααααΌαααΆαααααα·ααααα·αααααΆααααΈααααααααα―αααΆαααααα ααααΌαααΆααααααΎαα‘αΎα ααα»αααααα»ααααααΆααααΌαααΆαααα αααα ααΆααΌαααΆαα ααΆααα»αααααΆαααααΊααΆααααααΈα fakeroot ααααΌαααΆαααααα·ααααα·αααα»αααα·αααα fakeroot ααααααααααααΎααΆα’αααααααΎααααΆαα root α
ααααααΈαα α»ααααααααααΌαααΆαααααα·ααααα·αααααΆααααΈααΌαααΆαααααααααααααΌαααΆααααααΎαα α’αααα’αΆα α’αα»αααααααααααΆααααααααα αααα»αααΆ α§ααΆα ααα α ααααα―αααΆαα αΆαααΆα ααα αααΆαααΈααα NFS α¬αααααΎαααΌαααΆααααααααα·ααΈααααααα§αααααααααα’αααα
ααΆα§ααΆα ααα αααα»αααΉααααααΎαααααααΈααααααΉαααααααααα αα·ααααααΎαααΆαααα·α
αααααα
/etc/ α
ααααΌααααα»αααΉααααα αΆαααααΌααα
ααΆααα―αααΆαααααα
αααα»ααααααΆαααΆααααα
αααααααα»αα
α αΎαα₯α‘αΌααααααααααΈααααα½αα―αα
[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
αααααΆααααΈααΆααα½αααααα»αααααΆα’αααα’αΆα ααΎαα―αααΆαααααα ααΎααααααααα
αα αααα»αααΆαα’αα»αααα ααααααΈαα’αΆα ααααΆαααΆααα ααΌα ααααα αΎα αα αααα»ααααααααα·α αααα»αααΆαααααααΌααα½αααααα·ααααα
- αααα»αααΆααααααΎαααα―αααΆααα½α (my_tree/board_my_x86_board/inside_fakeroot_scripts) ααααααα»ααααααΆα scripts αααααααΌαααααα·ααααα· αααααΆαααααααααΈα α§ααΆα ααα 0001-add-my_small_linux-version.sh, 0002-clear-apache-root-dir.sh
- αααα»αααΆααααααααααααΈα (my_tree/board_my_x86_board/run_inside_fakeroot.sh) αααααααααΆααααα―αααΆαααα α αΎαααααΎαααΆαααααααΈααααααΆααα αααα»αααΆααΆαααααααααΆαα
- ααΆααααααΆααααααααΈαααααα αααα»αααΆααααααααααΆααα αααα»αααΆαααααααα ααΆαααααααααααααααα -> ααααααΈαααααΆαααααα½αααΎααααΈααααΎαααΆααα αααα»αααα·ααααΆα fakeroot ($(BR2_EXTERNAL_my_tree_PATH)/board/my_x86_board/run_inside_fakeroot.sh) ααααα
ααααα: www.habr.com