Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π ΡΠ°Π·ΠΈ ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΠΎΡ ΡΡΠ°ΡΠΈΠΈ ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΠΏΡΠ΅Π³Π»Π΅Π΄Π°ΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ° buildroot ΠΈ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»Ρ ΠΌΠΎΡ ΠΎΠΏΠΈΡ Π² Π½Π΅ΠΉΠ½ΠΎΡΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅. Π©Π΅ ΠΈΠΌΠ° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΠΈΡ Π² ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ°Π»ΠΊΠ° ΠΠ‘ Ρ Π³ΡΠ°ΡΠΈΡΠ΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ.
ΠΡΡΠ²ΠΎ, Π½Π΅ Π±ΡΡΠΊΠ°ΠΉΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Ρ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ°. Buildroot ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΌΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ. Buildroot Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ Π½Π° makefiles ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΠΈΠΈ Π·Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅. ΠΠ° Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° Ρ Π΄ΡΡΠ³Π° Π²Π΅ΡΡΠΈΡ, Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ, Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ°, Π΄Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ»Π΅Π΄ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ? ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈ root.
Π Π ΡΡΠΈΡ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° buildroot, Π½ΠΎ ΡΠΏΠΎΡΠ΅Π΄ ΠΌΠ΅Π½ ΠΈΠΌΠ° ΠΌΠ°Π»ΠΊΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π° ΡΡΡΠΊΠΈ Π΅Π·ΠΈΠΊ Π·Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΠΈ.
Π¦Π΅Π»ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ Π·Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Ρ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ Π½Π° ΠΆΠΈΠ²ΠΎ, icewm ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ Π±ΡΠ°ΡΠ·ΡΡ. Π¦Π΅Π»Π΅Π²Π°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΅ virtualbox.
ΠΠ°ΡΠΎ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ? Π§Π΅ΡΡΠΎ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ. ΠΠΎ-ΡΠ΅ΡΡΠΎ ΠΏΡΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΡΡΡΠΌΡΠ΅Ρ. ΠΠ΄Π°ΠΏΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ Ρ ΠΎΠ±ΡΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Π· ΠΈΠ·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·Π»ΠΈΡΠ½ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΈ ΠΏΡΠ΅Π²ΡΡΡΠ°Π½Π΅ΡΠΎ ΠΉ Π²ΡΠ² ΡΡΡΠΌΡΠ΅Ρ Π΅ ΠΏΠΎ-ΠΎΡΠ½Π΅ΠΌΠ°Ρ Π²ΡΠ΅ΠΌΠ΅ Π½Π°ΡΠΈΠ½ ΠΎΡ ΡΡΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Gentoo ΡΡΡΠΎ ΠΈΠΌΠ° ΡΠ²ΠΎΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ.
Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Buildroot Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΡΠ½Π°, Π½ΠΎ Π½ΡΠΌΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ Π½ΠΈΡΠΎ Π·Π° Π²Π°Ρ. Π’ΠΎΠΉ ΠΌΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎ Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ° ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅.
ΠΠ»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ (yocto, ΠΎΡΠ²ΠΎΡΠ΅Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ ΠΈ Ρ.Π½.) Π½Π΅ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°Ρ ΠΈΠ»ΠΈ ΡΡΠ°Π²Π½ΡΠ²Π°Ρ.
ΠΡΠ΄Π΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ
Π£Π΅Π±ΡΠ°ΠΉΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° -
Buildroot ΡΠ°Π±ΠΎΡΠΈ Ρ defconfigs Π·Π° ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΠΎΠ½Π½Π° ΠΏΠ»Π°ΡΠΊΠ°. Defconfig Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ°ΠΉΠ», ΠΊΠΎΠΉΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° ΡΠ°ΠΌΠΎ ΠΎΠΏΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π½ΡΠΌΠ°Ρ ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈ ΠΊΠ°ΠΊ ΡΠ΅ ΡΠ΅ ΡΡΠ±ΠΈΡΠ°. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠ΄Π΅Π»Π½ΠΎ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈΡΠ΅ Π½Π° busybox, linux-kernel, uglibc, u-boot ΠΈ barebox bootloader, Π½ΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΠΏΠ»Π°ΡΠΊΠ°.
Π‘Π»Π΅Π΄ ΡΠ°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½ΠΈΡ Π°ΡΡ
ΠΈΠ² ΠΈΠ»ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Π½Π΅ ΠΎΡ git, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ buildroot, Π³ΠΎΡΠΎΠ² Π·Π° ΡΠ°Π±ΠΎΡΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ, ΡΠ΅ Π²ΠΈ ΡΠ°Π·ΠΊΠ°ΠΆΠ° Π·Π° Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈΡΠ΅:
ΡΡΠ²Π΅Ρ β Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° Π²ΡΡΠΊΠ° ΠΏΠ»Π°ΡΠΊΠ°. Π’ΠΎΠ²Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° (iso, sdcart, cpio ΠΈ Π΄ΡΡΠ³ΠΈ), Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π·Π° Π½Π°ΡΠ»Π°Π³Π²Π°Π½Π΅, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΈ Π΄Ρ.
Π΄ΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠΊ - Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½Π°ΡΠ° defconfig Π½Π° ΠΏΠ»Π°ΡΠΊΠ°ΡΠ°. Defconfig Π΅ Π½Π΅ΠΏΡΠ»Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΠΏΠ»Π°ΡΠΊΠ°ΡΠ°. Π’ΠΎΠΉ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° ΡΠ°ΠΌΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅.
dl - Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Ρ ΠΈΠ·ΡΠ΅Π³Π»Π΅Π½ΠΈ ΠΈΠ·Ρ
ΠΎΠ΄Π½ΠΈ ΠΊΠΎΠ΄ΠΎΠ²Π΅ / ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅
ΠΈΠ·Ρ
ΠΎΠ΄/ΡΠ΅Π» - ΡΠ³Π»ΠΎΠ±Π΅Π½Π°ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½Π°ΡΠ° ΠΠ‘. Π Π±ΡΠ΄Π΅ΡΠ΅ ΠΎΡ Π½Π΅Π³ΠΎ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ / ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅
ΠΈΠ·Ρ
ΠΎΠ΄/Ρ
ΠΎΡΡ - Ρ
ΠΎΡΡ ΠΏΠΎΠΌΠΎΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π·Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅
ΠΈΠ·Ρ
ΠΎΠ΄/ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ - ΡΠ³Π»ΠΎΠ±Π΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΡΠ΅Π· KConfig. Π‘ΡΡΠ°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux. Π‘ΠΏΠΈΡΡΠΊ Π½Π° Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ (ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° buildroot):
- make menuconfig - ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅. ΠΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ GUI (Π½Π°ΠΏΡΠ°Π²Π΅ΡΠ΅ nconfig, Π½Π°ΠΏΡΠ°Π²Π΅ΡΠ΅ xconfig, Π½Π°ΠΏΡΠ°Π²Π΅ΡΠ΅ gconfig)
- make linux-menuconfig - ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΡΠ΄ΡΠΎΡΠΎ.
- make clean - ΡΠΈΡΡΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΎΡ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ (Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π² ΠΈΠ·Ρ ΠΎΠ΄Π°)
- make - ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. Π’ΠΎΠ²Π° Π½Π΅ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π° Π²Π΅ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ.
- make defconfig_name - ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΊΡΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ defconfig
- make list-defconfigs - ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΠΏΠΈΡΡΠΊ Ρ defconfigs
- make source - ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ ΡΠ°ΠΌΠΎ Π½Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π±Π΅Π· Π°ΡΠ΅ΠΌΠ±Π»ΠΈΡΠ°Π½Π΅.
- Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΏΠΎΠΌΠΎΡ - ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΠΏΠΈΡΡΠΊ Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ
ΠΠ°ΠΆΠ½ΠΈ Π±Π΅Π»Π΅ΠΆΠΊΠΈ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΡΡΠ²Π΅ΡΠΈ
Buildroot Π½Π΅ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π° Π²Π΅ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ! Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΡΠ·Π½ΠΈΠΊΠ½Π΅ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ»Π½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅Π½ ΠΏΠ°ΠΊΠ΅Ρ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° make packagename-rebuild. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux:
make linux-rebuild
Buildroot ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ, ΠΊΠ°ΡΠΎ ΡΡΠ·Π΄Π°Π²Π° .stamp ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° output/build/$packagename:
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎ root-fs ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π±Π΅Π· ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ:
rm output/build/host-gcc-final-*/.stamp_host_installed;rm -rf output/target;find output/ -name ".stamp_target_installed" |xargs rm -rf ; make
ΠΠΎΠ»Π΅Π·Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ
buildroot ΠΈΠΌΠ° Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π·Π° Π»Π΅ΡΠ½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
- $TOPDIR - ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅
- $BASEDIR - ΠΠΠ₯ΠΠΠΠ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ
- $HOST_DIR, $STAGING_DIR, $TARGET_DIR - Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Ρ ΠΎΡΡ fs, Π΅ΡΠ°ΠΏΠ½ΠΈ fs, ΡΠ΅Π»Π΅Π²ΠΈ fs.
- $BUILD_DIR - Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Ρ ΡΠ°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ
ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
buildroot ΠΈΠΌΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π΄Π° Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°.ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠ°, Π²ΡΠ΅ΠΌΠ΅Π²Π° Π³ΡΠ°ΡΠΈΠΊΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅, Π³ΡΠ°ΡΠΈΠΊΠ° Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° Π² ΠΊΡΠ°ΠΉΠ½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΊΠ°ΡΠΎ pdf ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ (ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅ ΠΎΡ svn,png) Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° output/graph.
ΠΡΠΈΠΌΠ΅ΡΠΈ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅:
make graph-depends
ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄ΡΡΠ²ΠΎ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅make <pkg>-graph-depends
ΠΈΠ·Π³ΡΠ°Π΄Π΅ΡΠ΅ Π΄ΡΡΠ²ΠΎΡΠΎ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΏΠ°ΠΊΠ΅ΡBR2_GRAPH_OUT=png make graph-build
Π½Π°ΡΠ΅ΡΡΠ°ΠΉΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π²Π° Π³ΡΠ°ΡΠΈΠΊΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Ρ PNG ΠΈΠ·Ρ ΠΎΠ΄make graph-size
Π½Π°ΡΠ΅ΡΡΠ°ΠΉΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ°
ΠΠΎΠ»Π΅Π·Π½ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅
ΠΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° buildroot ΠΈΠΌΠ° ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ UTILS Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΠ° ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ (ΡΠ΅ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²Ρ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ). Π€Π°ΠΉΠ»ΡΡ utils/readme.txt ΠΈΠΌΠ° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π·ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅.
ΠΠ΅ΠΊΠ° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΠΌ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π°ΠΊΡΠΈΠΈ
ΠΠ°ΠΆΠ½ΠΎ Π΅ Π΄Π° Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ ΠΎΡ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π», Π° Π½Π΅ ΠΎΡ root.
ΠΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π² buildroot. ΠΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ° buildroot Π²Π΅ΡΠ΅ ΠΈΠΌΠ° Π½Π°Π±ΠΎΡ ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠΈ ΠΏΠ»Π°ΡΠΊΠΈ ΠΈ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ.
ΠΠΈΠΆΡΠ΅ ΡΠΏΠΈΡΡΠΊΠ° Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ:
ΠΡΠ΅Π²ΠΊΠ»ΡΡΠ΅ΡΠ΅ ΠΊΡΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° qemu_x86_64_defconfig
make qemu_x86_64_defconfig
Π Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ
make
ΠΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π·Π°Π²ΡΡΡΠ²Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π²ΠΈΠΆΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅:
Buildroot ΡΡΠ±ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π² Qemu ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ Π΄Π°Π»ΠΈ ΡΠ°Π±ΠΎΡΡΡ.
qemu-system-x86_64 -kernel output/images/bzImage -hda output/images/rootfs.ext2 -append "root=/dev/sda rw" -s -S
Π Π΅Π·ΡΠ»ΡΠ°ΡΡΡ Π΅ ΡΠΈΡΡΠ΅ΠΌΠ°, ΡΠ°Π±ΠΎΡΠ΅ΡΠ° Π² qemu:
Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° Π΄ΡΡΠΊΠ°
ΠΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π±ΠΎΡΠ΄ΠΎΠ²ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅
ΠΠΈΠΆΡΠ΅ ΡΠΏΠΈΡΡΠΊΠ° Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ:
Π ΡΠΏΠΈΡΡΠΊΠ° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ pc_x86_64_efi_defconfig. Π©Π΅ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ Π½Π°ΡΠ°ΡΠ° Π΄ΡΡΠΊΠ°, ΠΊΠ°ΡΠΎ Ρ ΠΊΠΎΠΏΠΈΡΠ°ΠΌΠ΅ ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°:
cp configs/pc_x86_64_bios_defconfig configs/my_x86_board_defconfig
ΠΠ΅Π·Π°Π±Π°Π²Π½ΠΎ ΡΡΠ·Π΄Π°ΠΉΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π½Π° Π±ΠΎΡΠ΄Π°, Π·Π° Π΄Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΡΠ΅ Π½Π°ΡΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, rootfs-overlay ΠΈ Π΄ΡΡΠ³ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅:
mkdir board/my_x86_board
ΠΡΠ΅Π²ΠΊΠ»ΡΡΠ΅ΡΠ΅ ΠΊΡΠΌ ΡΠΎΠ·ΠΈ defconfig:
make my_x86_board_defconfig
Π’Π°ΠΊΠ° ΡΠ΅ ΡΠ΅Π³Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ° (ΡΡΡ ΡΠ°Π½Π΅Π½Π° Π² .config Π² ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° Π½Π° buildroot) ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π° Π½Π° ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π° x86-64 legacy(bios) ΡΡΠ΅Π· Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅.
ΠΠΎΠΏΠΈΡΠ°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° linux-kernel (ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ):
cp board/pc/linux.config board/my_x86_board/
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠΏΡΠΈΠΈ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΡΡΠ΅Π· KConfig
ΠΠ° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ°:
make menuconfig
Π©Π΅ ΡΠ΅ ΠΎΡΠ²ΠΎΡΠΈ ΠΏΡΠΎΠ·ΠΎΡΠ΅ΡΡΡ Π½Π° KConfig. ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° Ρ Π³ΡΠ°ΡΠΈΡΠ΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (make nconfig, make xconfig, make gconfig):
ΠΠ»ΠΈΠ·Π°ΠΌΠ΅ Π² ΠΏΡΡΠ²ΠΈΡ ΡΠ°Π·Π΄Π΅Π» Target Options. Π’ΡΠΊ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠ΅Π»Π΅Π²Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, Π·Π° ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠΈ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ΡΠΎ.
ΠΠΏΡΠΈΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ - ΡΡΠΊ ΠΈΠΌΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈ ΠΊΠΎΠ΄ΠΎΠ²Π΅, Π±ΡΠΎΡ Π½Π° Π½ΠΈΡΠΊΠΈΡΠ΅ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅, ΠΎΠ³Π»Π΅Π΄Π°Π»Π½ΠΈ ΡΡΡΠ²ΡΡΠΈ Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈ ΠΊΠΎΠ΄ΠΎΠ²Π΅ ΠΈ Π΄ΡΡΠ³ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. ΠΠ΅ΠΊΠ° ΠΎΡΡΠ°Π²ΠΈΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅.
Toolchain - ΡΠ°ΠΌΠΈΡΡ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ ΡΡΠΊ. ΠΠΎΠ²Π΅ΡΠ΅ Π·Π° Π½Π΅Π³ΠΎ.
Π’ΠΈΠΏ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»Π½Π° Π²Π΅ΡΠΈΠ³Π° - ΡΠΈΠΏΡΡ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°ΡΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»Π½Π° Π²Π΅ΡΠΈΠ³Π°. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π²Π³ΡΠ°Π΄Π΅Π½ΠΎ Π² buildroot ΠΈΠ»ΠΈ Π²ΡΠ½ΡΠ½Π° Π²Π΅ΡΠΈΠ³Π° ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ (ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Ρ Π²Π΅ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° ΡΠ°ΠΊΠ°Π²Π° ΠΈΠ»ΠΈ url Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅). ΠΠΌΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° ΡΡΠΊΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° Π²ΡΠ½ΡΠ½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Linaro.
C Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° - ΠΈΠ·Π±ΠΎΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C. Π Π°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΡΠ»Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΡΠΎΠ²Π°. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° glibc, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠΈ. ΠΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ²ΡΡΠ΄Π΅ Π³ΠΎΠ»ΡΠΌ Π·Π° Π²Π³ΡΠ°Π΄Π΅Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ° uglibc ΠΈΠ»ΠΈ musl. Π©Π΅ ΠΈΠ·Π±Π΅ΡΠ΅ΠΌ glibc (ΡΠΎΠ²Π° ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ, Π·Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ systemd).
Π‘Π΅ΡΠΈΡΡΠ° Kernel Headers ΠΈ Custom Kernel Headers β ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π° Π½Π° Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ Π² ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠ° Π·Π°Π³Π»Π°Π²ΠΊΠΈΡΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΠΏΡΡΡ Π΄ΠΎ tarball ΠΈΠ»ΠΈ git Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ.
GCC ΠΠΠ Π‘ΠΠ ΠΠ ΠΠΠΠΠΠΠΠ’ΠΠ - ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅
Π Π°Π·ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° C++ - ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° c++ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. Π’ΠΎΠ²Π° ΡΠ΅ Π½ΠΈ ΡΡΡΠ±Π²Π° ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ.
ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ gcc ΠΎΠΏΡΠΈΠΈ - ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΎΠΏΡΠΈΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ°. ΠΠ°ΡΠ΅Π³Π° Π½Π΅ Π½ΠΈ ΡΡΡΠ±Π²Π°.
Π‘ΠΈΡΡΠ΅ΠΌΠ½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ Π±ΡΠ΄Π΅ΡΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΡΡΠ·Π΄Π°Π΄Π΅Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°:
ΠΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠΎΡΠΊΠΈ ΡΠ° ΡΡΠ½ΠΈ ΠΎΡ Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ. ΠΠ΅ΠΊΠ° ΠΎΠ±ΡΡΠ½Π΅ΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠΎΡΠΊΠΈ:
ΠΡΡ Π΄ΠΎ ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ - ΡΠ°Π±Π»ΠΈΡΠ° ΡΡΡ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ (
ΠΡΠΈΠΌΠ΅ΡΠ΅Π½ ΡΠ°ΠΉΠ». ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΡΠ΅ Π±ΡΠ΄Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ Ρ ΠΏΠ°ΡΠΎΠ»Π° admin, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ gid/uid, /bin/sh shell, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π½Π° Π³ΡΡΠΏΠ°ΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, ΡΠ»Π΅Π½ Π½Π° root Π½Π° Π³ΡΡΠΏΠ°ΡΠ°, ΠΊΠΎΠΌΠ΅Π½ΡΠ°Ρ Foo ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»
[alexey@alexey-pc buildroot ]$ cat board/my_x86_board/users.txt
user -1 user -1 =admin /home/user /bin/sh root Foo user
ΠΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ Π½Π°ΡΠ»Π°Π³Π²Π°Π½Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° - Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π΅ Π½Π°ΡΠ»ΠΎΠΆΠ΅Π½Π° Π²ΡΡΡ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π°ΡΠ° target-fs. ΠΠΎΠ±Π°Π²Ρ Π½ΠΎΠ²ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π·Π°ΠΌΠ΅Π½Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅.
ΠΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΡΡΠ°Π²Π΅ΡΠ΅ ΡΠΊΡΠΈΠΏΡΠ° ΠΏΡΠ°Π·Π΅Π½ Π·Π° ΡΠ΅Π³Π°.
ΠΠ° ΠΎΡΠΈΠ΄Π΅ΠΌ Π² ΡΠ΅ΠΊΡΠΈΡΡΠ° Kernel
Π’ΠΎΠ²Π° Π΅ ΠΌΡΡΡΠΎΡΠΎ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ Π·Π°Π΄Π°Π²Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ. Π‘Π°ΠΌΠΎΡΠΎ ΡΠ΄ΡΠΎ ββΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° ΡΡΠ΅Π· make linux-menuconfig.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ: ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΎΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΠ΅, Π²ΡΠ²Π΅Π΄Π΅ΡΠ΅ Π²Π΅ΡΡΠΈΡΡΠ° ΡΡΡΠ½ΠΎ, Π·Π°Π΄Π°ΠΉΡΠ΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈΠ»ΠΈ Π³ΠΎΡΠΎΠ² Π°ΡΡ
ΠΈΠ².
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΡΠ΄ΡΠΎΡΠΎ - ΠΏΡΡ Π΄ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° ΠΈΠ·Π±ΡΠ°Π½Π°ΡΠ° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈΠ»ΠΈ defocnfig ΠΎΡ Linux. ΠΠ·ΡΠΎΡΠ½ΠΈΡΠΈΡΠ΅ Π½Π° Linux ΠΈΠΌΠ°Ρ Π½Π°Π±ΠΎΡ ΠΎΡ defconfigs Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π»Π΅Π²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΠΎΠ·ΠΈ, ΠΎΡ ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅
Π Π°Π·Π΄Π΅Π»ΡΡ Π¦Π΅Π»Π΅Π²ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠΎΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ Π½Π° ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠ΅ΠΊΠ° Π³ΠΎ ΠΎΡΡΠ°Π²ΠΈΠΌ Π½Π΅ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ Π·Π°ΡΠ΅Π³Π°. ΠΠΎ-ΠΊΡΡΠ½ΠΎ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π°ΡΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΊΡΠΌ ΡΠΎΠ·ΠΈ ΡΠΏΠΈΡΡΠΊ.
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° - ΡΠΏΠΈΡΡΠΊ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ. ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ iso ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
ΠΡΡΡΠ»ΠΎΡΠ΄ΡΡΠΈ - ΠΈΠ·Π±ΠΎΡΡΡ Π½Π° ΡΡΠ±ΡΠ°Π½ΠΈ Π±ΡΡΡΠ»ΠΎΡΠ΄ΡΡΠΈ. ΠΠ·Π±Π΅ΡΠ΅ΡΠ΅ isolinix
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Systemd
Systemd ΡΡΠ°Π²Π° Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΡΡΠ»Π±ΠΎΠ²Π΅ΡΠ΅ Π½Π° linux, Π·Π°Π΅Π΄Π½ΠΎ Ρ kernel ΠΈ glibc. ΠΠ°ΡΠΎΠ²Π° ΠΈΠ·Π²Π°Π΄ΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° ΠΌΡ Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΏΠ°ΡΠ°Π³ΡΠ°Ρ.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° ΡΠ΅ ΡΡΠ΅Π· make menuconfig, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Target packages β System tools β systemd. Π’ΡΠΊ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΠΊΠΎΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΈ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
ΠΠ°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
ΠΠΈΠ΅ Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ ΡΠ°Π·ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΡΠ΅Π· KConfig.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ Π½Π°ΡΠ°ΡΠ° defconfig:
make savedefconfig
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΎΡ ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°:
make linux-menuconfig
ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΠ° Virtualbox
ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ Π½Π° Virtualbox Guest
ΠΠ°ΠΏΠ°Π·ΠΈ ΠΈ ΠΈΠ·Π»Π΅Π·. ΠΠΠΠΠ: ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ Π·Π°ΠΏΠ°Π·Π΅Π½Π° Π² output/build/linux-$version/config, Π½ΠΎ Π½Π΅ ΠΈ Π² board/my_x86_board/linux.config
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΡΡΡΠ±Π²Π° ΡΡΡΠ½ΠΎ Π΄Π° ΠΊΠΎΠΏΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π² ΠΌΡΡΡΠΎΡΠΎ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅:
cp output/build/linux-4.19.25/.config board/my_x86_board/linux.config
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠΈΠΌ ΠΏΡΠ»Π½ΠΎ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ»Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. buildroot Π½Π΅ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π° ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π²Π΅ΡΠ΅ Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΎ, ΡΡΡΠ±Π²Π° ΡΡΡΠ½ΠΎ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅. ΠΠ° Π΄Π° Π½Π΅ Π³ΡΠ±ΠΈΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ ΠΈ Π½Π΅ΡΠ²ΠΈ, Π΅ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ Π΄Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΌΠ°Π»ΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ):
make clean;make
Π‘Π»Π΅Π΄ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ½ΡΠ°ΠΆΠ° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ VirtualBox (ΡΠ΅ΡΡΠ²Π°Π½ Π½Π° Π²Π΅ΡΡΠΈΠΈ 5.2 ΠΈ 6.0) ΡΡΡ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ ΠΎΡ cd-Π΄ΠΈΡΠΊΠ°.Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ:
ΠΠ°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΡ iso:
Π‘ΠΏΠΈΡΡΠΊ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ
- Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π·Π° Buildroot
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com