ΠΠΎΠ²Π΅Π΄
ΠΠΎ ΠΎΠ²Π°Π° ΡΠ΅ΡΠΈΡΠ° Π½Π°ΠΏΠΈΡΠΈ, ΡΠ°ΠΊΠ°ΠΌ Π΄Π° Π³ΠΎ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌ ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π° Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ° Π½Π° buildroot ΠΈ Π΄Π° Π³ΠΎ ΡΠΏΠΎΠ΄Π΅Π»Π°ΠΌ ΠΌΠΎΠ΅ΡΠΎ ΠΈΡΠΊΡΡΡΠ²ΠΎ Π²ΠΎ Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄ΡΠ²Π°ΡΠ΅. ΠΠ΅ ΠΈΠΌΠ° ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΎ ΠΈΡΠΊΡΡΡΠ²ΠΎ Π²ΠΎ ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΌΠ°Π» ΠΠ‘ ΡΠΎ Π³ΡΠ°ΡΠΈΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ.
ΠΠ°ΠΊΠΎ ΠΏΡΠ²ΠΎ, Π½Π΅ ΡΡΠ΅Π±Π° Π΄Π° Π³ΠΈ ΠΌΠ΅ΡΠ°ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ°ΡΠ°. Buildroot ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈ ΡΠΈΡΡΠ΅ΠΌ ΠΎΠ΄ Π·Π±ΠΈΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΡΠΎ ΠΌΡ ΡΠ΅ Π½ΡΠ΄Π°Ρ. Buildroot Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ Π½Π° ΠΌΠ΅ΡΠΊΡΠ°ΡΠ»ΠΎΠ²ΠΈ ΠΈ Π·Π°ΡΠΎΠ° ΠΈΠΌΠ° ΠΎΠ³ΡΠΎΠΌΠ½ΠΈ ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄ΡΠ²Π°ΡΠ΅. ΠΠ°ΠΌΠ΅Π½Π΅ΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎ Π΄ΡΡΠ³Π° Π²Π΅ΡΠ·ΠΈΡΠ°, Π΄ΠΎΠ΄Π°Π΄Π΅ΡΠ΅ ΡΠ²ΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ, ΠΏΡΠΎΠΌΠ΅Π½Π΅ΡΠ΅ Π³ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ, ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π΅ΡΠ΅ Π³ΠΎ Π΄Π°ΡΠΎΡΠ΅ΡΠ½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ ΠΏΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΡΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ? buildroot ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠ΅ΡΠΎ ΠΎΠ²Π°.
ΠΠΎ Π ΡΡΠΈΡΠ° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ buildroot, Π½ΠΎ ΡΠΏΠΎΡΠ΅Π΄ ΠΌΠ΅Π½Π΅ ΠΈΠΌΠ° ΠΌΠ°Π»ΠΊΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π° ΡΡΡΠΊΠΈ ΡΠ°Π·ΠΈΠΊ Π·Π° ΠΏΠΎΡΠ΅ΡΠ½ΠΈΡΠΈ.
Π¦Π΅Π»ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π΅ Π΄Π° ΡΠ΅ ΡΠΎΡΡΠ°Π²ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅Ρ Π·Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ° ΡΠΎ ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ΅ Π²ΠΎ ΠΆΠΈΠ²ΠΎ, icewm ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ ΠΈ ΠΏΡΠ΅Π»ΠΈΡΡΡΠ²Π°Ρ. Π¦Π΅Π»Π½Π°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΅ Π²ΠΈΡΡΡΠ΅Π»Π½Π° ΠΊΡΡΠΈΡΠ°.
ΠΠΎΡΡΠΎ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ ΡΠ²ΠΎΡΠ° ΡΠΎΠΏΡΡΠ²Π΅Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ°? Π§Π΅ΡΡΠΎΠΏΠ°ΡΠΈ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ. Π£ΡΡΠ΅ ΠΏΠΎΡΠ΅ΡΡΠΎ Π²ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡΠ°ΡΠ° ΡΡΠ΅Π±Π° Π΄Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΡΠΈΡΠΌΠ²Π΅Ρ. ΠΡΠΈΡΠΏΠΎΡΠΎΠ±ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ° Π·Π° ΠΎΠΏΡΡΠ° Π½Π°ΠΌΠ΅Π½Π° ΡΠΎ ΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° Π½Π΅ΠΏΠΎΡΡΠ΅Π±Π½ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΈ ΠΏΡΠ΅ΡΠ²ΠΎΡΠ°ΡΠ΅ Π²ΠΎ ΡΠΈΡΠΌΠ²Π΅Ρ Π΅ ΠΏΠΎΠΈΠ½ΡΠ΅Π½Π·ΠΈΠ²Π½ΠΎ Π½Π° ΡΡΡΠ΄ΠΎΡ ΠΎΡΠΊΠΎΠ»ΠΊΡ ΠΈΠ·Π³ΡΠ°Π΄Π±Π°ΡΠ° Π½Π° Π½ΠΎΠ²Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ°. ΠΠΎΡΠΈΡΡΠ΅ΡΠ΅ΡΠΎ Π½Π° Gentoo, ΠΈΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΈΠΌΠ° ΡΠ²ΠΎΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ°.
Π‘ΠΈΡΡΠ΅ΠΌΠΎΡ Buildroot Π΅ ΠΌΠ½ΠΎΠ³Ρ ΠΌΠΎΡΠ΅Π½, Π½ΠΎ Π½Π΅ΠΌΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ Π½ΠΈΡΡΠΎ Π·Π° Π²Π°Ρ. ΠΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎ Π΄Π° Π³ΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ° ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅.
ΠΠ»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ (yocto, open build ΡΠΈΡΡΠ΅ΠΌ ΠΈ Π΄ΡΡΠ³ΠΈ) Π½Π΅ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄ΡΠ²Π°Π°Ρ ΠΈΠ»ΠΈ ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°Π°Ρ.
ΠΠ°Π΄Π΅ Π΄Π° Π³ΠΎ Π΄ΠΎΠ±ΠΈΠ΅ΡΠ΅ ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅
ΠΠ΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ -
Buildroot ΡΠ°Π±ΠΎΡΠΈ ΡΠΎ Π΄Π΅ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π·Π° ΡΠ΅Π»Π½Π°ΡΠ° ΡΠ°Π±Π»Π° Π½Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π°ΡΠ°. Defconfig Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΊΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΊΠΎΡΠ° ΡΠΊΠ»Π°Π΄ΠΈΡΠ° ΡΠ°ΠΌΠΎ ΠΎΠΏΡΠΈΠΈ ΠΊΠΎΠΈ Π½Π΅ΠΌΠ°Π°Ρ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ. Π’ΠΎΡ Π΅ ΡΠΎΡ ΡΡΠΎ ΠΎΠ΄ΡΠ΅Π΄ΡΠ²Π° ΡΡΠΎ ΠΈ ΠΊΠ°ΠΊΠΎ ΡΠ΅ ΡΠ΅ ΡΠΎΠ±Π΅ΡΠ΅. ΠΠΎ ΠΎΠ²ΠΎΡ ΡΠ»ΡΡΠ°Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ΄Π΄Π΅Π»Π½ΠΎ Π΄Π° Π³ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈΡΠ΅ Π½Π° ΠΏΠΎΠ΄ΠΈΠ³Π½ΡΠ²Π°ΡΠΈΡΠ΅ busybox, Linux-kernel, uglibc, u-boot ΠΈ barebox, Π½ΠΎ ΡΠΈΡΠ΅ ΡΠΈΠ΅ ΡΠ΅ Π±ΠΈΠ΄Π°Ρ Π²ΡΠ·Π°Π½ΠΈ Π·Π° ΡΠ΅Π»Π½Π°ΡΠ° ΡΠ°Π±Π»Π°.
ΠΠΎ ΠΎΡΠΏΠ°ΠΊΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠ΅Π·Π΅ΠΌΠ΅Π½Π°ΡΠ° Π°ΡΡ
ΠΈΠ²Π° ΠΈΠ»ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠ°ΡΠ΅ ΠΎΠ΄ git, Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ Π·Π° ΡΠΏΠΎΡΡΠ΅Π±Π° buildroot. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΎΡ Π²ΠΎ ΠΏΡΠΈΡΠ°ΡΠ½ΠΈΠΊΠΎΡ; ΡΠ°Ρ ΡΠ΅ Π²ΠΈ ΠΊΠ°ΠΆΠ°ΠΌ Π·Π° Π½Π°ΡΠ²Π°ΠΆΠ½ΠΈΡΠ΅:
ΠΎΠ΄Π±ΠΎΡ β Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ ΡΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ΡΠ΅ΠΊΠΎΡΠ° ΡΠ°Π±Π»Π°. ΠΠ²ΠΈΠ΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π±ΠΈΠ΄Π°Ρ ΡΠΊΡΠΈΠΏΡΠΈ Π·Π° ΡΠΎΡΠΌΠΈΡΠ°ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΡΠ»ΠΈΠΊΠΈ (iso, sdcart, cpio ΠΈ Π΄ΡΡΠ³ΠΈ), Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ Π·Π° ΠΏΡΠ΅ΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΠΈΡΠ½.
configs - Π²ΠΈΡΡΠΈΠ½ΡΠΊΠ°ΡΠ° Π΄Π΅ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° Π½Π° ΡΠ°Π±Π»Π°ΡΠ°. Defconfig Π΅ Π½Π΅ΡΠ΅Π»ΠΎΡΠ½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° Π½Π° ΡΠ°Π±Π»Π°ΡΠ°. ΠΠ°ΡΡΠ²ΡΠ²Π° ΡΠ°ΠΌΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΊΠΎΠΈ ΡΠ΅ ΡΠ°Π·Π»ΠΈΠΊΡΠ²Π°Π°Ρ ΠΎΠ΄ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ
dl β Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ ΡΠΎ ΠΏΡΠ΅Π·Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ·Π²ΠΎΡΠ½ΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΈ/Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π·Π° ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅
ΠΈΠ·Π»Π΅Π·/ΡΠ΅Π»Π½Π° β ΡΠΎΠ±ΡΠ°Π½ΠΈΠΎΡ Π΄Π°ΡΠΎΡΠ΅ΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ Π½Π° Π΄ΠΎΠ±ΠΈΠ΅Π½ΠΈΠΎΡ ΠΠ‘. ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, ΠΎΠ΄ Π½Π΅Π³ΠΎ ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°Π°Ρ ΡΠ»ΠΈΠΊΠΈ Π·Π° ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ΅/ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΠ°
ΠΈΠ·Π»Π΅Π·/Π΄ΠΎΠΌΠ°ΡΠΈΠ½ - Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΡΠΊΠΈ ΠΊΠΎΠΌΡΠ½Π°Π»Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ Π·Π° ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅
ΠΈΠ·Π»Π΅Π·/ΠΈΠ·Π³ΡΠ°Π΄Π±Π° - ΡΠΊΠ»ΠΎΠΏΠ΅Π½ΠΈ ΠΏΠ°ΠΊΡΠ²Π°ΡΠ°
Π‘ΠΊΠ»ΠΎΠΏΠΎΡ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ ΠΏΡΠ΅ΠΊΡ KConfig. ΠΡΡΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π° Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π½Π° ΠΠΈΠ½ΡΠΊΡ. Π‘ΠΏΠΈΡΠΎΠΊ Π½Π° Π½Π°ΡΡΠ΅ΡΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ (ΠΈΠ·Π²ΡΡΠ΅ΡΠ΅ Π²ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΎΡ buildroot):
- Π½Π°ΠΏΡΠ°Π²ΠΈ menuconfig - ΠΏΠΎΠ²ΠΈΠΊΠ°Ρ ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π°. ΠΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ Π³ΡΠ°ΡΠΈΡΠΊΠΈΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ (Π½Π°ΠΏΡΠ°Π²Π΅ΡΠ΅ nconfig, Π½Π°ΠΏΡΠ°Π²Π΅ΡΠ΅ xconfig, Π½Π°ΠΏΡΠ°Π²Π΅ΡΠ΅ gconfig)
- Π½Π°ΠΏΡΠ°Π²ΠΈ Linux-menuconfig - ΠΏΠΎΠ²ΠΈΠΊΠ°Ρ ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ.
- Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠΈΡΡΠ° - ΠΈΡΡΠΈΡΡΠΈ Π³ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΠ΄ ΠΈΠ·Π³ΡΠ°Π΄Π±Π°ΡΠ° (ΡΓ¨ ΡΡΠΎ Π΅ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°Π½ΠΎ Π½Π° ΠΈΠ·Π»Π΅Π·)
- Π½Π°ΠΏΡΠ°Π²ΠΈ - ΠΈΠ·Π³ΡΠ°Π΄ΠΈ ΡΠΈΡΡΠ΅ΠΌ. ΠΠ²Π° Π½Π΅ Π³ΠΈ ΡΠΎΠ±ΠΈΡΠ° Π²Π΅ΡΠ΅ ΡΠΎΠ±ΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ.
- Π½Π°ΠΏΡΠ°Π²ΠΈ defconfig_name - ΠΏΡΠ΅ΡΡΠ»Π΅ΡΠ΅ ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° defconfig
- Π½Π°ΠΏΡΠ°Π²ΠΈ Π»ΠΈΡΡΠ°-defconfigs - ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π° Π»ΠΈΡΡΠ° Π½Π° defconfigs
- Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΈΠ·Π²ΠΎΡ - ΡΠ°ΠΌΠΎ ΠΏΡΠ΅Π·Π΅ΠΌΠ΅ΡΠ΅ Π³ΠΈ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΎΠ½ΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ, Π±Π΅Π· Π³ΡΠ°Π΄Π΅ΡΠ΅.
- Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΏΠΎΠΌΠΎΡ - Π½Π°Π²Π΅Π΄ΠΈ ΠΌΠΎΠΆΠ½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ
ΠΠ°ΠΆΠ½ΠΈ Π±Π΅Π»Π΅ΡΠΊΠΈ ΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈ ΡΠΎΠ²Π΅ΡΠΈ
Buildroot Π½Π΅ Π³ΠΈ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π° Π²Π΅ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ! ΠΠ°ΡΠΎΠ°, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ°Π²ΠΈ ΡΠΈΡΡΠ°ΡΠΈΡΠ° ΠΊΠΎΠ³Π° Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅.
ΠΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ ΠΏΠΎΡΠ΅Π±Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΈΠΌΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ-ΠΎΠ±Π½ΠΎΠ²Π°. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΠΠΈΠ½ΡΠΊΡ:
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 - buildroot Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ
- $BASEDIR - Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ OUTPUT
- $HOST_DIR, $STAGING_DIR $, $TARGET_DIR - Π΄ΠΎΠΌΠ°ΡΠΈΠ½ fs, ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ fs, ΡΠ΅Π»Π½ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π° Π½Π° fs.
- $BUILD_DIR - Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ ΡΠΎ Π½Π΅ΠΎΡΠΏΠ°ΠΊΡΠ²Π°Π½ΠΈ ΠΈ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ
ΠΠΈΠ·ΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ°
buildroot ΠΈΠΌΠ° ΡΡΠ½ΠΊΡΠΈΡΠ° Π·Π° Π²ΠΈΠ·ΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ°.ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ Π΄ΠΈΡΠ°Π³ΡΠ°ΠΌ Π½Π° Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ, Π³ΡΠ°ΡΠΈΠΊ Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π° ΠΈ Π³ΡΠ°ΡΠΈΠΊ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½ΠΈ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π²ΠΎ ΡΠΈΠ½Π°Π»Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ. Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΡΠ΅ Π²ΠΎ ΡΠΎΡΠΌΠ° Π½Π° pdf-Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ (ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΎΠ΄ svn,png) Π²ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΎΡ Π·Π° ΠΈΠ·Π»Π΅Π·/Π³ΡΠ°ΡΠΈΠΊ.
ΠΡΠΈΠΌΠ΅ΡΠΈ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° Π²ΠΈΠ·ΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ°:
make graph-depends
ΠΈΠ·Π³ΡΠ°Π΄ΠΈ Π΄ΡΠ²ΠΎ Π·Π° Π·Π°Π²ΠΈΡΠ½ΠΎΡΡmake <pkg>-graph-depends
ΠΈΠ·Π³ΡΠ°Π΄Π΅ΡΠ΅ Π΄ΡΠ²ΠΎ Π·Π° Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ Π·Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΠΏΠ°ΠΊΠ΅ΡBR2_GRAPH_OUT=png make graph-build
Π²ΡΠ΅ΠΌΠ΅ Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ Π½Π° ΠΏΠ°ΡΡΠ΅Π»Π° ΡΠΎ PNG ΠΈΠ·Π»Π΅Π·make graph-size
Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΎΡ Π·Π° ΠΏΠ°ΡΡΠ΅Π»Π°
ΠΠΎΡΠΈΡΠ½ΠΈ ΡΠΊΡΠΈΠΏΡΠΈ
ΠΠΌΠ° ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ Π²ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΎΡ buildroot ΡΡΠΈΠ»ΠΈ ΡΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈ ΡΠΊΡΠΈΠΏΡΠΈ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΡΠΎΠΈ ΡΠΊΡΠΈΠΏΡΠ° ΡΡΠΎ ΡΠ° ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° ΡΠΎΡΠ½ΠΎΡΡΠ° Π½Π° ΠΎΠΏΠΈΡΠΈΡΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅. ΠΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ ΠΊΠΎΡΠΈΡΠ½ΠΎ ΠΊΠΎΠ³Π° Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ ΡΠΎΠΏΡΡΠ²Π΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ (ΠΎΠ²Π° ΡΠ΅ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²Π°ΠΌ ΠΏΠΎΠ΄ΠΎΡΠ½Π°). ΠΠ°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° 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
ΠΡΠ΅ΡΡΠ»Π΅ΡΠ΅ ΡΠ΅ Π½Π° ΠΎΠ²Π°Π° Π΄Π΅ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°:
make my_x86_board_defconfig
Π’Π°ΠΊΠ°, ΡΠ΅Π³Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π° (Π·Π°ΡΡΠ²Π°Π½Π° Π²ΠΎ .config Π²ΠΎ ΠΊΠΎΡΠ΅Π½ΠΎΡ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΎΡ buildroot) ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ° Π½Π° ΡΠ΅Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π° Π·Π° ΠΏΠΎΠ΄ΠΈΠ³Π°ΡΠ΅ x86-64 legacy(bios).
ΠΡΠ΄Π΅ Π΄Π° ΡΠ° ΠΊΠΎΠΏΠΈΡΠ°ΠΌΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π½Π° Linux (ΠΊΠΎΡΠΈΡΠ½Π° ΠΏΠΎΠ΄ΠΎΡΠ½Π°):
cp board/pc/linux.config board/my_x86_board/
ΠΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π° ΠΏΡΠ΅ΠΊΡ KConfig
ΠΠ° Π³ΠΎ Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ:
make menuconfig
ΠΠ΅ ΡΠ΅ ΠΎΡΠ²ΠΎΡΠΈ ΠΏΡΠΎΠ·ΠΎΡΠ΅ΡΠΎΡ KConfig. ΠΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° ΡΠΎ Π³ΡΠ°ΡΠΈΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ (Π½Π°ΠΏΡΠ°Π²ΠΈ nconfig, Π½Π°ΠΏΡΠ°Π²ΠΈ xconfig, Π½Π°ΠΏΡΠ°Π²ΠΈ gconfig):
ΠΠ»Π΅Π³ΡΠ²Π°ΠΌΠ΅ Π²ΠΎ ΠΏΡΠ²ΠΈΠΎΡ Π΄Π΅Π» Π¦Π΅Π»Π½ΠΈ ΠΎΠΏΡΠΈΠΈ. ΠΠ²Π΄Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠ΅Π»Π½Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π·Π° ΠΊΠΎΡΠ° ΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΠΈ ΠΈΠ·Π³ΡΠ°Π΄Π±Π°ΡΠ°.
ΠΠΏΡΠΈΠΈ Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ - ΡΡΠΊΠ° ΠΈΠΌΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ Π·Π° Π³ΡΠ°Π΄Π±Π°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°Π²Π΅Π΄Π΅ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ ΡΠΎ ΠΈΠ·Π²ΠΎΡΠ½ΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΈ, Π±ΡΠΎΡΠΎΡ Π½Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ²Π½ΠΈ Π½ΠΈΡΠΊΠΈ, ΠΎΠ³Π»Π΅Π΄Π°Π»Π° Π·Π° ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ΅ ΠΈΠ·Π²ΠΎΡΠ½ΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ. ΠΠ° Π³ΠΈ ΠΎΡΡΠ°Π²ΠΈΠΌΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ.
ΠΠ°Π½Π΅Ρ Π½Π° Π°Π»Π°ΡΠΊΠΈ β ΡΠ°ΠΌΠΈΡΠ΅ Π°Π»Π°ΡΠΊΠΈ Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΈ ΠΎΠ²Π΄Π΅. ΠΡΠΎΡΠΈΡΠ°ΡΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° Π½Π΅Π³ΠΎ.
Π’ΠΈΠΏ Π½Π° ΡΠΈΠ½ΡΠΈΡ ΡΠΎ Π°Π»Π°ΡΠΊΠΈ β ΡΠΈΠΏ Π½Π° ΠΊΠΎΡΠΈΡΡΠ΅Π½ ΡΠΈΠ½ΡΠΈΡ ΡΠΎ Π°Π»Π°ΡΠΊΠΈ. ΠΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ ΡΠΈΠ½ΡΠΈΡ Π½Π° Π°Π»Π°ΡΠΊΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ Π²ΠΎ buildroot ΠΈΠ»ΠΈ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ΅Π½ (ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ Π½Π°Π²Π΅Π΄Π΅ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΎΡ ΡΠΎ Π²Π΅ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈΠΎΡ ΠΈΠ»ΠΈ URL-ΡΠΎ Π·Π° ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ΅). ΠΠΎΡΡΠΎΡΠ°Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° ΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π΄Π° ΡΠ° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° Linaro Π½Π° Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈΠΎΡ ΡΠΈΠ½ΡΠΈΡ ΡΠΎ Π°Π»Π°ΡΠΊΠΈ.
C Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° β ΠΈΠ·Π±ΠΎΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C. Π Π°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠ΅Π»ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ Π·Π°Π²ΠΈΡΠΈ ΠΎΠ΄ ΡΠΎΠ°. ΠΠΎΠΎΠ±ΠΈΡΠ°Π΅Π½ΠΎ, ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ glibc, ΠΊΠΎΡ Π³ΠΈ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠΈ. ΠΠΎ, ΠΌΠΎΠΆΠ΅Π±ΠΈ Π΅ ΠΏΡΠ΅Π³ΠΎΠ»Π΅ΠΌ Π·Π° Π²Π³ΡΠ°Π΄Π΅Π½ ΡΠΈΡΡΠ΅ΠΌ, ΠΏΠ° ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ°Π°Ρ uglibc ΠΈΠ»ΠΈ musl. ΠΠ΅ ΠΈΠ·Π±Π΅ΡΠ΅ΠΌΠ΅ glibc (ΠΎΠ²Π° ΡΠ΅ Π±ΠΈΠ΄Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ ΠΏΠΎΠ΄ΠΎΡΠ½Π° Π·Π° Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ systemd).
ΠΠ°Π³Π»Π°Π²ΠΈΡΠ° Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΠΈ ΡΠ΅ΡΠΈΠΈ ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄Π΅Π½ΠΈ Π·Π°Π³Π»Π°Π²ΠΈΡΠ° Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ β ΠΌΠΎΡΠ° Π΄Π° ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ°Π°Ρ Π½Π° Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΡΡΠΎ ΡΠ΅ Π±ΠΈΠ΄Π΅ Π²ΠΎ ΡΠΎΡΡΠ°Π²Π΅Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ. ΠΠ° Π·Π°Π³Π»Π°Π²ΠΈΡΠ°ΡΠ° Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΡΠ° ΠΎΠ΄ΡΠ΅Π΄ΠΈΡΠ΅ ΠΏΠ°ΡΠ΅ΠΊΠ°ΡΠ° Π΄ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ tarball ΠΈΠ»ΠΈ git.
ΠΠ¦Π¦ ΠΠΠ ΠΠΠ ΠΠ ΠΠΠΠΠΠΠΠΠ Π β ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅ΡΠΎΡ ΡΡΠΎ ΡΠ΅ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅
ΠΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° C++ β ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΠΈ ΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° C++ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²ΠΎ ΡΠΈΡΡΠ΅ΠΌΠΎΡ. ΠΠ²Π° ΡΠ΅ Π½ΠΈ Π±ΠΈΠ΄Π΅ ΠΊΠΎΡΠΈΡΠ½ΠΎ Π²ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π°.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° gcc β ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅ΡΠΎΡ. ΠΠ°ΡΠ΅Π³Π° Π½Π΅ Π½ΠΈ ΡΡΠ΅Π±Π°.
Π‘ΠΈΡΡΠ΅ΠΌΡΠΊΠ°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° Π³ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΠΈΠ΄Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΠΊΡΠ΅ΠΈΡΠ°Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ:
ΠΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π±ΠΎΠ΄ΠΎΠ²ΠΈ ΡΠ΅ ΡΠΈΡΡΠΈ ΠΎΠ΄ ΡΠΈΡΡΠ»Π°ΡΠ°. ΠΡΠ΄Π΅ Π΄Π° ΠΎΠ±ΡΠ½Π΅ΠΌΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΠ²Π΅ ΡΠΎΡΠΊΠΈ:
ΠΠ°ΡΠ΅ΠΊΠ° Π΄ΠΎ ΡΠ°Π±Π΅Π»ΠΈΡΠ΅ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ - ΡΠ°Π±Π΅Π»Π° ΡΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ ΡΡΠΎ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°Π°Ρ (
ΠΡΠΈΠΌΠ΅Ρ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°. ΠΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈΠΎΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ ΡΠ΅ Π±ΠΈΠ΄Π΅ ΠΊΡΠ΅ΠΈΡΠ°Π½ ΡΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ Π·Π° Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°, Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ gid/uid, /bin/sh ΡΠΊΠΎΠ»ΠΊΠ°, ΡΡΠ°Π½Π΄Π°ΡΠ΄Π΅Π½ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ Π½Π° Π³ΡΡΠΏΠ°ΡΠ°, 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
ΠΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ Π·Π° ΠΏΡΠ΅ΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ Π½Π° root Π΄Π°ΡΠΎΡΠ΅ΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ - Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ ΠΏΡΠ΅ΠΊΠ»ΠΎΠΏΠ΅Π½ΠΈ Π½Π° Π²ΡΠ²ΠΎΡ Π½Π° ΡΠΎΠ±ΡΠ°Π½ΠΈΡΠ΅ target-fs. ΠΠΎΠ΄Π°Π²Π° Π½ΠΎΠ²ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΠΈ Π³ΠΈ Π·Π°ΠΌΠ΅Π½ΡΠ²Π° ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈΡΠ΅.
ΠΡΠΈΠ»Π°Π³ΠΎΠ΄Π΅Π½ΠΈ ΡΠΊΡΠΈΠΏΡΠΈ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ ΠΏΡΠ΅Π΄ Π΄Π° ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄Π°Ρ ΡΠ»ΠΈΠΊΠΈ ΠΎΠ΄ Π΄Π°ΡΠΎΡΠ΅ΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ - Π‘ΠΊΡΠΈΠΏΡΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Π°Ρ Π²Π΅Π΄Π½Π°Ρ ΠΏΡΠ΅Π΄ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΊΠ»ΠΎΠΏΠΈ Π΄Π°ΡΠΎΡΠ΅ΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ Π²ΠΎ ΡΠ»ΠΈΠΊΠΈ. ΠΠ° Π³ΠΎ ΠΎΡΡΠ°Π²ΠΈΠΌΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΎΡΠΎ ΠΏΡΠ°Π·Π½ΠΎ Π·Π°ΡΠ΅Π³Π°.
ΠΡΠ΄Π΅ Π΄Π° ΠΎΠ΄ΠΈΠΌΠ΅ Π²ΠΎ Π΄Π΅Π»ΠΎΡ ΠΠ΅ΡΠ½Π΅Π»
ΠΠΎΡΡΠ°Π²ΠΊΠΈΡΠ΅ Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΠΎΠ²Π΄Π΅. Π‘Π°ΠΌΠΈΠΎΡ ΠΊΠ΅ΡΠ½Π΅Π» Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ ΠΏΡΠ΅ΠΊΡ make linux-menuconfig.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ: ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΎΠ΄ ΠΏΠΎΠ½ΡΠ΄Π΅Π½ΠΈΡΠ΅, Π²Π½Π΅ΡΠ΅ΡΠ΅ ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° ΡΠ°ΡΠ½ΠΎ, Π½Π°Π²Π΅Π΄Π΅ΡΠ΅ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ ΠΈΠ»ΠΈ Π³ΠΎΡΠΎΠ²ΠΎ ΡΠ°ΡΠ±ΠΎΠ».
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ β ΠΏΠ°ΡΠ΅ΠΊΠ° Π΄ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° Π·Π° ΠΈΠ·Π±ΡΠ°Π½Π°ΡΠ° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈΠ»ΠΈ defocnfig ΠΎΠ΄ Linux. ΠΠ·Π²ΠΎΡΠΎΡ Π½Π° ΠΠΈΠ½ΡΠΊΡ ΡΠΎΠ΄ΡΠΆΠΈ Π·Π±ΠΈΡ Π½Π° Π΄Π΅ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΡΠ΄Π΅ΡΠ΅ ΠΎΠ½ΠΎΡ ΡΡΠΎ Π²ΠΈ ΡΡΠ΅Π±Π°
ΠΠ΅Π»ΠΎΡ Target ΠΏΠ°ΠΊΠ΅ΡΠΈ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠΎΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠ΅ ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π°Ρ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ ΡΡΠΎ ΡΠ΅ Π³ΡΠ°Π΄ΠΈ. ΠΠ° ΡΠ° ΠΎΡΡΠ°Π²ΠΈΠΌΠ΅ Π·Π°ΡΠ΅Π³Π° Π½Π΅ΠΏΡΠΎΠΌΠ΅Π½Π΅ΡΠ°. ΠΠΎΠ΄ΠΎΡΠ½Π° ΡΠ΅ Π³ΠΈ Π΄ΠΎΠ΄Π°Π΄Π΅ΠΌΠ΅ Π½Π°ΡΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π½Π° ΠΎΠ²Π°Π° Π»ΠΈΡΡΠ°.
Π‘Π»ΠΈΠΊΠΈ ΠΎΠ΄ Π΄Π°ΡΠΎΡΠ΅ΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ - ΡΠΏΠΈΡΠΎΠΊ Π½Π° ΡΠ»ΠΈΠΊΠΈ ΠΎΠ΄ Π΄Π°ΡΠΎΡΠ΅ΡΠ½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ ΡΡΠΎ ΡΠ΅ ΡΠ΅ ΡΠΎΠ±Π΅ΡΠ°Ρ. ΠΠΎΠ΄Π°Π΄Π΅ΡΠ΅ iso ΡΠ»ΠΈΠΊΠ°
ΠΠΎΠ΄ΠΈΠ³Π½ΡΠ²Π°ΡΠΈ - ΠΈΠ·Π±ΠΎΡ Π½Π° ΠΏΠΎΠ΄ΠΈΠ³Π½ΡΠ²Π°ΡΠΈ Π·Π° ΡΠΎΠ±ΠΈΡΠ°ΡΠ΅. ΠΡΠ΄Π΅ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΠΌΠ΅ ΠΈΠ·ΠΎΠ»ΠΈΠ½ΠΈΠΊΡ
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° Systemd
Systemd ΡΡΠ°Π½ΡΠ²Π° Π΅Π΄Π΅Π½ ΠΎΠ΄ ΡΡΠΎΠ»Π±ΠΎΠ²ΠΈΡΠ΅ Π½Π° Linux, Π·Π°Π΅Π΄Π½ΠΎ ΡΠΎ ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΠΈ glibc. ΠΠ°ΡΠΎΠ°, ΡΠ° ΠΏΡΠ΅ΡΡΠ»ΠΈΠ² Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΠΏΠΎΡΡΠ°Π²ΠΊΠ° Π²ΠΎ ΠΏΠΎΡΠ΅Π±Π½Π° ΡΡΠ°Π²ΠΊΠ°.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΎ ΠΏΡΠ΅ΠΊΡ make menuconfig, ΠΏΠΎΡΠΎΠ° Target ΠΏΠ°ΠΊΠ΅ΡΠΈ β Π‘ΠΈΡΡΠ΅ΠΌΡΠΊΠΈ Π°Π»Π°ΡΠΊΠΈ β systemd. ΠΠ²Π΄Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΠ΄ΡΠ΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΈ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΡΡΠ»ΡΠ³ΠΈ ΡΠ΅ ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π°Ρ ΠΈ ΡΡΠ°ΡΡΡΠ²Π°Π°Ρ ΠΊΠΎΠ³Π° ΡΠ΅ ΡΠ΅ ΡΡΠ°ΡΡΡΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ.
ΠΠ°ΡΡΠ²ΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ
ΠΠ²Π°Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° ΡΠ° Π·Π°ΡΡΠ²ΡΠ²Π°ΠΌΠ΅ ΠΏΡΠ΅ΠΊΡ KConfig.
ΠΠΎΡΠΎΠ° Π·Π°ΡΡΠ²Π°ΡΡΠ΅ ΡΠ° Π½Π°ΡΠ°ΡΠ° Π΄Π΅ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°:
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) ΠΏΠΎΠ΄ΠΈΠ³Π°ΡΠ΅ ΠΎΠ΄ Π¦Π-ΡΠΎ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ:
Π Π°Π±ΠΎΡΠΈ ΠΎΠ΄ ΡΠΎΠ±ΡΠ°Π½ΠΎΡΠΎ ΠΈΠ·ΠΎ:
Π‘ΠΏΠΈΡΠΎΠΊ Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π΅Π½ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈ
- ΠΡΠΈΡΠ°ΡΠ½ΠΈΠΊ Π·Π° Buildroot
ΠΠ·Π²ΠΎΡ: www.habr.com