Flash uefi boot: Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΡ ΡΠ»Π΅ΡΠΊΡ Ρ Windows 10 Π΄Π»Ρ UEFI ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
Secure Boot β ESP32 β β Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ESP-IDF, ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
ΠΠ°ΠΆΠ½ΠΎ
ΠΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π² ΡΡΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ Secure Boot V1 (ΡΡ
Π΅ΠΌΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ AES). ESP32 Revision 3 ΠΈ Π²ΡΡΠ΅, ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡ
Π΅ΠΌΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Secure Boot V2.
Π‘ΠΌ. Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Secure Boot V2 Π΄Π»Ρ ESP32 Revision 3 ΠΈΠ»ΠΈ ESP32-S2.
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° ΡΠΈΠΏΠ΅. ΠΠ°Π½Π½ΡΠ΅, Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΠ΅ ΠΈΠ· ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ±ΡΠΎΡΠ΅.
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΎΡΠ΄Π΅Π»Π΅Π½Π° ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ Π±Π΅Π· ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Ρ ΠΎΠ±Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈΒ».
ΠΠ°ΠΆΠ½ΠΎ
ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ Π²Π°ΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ
ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π²Π°ΡΠ΅Π³ΠΎ ESP32. ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΡΡΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΈ ΠΏΠΎΠΉΠΌΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ.
Π€ΠΎΠ½
ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π²ΠΎ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°ΡΠΈΡΠ΅Π½ ΠΎΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Π°ΠΆΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ (Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ) Π² Efuses, Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌ Π² ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ.
Efuses ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° (Π² efuse BLOCK2), Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ Efuse (ABS_DONE_0) (Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² 1), ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΡΠΈΠΏΠ΅. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΏΡΠ΅Π΄ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅Π»ΡΡ eFuse ΡΠΌ. Π² Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ESP32 9.0024 > ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ eFuse (eFuse) [PDF].
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ESP-IDF.
ΠΠ±Π° ΡΡΠ°ΠΏΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ (Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ°Π·Π΄Π΅Π»Π° ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ) ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² Β«ΡΠ΅ΠΏΠΎΡΠΊΠ΅ Π΄ΠΎΠ²Π΅ΡΠΈΡΒ».
ΠΠ±Π·ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ
ΠΡΠΎ ΠΎΠ±ΡΠΈΠΉ ΠΎΠ±Π·ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΠΎΡΠ°Π³ΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠ°ΠΊ Π²ΠΊΠ»ΡΡΠΈΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡΒ». ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ββΠ² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈΒ»:
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² ΠΌΠ΅Π½Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈΒ».
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ°Π·Ρ ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Β«ΠΠ°ΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈΒ» β ΡΡΠΎ ΠΏΡΡΡ ΠΊ ΠΏΠ°ΡΠ΅ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ/Π·Π°ΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ECDSA Π² ΡΠ°ΠΉΠ»Π΅ ΡΠΎΡΠΌΠ°ΡΠ° PEM.
ΠΠ±ΡΠ°Π· Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ esp-idf Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° (ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ) ΠΊΠ»ΡΡΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡΠΎΡ ΠΎΠ±ΡΠ°Π· Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠΈΠ³Π°Π΅Ρ ΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ 0x1000.
ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ:
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠ»ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° (ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΠ‘Π§, Π·Π°ΡΠ΅ΠΌ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠΉ Π² Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠΌ ΠΎΡ ΡΡΠ΅Π½ΠΈΡ/Π·Π°ΠΏΠΈΡΠΈ ΡΠ°ΠΉΠ»Π΅ efuse) ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ.
ΠΠ°ΠΉΠ΄ΠΆΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈΠ· ΠΊΠ»ΡΡΠ°, IV ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π° Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°.
ΠΠ°ΡΠΈΡΠ΅Π½Π½ΡΠΉ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ ΠΏΡΠΎΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ 0x0 Π²ΠΎ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ.
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΠ»Ρ efuses Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ JTAG ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ROM BASIC (Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ).
ΠΠ°Π³ΡΡΠ·ΡΠΈΠΊ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ, Π·Π°ΠΏΠΈΡΡΠ²Π°Ρ efuse ABS_DONE_0. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΌ (ΡΠΈΠΏ Π±ΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΎΠ±ΡΠ°Π· Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ).
ΠΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠ°Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΠΠ£ Π²ΠΈΠ΄ΠΈΡ, ΡΡΠΎ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΉ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π±ΡΠ» Π·Π°ΠΏΠΈΡΠ°Π½, ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠΉ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ 0x0 ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΡΡΠΎΠ±Ρ ΡΡΠ°Π²Π½ΠΈΡΡ Π΅Π³ΠΎ Ρ Π½ΠΎΠ²ΡΠΌ Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΡΠΌ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠΎΠΌ. ΠΡΠ»ΠΈ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ, Π·Π°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π°. ΠΠ°ΠΉΠ΄ΠΆΠ΅ΡΡ ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ, Π° ΡΠ°ΡΡΡΠΈΡΠ°Π½Π½ΡΠΉ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ Π½Π΅ ΡΠΈΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ.
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈΒ».
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠ»ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ (ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΡΡΠΎΠ΅Π½ Π² ΡΠ°ΠΌ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°) Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌΠΎΠΉ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ ΠΎΠ±ΡΠ°Π·Π°ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ.
ΠΠ»ΡΡΠΈ
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ»ΡΡΠΈ:
Β«ΠΊΠ»ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°Β» β ΡΡΠΎ 256-Π±ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ AES, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² Π±Π»ΠΎΠΊΠ΅ Efuse 2. ΠΠ°Π³ΡΡΠ·ΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΌ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠ»ΡΡ ΠΈΠ· Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π», ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΅Π³ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΎΡ ΠΊΠ»ΡΡ, ΡΠΌ. Re-Flashable Software Bootloader). Efuse, ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ ΡΡΠΎΡ ΠΊΠ»ΡΡ, Π·Π°ΡΠΈΡΠ΅Π½ ΠΎΡ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ (ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Ρ Π΄ΠΎΡΡΡΠΏ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ) Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ°.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡ Π΅ΠΌΠ° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Efuse Block 2 ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«ΠΠ΅ΡΒ», ΠΈ Π² ΡΡΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ Ρ ΡΠ°Π½ΠΈΡΡΡ 256-Π±ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ.
ΠΠ° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ESP32 Π΄Π»Ρ ΡΡ Π΅ΠΌΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 3/4 Encoding (CODING_SCHEME efuse ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 1), ΠΈ Π² ΡΡΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ ΡΠ°Π½ΠΈΡΡΡΡ 192-Π±ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ESP32. > ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ eFuse (eFuse) > Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ coding_scheme [PDF].
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ 256-Π±ΠΈΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , 192-Π±ΠΈΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΡΠ°ΡΡΠΈΡΡΡΡΡΡ Π·Π° ΡΡΠ΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π±ΠΈΡΠΎΠ² (Π΄Π΅ΡΠ°Π»Π΅ΠΉ).
Β«ΠΠ»ΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈΒ» β ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΠΏΠ°ΡΠ° ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈ Π·Π°ΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ΅ΠΉ ECDSA (ΡΠΌ. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΎΠ±ΡΠ°Π·Π°) Π² ΡΠΎΡΠΌΠ°ΡΠ΅ PEM.
ΠΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ ΠΈΠ· ΡΡΠΎΠΉ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ (Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ, Π½ΠΎ Π½Π΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ) ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ°ΠΏΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ (ΡΠ°Π±Π»ΠΈΡΠ° ΡΠ°Π·Π΄Π΅Π»ΠΎΠ², ΠΎΠ±ΡΠ°Π· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ) ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ, Π΅Π³ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π΅ΡΠΆΠ°ΡΡ Π² ΡΠ΅ΠΊΡΠ΅ΡΠ΅.
ΠΠ°ΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ ΠΈΠ· ΡΡΠΎΠΉ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡΡΡ ΠΊΠ°ΠΊ Π·Π°ΠΊΡΡΡΡΠΉ , ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π»ΡΠ±ΠΎΠΉ, Ρ ΠΊΠΎΠ³ΠΎ Π΅ΡΡΡ ΡΡΠΎΡ ΠΊΠ»ΡΡ, ΠΌΠΎΠΆΠ΅Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² Π»ΡΠ±ΠΎΠΌ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ΅, Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌ Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΠΎΡΠΊΡΡΡΠΎΠΌ ΠΊΠ»ΡΡΠ΅.
Π Π°Π·ΠΌΠ΅Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°
ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ/ΠΈΠ»ΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ². Π‘ΠΌ. Π Π°Π·ΠΌΠ΅Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°.
ΠΠ°ΠΊ Π²ΠΊΠ»ΡΡΠΈΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΌΠ΅Π½Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ Β«ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈΒ» ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Β«ΠΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²Π°Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ°Β». (Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Β«ΠΠ΅ΡΠ΅ΠΏΡΠΎΡΠΈΠ²Π°Π΅ΠΌΡΠΉΒ», ΡΠΌ. Β«ΠΠ΅ΡΠ΅ΠΏΡΠΎΡΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΒ».)
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΈΠΌΡ Π΄Π»Ρ ΠΊΠ»ΡΡΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡΠ° ΠΎΠΏΡΠΈΡ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. Π€Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π³Π΄Π΅ ΡΠ³ΠΎΠ΄Π½ΠΎ Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π€Π°ΠΉΠ» Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΌΠ΅Π½Ρ (ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ). ΠΠ±ΡΠ°ΡΠΈΡΠ΅ ΠΎΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Β«ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°Β», ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·. ΠΠ°ΡΠ΅ΠΌ Π²ΡΠΉΠ΄ΠΈΡΠ΅ ΠΈΠ· menuconfig ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅
make
, Π΅ΡΠ»ΠΈ ΠΊΠ»ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΡΠ΅ΡΠ΅Π·espsecure.py generate_signing_key
.
.
ΠΠ°ΠΆΠ½ΠΎ
ΠΠ»ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΡΡΠΈΠΉ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π», Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π΄Π»Ρ ΠΠ‘ ΠΈ Π΅Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Python ( /dev/urandom Π² OSX/Linux ΠΈ CryptGenRandom() Π² Windows). ΠΡΠ»ΠΈ ΡΡΠΎΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» ΡΠ»Π°Π±, ΡΠΎ Π·Π°ΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ»Π°Π±ΡΠΌ.
ΠΠ°ΠΆΠ½ΠΎ
ΠΠ»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ
ΡΡΠ΅Π΄ ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ openssl ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ.
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ
idf.py
, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ Π±ΡΠ΄ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌesptool.py write_flash
.
ΠΠΎΠ³Π΄Π° Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π³ΠΎΡΠΎΠ²Ρ ΠΏΡΠΎΡΠΈΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π²Π΅ΡΡΠΈ Π΅Π΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, make Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠΎΡ ΡΠ°Π³) ΠΈ Π΄ΠΎΠΆΠ΄ΠΈΡΠ΅ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΡΠΎ ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²Π°Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ°, ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ! .
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅
idf.py flash
, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΈ ΠΏΡΠΎΡΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ°Π· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ±ΡΠ°Π· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠ°Π³Π΅ 4.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
idf.py flash
Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ, Π΅ΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ°.
Π‘Π±ΡΠΎΡΡΡΠ΅ ESP32, ΠΈ ΠΎΠ½ Π·Π°Π³ΡΡΠ·ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΡΠΈΠΏΠ΅, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΠΎΠ±ΡΠ°Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΈΠ· ESP32, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈΠ·-Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΡΠΈΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ°Ρ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ ΠΎΠ±ΡΠ°Π· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ Π½Π΅ΡΡΠ°ΡΡΠ½ΡΡ ΡΠ»ΡΡΠ°Π΅Π² Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½Π°.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΡΠ»ΠΈ ESP32 ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΎΠ½ ΡΠ½ΠΎΠ²Π° Π·Π°ΠΏΡΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅.
ΠΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠ°Ρ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡ, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ Π»ΠΈ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°), Π° Π·Π°ΡΠ΅ΠΌ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ ΠΎΠ±ΡΠ°Π· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΡΡΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΊΠ»ΡΡΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ).
ΠΠ΅ΡΠ΅ΠΏΡΠΎΡΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
Β«ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ°: ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²Π°Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ°Β» β ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ². Π ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Ρ ΡΠ°Π½ΠΈΡΡΡ Π²Π½Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ Secure Boot: Reflashable. ΠΡΠΎΡ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ°ΠΉΠ» Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°ΠΉΠ» ΠΊΠ»ΡΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° ΠΈ Π·Π°ΡΠΈΡΠ°ΡΡ Π΄Π»Ρ Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΠ΅ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΡ.
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ esp-idf ΡΡΠΎΡ 256-Π±ΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΊΠ»ΡΡΠ° ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΠΊΠ»ΡΡΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ECDSA, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ (ΡΠΌ. ΡΠ°Π³ Β«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈΒ» Π½ΠΈΠΆΠ΅). ΠΠ°ΠΉΠ΄ΠΆΠ΅ΡΡ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° SHA-256 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° Π² efuse (ΠΊΠ°ΠΊ Π΅ΡΡΡ Π΄Π»Ρ ΡΡ
Π΅ΠΌΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ None ΠΈΠ»ΠΈ ΡΡΠ΅ΠΊΠ°Π΅ΡΡΡ Π΄ΠΎ 192 Π±Π°ΠΉΡΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ 3/4). ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ/Π·Π°ΡΠΈΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π·Π°ΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
Π₯ΠΎΡΡ ΡΡΠΎ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΡ Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ Π½Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅. ΠΠ°ΡΠΈΠ°Π½Ρ Β«ΠΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²Π°Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ°Β» ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ ΡΡΠ΅Π΄.
Π§ΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΡΠΈΠ²Π°Π΅ΠΌΡΠΉ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ:
Π ΠΌΠ΅Π½Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°Β» -> CONFIG_SECURE_BOOT -> CONFIG_SECURE_BOOT_V1_ENABLED -> CONFIG_SECURE_BOOTLOADER_MODE -> Reflashable.
ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ CONFIG_SECURE_BOOTLOADER_KEY_ENCODING Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡ Π΅ΠΌΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ. Π‘Ρ Π΅ΠΌΠ° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π² ΡΡΡΠΎΠΊΠ΅
Features
ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈesptool.py
ΠΊ ΡΠΈΠΏΡ, Π»ΠΈΠ±ΠΎ Π² ΡΡΡΠΎΠΊΠ΅ΠΡΠ²ΠΎΠ΄ ΡΠ²ΠΎΠ΄ΠΊΠΈ espefuse.py
.Π§ΡΠΎΠ±Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡΡΡ ΠΊ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π² ΠΌΠ΅Π½Ρ Β«Secure Boot ConfigurationΒ».
ΠΠ°ΠΏΡΡΡΠΈΡΡ
Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ idf.py
. ΠΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ ΡΠ°ΠΉΠ» Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΈΠ· Π·Π°ΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ. ΠΡΠ΄ΡΡ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½Ρ Π΄Π²Π° Π½Π°Π±ΠΎΡΠ° ΡΠ°Π³ΠΎΠ² ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ β ΠΏΠ΅ΡΠ²ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠ°Π³ΠΎΠ² Π²ΠΊΠ»ΡΡΠ°Π΅Ρespefuse.py burn_key secure_boot_v1 path_to/secure-bootloader-key-xxx.bin
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΊΠ»ΡΡΠ° Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° Π² efuse. (ΠΡΠΎΡΠΈΠ²ΠΊΠ° ΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° β ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ.) ΠΡΠΎΡΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΠ°Π³ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΡΠΈΡΠ°Π½Π½ΡΠΌ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠΎΠΌ (ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ).ΠΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎΠΉ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Ρ ΡΠ°Π³Π° 6, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΈ Π²ΠΊΠ»ΡΡΠΈΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ. ΠΠ½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡΠ΅ Π·Π° Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΠΆΡΡΠ½Π°Π»Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΡΠ΅ΡΠ΅Π· espsecure.py generate_signing_key
. ΠΡΠΈ ΡΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° python-ecdsa, ΠΊΠΎΡΠΎΡΠ°Ρ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Python os.urandom() Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ
ΡΠΈΡΠ΅Π».
ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ ΠΊΠ»ΡΡΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½Π° (Π°) ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈ (Π±) ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°. ΠΠ»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΡΠ½ΡΡΠΎΠΏΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΡΡΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ EC.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ openssl:
`
openssl ecparam -name prime256v1 -genkey -noout -out my_secure_boot_signing_key.pem
`
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠ»ΡΡΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ.
Π£Π΄Π°Π»Π΅Π½Π½Π°Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
ΠΠ»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ
ΡΠ±ΠΎΡΠΎΠΊ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ, Π° Π½Π΅ ΠΊΠ»ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ (ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ esp-idf ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ espsecure.py ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π΄Π°Π½Π½ΡΡ
ΡΠ°Π±Π»ΠΈΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ, ΠΎΡΠΊΠ»ΡΡΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Β«ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈΒ». ΠΠ°ΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ (ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ) Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ Π² Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ (ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ OTA).
Π§ΡΠΎΠ±Ρ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ ΠΈΠ· Π·Π°ΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°:
espsecure.py extract_public_key --keyfile PRIVATE_SIGNING_KEY PUBLIC_VERIFICATION_KEY
ΠΡΡΡ ΠΊ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΌΡ ΠΊΠ»ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΌΠ΅Π½Ρ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈΒ», ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ±ΠΎΡΠΊΠΈ ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ°ΠΏΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ espsecure.py:
espsecure.py sign_data --keyfile PRIVATE_SIGNING_KEY BINARY_FILE
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π²ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ βoutput , ΡΡΠΎΠ±Ρ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ»:
espsecure.py sign_data --keyfile PRIVATE_SIGNING_KEY --output SIGNED_BINARY_FILE BINARY_FILE
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅
Π‘Π³Π΅Π½Π΅ΡΠΈΡΡΠΉΡΠ΅ ΠΊΠ»ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΡΠ½ΡΡΠΎΠΏΠΈΠΈ.
ΠΡΠ΅Π³Π΄Π° Π΄Π΅ΡΠΆΠΈΡΠ΅ ΠΊΠ»ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π² ΡΠ΅ΠΊΡΠ΅ΡΠ΅. Π£ΡΠ΅ΡΠΊΠ° ΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΏΠΎΡΡΠ°Π²ΠΈΡ ΠΏΠΎΠ΄ ΡΠ³ΡΠΎΠ·Ρ ΡΠΈΡΡΠ΅ΠΌΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ.
ΠΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠΉΡΠ΅ ΡΡΠ΅ΡΡΠΈΠΌ Π»ΠΈΡΠ°ΠΌ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ Π·Π° ΠΊΠ°ΠΊΠΈΠΌΠΈ-Π»ΠΈΠ±ΠΎ Π°ΡΠΏΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ espsecure.py. ΠΠ±Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΡΠ·Π²ΠΈΠΌΡ Π΄Π»Ρ ΡΠ°ΠΉΠΌΠΈΠ½Π³Π° ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ Π°ΡΠ°ΠΊ ΠΏΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ ΠΊΠ°Π½Π°Π»Π°ΠΌ.
ΠΠΊΠ»ΡΡΠΈΡΠ΅ Π²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. Π Π½ΠΈΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ JTAG, ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° BASIC ROM ΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° UART.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ.
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ:
ΠΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ
ΠΠ΅ΡΠ²ΡΠΉ ΡΡΠ°ΠΏ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ (ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°) Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ. ΠΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ESP32 ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π±Π°ΠΉΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π».
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠ° ΠΈΠ· Π΄Π°Π½Π½ΡΡ (ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π· Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° ΠΈΠ· ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ) Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡΡΠ°, Ρ ΡΠ°Π½ΡΡΠ΅Π³ΠΎΡΡ Π² Π±Π»ΠΎΠΊΠ΅ Efuse 2. ΠΠ»ΡΡ Π² Efuse ΠΌΠΎΠΆΠ΅Ρ (ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½) Π±ΡΡΡ Π·Π°ΡΠΈΡΠ΅Π½ ΠΎΡ ΡΡΠ΅Π½ΠΈΡ/Π·Π°ΠΏΠΈΡΠΈ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΡΡΠΎΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅ ΡΠΌ. ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°.
ΠΠ°ΠΉΠ΄ΠΆΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΠΈΡΠ°Π½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Efuse ABS_DONE_0 ΡΠ°Π²Π½ΠΎ , Π° Π½Π΅ (Ρ.Π΅. ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ 0).
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ ΠΈΠ· Π΄Π°Π½Π½ΡΡ (ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΠΎΠ±ΡΠ°Π· Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° ΠΈΠ· ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΡ ΠΆΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌ, ΡΡΠΎ ΠΈ Π² ΡΠ°Π³Π΅ 2, ΠΈ ΡΡΠ°Π²Π½ΠΈΡΠ΅ Π΅Π³ΠΎ Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΡΠΈΡΠ°Π½Π½ΡΠΌ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠΎΠΌ, Ρ ΡΠ°Π½ΡΡΠΈΠΌΡΡ Π² Π±ΡΡΠ΅ΡΠ΅ (ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ 0x0). ΠΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ true/false, Π½Π΅ Π΄Π΅Π»Π°Ρ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Π° Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Efuse ABS_DONE_0.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Β«ΠΎΠ±ΡΠ°Π·Π°Β» Π΄Π²ΠΎΠΈΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΉΠ΄ΠΆΠ΅ΡΡ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΡΠ΅Π·ΡΠΌΠ΅Β» Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ. 9) Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌ, Π° Π½Π΅ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌ.
Π‘ΡΠΈΡΠ°ΡΡ ΠΊΠ»ΡΡ AES ΠΈΠ· Π±Π»ΠΎΠΊΠ° efuse 2 Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π±Π°ΠΉΡΠΎΠ².
) 9)
ΠΡΡΠΈΡΠ»ΠΈΡΡ SHA-512 Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°.
ΠΡΡ ΠΎΠ΄Π½ΠΎΠΉ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 192 Π±Π°ΠΉΡΠ° Π΄Π°Π½Π½ΡΡ : 128-Π±Π°ΠΉΡΠΎΠ²ΡΠΉ IV, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ 64-Π±Π°ΠΉΡΠΎΠ²ΡΠΉ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ SHA-512.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΠ΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ECDSA, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² RFC 6979.
ΠΡΠΈΠ²Π°Ρ β NIST256p (openssl Π½Π°Π·ΡΠ²Π°Π΅Ρ ΡΡΡ ΠΊΡΠΈΠ²ΡΡ Β«prime256v1Β», ΠΈΠ½ΠΎΠ³Π΄Π° Π΅Π΅ ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡ secp256r1).
Π₯ΡΡ-ΡΡΠ½ΠΊΡΠΈΡ SHA256.
ΠΠ»ΡΡΠ΅Π²ΠΎΠΉ ΡΠΎΡΠΌΠ°Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ, β PEM.
ΠΠΎΠ΄ΠΏΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ 68 Π±Π°ΠΉΡΠΎΠ² β 4-Π±Π°ΠΉΡΠΎΠ²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Π²Π΅ΡΡΠΈΠΈ (Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½ΡΠ»Π΅Π²ΠΎΠ΅), Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΡΡ 64 Π±Π°ΠΉΡΠ° Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ. ΠΡΠΈ 68 Π±Π°ΠΉΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΠΊ ΠΎΠ±ΡΠ°Π·Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΡΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ².
Π ΡΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π° Π² ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ esp-idf, ΠΏΠΎΡΡΠΎΠΌΡ make
Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ°. ΠΠ°Π³ΡΡΠ·ΡΠΈΠΊ idf.
ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°, Π΅ΡΠ»ΠΈ Π΄Π»Ρ Π½Π΅Π³ΠΎ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΎ menuconfig. py
ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ espsecure.py
Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΡ
ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ ΠΈ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠΎΠ².
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π·:
espsecure.py sign_data --keyfile ./my_signing_key.pem --output ./image_signed.bin image-unsigned.bin
ΠΠ»ΡΡΠ΅Π²ΠΎΠΉ ΡΠ°ΠΉΠ» β ΡΡΠΎ ΡΠ°ΠΉΠ» PEM, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π·Π°ΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ECDSA.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠ° Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°:
espsecure.py Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ_Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ_Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ --keyfile ./securebootkey.bin --output ./bootloader-digest.bin build/bootloader/bootloader.bin
ΠΠ»ΡΡΠ΅Π²ΠΎΠΉ ΡΠ°ΠΉΠ» β ΡΡΠΎ 32-Π±Π°ΠΉΡΠΎΠ²ΡΠΉ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΠΊΠ»ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ espsecure.pydigest_secure_bootloader
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ°ΠΊ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ, ΡΠ°ΠΊ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΉ ΠΊ Π½Π΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ. Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ ΠΏΠ»ΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ:
esptool.py write_flash 0x0 bootloader-digest.bin
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ
ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π±Π΅Π· ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π°ΡΠ°ΠΊΡ Β«Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡΒ», ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΠ΄ΠΊΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΠ±ΡΠ°Π·Π°. ΠΠΎΡΡΠΎΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΌΠ΅ΡΡΠ΅.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±Π΅Π· Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ
Π¦Π΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π΄Π°ΠΆΠ΅ Π±Π΅Π· Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡ ΠΆΠ΅ ΡΡ
Π΅ΠΌΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ Π·Π°ΡΠΈΡΠ°.
boot, Π½ΠΎ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, Π½Π΅ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΡΠΈΡΠ΅Π½ΠΎ
ΠΏΡΠΎΡΠΈΠ² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΡΠΈ, Π½ΠΎ Π½Π΅ ΠΏΡΠΎΡΠΈΠ² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°. ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΡΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ. ΠΠΎΡΠ°Π³ΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΠ°ΠΊ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΈ, ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ: Π΅ΡΠ»ΠΈ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½, ΠΏΠΎΠ΄ΠΏΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ esp_ota_ops.h ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ OTA. ΠΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ°, ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π²ΡΠ΅Π³Π΄Π° Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½. ΠΡΠ»ΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π°, ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΠ΅ΡΠ΅Π²ΡΡ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠΎΠ², ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅Π»ΠΊΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ OTA.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅: Π΅ΡΠ»ΠΈ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½, Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ Π±ΡΠ΄Π΅Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π΅Π³ΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ. ΠΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ°, ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π²ΡΠ΅Π³Π΄Π° Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½. ΠΡΠ»ΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π°, ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π·Π°Ρ ΠΎΡΡΡ ΠΎΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ.
ΠΠ°ΠΊ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠΊΡΡΡΡ ΠΌΠ΅Π½Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° -> Π€ΡΠ½ΠΊΡΠΈΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ -> ΠΠΊΠ»ΡΡΠΈΡΡ CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT
ΠΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Β«ΠΠ°Π³ΡΡΠ·ΡΠΈΠΊ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΒ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Β«ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈΒ» Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Β«Π’ΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΒ», ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ±ΠΎΡΠΊΠΈ. Π€Π°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π² Β«ΠΠ°ΠΊΡΡΡΠΎΠΌ ΠΊΠ»ΡΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈΒ» Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΎΠ±ΡΠ°Π·Π°.
ΠΡΠ»ΠΈ Π²Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Β«ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈΒ», Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²Π²Π΅ΡΡΠΈ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ², Π² Β«ΠΠ»ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΎΡΠΊΡΡΡΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈΒ».
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ, ΡΠ»Π΅Π΄ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈΒ»; ΠΎΡΠΊΡΡΡΡΠΉ ΠΊΠ»ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Π£Π΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΡΠ»Π°Π΄ΠΊΠ° JTAG
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ°, ΠΎΡΠ»Π°Π΄ΠΊΠ° JTAG ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· eFuse. ΠΠ°Π³ΡΡΠ·ΡΠΈΠΊ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅, Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ½ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ JTAG Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ JTAG Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ»ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ.
usb — ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»ΡΡ-Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ BIOS/UEFI Ρ ΠΏΠΎΠ»Π½ΡΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΈΡΠΊΠ°
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΡΡΠ³ΠΈΠ΅ ΠΎΡΠ²Π΅ΡΡ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ Π΄ΠΈΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ-ΡΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΡ . ΠΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ»ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ. Π― ΡΠ΄Π΅Π»Π°Π» ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ QEMU-KVM. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ββΠ²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° QEMU-KVM Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΡΠΎΠ»Π΅ Ubuntu ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ubuntu, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ QEMU-KVM, ΡΠΎ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΆΠ΅ΡΡΠΊΠΈΡ Π΄ΠΈΡΠΊΠΎΠ² ΠΈΠ·Π½ΡΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°.
Π ΠΎΠ±ΡΠ΅ΠΌ, Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° (ΠΠ) ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΡΠΌΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°ΠΌΠΈ Ubuntu Π½Π° USB. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ Π½Π°ΡΡΡΠΎΡ Π΅Π³ΠΎ, Ρ ΠΌΠΎΠ³Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΏΠΎΠ»Π½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ USB Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΅Π΅, Π½Π΅ Π·Π°ΠΊΡΡΠ²Π°Ρ ΡΠ²ΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΡΠΎΠ» Ubuntu.
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
- QEMU-KVM ΠΠΈΡΠΏΠ΅ΡΡΠ΅Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π½Π° Ubuntu 20.04.
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ:
sudo apt install --install-recommends virt-manager
- ΠΡΡΡΠΎΠΉ USB-Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Ubuntu
ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ΅ΡΡΠ° Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ - ISO-ΠΎΠ±ΡΠ°Π· Ubuntu 20.04, Ρ
ΡΠ°Π½ΡΡΠΈΠΉΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π³Π΄Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ QEMU-KVM.
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ΠΠ°ΠΉΡΠΈ ΠΈΠΌΡ USB-ΡΡΡΡΠΎΠΉΡΡΠ²Π°
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΈΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° USB-Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ. ΠΡΡΠ°Π²ΡΡΠ΅ USB-Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ ΠΈ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Gnome Disks :
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΌΠΎΠΉ USB-Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ /dev/sdc
. ΠΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΡΡΠ³ΠΈΠΌ. ΠΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π²Π°ΠΌ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π³Π΅.
Π Π°Π·ΠΌΠΎΠ½ΡΠΈΡΡΠΉΡΠ΅ Π²ΡΠ΅ Π±Π΅Π· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ° ΠΈ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ² Π΅Π΅ Π² ΡΠ΅ΡΠ½ΡΠΉ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ.
ΠΠ°ΠΆΠ½ΠΎ ΡΠ°Π·ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ USB-ΡΠ°Π·Π΄Π΅Π»Ρ USB.
ΠΡΠΎΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Ubuntu Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ USB-Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΌΠΎΠ³ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ USB-Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Π΅ΠΉ
ΠΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Π²Π°ΠΌ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΆΠ΅ΡΡΠΊΠΈΠΉ Π΄ΠΈΡΠΊ (ΡΠ°ΠΉΠ»), Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ββΠΠ‘. ΠΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ USB ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΠΌ Ubuntu. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½ΠΎΠ²Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ Ρ ΠΎΡΠΈΠΌ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΉ BIOS, ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ UEFI.
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΠΈΡΠΏΠ΅ΡΡΠ΅Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π€Π°ΠΉΠ» > ΠΠΎΠ²Π°Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° :
ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ubuntu 20. 04.2.0 Desktop ISO. Π½Π°ΠΆΠΌΠΈΡΠ΅ Β«ΠΠΏΠ΅ΡΠ΅Π΄Β» ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠΊΡΠ°Π½Ρ:
ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΎΠ±Π·ΠΎΡΠ° ΠΈ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΡΠ°ΠΉΠ» ISO. ΠΠ°ΡΠ΅ΠΌ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠΎΠΌ , ΡΡΠΎΠ±Ρ Π²ΡΠ±ΡΠ°ΡΡ Π΅Π³ΠΎ. ΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΈΠΌΡ ΠΠ‘, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅.
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΎΠ±ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π¦Π, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΠΠ:
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅. Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΈΠΌΡ Π²Π°ΡΠ΅Π³ΠΎ USB-ΡΡΡΡΠΎΠΉΡΡΠ²Π°:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ ΠΌΠ΅Π½Ρ /dev/sdc
, Ρ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ. ΠΡΠ»ΠΈ Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎ ΡΠ°Π½ΡΡΠ΅, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΠΈΡΠΊ «/dev/sdc» ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π³ΠΎΡΡΡΠΌΠΈ… . ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΠ°, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ Π΄ΠΈΡΠΊΠΈ.
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΠΌΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅.
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ :
ΠΠ΄Π΅ΡΡ Π²Ρ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌ BIOS ΠΈΠ»ΠΈ UEFI:
ΠΡΠ±Π΅ΡΠΈΡΠ΅ BIOS, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π΅ΡΠ΅ Π½Π΅ Π²ΡΠ±ΡΠ°Π½.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ UEFI ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ USB-Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π²ΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΡΠ°Π³ΠΈ ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π²Π°ΡΠΈΠ°Π½Ρ UEFI Π΄Π»Ρ Π²ΡΠΎΡΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ.
ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡΒ» Π²Π½ΠΈΠ·Ρ, ΡΡΠΎΠ±Ρ Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΠΎΠ³Π΄Π° Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ, Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΠ°ΡΠ°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π²Π²Π΅ΡΡ Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ. ΠΡΠΎ Π·Π°ΠΏΡΡΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΡΡ Ρ ISO-ΠΎΠ±ΡΠ°Π·Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π²ΡΠ±ΡΠ°Π»ΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ BIOS. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎΡ ΡΠΊΡΠ°Π½:
ΠΡΠ»ΠΈ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΊΡΠ°Π½, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ Π·Π°Π³ΡΡΠ·ΠΈΠ»ΠΈΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ UEFI. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΊΡΠ°Π½ Ρ Π½Π°Π΄ΠΏΠΈΡΡΡ ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Ubuntu Π±Π΅Π· ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ :
ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π²Π°ΡΠΈΠ°Π½Ρ Β«ΠΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ UbuntuΒ». ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ Π²Π½Π΅ΡΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΡΠΎΠ» Ubuntu ΡΠΎ Π·Π½Π°ΡΠΊΠΎΠΌ Β«Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ UbuntuΒ».
ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π―Π·ΡΠΊ, ΠΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°, ΠΠ±ΡΡΠ½Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°, Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΠ΅ΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Ρ… .
ΠΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ΅Π³ Β«Π‘ΡΠ΅ΡΠ΅ΡΡ Π΄ΠΈΡΠΊ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ UbuntuΒ», Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈΒ». ΠΠ°ΠΆΠΌΠΈΡΠ΅ Β«ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ LVM Ρ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ UbuntuΒ», Π° Π·Π°ΡΠ΅ΠΌ Β«ΠΠ°ΡΠΈΡΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Ubuntu Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈΒ».
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠ»ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΡΡΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠ΅.
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΡΡΠ°Π½Ρ, Π·Π°ΡΠ΅ΠΌ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ.
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ , ΡΡΠΎΠ±Ρ Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² USB, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π·Π°Π³ΡΡΠΆΠ°Π»ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ°Ρ BIOS ΠΈ UEFI.
Π Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Ubuntu, Π²ΡΠ΅ Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ ΠΈΠ· ΡΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ISO, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Β«ΠΠΈΡΠΊΠΈΒ» ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ USB-Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ Π½Π° Π»Π΅Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, /dev/vda
. ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ /dev/sdc
, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ ΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠΎΡ ΠΆΠ΅ USB ΠΈΠ· Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ Π Π°Π·Π΄Π΅Π»Π° 1 ΠΈ Π Π°Π·Π΄Π΅Π»Π° 5, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ 537 ΠΠ ΠΈ 767 ΠΠ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΌ Π½Π°ΠΉΡΠΈ ΡΡΠΈ ΡΠ°Π·Π΄Π΅Π»Ρ ΠΏΠΎΠ·ΠΆΠ΅.
Π‘ΠΌΠΎΠ½ΡΠΈΡΡΠΉΡΠ΅ ΡΡΠΈ Π΄Π²Π° ΡΠ°Π·Π΄Π΅Π»Π°, Π½Π°ΠΆΠ°Π² Π½Π° ΡΠ΅ΡΠ½ΡΠ΅ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ ΠΈ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ² ΠΈΡ
Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΡ.
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Β«Π€Π°ΠΉΠ»ΡΒ» (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΊΠ°ΠΊ Nautilus) Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ +ΠΡΡΠ³ΠΈΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ > ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΡ > cdrom . ΠΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΎΡΠ½ΡΠΉ ISO-ΠΎΠ±ΡΠ°Π· Ubuntu, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΈΠ»ΠΈΡΡ.
ΠΡΠΊΡΠΎΠΉΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Β«Π€Π°ΠΉΠ»ΡΒ» Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ + ΠΡΡΠ³ΠΈΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ > Π’ΠΎΠΌ 537 ΠΠ. ΠΡΠΎ ΡΠ°Π·Π΄Π΅Π» 1.
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ Π΄Π²Π° ΠΎΡΠΊΡΡΡΡΡ ΠΎΠΊΠ½Π° ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΈΠ΄Π΅ΡΡ ΠΈΡ ΠΎΠ±Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.
Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ boot
ΠΈ EFI
Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ-Π΄ΠΈΡΠΊΠ°
Π² Π Π°Π·Π΄Π΅Π» 1
:
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ +ΠΡΡΠ³ΠΈΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ > 767 ΠΠ±ΡΠ΅ΠΌ ΠΠ > grub Π² Π²Π΅ΡΡ Π½Π΅ΠΌ ΠΎΠΊΠ½Π΅ Β«Π€Π°ΠΉΠ»ΡΒ».
Π Π² +ΠΡΡΠ³ΠΈΠ΅ ΠΌΠ΅ΡΡΠ° > 537 ΠΠ Volume > boot > grub Π² Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΎΠΊΠ½Π΅ Files, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
ea5c-487c-a14a-90b6edcea385/grub β /media/ubuntu/4281-A2FB/boot/grub
, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅.
Π‘Π½ΠΎΠ²Π° ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π΄ΠΈΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ°Π·ΠΌΠΎΠ½ΡΠΈΡΡΠΉΡΠ΅ ΡΠ°Π·Π΄Π΅Π» 1 ΠΈ ΡΠ°Π·Π΄Π΅Π» 5. Π·Π°ΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΈΡΠΊΠΎΠ².
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΈ ΡΠΌΠΎΠ½ΡΠΈΡΡΠΉΡΠ΅ ΡΠ°Π·Π΄Π΅Π» 1 ΠΈΠ· /mnt
ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ grub
Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π²ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄:
sudo mount /dev/vda1 /mnt sudo grub-install --boot-directory=/mnt/boot/dev/vda
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π·Π΄Π΅ΡΡ ΠΌΡ Π½Π°Π·ΡΠ²Π°Π΅ΠΌ USB-Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ /dev/vda
, Π° ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π·Π΄Π΅Π» β /dev/vda1
.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ sudo ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ Live install.
ΠΠ°ΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈ Π²ΡΠΊΠ»ΡΡΠΈΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠ°.
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΠ, ΠΊΠΎΠ³Π΄Π° ΠΠ Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½Π°, Π° Π·Π°ΡΠ΅ΠΌ SATA CDROM Π½Π° Π»Π΅Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ:
Π£Π΄Π°Π»ΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π· ISO ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΡΡΠΏΠΈΠ»ΠΈ Π² ΡΠΈΠ»Ρ. ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ Π΅ΡΠ΅ ΡΠ°Π·, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° Π·Π°Π³ΡΡΠΆΠ°Π»Π°ΡΡ Ρ USB-Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ.
ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠ΅ΡΠ½ΡΠΉ ΡΠΊΡΠ°Π½ Π²ΠΌΠ΅ΡΡΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΏΠ°ΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠ°Π·Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π·Π°Π³ΡΡΠΆΠ°Ρ USB Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ.