{"id":333620,"date":"2022-05-25T15:01:07","date_gmt":"2022-05-25T15:01:07","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=333620"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=333620","title":{"rendered":"<span>STM32MP1 \u0437\u0430\u043f\u0443\u0441\u043a Ubuntu 22.04GPU \u0438 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 Wayland\u2026<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!<\/p>\n<p>\u0421\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e, \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Canonical, \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 Ubuntu 22.04, &#171;\u043f\u043e\u0442\u044b\u043a\u0430\u0432&#187; \u0435\u0435 \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0435, \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043a\u0430\u0442\u0438\u0442\u044c \u0430\u043f\u0434\u0435\u0439\u0442 \u043d\u0430 \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0439 \u043d\u043e\u0443\u0442, \u043f\u043e\u043a\u0430 \u043d\u0430\u043a\u0430\u0442\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f, \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u043b \u0434\u0435\u0432\u043a\u0438\u0442\u044b \u043d\u0430 \u043f\u043e\u043b\u043a\u0435, \u043d\u0430\u0448\u0435\u043b \u0437\u0430\u043f\u044b\u043b\u0435\u043d\u043d\u0443\u044e STM32MP157c-DK2 \u043e\u0442\u043b\u0430\u0434\u0443\u0447\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u043a\u0443 \u043e\u0442 \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043d\u0443 \u0438 \u043f\u043e\u0434\u0443\u043c\u0430\u043b &#8212; \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u0438 \u043d\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c 22-\u044e \u0443\u0431\u0443\u043d\u0442\u0443 \u043d\u0430 \u044d\u0442\u043e\u043c CPU<br \/>\u0411\u043b\u0430\u0433\u043e Canonical <a href=\"https:\/\/cdimage.ubuntu.com\/ubuntu-base\/releases\/22.04\/release\" rel=\"noopener noreferrer nofollow\">\u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u0440\u0435\u043b\u0438\u0437\u044b<\/a> \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e rootfs \u0434\u043b\u044f ARM \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432.<\/p>\n<p>\u0412 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043f\u043e\u043b\u043d\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c Yocto \u0438\u043b\u0438 Buildroot \u043f\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440, \u043d\u043e \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u044f \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b.<\/p>\n<p>STMicroelectronics \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0445\u0432\u0430\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u043c \u0432\u044b\u0431\u043e\u0440\u043e\u043c 8-bit \u0438 32-bit \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 (MCU), \u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u0432 \u0438\u0445 \u0430\u0440\u0441\u0435\u043d\u0430\u043b\u0435 \u0435\u0441\u0442\u044c CPU STM32MP1<\/p>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0440\u0438 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 \u0441\u0435\u0440\u0438\u0438 STM32MP1: STM32MP151, STM32MP153 \u0438 STM32MP157. \u0418\u0445 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/90a\/e45\/18a\/90ae4518a318d0801dad35d9257e7e44.jpeg\" alt=\"STM32MP1\" title=\"STM32MP1\" width=\"634\" height=\"620\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/90a\/e45\/18a\/90ae4518a318d0801dad35d9257e7e44.jpeg\" data-blurred=\"true\"\/><figcaption>STM32MP1<\/figcaption><\/figure>\n<p>STM32MP1 \u044f\u0434\u0440\u0430 Cortex-A7 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 650 \u041c\u0413\u0446 \u0438 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u044e\u0442\u0441\u044f 32-\u041a\u0431\u0430\u0439\u0442\u043d\u044b\u043c \u043a\u0435\u0448\u0435\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 L1, 32-\u041a\u0431\u0430\u0439\u0442\u043d\u044b\u043c \u043a\u0435\u0448\u0435\u043c \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0438 256-\u041a\u0431\u0430\u0439\u0442\u043d\u044b\u043c \u043a\u0435\u0448\u0435\u043c \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. \u0422\u0430\u043a\u0436\u0435 A7 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 Arm Neon SIMD, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0430 \u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432.<\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441 \u043d\u0438\u0437\u043a\u0438\u043c \u044d\u043d\u0435\u0440\u0433\u043e\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435\u043c \u044f\u0434\u0440\u043e Cortex-M4 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 209 \u041c\u0413\u0446 \u0441 \u043c\u043e\u0434\u0443\u043b\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0447\u0438\u0441\u0435\u043b \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 (FPU), \u043f\u043e\u043b\u043d\u044b\u043c \u043d\u0430\u0431\u043e\u0440\u043e\u043c DSP \u043a\u043e\u043c\u0430\u043d\u0434 \u0438 \u0441 \u043c\u043e\u0434\u0443\u043b\u0435\u043c \u0437\u0430\u0449\u0438\u0442\u044b \u043f\u0430\u043c\u044f\u0442\u0438 (MPU), \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u043c \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>\u041b\u0438\u043d\u0435\u0439\u043a\u0430 STM32MP1 \u0438\u043c\u0435\u0435\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 3D \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 GPU \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u0441 OpenGL \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 HMI, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0439 \u043d\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 533 \u041c\u0413\u0446. GPU \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b DDR \u0438 LPDDR \u0441 \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 533 \u041c\u0413\u0446, 256 \u041a\u0411 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 384 \u041a\u0411 \u041e\u0417\u0423 MCU \u0438 64 \u041a\u0411 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0447\u0442\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u0435\u0442 Cortex-M4 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u043e\u043d\u0438\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u044d\u043d\u0435\u0440\u0433\u043e\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, STM32MP1 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e Arm TrustZone, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044e \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u041f\u041e \u0432 \u0446\u0435\u043b\u043e\u043c, \u0432 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435 \u0432\u0441\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u041a\u0440\u043e\u043c\u0435\u0435 \u0442\u043e\u0433\u043e, STM32MP1 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0443\u044e \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043e\u043f\u0446\u0438\u044e, \u0438\u043c\u0435\u0435\u0442 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u044b\u0435 \u041e\u0417\u0423 \u0438 \u041f\u0417\u0423, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u0449\u0438\u0442\u0443 \u043e\u0442 \u043d\u0435\u0441\u0430\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u044b\u0435 \u0447\u0430\u0441\u044b \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041b\u0438\u043d\u0435\u0439\u043a\u0430 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 16- \u0438 32-\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0442\u0430\u0439\u043c\u0435\u0440\u044b, \u0430 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0445 \u0432\u0445\u043e\u0434\u043e\u0432 &#8212; \u0434\u0432\u0430 \u043f\u043e\u043b\u043d\u044b\u0445 16-\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u044b\u0445 \u0410\u0426\u041f \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0434\u043e 22 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438.<\/p>\n<p>\u0412 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e \u0432\u0441\u0435\u043c\u0443, STM32MP1 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0434\u043e 20 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0445 \u0448\u0438\u0440\u043e\u043a\u0443\u044e \u043d\u043e\u043c\u0435\u0440\u043a\u043b\u0430\u0442\u0443\u0440\u0443 \u043a\u0430\u043c\u0435\u0440, \u0434\u0438\u0441\u043f\u043b\u0435\u0435\u0432, \u0441\u0435\u0442\u0438 Ethernet, \u043f\u043e\u0440\u0442\u044b USB, HDMI \u0438 UART. \u0414\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438, \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0439\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u043c\u0435\u0436\u0434\u0443 Cortex-A7 \u0438\u043b\u0438 Cortex-M4.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/3c2\/4c4\/ac9\/3c24c4ac9523e8a70568c0aceffe746b.jpeg\" width=\"500\" height=\"730\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3c2\/4c4\/ac9\/3c24c4ac9523e8a70568c0aceffe746b.jpeg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0430\u0447\u043d\u0435\u043c.<\/p>\n<p>\u0411\u0438\u043b\u0434\u0438\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u043d\u0430 \u043d\u043e\u0443\u0442\u0435 \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0439 Ubuntu, \u043c\u043e\u0436\u043d\u043e \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0435, \u0443\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435, \u0431\u0435\u0437 \u0440\u0430\u0437\u043d\u0438\u0446\u044b  &#8212; \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043a\u0430.<\/p>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u043f\u043e \u0442\u0430\u043a\u0443\u044e \u043f\u043b\u0430\u0442\u0443 STM32MP157c-DK2<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/400\/6a2\/5cd\/4006a25cdc4e0b9754f02027f17ebdf4.jpg\" width=\"1000\" height=\"667\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/400\/6a2\/5cd\/4006a25cdc4e0b9754f02027f17ebdf4.jpg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<hr\/>\n<p>\u0420\u0430\u0437\u043e\u0431\u044c\u0451\u043c \u0441\u0431\u043e\u0440\u043a\u0443 \u043d\u0430 \u044d\u0442\u0430\u043f\u044b:<\/p>\n<ol>\n<li>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c U-boot .<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c OP-TEE &#8212; \u0434\u0430, \u0433\u0440\u0443\u0437\u0438\u0442\u044c \u044f\u0434\u0440\u043e \u0438 Ubuntu 22.04 \u0431\u0443\u0434\u0435\u043c \u0432 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u0432 \u0438\u043d\u0435\u0442\u0435 \u043f\u043e\u043b\u043d\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0431\u0443\u0442\u043b\u043e\u0430\u0434\u0435\u0440 \u043d\u0430 \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446, \u043d\u043e \u043d\u0435\u0442 \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c arm-trust.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u044f\u0434\u0440\u043e Linux .<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0431\u0430\u0437\u043e\u0432\u044b\u0439 rootfs Ubuntu 22.04.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0432\u0441\u0435 \u044d\u0442\u043e \u0432 \u043e\u0434\u043d\u0443 \u043a\u0443\u0447\u0443 \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0433\u043e\u0442\u043e\u0432\u044b\u0439 .img \u0434\u043b\u044f \u0437\u0430\u043b\u0438\u0432\u043a\u0438 \u043d\u0430 SD \u043a\u0430\u0440\u0442\u0443.<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043a\u0430\u0447\u0430\u0435\u043c ARM \u043a\u0440\u043e\u0441\u0441 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 GCC \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c, \u0438\u043c \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0432\u0441\u044e \u043d\u0430\u0448\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u0443.<\/p>\n<pre><code class=\"bash\">mkdir stm32mp &amp;&amp; cd stm32mp wget -c https:\/\/mirrors.edge.kernel.org\/pub\/tools\/crosstool\/files\/bin\/x86_64\/10.3.0\/x86_64-gcc-10.3.0-nolibc-arm-linux-gnueabi.tar.gz tar xf x86_64-gcc-10.3.0-nolibc-arm-linux-gnueabi.tar.gz export CC=`pwd`\/gcc-10.3.0-nolibc\/arm-linux-gnueabi\/bin\/arm-linux-gnueabi-<\/code><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0432\u0435\u0440\u0441\u0438\u044e:<\/p>\n<pre><code class=\"bash\">${CC}gcc --version<\/code><\/pre>\n<p>\u0412\u044b\u0445\u043b\u043e\u043f<\/p>\n<pre><code class=\"bash\">arm-linux-gnueabi-gcc (GCC) 10.3.0 Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions.  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.<\/code><\/pre>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438:<\/p>\n<pre><code class=\"bash\">sudo apt install flex bison ncurses-base build-essential qemu-user-static device-tree-compiler<\/code><\/pre>\n<hr\/>\n<p><strong>U-Boot<\/strong><\/p>\n<p>\u041a\u0430\u0447\u0430\u0435\u043c U-boot \u0441 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f ST \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c trusted u-boot<\/p>\n<pre><code class=\"bash\">git clone -b v2020.10-stm32mp https:\/\/github.com\/STMicroelectronics\/u-boot cd u-boot make ARCH=arm CROSS_COMPILE=${CC} stm32mp15_trusted_defconfig make ARCH=arm CROSS_COMPILE=${CC} DEVICE_TREE=stm32mp157c-dk2 u-boot.stm32 all<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9a0\/7b8\/75f\/9a07b875f03a33a9457b5f0ffbd0126c.png\" width=\"969\" height=\"538\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9a0\/7b8\/75f\/9a07b875f03a33a9457b5f0ffbd0126c.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430 <code>u-boot.dtb<\/code> \u0438 <code>u-boot-nodtb.bin<\/code>  \u0434\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0438 \u0441\u0431\u043e\u0440\u043a\u0438 OP-TEE <\/p>\n<p>\u041a\u0430\u0447\u0430\u0435\u043c OP-TEE \u0441 git ST<br \/>\u0412\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043a \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043e\u0439 <code>BL33_CFG<\/code> \u0438 <code>BL33<\/code> \u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0433\u0434\u0435 \u043b\u0435\u0436\u0438\u0442 \u0441\u043e\u0431\u0440\u0430\u043d\u044b\u0439 U-boot \u0438 \u0444\u0430\u0439\u043b\u044b <code>u-boot.dtb<\/code> \u0438 <code>u-boot-nodtb.bin<\/code> <\/p>\n<pre><code class=\"bash\"># \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043d\u0430\u0437\u0430\u0434 \u0432 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 stm32mp cd .. git clone -b v2.4-stm32mp https:\/\/github.com\/STMicroelectronics\/arm-trusted-firmware cd arm-trusted-firmware make CROSS_COMPILE=${CC} \\ PLAT=stm32mp1 \\       ARCH=aarch32 \\       ARM_ARCH_MAJOR=7 \\       STM32MP_SDMMC=1 \\       STM32MP_EMMC=1 \\       AARCH32_SP=sp_min \\       DTB_FILE_NAME=stm32mp157c-dk2.dtb \\       BL33_CFG=..\/u-boot\/u-boot.dtb \\       BL33=..\/u-boot\/u-boot-nodtb.bin \\       all fip <\/code><\/pre>\n<p>\u0423\u0441\u043f\u0435\u0448\u043d\u044b\u0439 \u0432\u044b\u0445\u043b\u043e\u043f \u0441\u0431\u043e\u043a\u0440\u043a\u0438 OP-TEE<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/263\/a18\/b8e\/263a18b8e8f2efb10f8dc6dc4cf5bafe.png\" width=\"935\" height=\"523\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/263\/a18\/b8e\/263a18b8e8f2efb10f8dc6dc4cf5bafe.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0421\u0431\u043e\u0440\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u0430, \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430 <code>fip.bin <\/code>\u0438 <code>tf-a-stm32mp157c-dk2.stm32<\/code><\/p>\n<pre><code class=\"bash\">ls -l build\/stm32mp1\/release\/<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5b4\/b88\/44b\/5b4b8844bd2b2d4ff376edda75b7e14f.png\" width=\"774\" height=\"331\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5b4\/b88\/44b\/5b4b8844bd2b2d4ff376edda75b7e14f.png\"\/><figcaption><\/figcaption><\/figure>\n<hr\/>\n<p><strong>Kernel Linux<\/strong> <\/p>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u044f\u0434\u0440\u043e, \u0431\u0443\u0434\u0435\u043c \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0438\u044f ST, \u0447\u0438\u0442\u0430\u043c \u0440\u0435\u043b\u0438\u0437\u043d\u043e\u0442\u044b \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0442\u043e \u0442\u0430\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u0438 \u043f\u043e\u0444\u0438\u043a\u0441\u0438\u043b\u0438. \u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043a\u0440\u0430\u0439\u043d\u044f\u044f \u0432\u0435\u0440\u0441\u0438\u044f 5.10.61 <\/p>\n<pre><code class=\"bash\"># \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043d\u0430\u0437\u0430\u0434 \u0432 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 stm32mp cd .. git clone -b v5.10-stm32mp https:\/\/github.com\/STMicroelectronics\/linux cd linux make ARCH=arm CROSS_COMPILE=${CC} multi_v7_defconfig fragment-01-multiv7_cleanup.config fragment-02-multiv7_addons.config make ARCH=arm CROSS_COMPILE=${CC} menuconfig<\/code><\/pre>\n<p>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u043c \u044f\u0434\u0440\u043e \u043f\u043e \u0441\u0432\u043e\u0435\u043c\u0443 \u0432\u043a\u0443\u0441\u0443 \u0438 \u0437\u0430\u0434\u0430\u0447, <code>multi_v7_defconfig<\/code> \u0443\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043e\u0435, \u0432 \u043a\u043e\u043d\u0444\u0438\u0433 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0445, \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u044c\u0441\u044f \u0434\u0440\u0430\u0432\u0435\u0440\u0430 \u0434\u043b\u044f STM32MP1 CPU \u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440, \u0447\u0442\u043e \u0432\u0445\u043e\u0434\u044f\u0442 \u0432 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043e\u0431\u0449\u0438\u0439 \u043a\u043e\u043d\u0444\u0438\u0433 armv7 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432.<br \/>\u041a \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u044e \u0441\u0432\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u043b \u044f\u0434\u0440\u043e.<\/p>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u044f\u0434\u0440\u043e \u0438 \u043c\u043e\u0434\u0443\u043b\u0438 \u043a \u043d\u0435\u043c\u0443<\/p>\n<pre><code class=\"bash\">make ARCH=arm CROSS_COMPILE=${CC} zImage modules -j16<\/code><\/pre>\n<p> \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c dts<\/p>\n<pre><code class=\"bash\">make ARCH=arm CROSS_COMPILE=${CC} dtbs<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0438 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0442\u0443\u0434\u0430 &#171;\u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b&#187; \u0441\u0431\u043e\u0440\u043a\u0438 <\/p>\n<pre><code class=\"bash\">mkdir -p ..\/deploy cp -v arch\/arm\/boot\/zImage ..\/deploy mkdir -p ..\/deploy\/modules make ARCH=arm CROSS_COMPILE=${CC} modules_install INSTALL_MOD_PATH=\"..\/deploy\/modules\"<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e78\/970\/eff\/e78970eff45b2c81a90c68ec9fbc9e5c.png\" width=\"1200\" height=\"705\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e78\/970\/eff\/e78970eff45b2c81a90c68ec9fbc9e5c.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c dtsb \u0444\u0430\u0439\u043b\u044b <\/p>\n<pre><code class=\"bash\">mkdir -p ..\/deploy\/dtsb make ARCH=arm CROSS_COMPILE=${CC} dtbs_install INSTALL_DTBS_PATH=..\/deploy\/dtsb<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u044f\u0434\u0440\u0430<\/p>\n<pre><code class=\"bash\">export kernel_ver=$(cat \"include\/generated\/utsrelease.h\" | awk '{print $3}' | sed 's\/\\\"\/\/g' ) echo ${kernel_ver} cd ..<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2c7\/a02\/5a1\/2c7a025a108c6a2a8a043525d51ad13d.png\" width=\"1201\" height=\"112\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2c7\/a02\/5a1\/2c7a025a108c6a2a8a043525d51ad13d.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043e\u0431\u0440\u0430\u0437\u0430 SD \u043a\u0430\u0440\u0442\u044b, \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0437 \u0438 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u043c \u043d\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u044b \u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u043c <\/p>\n<pre><code class=\"bash\">export IMAGE_FILENAME=\"sdcard-stm32mp157.img\" dd if=\/dev\/zero of=${DIR}\/deploy\/${IMAGE_FILENAME} bs=4096M count=2  sgdisk --resize-table=128 -a 1 \\             -n 1:34:545    -c 1:fsbl1   \\             -n 2:546:1057  -c 2:fsbl2   \\             -n 3:1058:5153 -c 3:fip    \\             -n 4:5154:     -c 4:rootfs  \\             -p .\/deploy\/${IMAGE_FILENAME}              sgdisk -A 4:set:2 .\/deploy\/${IMAGE_FILENAME} <\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/223\/764\/cdb\/223764cdb90c0487ea8d7d4f65ed9b63.png\" width=\"717\" height=\"624\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/223\/764\/cdb\/223764cdb90c0487ea8d7d4f65ed9b63.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0414\u043b\u044f \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0432 .img, \u043c\u043e\u0436\u0435\u043c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 <code>loop<\/code><\/p>\n<pre><code class=\"bash\"> LOOP_DEVICE=$(sudo losetup --partscan --show --find .\/deploy\/${IMAGE_FILENAME})  ls -l ${LOOP_DEVICE}*<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d39\/75f\/531\/d3975f5311d8d141a2b7ef09af7cd057.png\" width=\"997\" height=\"167\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d39\/75f\/531\/d3975f5311d8d141a2b7ef09af7cd057.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u044b\u0439 u-boot \u0438 \u0444\u0430\u0439\u043b \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439 RAM<\/p>\n<pre><code class=\"bash\">sudo dd if=.\/arm-trusted-firmware\/build\/stm32mp1\/release\/tf-a-stm32mp157c-dk2.stm32 of=${LOOP_DEVICE}p1 sudo dd if=.\/arm-trusted-firmware\/build\/stm32mp1\/release\/tf-a-stm32mp157c-dk2.stm32 of=${LOOP_DEVICE}p2 sudo dd if=.\/arm-trusted-firmware\/build\/stm32mp1\/release\/fip.bin of=${LOOP_DEVICE}p3<\/code><\/pre>\n<p>\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0443\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b \u0441 \u043d\u0430\u0448\u0438\u043c \u0431\u0443\u0434\u0443\u0449\u0438\u043c rootfs. \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0434\u043b\u044f \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u0448\u0435\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u043c <\/p>\n<pre><code class=\"bash\">sudo mkfs.ext4 -L rootfs ${LOOP_DEVICE}p4 sudo mkdir -p deploy\/rootfs MOUNT_PATH=deploy\/rootfs sudo mount ${LOOP_DEVICE}p4 ${MOUNT_PATH}<\/code><\/pre>\n<p>\u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c Ubuntu 22.04 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <\/p>\n<pre><code class=\"bash\">wget https:\/\/cdimage.ubuntu.com\/ubuntu-base\/releases\/22.04\/release\/ubuntu-base-22.04-base-armhf.tar.gz sudo tar xvfp ubuntu-base-22.04-base-armhf.tar.gz -C ${MOUNT_PATH}<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/214\/643\/aae\/214643aae0891b11dd8786613174b7a5.png\" width=\"632\" height=\"403\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/214\/643\/aae\/214643aae0891b11dd8786613174b7a5.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0430\u0439\u043b <code>extlinux.conf<\/code><\/p>\n<pre><code class=\"bash\">sudo mkdir -p ${MOUNT_PATH}\/boot\/extlinux\/ sudo sh -c \"echo 'label Linux ${kernel_ver}' > ${MOUNT_PATH}\/boot\/extlinux\/extlinux.conf\" sudo sh -c \"echo '    kernel \/boot\/vmlinuz-${kernel_ver}' >> ${MOUNT_PATH}\/boot\/extlinux\/extlinux.conf\" sudo sh -c \"echo '    append console=ttySTM0,115200 console=tty1,115200 root=\/dev\/mmcblk0p4 ro rootwait ' >> ${MOUNT_PATH}\/boot\/extlinux\/extlinux.conf\" sudo sh -c \"echo '    fdtdir \/boot\/dtbs\/${kernel_ver}\/' >> ${MOUNT_PATH}\/boot\/extlinux\/extlinux.conf\" <\/code><\/pre>\n<p>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448\u0435 \u044f\u0434\u0440\u043e, dtsb, \u043c\u043e\u0434\u0443\u043b\u0438 \u044f\u0434\u0440\u0430<\/p>\n<pre><code class=\"bash\">sudo cp -v .\/deploy\/${kernel_ver}.zImage ${MOUNT_PATH}\/boot\/vmlinuz-${kernel_ver}  sudo mkdir -p ${MOUNT_PATH}\/boot\/dtbs\/${kernel_ver}\/ sudo cp -r .\/deploy\/dtsb\/* ${MOUNT_PATH}\/boot\/dtbs\/${kernel_ver}\/ sudo cp -r .\/deploy\/modules\/. ${MOUNT_PATH}\/usr\/   # \u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u043c ethernet sudo sh -c \"echo 'auto eth0' >> ${MOUNT_PATH}\/etc\/network\/interfaces\" sudo sh -c \"echo 'iface eth0 inet dhcp' >> ${MOUNT_PATH}\/etc\/network\/interfaces\"  #File Systems Table (\/etc\/fstab)\" sudo sh -c \"echo '\/dev\/mmcblk0p4  \/  auto  errors=remount-ro  0  1' >> ${MOUNT_PATH}\/etc\/fstab\"<\/code><\/pre>\n<p>\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0438 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c WiFi firmware <\/p>\n<pre><code class=\"bash\">mkdir wifi wget -P wifi https:\/\/github.com\/cvetaevvitaliy\/stm32mp1-ubuntu\/raw\/master\/wifi_firmware\/cyfmac43430-sdio.bin wget -P wifi https:\/\/github.com\/cvetaevvitaliy\/stm32mp1-ubuntu\/raw\/master\/wifi_firmware\/cyfmac43430-sdio.1DX.clm_blob wget -P wifi https:\/\/github.com\/cvetaevvitaliy\/stm32mp1-ubuntu\/raw\/master\/wifi_firmware\/brcmfmac43430-sdio.txt  sudo mkdir -p ${MOUNT_PATH}\/lib\/firmware\/brcm\/ sudo cp -v .\/wifi\/brcmfmac43430-sdio.txt ${MOUNT_PATH}\/lib\/firmware\/brcm\/brcmfmac43430-sdio.st,stm32mp157c-dk2.txt sudo cp -v .\/wifi\/cyfmac43430-sdio.bin ${MOUNT_PATH}\/lib\/firmware\/brcm\/brcmfmac43430-sdio.bin sudo cp -v .\/wifi\/cyfmac43430-sdio.1DX.clm_blob ${MOUNT_PATH}\/lib\/firmware\/brcm\/brcmfmac43430-sdio.clm_blob <\/code><\/pre>\n<p> \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043a \u043d\u0430\u0448\u0435\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e QEMU static arm \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u043d\u0430\u043c \u043f\u0430\u043a\u0435\u0442\u044b<br \/>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0441\u043e\u0441\u0435\u0434\u043d\u0435\u043c \u043f\u043e\u0441\u0442\u0435<a href=\"https:\/\/habr.com\/ru\/post\/512994\/\" rel=\"noopener noreferrer nofollow\"> \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u0430 Ubuntu \u0434\u043b\u044f ARM \u00abfrom scratch\u00bb<\/a><\/p>\n<pre><code>sudo cp -v \/usr\/bin\/qemu-arm-static ${MOUNT_PATH}\/usr\/bin\/qemu-arm sudo cp -av \/run\/systemd\/resolve\/stub-resolv.conf ${MOUNT_PATH}\/etc\/resolv.conf sudo .\/ch-mount.sh -m ${MOUNT_PATH}\/<\/code><\/pre>\n<p>\u0425\u0435\u043b\u043f\u0435\u0440 \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/p>\n<details class=\"spoiler\">\n<summary>ch-mount.sh<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">#!\/bin\/bash  function mnt() {     echo \"MOUNTING\"     sudo mount -t proc \/proc ${2}proc     sudo mount --rbind \/sys ${2}sys     sudo mount --make-rslave ${2}sys     sudo mount --rbind \/dev ${2}dev     sudo mount --make-rslave ${2}dev     sudo mount -o bind \/dev\/pts ${2}dev\/pts     sudo chroot ${2} }  function umnt() {     echo \"UNMOUNTING\"     sudo umount -l ${2}proc     sudo umount -l ${2}sys     sudo umount -l ${2}dev\/pts     sudo umount -l ${2}dev  }  if [ \"$1\" == \"-m\" ] &amp;&amp; [ -n \"$2\" ] ; then     mnt $1 $2 elif [ \"$1\" == \"-u\" ] &amp;&amp; [ -n \"$2\" ]; then     umnt $1 $2 else     echo \"\"     echo \"Either 1'st, 2'nd or both parameters were missing\"     echo \"\"     echo \"1'st parameter can be one of these: -m(mount) OR -u(umount)\"     echo \"2'nd parameter is the full path of rootfs directory(with trailing '\/')\"     echo \"\"     echo \"For example: ch-mount -m \/media\/sdcard\/\"     echo \"\"     echo 1st parameter : ${1}     echo 2nd parameter : ${2} fi<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u043d\u0430\u043c \u043f\u0430\u043a\u0435\u0442\u044b<\/p>\n<pre><code class=\"bash\">echo stm32mp1 > \/etc\/hostname echo 127.0.0.1localhost > \/etc\/hosts echo 127.0.1.1stm32mp1 >> \/etc\/hosts  apt update  apt upgrade   # \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u043d\u0430\u043c \u043f\u0430\u043a\u0435\u0442\u044b apt install systemd sudo ifupdown net-tools ethtool udev wireless-tools iputils-ping resolvconf wget apt-utils wpasupplicant nano  # \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u043e\u043b\u044c useradd -s '\/bin\/bash' -m -G adm,sudo ubuntu passwd ubuntu  # \u043f\u0430\u0440\u043e\u043b\u044c \u0440\u0443\u0442\u0430 passwd root   exit <\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u043d\u0443\u0436\u043d\u044b\u0435 \u0432\u0430\u043c \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u043b\u044f, \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u0432\u044b\u0439\u0442\u0438 <\/p>\n<p>P.S. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0433\u043e\u0434\u043d\u043e \u0440\u0430\u0437 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 \u0438 \u0434\u043e\u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b.<\/p>\n<p>\u0420\u0430\u0437\u043c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0432\u0441\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \u0438 \u043e\u0447\u0438\u0441\u0442\u0438\u043c <code>loop<\/code><\/p>\n<pre><code class=\"bash\">sync sudo ch-mount.sh -u ${MOUNT_PATH}\/ sudo umount ${MOUNT_PATH} sudo losetup -D\/de<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/www.balena.io\/etcher\/\" rel=\"noopener noreferrer nofollow\"><strong>balenaEtcher<\/strong><\/a> \u043d\u0430\u0448 \u043e\u0431\u0440\u0430\u0437 \u043d\u0430 SD \u043a\u0430\u0440\u0442\u0443<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c04\/16f\/033\/c0416f0333d05b8131941e2fdedd2d40.png\" width=\"810\" height=\"528\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c04\/16f\/033\/c0416f0333d05b8131941e2fdedd2d40.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041b\u043e\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 Ubuntu 22.04<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u043b\u043d\u044b\u0439 \u043b\u043e\u0433 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0432\u0430 \u043f\u043e UART<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>NOTICE:  CPU: STM32MP157CAC Rev.B NOTICE:  Model: STMicroelectronics STM32MP157C-DK2 Discovery Board NOTICE:  Board: MB1272 Var2.0 Rev.C-01 NOTICE:  BL2: v2.4-r2.0(release):v2.4-stm32mp-r2 NOTICE:  BL2: Built : 10:15:29, May 16 2022 NOTICE:  BL2: Booting BL32 NOTICE:  SP_MIN: v2.4-r2.0(release):v2.4-stm32mp-r2 NOTICE:  SP_MIN: Built : 10:15:29, May 16 2022   U-Boot 2020.10-stm32mp-r2-00001-gfe1ed4fbe2-dirty (May 16 2022 - 10:20:48 +0300)  CPU: STM32MP157CAC Rev.B Model: STMicroelectronics STM32MP157C-DK2 Discovery Board Board: stm32mp1 in trusted mode (st,stm32mp157c-dk2) Board: MB1272 Var2.0 Rev.C-01 DRAM:  512 MiB Clocks: - MPU : 650 MHz - MCU : 208.878 MHz - AXI : 266.500 MHz - PER : 24 MHz - DDR : 533 MHz WDT:   Started with servicing (32s timeout) NAND:  0 MiB MMC:   STM32 SD\/MMC: 0, STM32 SD\/MMC: 1 Loading Environment from MMC... OK In:    serial Out:   serial Err:   serial **************************************************** *        WARNING 500mA power supply detected       * *     Current too low, use a 3A power supply!      * ****************************************************  Net:   eth0: ethernet@5800a000 Hit any key to stop autoboot:  0  Boot over mmc0! switch to partitions #0, OK mmc0 is current device Scanning mmc 0:4... Found \/boot\/extlinux\/extlinux.conf Retrieving file: \/boot\/extlinux\/extlinux.conf 187 bytes read in 48 ms (2.9 KiB\/s) 1:      Linux 5.10.61 Retrieving file: \/boot\/vmlinuz-5.10.61 7577064 bytes read in 368 ms (19.6 MiB\/s) append: console=ttySTM0,115200 console=tty1,115200 fbcon=rotate:3  root=\/dev\/mmcblk0p4 ro rootwait  Retrieving file: \/boot\/dtbs\/5.10.61\/stm32mp157c-dk2.dtb 116881 bytes read in 53 ms (2.1 MiB\/s) Kernel image @ 0xc2000000 [ 0x000000 - 0x739de8 ] ## Flattened Device Tree blob at c4000000    Booting using the fdt blob at 0xc4000000    Loading Device Tree to cffe0000, end cffff890 ... OK  Starting kernel ...  [    0.000000] Booting Linux on physical CPU 0x0 [    0.000000] Linux version 5.10.61 (vitaliy@mini-sever-HP-260-G3-DM) (arm-linux-gnueabi-gcc (GCC) 10.3.0, GNU ld (GNU Binutils) 2.36.1) #1 SMP PREEMPT 2 [    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d [    0.000000] CPU: div instructions available: patching division code [    0.000000] CPU: PIPT \/ VIPT nonaliasing data cache, VIPT aliasing instruction cache [    0.000000] OF: fdt: Machine model: STMicroelectronics STM32MP157C-DK2 Discovery Board [    0.000000] Memory policy: Data cache writealloc [    0.000000] Reserved memory: created DMA memory pool at 0x10000000, size 0 MiB [    0.000000] OF: reserved mem: initialized node mcuram2@10000000, compatible id shared-dma-pool [    0.000000] Reserved memory: created DMA memory pool at 0x10040000, size 0 MiB [    0.000000] OF: reserved mem: initialized node vdev0vring0@10040000, compatible id shared-dma-pool [    0.000000] Reserved memory: created DMA memory pool at 0x10041000, size 0 MiB [    0.000000] OF: reserved mem: initialized node vdev0vring1@10041000, compatible id shared-dma-pool [    0.000000] Reserved memory: created DMA memory pool at 0x10042000, size 0 MiB [    0.000000] OF: reserved mem: initialized node vdev0buffer@10042000, compatible id shared-dma-pool [    0.000000] Reserved memory: created DMA memory pool at 0x10048000, size 0 MiB [    0.000000] OF: reserved mem: initialized node mcu_rsc_table@10048000, compatible id shared-dma-pool [    0.000000] Reserved memory: created DMA memory pool at 0x30000000, size 0 MiB [    0.000000] OF: reserved mem: initialized node mcuram@30000000, compatible id shared-dma-pool [    0.000000] Reserved memory: created DMA memory pool at 0x38000000, size 0 MiB [    0.000000] OF: reserved mem: initialized node retram@38000000, compatible id shared-dma-pool [    0.000000] cma: Reserved 128 MiB at 0xd8000000 [    0.000000] Zone ranges: [    0.000000]   Normal   [mem 0x00000000c0000000-0x00000000dfffffff] [    0.000000]   HighMem  empty [    0.000000] Movable zone start for each node [    0.000000] Early memory node ranges [    0.000000]   node   0: [mem 0x00000000c0000000-0x00000000d3ffffff] [    0.000000]   node   0: [mem 0x00000000d4000000-0x00000000d7ffffff] [    0.000000]   node   0: [mem 0x00000000d8000000-0x00000000dfffffff] [    0.000000] Initmem setup node 0 [mem 0x00000000c0000000-0x00000000dfffffff] [    0.000000] psci: probing for conduit method from DT. [    0.000000] psci: PSCIv1.1 detected in firmware. [    0.000000] psci: Using standard PSCI v0.2 function IDs [    0.000000] psci: MIGRATE_INFO_TYPE not supported. [    0.000000] psci: SMC Calling Convention v1.2 [    0.000000] percpu: Embedded 20 pages\/cpu s49164 r8192 d24564 u81920 [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 129920 [    0.000000] Kernel command line: console=ttySTM0,115200 console=tty1,115200 fbcon=rotate:3  root=\/dev\/mmcblk0p4 ro rootwait  [    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear) [    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear) [    0.000000] mem auto-init: stack:off, heap alloc:on, heap free:on [    0.000000] mem auto-init: clearing system memory may take some time... [    0.000000] Memory: 299876K\/524288K available (11264K kernel code, 1160K rwdata, 3328K rodata, 1024K init, 4381K bss, 93340K reserved, 131072K cma-res) [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1 [    0.000000] rcu: Preemptible hierarchical RCU implementation. [    0.000000] rcu:     RCU event tracing is enabled. [    0.000000]  Trampoline variant of Tasks RCU enabled. [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 [    0.000000] random: get_random_bytes called from start_kernel+0x2e0\/0x494 with crng_init=0 [    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (virt). [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns [    0.000009] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns [    0.000030] Switching to timer-based delay loop, resolution 41ns [    0.001734] Console: colour dummy device 80x30 [    0.003054] printk: console [tty1] enabled [    0.003126] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000) [    0.003185] pid_max: default: 32768 minimum: 301 [    0.003442] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [    0.003489] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [    0.004675] CPU: Testing write buffer coherency: ok [    0.005119] \/cpus\/cpu@0 missing clock-frequency property [    0.005183] \/cpus\/cpu@1 missing clock-frequency property [    0.005218] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 [    0.006217] Setting up static identity map for 0xc0100000 - 0xc0100060 [    0.006429] rcu: Hierarchical SRCU implementation. [    0.007842] smp: Bringing up secondary CPUs ... [    0.008965] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 [    0.009206] smp: Brought up 1 node, 2 CPUs [    0.009274] SMP: Total of 2 processors activated (96.00 BogoMIPS). [    0.009303] CPU: All CPU(s) started in SVC mode. [    0.010352] devtmpfs: initialized [    0.049804] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5 [    0.050250] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [    0.050319] futex hash table entries: 512 (order: 3, 32768 bytes, linear) [    0.156552] pinctrl core: initialized pinctrl subsystem [    0.158494] NET: Registered protocol family 16 [    0.167959] DMA: preallocated 256 KiB pool for atomic coherent allocations [    0.170030] thermal_sys: Registered thermal governor 'step_wise' [    0.170493] cpuidle: using governor menu [    0.170917] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers. [    0.170967] hw-breakpoint: maximum watchpoint size is 8 bytes. [    0.171356] Serial: AMBA PL011 UART driver [    0.223839] stm32-pm-domain pm_domain: domain core-ret-power-domain registered [    0.223928] stm32-pm-domain pm_domain: subdomain core-power-domain registered [    0.223967] stm32-pm-domain pm_domain: domains probed [    0.248252] fbcon: Taking over console [    0.253521] SCSI subsystem initialized [    0.254529] usbcore: registered new interface driver usbfs [    0.254656] usbcore: registered new interface driver hub [    0.254762] usbcore: registered new device driver usb [    0.255132] pps_core: LinuxPPS API ver. 1 registered [    0.255166] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti &lt;giometti@linux.it> [    0.255235] PTP clock support registered [    0.256218] arm-scmi firmware:scmi0: SCMI Notifications - Core Enabled. [    0.256336] arm-scmi firmware:scmi0: SCMI Protocol v2.0 'ST:' Firmware version 0x0 [    0.259723] clocksource: Switched to clocksource arch_sys_counter [    1.931049] NET: Registered protocol family 2 [    1.931280] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear) [    1.932638] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear) [    1.932830] TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear) [    1.932930] TCP bind hash table entries: 4096 (order: 3, 32768 bytes, linear) [    1.933047] TCP: Hash tables configured (established 4096 bind 4096) [    1.933222] UDP hash table entries: 256 (order: 1, 8192 bytes, linear) [    1.933294] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear) [    1.933591] NET: Registered protocol family 1 [    1.934616] RPC: Registered named UNIX socket transport module. [    1.934667] RPC: Registered udp transport module. [    1.934695] RPC: Registered tcp transport module. [    1.934722] RPC: Registered tcp NFSv4.1 backchannel transport module. [    1.935943] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available [    1.938090] Initialise system trusted keyrings [    1.938506] workingset: timestamp_bits=14 max_order=17 bucket_order=3 [    1.949300] DLM installed [    1.951142] squashfs: version 4.0 (2009\/01\/31) Phillip Lougher [    1.952642] NFS: Registering the id_resolver key type [    1.952729] Key type id_resolver registered [    1.952759] Key type id_legacy registered [    1.952983] nfs4filelayout_init: NFSv4 File Layout Driver Registering... [    1.953024] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering... [    1.953116] ntfs: driver 2.1.32 [Flags: R\/O]. [    1.953487] jffs2: version 2.2. (NAND) ?? 2001-2006 Red Hat, Inc. [    1.954997] Key type asymmetric registered [    1.955048] Asymmetric key parser 'x509' registered [    1.955139] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246) [    1.955180] io scheduler mq-deadline registered [    1.955207] io scheduler kyber registered [    1.968262] Serial: 8250\/16550 driver, 5 ports, IRQ sharing enabled [    1.972254] STMicroelectronics ASC driver initialized [    1.972914] STM32 USART driver initialized [    1.995390] brd: module loaded [    1.996957] random: fast init done [    2.001609] random: crng init done [    2.008701] loop: module loaded [    2.015326] libphy: Fixed MDIO Bus: probed [    2.017791] CAN device driver interface [    2.020121] pegasus: v0.9.3 (2013\/04\/25), Pegasus\/Pegasus II USB Ethernet driver [    2.020261] usbcore: registered new interface driver pegasus [    2.020394] usbcore: registered new interface driver asix [    2.020486] usbcore: registered new interface driver ax88179_178a [    2.020575] usbcore: registered new interface driver cdc_ether [    2.020682] usbcore: registered new interface driver smsc75xx [    2.020789] usbcore: registered new interface driver smsc95xx [    2.020877] usbcore: registered new interface driver net1080 [    2.020963] usbcore: registered new interface driver cdc_subset [    2.021061] usbcore: registered new interface driver zaurus [    2.021184] usbcore: registered new interface driver cdc_ncm [    2.022809] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [    2.022898] ehci-platform: EHCI generic platform driver [    2.023392] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [    2.023455] ohci-platform: OHCI generic platform driver [    2.024276] usbcore: registered new interface driver cdc_acm [    2.024314] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters [    2.024414] usbcore: registered new interface driver cdc_wdm [    2.024534] usbcore: registered new interface driver usb-storage [    2.028756] i2c \/dev entries driver [    2.034558] stm32-cpufreq stm32-cpufreq: Failed to get chip info: -517 [    2.035899] sdhci: Secure Digital Host Controller Interface driver [    2.035943] sdhci: Copyright(c) Pierre Ossman [    2.035968] Synopsys Designware Multimedia Card Interface Driver [    2.036516] sdhci-pltfm: SDHCI platform and OF driver helper [    2.037925] ledtrig-cpu: registered to indicate activity on CPUs [    2.038221] SMCCC: SOC_ID: ID = jep106:0020:0500 Revision = 0x00002000 [    2.040004] remoteproc remoteproc0: releasing m4 [    2.043591] NET: Registered protocol family 10 [    2.045125] Segment Routing with IPv6 [    2.045280] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver [    2.046324] NET: Registered protocol family 17 [    2.046386] can: controller area network core [    2.046518] NET: Registered protocol family 29 [    2.046550] can: raw protocol [    2.046578] can: broadcast manager protocol [    2.046615] can: netlink gateway - max_hops=1 [    2.046983] sctp: Hash tables configured (bind 512\/512) [    2.047733] Key type dns_resolver registered [    2.047887] ThumbEE CPU extension supported. [    2.047933] Registering SWP\/SWPB emulation handler [    2.048396] Loading compiled-in X.509 certificates [    2.089462] stm32-mdma 58000000.dma-controller: STM32 MDMA driver registered [    2.093370] stm32-dma 48000000.dma-controller: STM32 DMA driver registered [    2.096172] stm32-dma 48001000.dma-controller: STM32 DMA driver registered [    2.106720] stm_thermal 50028000.thermal: stm_thermal_probe: Driver initialized successfully [    2.114496] remoteproc remoteproc0: releasing m4 [    2.115514] \/soc\/interrupt-controller@5000d000: bank0 [    2.115568] \/soc\/interrupt-controller@5000d000: bank1 [    2.115605] \/soc\/interrupt-controller@5000d000: bank2 [    2.120309] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOA bank added [    2.122881] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOB bank added [    2.125390] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOC bank added [    2.127845] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOD bank added [    2.130464] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOE bank added [    2.133060] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOF bank added [    2.135344] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOG bank added [    2.137564] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOH bank added [    2.139862] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOI bank added [    2.140243] stm32mp157-pinctrl soc:pin-controller@50002000: Pinctrl STM32 initialized [    2.143629] stm32mp157-pinctrl soc:pin-controller-z@54004000: GPIOZ bank added [    2.143710] stm32mp157-pinctrl soc:pin-controller-z@54004000: Pinctrl STM32 initialized [    2.147487] 4000e000.serial: ttySTM3 at MMIO 0x4000e000 (irq = 61, base_baud = 4000000) is a stm32-usart [    2.147905] serial serial0: tty port ttySTM3 registered [    2.150188] stm32-usart 40010000.serial: interrupt mode for rx (no dma) [    2.150248] stm32-usart 40010000.serial: interrupt mode for tx (no dma) [    2.150308] 40010000.serial: ttySTM0 at MMIO 0x40010000 (irq = 62, base_baud = 4000000) is a stm32-usart [    3.384575] printk: console [ttySTM0] enabled [    3.396827] stm32-dwmac 5800a000.ethernet: IRQ eth_lpi not found [    3.401822] stm32-dwmac 5800a000.ethernet: no reset control found [    3.408337] stm32-dwmac 5800a000.ethernet: User ID: 0x40, Synopsys ID: 0x42 [    3.414633] stm32-dwmac 5800a000.ethernet:   DWMAC4\/5 [    3.419516] stm32-dwmac 5800a000.ethernet: DMA HW capability register supported [    3.426844] stm32-dwmac 5800a000.ethernet: RX Checksum Offload Engine supported [    3.434173] stm32-dwmac 5800a000.ethernet: TX Checksum insertion supported [    3.441003] stm32-dwmac 5800a000.ethernet: Wake-Up On Lan supported [    3.447439] stm32-dwmac 5800a000.ethernet: TSO supported [    3.452563] stm32-dwmac 5800a000.ethernet: Enable RX Mitigation via HW Watchdog Timer [    3.460404] stm32-dwmac 5800a000.ethernet: Enabled Flow TC (entries=2) [    3.466898] stm32-dwmac 5800a000.ethernet: TSO feature enabled [    3.472810] stm32-dwmac 5800a000.ethernet: Using 32 bits DMA width [    3.481192] libphy: stmmac: probed [    3.493898] stm32_rtc 5c004000.rtc: registered as rtc0 [    3.497769] stm32_rtc 5c004000.rtc: setting system clock to 2000-01-01T04:49:35 UTC (946702175) [    3.507249] stm32_rtc 5c004000.rtc: Date\/Time must be initialized [    3.512542] stm32_rtc 5c004000.rtc: registered rev:1.2 [    3.548077] stm32f7-i2c 40012000.i2c: STM32F7 I2C-0 bus adapter [    3.581762] stpmic1 1-0033: PMIC Chip Version: 0x21 [    3.591067] vddcore: supplied by vin [    3.596344] vdd_ddr: supplied by vin [    3.601509] vdd: supplied by vin [    3.606481] v3v3: supplied by vin [    3.611393] v1v8_audio: supplied by v3v3 [    3.617894] v3v3_hdmi: supplied by vin [    3.623854] vtt_ddr: supplied by vdd_ddr [    3.629681] vdd_usb: supplied by vin [    3.632608] vdda: supplied by vin [    3.638649] v1v2_hdmi: supplied by v3v3 [    3.644448] vref_ddr: supplied by vin [    3.650076] bst_out: supplied by vin [    3.653102] vbus_otg: supplied by bst_out [    3.657098] vbus_sw: supplied by bst_out [    3.663588] input: pmic_onkey as \/devices\/platform\/soc\/5c002000.i2c\/i2c-1\/1-0033\/5c002000.i2c:stpmic@33:onkey\/input\/input0 [    3.674478] stm32f7-i2c 5c002000.i2c: STM32F7 I2C-1 bus adapter [    3.683459] mmci-pl18x 58005000.sdmmc: Got CD GPIO [    3.688237] mmci-pl18x 58005000.sdmmc: mmc0: PL180 manf 53 rev2 at 0x58005000 irq 54,0 (pio) [    3.724382] mmci-pl18x 58007000.sdmmc: allocated mmc-pwrseq [    3.729798] mmci-pl18x 58007000.sdmmc: mmc1: PL180 manf 53 rev1 at 0x58007000 irq 55,0 (pio) [    3.767513] stm32-ipcc 4c001000.mailbox: ipcc rev:1.0 enabled, 6 chans, proc 0 [    3.776680] stm32-rproc 10000000.m4: wdg irq registered [    3.781838] remoteproc remoteproc0: m4 is available [    3.786451] reg11: supplied by vdd [    3.789288] reg18: supplied by vdd [    3.795376] mmc0: new high speed SDHC card at address 0007 [    3.801855] mmcblk0: mmc0:0007 SD8GB 7.42 GiB  [    3.806963] stm32-usbphyc 5a006000.usbphyc: registered rev:1.0 [    3.815564] mmc1: queuing unknown CIS tuple 0x80 (2 bytes) [    3.821636] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [    3.827239] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [    3.834691] mmc1: queuing unknown CIS tuple 0x80 (7 bytes) [    3.838943] GPT:Primary header thinks Alt. header is not at the end of the disk. [    3.846270] GPT:8388591 != 15564799 [    3.849657] GPT:Alternate GPT header not at the end of the disk. [    3.855702] GPT:8388591 != 15564799 [    3.859184] GPT: Use GNU Parted to correct GPT errors. [    3.870216] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [    3.874932] dwc2 49000000.usb-otg: supply vusb_d not found, using dummy regulator [    3.882086]  mmcblk0: p1 p2 p3 p4 [    3.886225] dwc2 49000000.usb-otg: supply vusb_a not found, using dummy regulator [    3.894599] mmc1: queuing unknown CIS tuple 0x80 (6 bytes) [    3.983166] mmc1: new high speed SDIO card at address 0001 [    4.030027] dwc2 49000000.usb-otg: EPs: 9, dedicated fifos, 952 entries in SPRAM [    4.036787] dwc2 49000000.usb-otg: DWC OTG Controller [    4.041226] dwc2 49000000.usb-otg: new USB bus registered, assigned bus number 1 [    4.048596] dwc2 49000000.usb-otg: irq 87, io mem 0x49000000 [    4.054555] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10 [    4.062519] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [    4.069623] usb usb1: Product: DWC OTG Controller [    4.074421] usb usb1: Manufacturer: Linux 5.10.61 dwc2_hsotg [    4.080049] usb usb1: SerialNumber: 49000000.usb-otg [    4.086104] hub 1-0:1.0: USB hub found [    4.088750] hub 1-0:1.0: 1 port detected [    4.095382] ehci-platform 5800d000.usbh-ehci: EHCI Host Controller [    4.100351] ehci-platform 5800d000.usbh-ehci: new USB bus registered, assigned bus number 2 [    4.109333] ehci-platform 5800d000.usbh-ehci: irq 64, io mem 0x5800d000 [    4.139749] ehci-platform 5800d000.usbh-ehci: USB 2.0 started, EHCI 1.00 [    4.145466] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10 [    4.153340] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [    4.160578] usb usb2: Product: EHCI Host Controller [    4.165454] usb usb2: Manufacturer: Linux 5.10.61 ehci_hcd [    4.170985] usb usb2: SerialNumber: 5800d000.usbh-ehci [    4.177090] hub 2-0:1.0: USB hub found [    4.179875] hub 2-0:1.0: 2 ports detected [    4.190999] i2c i2c-0: Added multiplexed i2c bus 2 [    4.201153] [drm] Initialized stm 1.0.0 20170330 for 5a001000.display-controller on minor 0 [    4.203507] input: generic ft5x06 (11) as \/devices\/platform\/soc\/40012000.i2c\/i2c-0\/0-0038\/input\/input2 [    4.479759] usb 2-1: new high-speed USB device number 2 using ehci-platform [    4.650120] Console: switching to colour frame buffer device 100x30 [    4.690724] stm32-display 5a001000.display-controller: [drm] fb0: stmdrmfb frame buffer device [    4.704512] usb 2-1: New USB device found, idVendor=0424, idProduct=2514, bcdDevice= b.b3 [    4.714574] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [    4.723151] EXT4-fs (mmcblk0p4): INFO: recovery required on readonly filesystem [    4.732521] EXT4-fs (mmcblk0p4): write access will be enabled during recovery [    4.732874] hub 2-1:1.0: USB hub found [    4.747048] hub 2-1:1.0: 4 ports detected [    5.069796] usb 2-1.2: new full-speed USB device number 3 using ehci-platform [    5.235653] usb 2-1.2: New USB device found, idVendor=248a, idProduct=8368, bcdDevice= 1.00 [    5.245932] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [    5.255058] usb 2-1.2: Product: Wireless Receiver [    5.261489] usb 2-1.2: Manufacturer: Telink [    8.620185] EXT4-fs (mmcblk0p4): recovery complete [    8.702157] EXT4-fs (mmcblk0p4): mounted filesystem with ordered data mode. Opts: (null) [    8.712225] VFS: Mounted root (ext4 filesystem) readonly on device 179:4. [    8.730565] devtmpfs: mounted [    8.738142] Freeing unused kernel memory: 1024K [    8.744875] Run \/sbin\/init as init process [    9.256334] systemd[1]: System time before build time, advancing clock. [    9.362686] systemd[1]: systemd 249.11-0ubuntu3.1 running in system mode (+PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT +GNUTLS -OPENSSL) [    9.407012] systemd[1]: Detected architecture arm. [    9.430062] systemd[1]: Hostname set to &lt;stm32mp1>. [   10.545844] systemd[1]: Configuration file \/etc\/systemd\/system\/weston.service is marked executable. Please remove executable permission bits. Proceedi. [   10.822205] systemd[1]: Queued start job for default target Graphical Interface. [   10.840743] systemd[1]: Created slice Slice \/system\/getty. [   10.855899] systemd[1]: Created slice Slice \/system\/modprobe. [   10.871475] systemd[1]: Created slice Slice \/system\/serial-getty. [   10.885888] systemd[1]: Created slice User and Session Slice. [   10.898367] systemd[1]: Started Dispatch Password Requests to Console Directory Watch. [   10.913288] systemd[1]: Started Forward Password Requests to Wall Directory Watch. [   10.927723] systemd[1]: Condition check resulted in Arbitrary Executable File Formats File System Automount Point being skipped. [   10.945624] systemd[1]: Reached target Local Encrypted Volumes. [   10.958738] systemd[1]: Reached target Remote File Systems. [   10.970942] systemd[1]: Reached target Slice Units. [   10.982216] systemd[1]: Reached target Swaps. [   10.992794] systemd[1]: Reached target Local Verity Protected Volumes. [   11.006864] systemd[1]: Listening on fsck to fsckd communication Socket. [   11.020846] systemd[1]: Listening on initctl Compatibility Named Pipe. [   11.057064] systemd[1]: Condition check resulted in Journal Audit Socket being skipped. [   11.069216] systemd[1]: Listening on Journal Socket (\/dev\/log). [   11.083254] systemd[1]: Listening on Journal Socket. [   11.098133] systemd[1]: Listening on udev Control Socket. [   11.111438] systemd[1]: Listening on udev Kernel Socket. [   11.123167] systemd[1]: Reached target Socket Units. [   11.135460] systemd[1]: Condition check resulted in Huge Pages File System being skipped. [   11.153217] systemd[1]: Mounting POSIX Message Queue File System... [   11.174832] systemd[1]: Mounting Kernel Debug File System... [   11.195960] systemd[1]: Mounting Kernel Trace File System... [   11.210524] systemd[1]: systemd-journald.service: unit configures an IP firewall, but the local system does not support BPF\/cgroup firewalling. [   11.229409] systemd[1]: (This warning is only shown for the first unit using IP firewalling.) [   11.246639] systemd[1]: Starting Journal Service... [   11.269521] systemd[1]: Starting Create List of Static Device Nodes... [   11.293634] systemd[1]: Starting Load Kernel Module configfs... [   11.317737] systemd[1]: Starting Load Kernel Module drm... [   11.364086] systemd[1]: Starting Load Kernel Module fuse... [   11.385957] systemd[1]: Started Nameserver information manager. [   11.425058] systemd[1]: Reached target Preparation for Network. [   11.447293] systemd[1]: Starting File System Check on Root Device... [   11.501570] systemd[1]: Starting Load Kernel Modules... [   11.541092] systemd[1]: Starting Coldplug All udev Devices... [   11.605247] systemd[1]: Mounted POSIX Message Queue File System. [   11.622002] systemd[1]: Mounted Kernel Debug File System. [   11.639383] systemd[1]: Mounted Kernel Trace File System. [   11.680360] systemd[1]: Finished Create List of Static Device Nodes. [   11.729561] systemd[1]: modprobe@configfs.service: Deactivated successfully. [   11.752373] systemd[1]: Finished Load Kernel Module configfs. [   11.777656] systemd[1]: modprobe@drm.service: Deactivated successfully. [   11.806357] systemd[1]: Finished Load Kernel Module drm. [   11.822710] systemd[1]: modprobe@fuse.service: Deactivated successfully. [   11.834688] systemd[1]: Finished Load Kernel Module fuse. [   11.853642] systemd[1]: Finished File System Check on Root Device. [   11.869624] systemd[1]: Finished Load Kernel Modules. [   11.884449] systemd[1]: Condition check resulted in FUSE Control File System being skipped. [   11.903409] systemd[1]: Mounting Kernel Configuration File System... [   11.941738] systemd[1]: Started File System Check Daemon to report status. [   11.991178] systemd[1]: Starting Remount Root and Kernel File Systems... [   12.025340] systemd[1]: Starting Apply Kernel Variables... [   12.080632] systemd[1]: Mounted Kernel Configuration File System. [   12.117909] systemd[1]: Started Journal Service.  Ubuntu 22.04 LTS stm32mp1 ttySTM0  stm32mp1 login:  <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041b\u043e\u0433 dmes<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>ubuntu@stm32mp1:~$ dmesg  [    0.000000] Booting Linux on physical CPU 0x0 [    0.000000] Linux version 5.10.61 (vitaliy@mini-sever-HP-260-G3-DM) (arm-linux-gnueabi-gcc (GCC) 10.3.0, GNU ld (GNU Binutils) 2.36.1) #1 SMP PREEMPT 2 [    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d [    0.000000] CPU: div instructions available: patching division code [    0.000000] CPU: PIPT \/ VIPT nonaliasing data cache, VIPT aliasing instruction cache [    0.000000] OF: fdt: Machine model: STMicroelectronics STM32MP157C-DK2 Discovery Board [    0.000000] Memory policy: Data cache writealloc [    0.000000] Reserved memory: created DMA memory pool at 0x10000000, size 0 MiB [    0.000000] OF: reserved mem: initialized node mcuram2@10000000, compatible id shared-dma-pool [    0.000000] Reserved memory: created DMA memory pool at 0x10040000, size 0 MiB [    0.000000] OF: reserved mem: initialized node vdev0vring0@10040000, compatible id shared-dma-pool [    0.000000] Reserved memory: created DMA memory pool at 0x10041000, size 0 MiB [    0.000000] OF: reserved mem: initialized node vdev0vring1@10041000, compatible id shared-dma-pool [    0.000000] Reserved memory: created DMA memory pool at 0x10042000, size 0 MiB [    0.000000] OF: reserved mem: initialized node vdev0buffer@10042000, compatible id shared-dma-pool [    0.000000] Reserved memory: created DMA memory pool at 0x10048000, size 0 MiB [    0.000000] OF: reserved mem: initialized node mcu_rsc_table@10048000, compatible id shared-dma-pool [    0.000000] Reserved memory: created DMA memory pool at 0x30000000, size 0 MiB [    0.000000] OF: reserved mem: initialized node mcuram@30000000, compatible id shared-dma-pool [    0.000000] Reserved memory: created DMA memory pool at 0x38000000, size 0 MiB [    0.000000] OF: reserved mem: initialized node retram@38000000, compatible id shared-dma-pool [    0.000000] cma: Reserved 128 MiB at 0xd8000000 [    0.000000] Zone ranges: [    0.000000]   Normal   [mem 0x00000000c0000000-0x00000000dfffffff] [    0.000000]   HighMem  empty [    0.000000] Movable zone start for each node [    0.000000] Early memory node ranges [    0.000000]   node   0: [mem 0x00000000c0000000-0x00000000d3ffffff] [    0.000000]   node   0: [mem 0x00000000d4000000-0x00000000d7ffffff] [    0.000000]   node   0: [mem 0x00000000d8000000-0x00000000dfffffff] [    0.000000] Initmem setup node 0 [mem 0x00000000c0000000-0x00000000dfffffff] [    0.000000] On node 0 totalpages: 131072 [    0.000000]   Normal zone: 1152 pages used for memmap [    0.000000]   Normal zone: 0 pages reserved [    0.000000]   Normal zone: 131072 pages, LIFO batch:31 [    0.000000] psci: probing for conduit method from DT. [    0.000000] psci: PSCIv1.1 detected in firmware. [    0.000000] psci: Using standard PSCI v0.2 function IDs [    0.000000] psci: MIGRATE_INFO_TYPE not supported. [    0.000000] psci: SMC Calling Convention v1.2 [    0.000000] percpu: Embedded 20 pages\/cpu s49164 r8192 d24564 u81920 [    0.000000] pcpu-alloc: s49164 r8192 d24564 u81920 alloc=20*4096 [    0.000000] pcpu-alloc: [0] 0 [0] 1  [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 129920 [    0.000000] Kernel command line: console=ttySTM0,115200 console=tty1,115200 fbcon=rotate:3  root=\/dev\/mmcblk0p4 ro rootwait  [    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear) [    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear) [    0.000000] mem auto-init: stack:off, heap alloc:on, heap free:on [    0.000000] mem auto-init: clearing system memory may take some time... [    0.000000] Memory: 299876K\/524288K available (11264K kernel code, 1160K rwdata, 3328K rodata, 1024K init, 4381K bss, 93340K reserved, 131072K cma-res) [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1 [    0.000000] rcu: Preemptible hierarchical RCU implementation. [    0.000000] rcu:     RCU event tracing is enabled. [    0.000000]  Trampoline variant of Tasks RCU enabled. [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 [    0.000000] random: get_random_bytes called from start_kernel+0x2e0\/0x494 with crng_init=0 [    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (virt). [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns [    0.000009] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns [    0.000030] Switching to timer-based delay loop, resolution 41ns [    0.001734] Console: colour dummy device 80x30 [    0.003054] printk: console [tty1] enabled [    0.003126] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000) [    0.003185] pid_max: default: 32768 minimum: 301 [    0.003442] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [    0.003489] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) [    0.004675] CPU: Testing write buffer coherency: ok [    0.005119] \/cpus\/cpu@0 missing clock-frequency property [    0.005183] \/cpus\/cpu@1 missing clock-frequency property [    0.005218] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 [    0.006217] Setting up static identity map for 0xc0100000 - 0xc0100060 [    0.006429] rcu: Hierarchical SRCU implementation. [    0.007842] smp: Bringing up secondary CPUs ... [    0.008965] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 [    0.009206] smp: Brought up 1 node, 2 CPUs [    0.009274] SMP: Total of 2 processors activated (96.00 BogoMIPS). [    0.009303] CPU: All CPU(s) started in SVC mode. [    0.010352] devtmpfs: initialized [    0.049804] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5 [    0.050250] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [    0.050319] futex hash table entries: 512 (order: 3, 32768 bytes, linear) [    0.156552] pinctrl core: initialized pinctrl subsystem [    0.158494] NET: Registered protocol family 16 [    0.167959] DMA: preallocated 256 KiB pool for atomic coherent allocations [    0.170030] thermal_sys: Registered thermal governor 'step_wise' [    0.170493] cpuidle: using governor menu [    0.170917] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers. [    0.170967] hw-breakpoint: maximum watchpoint size is 8 bytes. [    0.171356] Serial: AMBA PL011 UART driver [    0.223839] stm32-pm-domain pm_domain: domain core-ret-power-domain registered [    0.223928] stm32-pm-domain pm_domain: subdomain core-power-domain registered [    0.223967] stm32-pm-domain pm_domain: domains probed [    0.248252] fbcon: Taking over console [    0.253521] SCSI subsystem initialized [    0.253982] libata version 3.00 loaded. [    0.254529] usbcore: registered new interface driver usbfs [    0.254656] usbcore: registered new interface driver hub [    0.254762] usbcore: registered new device driver usb [    0.255132] pps_core: LinuxPPS API ver. 1 registered [    0.255166] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti &lt;giometti@linux.it> [    0.255235] PTP clock support registered [    0.256218] arm-scmi firmware:scmi0: SCMI Notifications - Core Enabled. [    0.256336] arm-scmi firmware:scmi0: SCMI Protocol v2.0 'ST:' Firmware version 0x0 [    0.259723] clocksource: Switched to clocksource arch_sys_counter [    1.931049] NET: Registered protocol family 2 [    1.931280] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear) [    1.932638] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear) [    1.932830] TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear) [    1.932930] TCP bind hash table entries: 4096 (order: 3, 32768 bytes, linear) [    1.933047] TCP: Hash tables configured (established 4096 bind 4096) [    1.933222] UDP hash table entries: 256 (order: 1, 8192 bytes, linear) [    1.933294] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear) [    1.933591] NET: Registered protocol family 1 [    1.934616] RPC: Registered named UNIX socket transport module. [    1.934667] RPC: Registered udp transport module. [    1.934695] RPC: Registered tcp transport module. [    1.934722] RPC: Registered tcp NFSv4.1 backchannel transport module. [    1.935943] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available [    1.938090] Initialise system trusted keyrings [    1.938506] workingset: timestamp_bits=14 max_order=17 bucket_order=3 [    1.949300] DLM installed [    1.951142] squashfs: version 4.0 (2009\/01\/31) Phillip Lougher [    1.952642] NFS: Registering the id_resolver key type [    1.952729] Key type id_resolver registered [    1.952759] Key type id_legacy registered [    1.952983] nfs4filelayout_init: NFSv4 File Layout Driver Registering... [    1.953024] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering... [    1.953116] ntfs: driver 2.1.32 [Flags: R\/O]. [    1.953487] jffs2: version 2.2. (NAND) ?? 2001-2006 Red Hat, Inc. [    1.954997] Key type asymmetric registered [    1.955048] Asymmetric key parser 'x509' registered [    1.955139] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246) [    1.955180] io scheduler mq-deadline registered [    1.955207] io scheduler kyber registered [    1.968262] Serial: 8250\/16550 driver, 5 ports, IRQ sharing enabled [    1.972254] STMicroelectronics ASC driver initialized [    1.972914] STM32 USART driver initialized [    1.995390] brd: module loaded [    1.996957] random: fast init done [    2.001609] random: crng init done [    2.008701] loop: module loaded [    2.015326] libphy: Fixed MDIO Bus: probed [    2.017791] CAN device driver interface [    2.020121] pegasus: v0.9.3 (2013\/04\/25), Pegasus\/Pegasus II USB Ethernet driver [    2.020261] usbcore: registered new interface driver pegasus [    2.020394] usbcore: registered new interface driver asix [    2.020486] usbcore: registered new interface driver ax88179_178a [    2.020575] usbcore: registered new interface driver cdc_ether [    2.020682] usbcore: registered new interface driver smsc75xx [    2.020789] usbcore: registered new interface driver smsc95xx [    2.020877] usbcore: registered new interface driver net1080 [    2.020963] usbcore: registered new interface driver cdc_subset [    2.021061] usbcore: registered new interface driver zaurus [    2.021184] usbcore: registered new interface driver cdc_ncm [    2.022809] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [    2.022898] ehci-platform: EHCI generic platform driver [    2.023392] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [    2.023455] ohci-platform: OHCI generic platform driver [    2.024276] usbcore: registered new interface driver cdc_acm [    2.024314] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters [    2.024414] usbcore: registered new interface driver cdc_wdm [    2.024534] usbcore: registered new interface driver usb-storage [    2.028756] i2c \/dev entries driver [    2.034558] stm32-cpufreq stm32-cpufreq: Failed to get chip info: -517 [    2.035899] sdhci: Secure Digital Host Controller Interface driver [    2.035943] sdhci: Copyright(c) Pierre Ossman [    2.035968] Synopsys Designware Multimedia Card Interface Driver [    2.036516] sdhci-pltfm: SDHCI platform and OF driver helper [    2.037925] ledtrig-cpu: registered to indicate activity on CPUs [    2.038221] SMCCC: SOC_ID: ID = jep106:0020:0500 Revision = 0x00002000 [    2.040004] remoteproc remoteproc0: releasing m4 [    2.043591] NET: Registered protocol family 10 [    2.045125] Segment Routing with IPv6 [    2.045280] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver [    2.046324] NET: Registered protocol family 17 [    2.046386] can: controller area network core [    2.046518] NET: Registered protocol family 29 [    2.046550] can: raw protocol [    2.046578] can: broadcast manager protocol [    2.046615] can: netlink gateway - max_hops=1 [    2.046983] sctp: Hash tables configured (bind 512\/512) [    2.047733] Key type dns_resolver registered [    2.047887] ThumbEE CPU extension supported. [    2.047933] Registering SWP\/SWPB emulation handler [    2.048396] Loading compiled-in X.509 certificates [    2.089462] stm32-mdma 58000000.dma-controller: STM32 MDMA driver registered [    2.093370] stm32-dma 48000000.dma-controller: STM32 DMA driver registered [    2.096172] stm32-dma 48001000.dma-controller: STM32 DMA driver registered [    2.106720] stm_thermal 50028000.thermal: stm_thermal_probe: Driver initialized successfully [    2.114496] remoteproc remoteproc0: releasing m4 [    2.115514] \/soc\/interrupt-controller@5000d000: bank0 [    2.115568] \/soc\/interrupt-controller@5000d000: bank1 [    2.115605] \/soc\/interrupt-controller@5000d000: bank2 [    2.120309] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOA bank added [    2.122881] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOB bank added [    2.125390] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOC bank added [    2.127845] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOD bank added [    2.130464] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOE bank added [    2.133060] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOF bank added [    2.135344] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOG bank added [    2.137564] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOH bank added [    2.139862] stm32mp157-pinctrl soc:pin-controller@50002000: GPIOI bank added [    2.140243] stm32mp157-pinctrl soc:pin-controller@50002000: Pinctrl STM32 initialized [    2.143629] stm32mp157-pinctrl soc:pin-controller-z@54004000: GPIOZ bank added [    2.143710] stm32mp157-pinctrl soc:pin-controller-z@54004000: Pinctrl STM32 initialized [    2.147487] 4000e000.serial: ttySTM3 at MMIO 0x4000e000 (irq = 61, base_baud = 4000000) is a stm32-usart [    2.147905] serial serial0: tty port ttySTM3 registered [    2.150188] stm32-usart 40010000.serial: interrupt mode for rx (no dma) [    2.150248] stm32-usart 40010000.serial: interrupt mode for tx (no dma) [    2.150308] 40010000.serial: ttySTM0 at MMIO 0x40010000 (irq = 62, base_baud = 4000000) is a stm32-usart [    3.384575] printk: console [ttySTM0] enabled [    3.396827] stm32-dwmac 5800a000.ethernet: IRQ eth_lpi not found [    3.401822] stm32-dwmac 5800a000.ethernet: no reset control found [    3.408337] stm32-dwmac 5800a000.ethernet: User ID: 0x40, Synopsys ID: 0x42 [    3.414633] stm32-dwmac 5800a000.ethernet:   DWMAC4\/5 [    3.419516] stm32-dwmac 5800a000.ethernet: DMA HW capability register supported [    3.426844] stm32-dwmac 5800a000.ethernet: RX Checksum Offload Engine supported [    3.434173] stm32-dwmac 5800a000.ethernet: TX Checksum insertion supported [    3.441003] stm32-dwmac 5800a000.ethernet: Wake-Up On Lan supported [    3.447439] stm32-dwmac 5800a000.ethernet: TSO supported [    3.452563] stm32-dwmac 5800a000.ethernet: Enable RX Mitigation via HW Watchdog Timer [    3.460404] stm32-dwmac 5800a000.ethernet: Enabled Flow TC (entries=2) [    3.466898] stm32-dwmac 5800a000.ethernet: TSO feature enabled [    3.472810] stm32-dwmac 5800a000.ethernet: Using 32 bits DMA width [    3.481192] libphy: stmmac: probed [    3.493898] stm32_rtc 5c004000.rtc: registered as rtc0 [    3.497769] stm32_rtc 5c004000.rtc: setting system clock to 2000-01-01T04:49:35 UTC (946702175) [    3.507249] stm32_rtc 5c004000.rtc: Date\/Time must be initialized [    3.512542] stm32_rtc 5c004000.rtc: registered rev:1.2 [    3.548077] stm32f7-i2c 40012000.i2c: STM32F7 I2C-0 bus adapter [    3.581762] stpmic1 1-0033: PMIC Chip Version: 0x21 [    3.591067] vddcore: supplied by vin [    3.596344] vdd_ddr: supplied by vin [    3.601509] vdd: supplied by vin [    3.606481] v3v3: supplied by vin [    3.611393] v1v8_audio: supplied by v3v3 [    3.617894] v3v3_hdmi: supplied by vin [    3.623854] vtt_ddr: supplied by vdd_ddr [    3.629681] vdd_usb: supplied by vin [    3.632608] vdda: supplied by vin [    3.638649] v1v2_hdmi: supplied by v3v3 [    3.644448] vref_ddr: supplied by vin [    3.650076] bst_out: supplied by vin [    3.653102] vbus_otg: supplied by bst_out [    3.657098] vbus_sw: supplied by bst_out [    3.663588] input: pmic_onkey as \/devices\/platform\/soc\/5c002000.i2c\/i2c-1\/1-0033\/5c002000.i2c:stpmic@33:onkey\/input\/input0 [    3.674478] stm32f7-i2c 5c002000.i2c: STM32F7 I2C-1 bus adapter [    3.683459] mmci-pl18x 58005000.sdmmc: Got CD GPIO [    3.688237] mmci-pl18x 58005000.sdmmc: mmc0: PL180 manf 53 rev2 at 0x58005000 irq 54,0 (pio) [    3.724382] mmci-pl18x 58007000.sdmmc: allocated mmc-pwrseq [    3.729798] mmci-pl18x 58007000.sdmmc: mmc1: PL180 manf 53 rev1 at 0x58007000 irq 55,0 (pio) [    3.767513] stm32-ipcc 4c001000.mailbox: ipcc rev:1.0 enabled, 6 chans, proc 0 [    3.776680] stm32-rproc 10000000.m4: wdg irq registered [    3.781838] remoteproc remoteproc0: m4 is available [    3.786451] reg11: supplied by vdd [    3.789288] reg18: supplied by vdd [    3.795376] mmc0: new high speed SDHC card at address 0007 [    3.801855] mmcblk0: mmc0:0007 SD8GB 7.42 GiB  [    3.806963] stm32-usbphyc 5a006000.usbphyc: registered rev:1.0 [    3.815564] mmc1: queuing unknown CIS tuple 0x80 (2 bytes) [    3.821636] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [    3.827239] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [    3.834691] mmc1: queuing unknown CIS tuple 0x80 (7 bytes) [    3.838943] GPT:Primary header thinks Alt. header is not at the end of the disk. [    3.846270] GPT:8388591 != 15564799 [    3.849657] GPT:Alternate GPT header not at the end of the disk. [    3.855702] GPT:8388591 != 15564799 [    3.859184] GPT: Use GNU Parted to correct GPT errors. [    3.870216] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [    3.874932] dwc2 49000000.usb-otg: supply vusb_d not found, using dummy regulator [    3.882086]  mmcblk0: p1 p2 p3 p4 [    3.886225] dwc2 49000000.usb-otg: supply vusb_a not found, using dummy regulator [    3.894599] mmc1: queuing unknown CIS tuple 0x80 (6 bytes) [    3.983166] mmc1: new high speed SDIO card at address 0001 [    4.030027] dwc2 49000000.usb-otg: EPs: 9, dedicated fifos, 952 entries in SPRAM [    4.036787] dwc2 49000000.usb-otg: DWC OTG Controller [    4.041226] dwc2 49000000.usb-otg: new USB bus registered, assigned bus number 1 [    4.048596] dwc2 49000000.usb-otg: irq 87, io mem 0x49000000 [    4.054555] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10 [    4.062519] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [    4.069623] usb usb1: Product: DWC OTG Controller [    4.074421] usb usb1: Manufacturer: Linux 5.10.61 dwc2_hsotg [    4.080049] usb usb1: SerialNumber: 49000000.usb-otg [    4.086104] hub 1-0:1.0: USB hub found [    4.088750] hub 1-0:1.0: 1 port detected [    4.095382] ehci-platform 5800d000.usbh-ehci: EHCI Host Controller [    4.100351] ehci-platform 5800d000.usbh-ehci: new USB bus registered, assigned bus number 2 [    4.109333] ehci-platform 5800d000.usbh-ehci: irq 64, io mem 0x5800d000 [    4.139749] ehci-platform 5800d000.usbh-ehci: USB 2.0 started, EHCI 1.00 [    4.145466] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10 [    4.153340] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [    4.160578] usb usb2: Product: EHCI Host Controller [    4.165454] usb usb2: Manufacturer: Linux 5.10.61 ehci_hcd [    4.170985] usb usb2: SerialNumber: 5800d000.usbh-ehci [    4.177090] hub 2-0:1.0: USB hub found [    4.179875] hub 2-0:1.0: 2 ports detected [    4.190999] i2c i2c-0: Added multiplexed i2c bus 2 [    4.201153] [drm] Initialized stm 1.0.0 20170330 for 5a001000.display-controller on minor 0 [    4.203507] input: generic ft5x06 (11) as \/devices\/platform\/soc\/40012000.i2c\/i2c-0\/0-0038\/input\/input2 [    4.479759] usb 2-1: new high-speed USB device number 2 using ehci-platform [    4.650120] Console: switching to colour frame buffer device 100x30 [    4.690724] stm32-display 5a001000.display-controller: [drm] fb0: stmdrmfb frame buffer device [    4.704512] usb 2-1: New USB device found, idVendor=0424, idProduct=2514, bcdDevice= b.b3 [    4.714574] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [    4.723151] EXT4-fs (mmcblk0p4): INFO: recovery required on readonly filesystem [    4.732521] EXT4-fs (mmcblk0p4): write access will be enabled during recovery [    4.732874] hub 2-1:1.0: USB hub found [    4.747048] hub 2-1:1.0: 4 ports detected [    5.069796] usb 2-1.2: new full-speed USB device number 3 using ehci-platform [    5.235653] usb 2-1.2: New USB device found, idVendor=248a, idProduct=8368, bcdDevice= 1.00 [    5.245932] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [    5.255058] usb 2-1.2: Product: Wireless Receiver [    5.261489] usb 2-1.2: Manufacturer: Telink [    8.620185] EXT4-fs (mmcblk0p4): recovery complete [    8.702157] EXT4-fs (mmcblk0p4): mounted filesystem with ordered data mode. Opts: (null) [    8.712225] VFS: Mounted root (ext4 filesystem) readonly on device 179:4. [    8.730565] devtmpfs: mounted [    8.738142] Freeing unused kernel memory: 1024K [    8.744875] Run \/sbin\/init as init process [    8.750624]   with arguments: [    8.750636]     \/sbin\/init [    8.750646]   with environment: [    8.750655]     HOME=\/ [    8.750663]     TERM=linux [    9.256334] systemd[1]: System time before build time, advancing clock. [    9.362686] systemd[1]: systemd 249.11-0ubuntu3.1 running in system mode (+PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT +GNUTLS -OPENSSL) [    9.407012] systemd[1]: Detected architecture arm. [    9.430062] systemd[1]: Hostname set to &lt;stm32mp1>. [   10.545844] systemd[1]: Configuration file \/etc\/systemd\/system\/weston.service is marked executable. Please remove executable permission bits. Proceedi. [   10.822205] systemd[1]: Queued start job for default target Graphical Interface. [   10.840743] systemd[1]: Created slice Slice \/system\/getty. [   10.855899] systemd[1]: Created slice Slice \/system\/modprobe. [   10.871475] systemd[1]: Created slice Slice \/system\/serial-getty. [   10.885888] systemd[1]: Created slice User and Session Slice. [   10.898367] systemd[1]: Started Dispatch Password Requests to Console Directory Watch. [   10.913288] systemd[1]: Started Forward Password Requests to Wall Directory Watch. [   10.927723] systemd[1]: Condition check resulted in Arbitrary Executable File Formats File System Automount Point being skipped. [   10.945624] systemd[1]: Reached target Local Encrypted Volumes. [   10.958738] systemd[1]: Reached target Remote File Systems. [   10.970942] systemd[1]: Reached target Slice Units. [   10.982216] systemd[1]: Reached target Swaps. [   10.992794] systemd[1]: Reached target Local Verity Protected Volumes. [   11.006864] systemd[1]: Listening on fsck to fsckd communication Socket. [   11.020846] systemd[1]: Listening on initctl Compatibility Named Pipe. [   11.057064] systemd[1]: Condition check resulted in Journal Audit Socket being skipped. [   11.069216] systemd[1]: Listening on Journal Socket (\/dev\/log). [   11.083254] systemd[1]: Listening on Journal Socket. [   11.098133] systemd[1]: Listening on udev Control Socket. [   11.111438] systemd[1]: Listening on udev Kernel Socket. [   11.123167] systemd[1]: Reached target Socket Units. [   11.135460] systemd[1]: Condition check resulted in Huge Pages File System being skipped. [   11.153217] systemd[1]: Mounting POSIX Message Queue File System... [   11.174832] systemd[1]: Mounting Kernel Debug File System... [   11.195960] systemd[1]: Mounting Kernel Trace File System... [   11.210524] systemd[1]: systemd-journald.service: unit configures an IP firewall, but the local system does not support BPF\/cgroup firewalling. [   11.229409] systemd[1]: (This warning is only shown for the first unit using IP firewalling.) [   11.246639] systemd[1]: Starting Journal Service... [   11.269521] systemd[1]: Starting Create List of Static Device Nodes... [   11.293634] systemd[1]: Starting Load Kernel Module configfs... [   11.317737] systemd[1]: Starting Load Kernel Module drm... [   11.364086] systemd[1]: Starting Load Kernel Module fuse... [   11.385957] systemd[1]: Started Nameserver information manager. [   11.425058] systemd[1]: Reached target Preparation for Network. [   11.447293] systemd[1]: Starting File System Check on Root Device... [   11.501570] systemd[1]: Starting Load Kernel Modules... [   11.541092] systemd[1]: Starting Coldplug All udev Devices... [   11.605247] systemd[1]: Mounted POSIX Message Queue File System. [   11.622002] systemd[1]: Mounted Kernel Debug File System. [   11.639383] systemd[1]: Mounted Kernel Trace File System. [   11.680360] systemd[1]: Finished Create List of Static Device Nodes. [   11.729561] systemd[1]: modprobe@configfs.service: Deactivated successfully. [   11.752373] systemd[1]: Finished Load Kernel Module configfs. [   11.777656] systemd[1]: modprobe@drm.service: Deactivated successfully. [   11.806357] systemd[1]: Finished Load Kernel Module drm. [   11.822710] systemd[1]: modprobe@fuse.service: Deactivated successfully. [   11.834688] systemd[1]: Finished Load Kernel Module fuse. [   11.853642] systemd[1]: Finished File System Check on Root Device. [   11.869624] systemd[1]: Finished Load Kernel Modules. [   11.884449] systemd[1]: Condition check resulted in FUSE Control File System being skipped. [   11.903409] systemd[1]: Mounting Kernel Configuration File System... [   11.941738] systemd[1]: Started File System Check Daemon to report status. [   11.991178] systemd[1]: Starting Remount Root and Kernel File Systems... [   12.025340] systemd[1]: Starting Apply Kernel Variables... [   12.080632] systemd[1]: Mounted Kernel Configuration File System. [   12.117909] systemd[1]: Started Journal Service. [   12.151352] EXT4-fs (mmcblk0p4): re-mounted. Opts: errors=remount-ro [   12.271918] systemd-journald[114]: Received client request to flush runtime journal. [   12.739315] systemd-journald[114]: File \/var\/log\/journal\/666a46087e810a2037a5c929628215a8\/system.journal corrupted or uncleanly shut down, renaming an. [   17.635162] mousedev: PS\/2 mouse device common for all mice [   17.784834] st,stm32-i2s 4000b000.audio-controller: No cache defaults, reading back from HW [   18.176774] stm32-hash 54002000.hash: will run requests pump with realtime priority [   18.197864] stm32-crc32 58009000.crc: Initialized [   18.219878] stm32-cryp 54001000.cryp: will run requests pump with realtime priority [   18.272406] stm32-hash 54002000.hash: Init HASH done HW ver 23 DMA mode 1 [   18.306141] stm32-cryp 54001000.cryp: Initialized [   18.309695] Bluetooth: Core ver 2.22 [   18.342335] NET: Registered protocol family 31 [   18.342380] Bluetooth: HCI device and connection manager initialized [   18.342453] Bluetooth: HCI socket layer initialized [   18.342512] Bluetooth: L2CAP socket layer initialized [   18.342700] Bluetooth: SCO socket layer initialized [   18.621690] Bluetooth: HCI UART driver ver 2.3 [   18.621724] Bluetooth: HCI UART protocol H4 registered [   18.654283] Bluetooth: HCI UART protocol Broadcom registered [   18.661014] etnaviv etnaviv: bound 59000000.gpu (ops gpu_ops [etnaviv]) [   18.661053] etnaviv-gpu 59000000.gpu: model: GC400, revision: 4652 [   18.664492] etnaviv-gpu 59000000.gpu: Need to move linear window on MC1.0, disabling TS [   18.665654] [drm] Initialized etnaviv 1.3.0 20151214 for etnaviv on minor 1 [   19.091070] Bluetooth: hci0: BCM: chip id 94 [   19.091697] Bluetooth: hci0: BCM: features 0x2e [   19.093155] Bluetooth: hci0: BCM43430A1 [   19.093191] Bluetooth: hci0: BCM43430A1 (001.002.009) build 0000 [   19.278339] Bluetooth: hci0: BCM: firmware Patch file not found, tried: [   19.285904] Bluetooth: hci0: BCM: 'brcm\/BCM43430A1.hcd' [   19.293730] Bluetooth: hci0: BCM: 'brcm\/BCM.hcd' [   19.425872] input: Telink Wireless Receiver Mouse as \/devices\/platform\/soc\/5800d000.usbh-ehci\/usb2\/2-1\/2-1.2\/2-1.2:1.0\/0003:248A:8368.0001\/input\/input3 [   19.427219] input: Telink Wireless Receiver Consumer Control as \/devices\/platform\/soc\/5800d000.usbh-ehci\/usb2\/2-1\/2-1.2\/2-1.2:1.0\/0003:248A:8368.0001\/4 [   19.490677] input: Telink Wireless Receiver System Control as \/devices\/platform\/soc\/5800d000.usbh-ehci\/usb2\/2-1\/2-1.2\/2-1.2:1.0\/0003:248A:8368.0001\/in5 [   19.491319] hid-generic 0003:248A:8368.0001: input: USB HID v1.11 Mouse [Telink Wireless Receiver] on usb-5800d000.usbh-ehci-1.2\/input0 [   19.497027] input: Telink Wireless Receiver as \/devices\/platform\/soc\/5800d000.usbh-ehci\/usb2\/2-1\/2-1.2\/2-1.2:1.1\/0003:248A:8368.0002\/input\/input6 [   19.562143] hid-generic 0003:248A:8368.0002: input: USB HID v1.11 Keyboard [Telink Wireless Receiver] on usb-5800d000.usbh-ehci-1.2\/input1 [   19.562588] usbcore: registered new interface driver usbhid [   19.562606] usbhid: USB HID core driver [   19.720901] cfg80211: Loading compiled-in X.509 certificates for regulatory database [   20.248491] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' [   20.800031] brcmfmac: brcmf_fw_alloc_request: using brcm\/brcmfmac43430-sdio for chip BCM43430\/1 [   21.010353] brcmfmac: brcmf_fw_alloc_request: using brcm\/brcmfmac43430-sdio for chip BCM43430\/1 [   21.080696] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43430\/1 wl0: Mar 30 2021 01:12:21 version 7.45.98.118 (7d96287 CY) FWID 01-32059766 [   25.059943] stm32-dwmac 5800a000.ethernet eth0: PHY [stmmac-0:00] driver [RTL8211F Gigabit Ethernet] (irq=POLL) [   25.074002] dwmac4: Master AXI performs any burst length [   25.074049] stm32-dwmac 5800a000.ethernet eth0: No Safety Features support found [   25.074088] stm32-dwmac 5800a000.ethernet eth0: IEEE 1588-2008 Advanced Timestamp supported [   25.074645] stm32-dwmac 5800a000.ethernet eth0: registered PTP clock [   25.086844] stm32-dwmac 5800a000.ethernet eth0: configuring for phy\/rgmii-id link mode [   35.039852] usb33: supplied by vdd_usb [   35.040039] vref: supplied by vdd [   35.040196] vref: disabling [   35.040223] vdda: disabling [  131.202957] stm32-dwmac 5800a000.ethernet eth0: Link is Up - 100Mbps\/Full - flow control rx\/tx [  131.203014] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [  185.514387] systemd-journald[114]: Failed to set ACL on \/var\/log\/journal\/666a46087e810a2037a5c929628215a8\/user-1000.journal, ignoring: Operation not sd ubuntu@stm32mp1:~$<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/628e3a23a25813b4776efd89\" data-style=\"\" id=\"628e3a23a25813b4776efd89\" width=\"\"><\/div>\n<p>\u041d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 U-boot, AT-F, Kernel \u0438 &#171;\u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438&#187; \u0432\u0441\u0435\u0433\u043e \u0432 \u043e\u0431\u0440\u0430\u0437 &lt;img> \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u0430 SD \u043a\u0430\u0440\u0442\u0443<br \/>GitHub: <a href=\"https:\/\/github.com\/cvetaevvitaliy\/stm32mp1-ubuntu\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/cvetaevvitaliy\/stm32mp1-ubuntu<\/a><\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/667774\/\"> https:\/\/habr.com\/ru\/post\/667774\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!<\/p>\n<p>\u0421\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e, \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Canonical, \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 Ubuntu 22.04, &#171;\u043f\u043e\u0442\u044b\u043a\u0430\u0432&#187; \u0435\u0435 \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0435, \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043a\u0430\u0442\u0438\u0442\u044c \u0430\u043f\u0434\u0435\u0439\u0442 \u043d\u0430 \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0439 \u043d\u043e\u0443\u0442, \u043f\u043e\u043a\u0430 \u043d\u0430\u043a\u0430\u0442\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f, \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u043b \u0434\u0435\u0432\u043a\u0438\u0442\u044b \u043d\u0430 \u043f\u043e\u043b\u043a\u0435, \u043d\u0430\u0448\u0435\u043b \u0437\u0430\u043f\u044b\u043b\u0435\u043d\u043d\u0443\u044e STM32MP157c-DK2 \u043e\u0442\u043b\u0430\u0434\u0443\u0447\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u043a\u0443 \u043e\u0442 \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043d\u0443 \u0438 \u043f\u043e\u0434\u0443\u043c\u0430\u043b &#8212; \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u0438 \u043d\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c 22-\u044e \u0443\u0431\u0443\u043d\u0442\u0443 \u043d\u0430 \u044d\u0442\u043e\u043c CPU<br \/>\u0411\u043b\u0430\u0433\u043e Canonical <a href=\"https:\/\/cdimage.ubuntu.com\/ubuntu-base\/releases\/22.04\/release\" rel=\"noopener noreferrer nofollow\">\u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u0440\u0435\u043b\u0438\u0437\u044b<\/a> \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e rootfs \u0434\u043b\u044f ARM \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432.<\/p>\n<p>\u0412 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043f\u043e\u043b\u043d\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c Yocto \u0438\u043b\u0438 Buildroot \u043f\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440, \u043d\u043e \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u044f \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b.<\/p>\n<p>STMicroelectronics \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0445\u0432\u0430\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u043c \u0432\u044b\u0431\u043e\u0440\u043e\u043c 8-bit \u0438 32-bit \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 (MCU), \u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u0432 \u0438\u0445 \u0430\u0440\u0441\u0435\u043d\u0430\u043b\u0435 \u0435\u0441\u0442\u044c CPU STM32MP1<\/p>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0440\u0438 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 \u0441\u0435\u0440\u0438\u0438 STM32MP1: STM32MP151, STM32MP153 \u0438 STM32MP157. \u0418\u0445 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435.<\/p>\n<figure class=\"full-width\"><figcaption>STM32MP1<\/figcaption><\/figure>\n<p>STM32MP1 \u044f\u0434\u0440\u0430 Cortex-A7 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 650 \u041c\u0413\u0446 \u0438 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u044e\u0442\u0441\u044f 32-\u041a\u0431\u0430\u0439\u0442\u043d\u044b\u043c \u043a\u0435\u0448\u0435\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 L1, 32-\u041a\u0431\u0430\u0439\u0442\u043d\u044b\u043c \u043a\u0435\u0448\u0435\u043c \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0438 256-\u041a\u0431\u0430\u0439\u0442\u043d\u044b\u043c \u043a\u0435\u0448\u0435\u043c \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f. \u0422\u0430\u043a\u0436\u0435 A7 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 Arm Neon SIMD, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0430 \u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432.<\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441 \u043d\u0438\u0437\u043a\u0438\u043c \u044d\u043d\u0435\u0440\u0433\u043e\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435\u043c \u044f\u0434\u0440\u043e Cortex-M4 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 209 \u041c\u0413\u0446 \u0441 \u043c\u043e\u0434\u0443\u043b\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0447\u0438\u0441\u0435\u043b \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 (FPU), \u043f\u043e\u043b\u043d\u044b\u043c \u043d\u0430\u0431\u043e\u0440\u043e\u043c DSP \u043a\u043e\u043c\u0430\u043d\u0434 \u0438 \u0441 \u043c\u043e\u0434\u0443\u043b\u0435\u043c \u0437\u0430\u0449\u0438\u0442\u044b \u043f\u0430\u043c\u044f\u0442\u0438 (MPU), \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u043c \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>\u041b\u0438\u043d\u0435\u0439\u043a\u0430 STM32MP1 \u0438\u043c\u0435\u0435\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 3D \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 GPU \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u0441 OpenGL \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 HMI, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0439 \u043d\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 533 \u041c\u0413\u0446. GPU \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b DDR \u0438 LPDDR \u0441 \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 533 \u041c\u0413\u0446, 256 \u041a\u0411 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 384 \u041a\u0411 \u041e\u0417\u0423 MCU \u0438 64 \u041a\u0411 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0447\u0442\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u0435\u0442 Cortex-M4 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u043e\u043d\u0438\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u044d\u043d\u0435\u0440\u0433\u043e\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, STM32MP1 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e Arm TrustZone, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044e \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u041f\u041e \u0432 \u0446\u0435\u043b\u043e\u043c, \u0432 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435 \u0432\u0441\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u041a\u0440\u043e\u043c\u0435\u0435 \u0442\u043e\u0433\u043e, STM32MP1 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0443\u044e \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043e\u043f\u0446\u0438\u044e, \u0438\u043c\u0435\u0435\u0442 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u044b\u0435 \u041e\u0417\u0423 \u0438 \u041f\u0417\u0423, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u0449\u0438\u0442\u0443 \u043e\u0442 \u043d\u0435\u0441\u0430\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u044b\u0435 \u0447\u0430\u0441\u044b \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041b\u0438\u043d\u0435\u0439\u043a\u0430 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 16- \u0438 32-\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0442\u0430\u0439\u043c\u0435\u0440\u044b, \u0430 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0445 \u0432\u0445\u043e\u0434\u043e\u0432 &#8212; \u0434\u0432\u0430 \u043f\u043e\u043b\u043d\u044b\u0445 16-\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u044b\u0445 \u0410\u0426\u041f \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0434\u043e 22 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438.<\/p>\n<p>\u0412 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e \u0432\u0441\u0435\u043c\u0443, STM32MP1 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0434\u043e 20 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0445 \u0448\u0438\u0440\u043e\u043a\u0443\u044e \u043d\u043e\u043c\u0435\u0440\u043a\u043b\u0430\u0442\u0443\u0440\u0443 \u043a\u0430\u043c\u0435\u0440, \u0434\u0438\u0441\u043f\u043b\u0435\u0435\u0432, \u0441\u0435\u0442\u0438 Ethernet, \u043f\u043e\u0440\u0442\u044b USB, HDMI \u0438 UART. \u0414\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438, \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0439\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u043c\u0435\u0436\u0434\u0443 Cortex-A7 \u0438\u043b\u0438 Cortex-M4.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0430\u0447\u043d\u0435\u043c.<\/p>\n<p>\u0411\u0438\u043b\u0434\u0438\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u043d\u0430 \u043d\u043e\u0443\u0442\u0435 \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0439 Ubuntu, \u043c\u043e\u0436\u043d\u043e \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0435, \u0443\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435, \u0431\u0435\u0437 \u0440\u0430\u0437\u043d\u0438\u0446\u044b  &#8212; \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043a\u0430.<\/p>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u043f\u043e \u0442\u0430\u043a\u0443\u044e \u043f\u043b\u0430\u0442\u0443 STM32MP157c-DK2<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<hr\/>\n<p>\u0420\u0430\u0437\u043e\u0431\u044c\u0451\u043c \u0441\u0431\u043e\u0440\u043a\u0443 \u043d\u0430 \u044d\u0442\u0430\u043f\u044b:<\/p>\n<ol>\n<li>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c U-boot .<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c OP-TEE &#8212; \u0434\u0430, \u0433\u0440\u0443\u0437\u0438\u0442\u044c \u044f\u0434\u0440\u043e \u0438 Ubuntu 22.04 \u0431\u0443\u0434\u0435\u043c \u0432 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u0432 \u0438\u043d\u0435\u0442\u0435 \u043f\u043e\u043b\u043d\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0431\u0443\u0442\u043b\u043e\u0430\u0434\u0435\u0440 \u043d\u0430 \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446, \u043d\u043e \u043d\u0435\u0442 \u043a\u0430\u043a \u0441\u043e\u0431\u0440\u0430\u0442\u044c arm-trust.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u044f\u0434\u0440\u043e Linux .<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0431\u0430\u0437\u043e\u0432\u044b\u0439 rootfs Ubuntu 22.04.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0432\u0441\u0435 \u044d\u0442\u043e \u0432 \u043e\u0434\u043d\u0443 \u043a\u0443\u0447\u0443 \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0433\u043e\u0442\u043e\u0432\u044b\u0439 .img \u0434\u043b\u044f \u0437\u0430\u043b\u0438\u0432\u043a\u0438 \u043d\u0430 SD \u043a\u0430\u0440\u0442\u0443.<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043a\u0430\u0447\u0430\u0435\u043c ARM \u043a\u0440\u043e\u0441\u0441 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 GCC \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c, \u0438\u043c \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0432\u0441\u044e \u043d\u0430\u0448\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u0443.<\/p>\n<pre><code class=\"bash\">mkdir stm32mp &amp;&amp; cd stm32mp wget -c https:\/\/mirrors.edge.kernel.org\/pub\/tools\/crosstool\/files\/bin\/x86_64\/10.3.0\/x86_64-gcc-10.3.0-nolibc-arm-linux-gnueabi.tar.gz tar xf x86_64-gcc-10.3.0-nolibc-arm-linux-gnueabi.tar.gz export CC=`pwd`\/gcc-10.3.0-nolibc\/arm-linux-gnueabi\/bin\/arm-linux-gnueabi-<\/code><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0432\u0435\u0440\u0441\u0438\u044e:<\/p>\n<pre><code class=\"bash\">${CC}gcc --version<\/code><\/pre>\n<p>\u0412\u044b\u0445\u043b\u043e\u043f<\/p>\n<pre><code class=\"bash\">arm-linux-gnueabi-gcc (GCC) 10.3.0 Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions.  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.<\/code><\/pre>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438:<\/p>\n<pre><code class=\"bash\">sudo apt install flex bison ncurses-base build-essential qemu-user-static device-tree-compiler<\/code><\/pre>\n<hr\/>\n<p><strong>U-Boot<\/strong><\/p>\n<p>\u041a\u0430\u0447\u0430\u0435\u043c U-boot \u0441 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f ST \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c trusted u-boot<\/p>\n<pre><code class=\"bash\">git clone -b v2020.10-stm32mp https:\/\/github.com\/STMicroelectronics\/u-boot cd u-boot make ARCH=arm CROSS_COMPILE=${CC} stm32mp15_trusted_defconfig make ARCH=arm CROSS_COMPILE=${CC} DEVICE_TREE=stm32mp157c-dk2 u-boot.stm32 all<\/code><\/pre>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430 <code>u-boot.dtb<\/code> \u0438 <code>u-boot-nodtb.bin<\/code>  \u0434\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0438 \u0441\u0431\u043e\u0440\u043a\u0438 OP-TEE <\/p>\n<p>\u041a\u0430\u0447\u0430\u0435\u043c OP-TEE \u0441 git ST<br \/>\u0412\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043a \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043e\u0439 <code>BL33_CFG<\/code> \u0438 <code>BL33<\/code> \u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0433\u0434\u0435 \u043b\u0435\u0436\u0438\u0442 \u0441\u043e\u0431\u0440\u0430\u043d\u044b\u0439 U-boot \u0438 \u0444\u0430\u0439\u043b\u044b <code>u-boot.dtb<\/code> \u0438 <code>u-boot-nodtb.bin<\/code> <\/p>\n<pre><code class=\"bash\"># \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043d\u0430\u0437\u0430\u0434 \u0432 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 stm32mp cd .. git clone -b v2.4-stm32mp https:\/\/github.com\/STMicroelectronics\/arm-trusted-firmware cd arm-trusted-firmware make CROSS_COMPILE=${CC} \\ PLAT=stm32mp1 \\       ARCH=aarch32 \\       ARM_ARCH_MAJOR=7 \\       STM32MP_SDMMC=1 \\       STM32MP_EMMC=1 \\       AARCH32_SP=sp_min \\       DTB_FILE_NAME=stm32mp157c-dk2.dtb \\       BL33_CFG=..\/u-boot\/u-boot.dtb \\       BL33=..\/u-boot\/u-boot-nodtb.bin \\       all fip <\/code><\/pre>\n<p>\u0423\u0441\u043f\u0435\u0448\u043d\u044b\u0439 \u0432\u044b\u0445\u043b\u043e\u043f \u0441\u0431\u043e\u043a\u0440\u043a\u0438 OP-TEE<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0421\u0431\u043e\u0440\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u0430, \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430 <code>fip.bin <\/code>\u0438 <code>tf-a-stm32mp157c-dk2.stm32<\/code><\/p>\n<pre><code class=\"bash\">ls -l build\/stm32mp1\/release\/<\/code><\/pre>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<hr\/>\n<p><strong>Kernel Linux<\/strong> <\/p>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u044f\u0434\u0440\u043e, \u0431\u0443\u0434\u0435\u043c \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0438\u044f ST, \u0447\u0438\u0442\u0430\u043c \u0440\u0435\u043b\u0438\u0437\u043d\u043e\u0442\u044b \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0442\u043e \u0442\u0430\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u0438 \u043f\u043e\u0444\u0438\u043a\u0441\u0438\u043b\u0438. \u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043a\u0440\u0430\u0439\u043d\u044f\u044f \u0432\u0435\u0440\u0441\u0438\u044f 5.10.61 <\/p>\n<pre><code class=\"bash\"># \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043d\u0430\u0437\u0430\u0434 \u0432 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 stm32mp cd .. git clone -b v5.10-stm32mp https:\/\/github.com\/STMicroelectronics\/linux cd linux make ARCH=arm CROSS_COMPILE=${CC} multi_v7_defconfig fragment-01-multiv7_cleanup.config fragment-02-multiv7_addons.config make ARCH=arm CROSS_COMPILE=${CC} menuconfig<\/code><\/pre>\n<p>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u043c \u044f\u0434\u0440\u043e \u043f\u043e \u0441\u0432\u043e\u0435\u043c\u0443 \u0432\u043a\u0443\u0441\u0443 \u0438 \u0437\u0430\u0434\u0430\u0447, <code>multi_v7_defconfig<\/code> \u0443\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043e\u0435, \u0432 \u043a\u043e\u043d\u0444\u0438\u0433 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0445, \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u044c\u0441\u044f \u0434\u0440\u0430\u0432\u0435\u0440\u0430 \u0434\u043b\u044f STM32MP1 CPU \u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440, \u0447\u0442\u043e \u0432\u0445\u043e\u0434\u044f\u0442 \u0432 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043e\u0431\u0449\u0438\u0439 \u043a\u043e\u043d\u0444\u0438\u0433 armv7 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432.<br \/>\u041a \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u044e \u0441\u0432\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0441\u043e\u0431\u0438\u0440\u0430\u043b \u044f\u0434\u0440\u043e.<\/p>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u044f\u0434\u0440\u043e \u0438 \u043c\u043e\u0434\u0443\u043b\u0438 \u043a \u043d\u0435\u043c\u0443<\/p>\n<pre><code class=\"bash\">make ARCH=arm CROSS_COMPILE=${CC} zImage modules -j16<\/code><\/pre>\n<p> \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c dts<\/p>\n<pre><code class=\"bash\">make ARCH=arm CROSS_COMPILE=${CC} dtbs<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0438 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0442\u0443\u0434\u0430 &#171;\u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b&#187; \u0441\u0431\u043e\u0440\u043a\u0438 <\/p>\n<pre><code class=\"bash\">mkdir -p ..\/deploy cp -v arch\/arm\/boot\/zImage ..\/deploy mkdir -p ..\/deploy\/modules make ARCH=arm CROSS_COMPILE=${CC} modules_install INSTALL_MOD_PATH=\"..\/deploy\/modules\"<\/code><\/pre>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c dtsb \u0444\u0430\u0439\u043b\u044b <\/p>\n<pre><code class=\"bash\">mkdir -p ..\/deploy\/dtsb make ARCH=arm CROSS_COMPILE=${CC} dtbs_install INSTALL_DTBS_PATH=..\/deploy\/dtsb<\/code><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u044f\u0434\u0440\u0430<\/p>\n<pre><code class=\"bash\">export kernel_ver=$(cat \"include\/generated\/utsrelease.h\" | awk '{print $3}' | sed 's\/\\\"\/\/g' ) echo ${kernel_ver} cd ..<\/code><\/pre>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043e\u0431\u0440\u0430\u0437\u0430 SD \u043a\u0430\u0440\u0442\u044b, \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0437 \u0438 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u043c \u043d\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u044b \u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u043c <\/p>\n<pre><code class=\"bash\">export IMAGE_FILENAME=\"sdcard-stm32mp157.img\" dd if=\/dev\/zero of=${DIR}\/deploy\/${IMAGE_FILENAME} bs=4096M count=2  sgdisk --resize-table=128 -a 1 \\             -n 1:34:545    -c 1:fsbl1   \\             -n 2:546:1057  -c 2:fsbl2   \\             -n 3:1058:5153 -c 3:fip    \\             -n 4:5154:     -c 4:rootfs  \\             -p .\/deploy\/${IMAGE_FILENAME}              sgdisk -A 4:set:2 .\/deploy\/${IMAGE_FILENAME} <\/code><\/pre>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0414\u043b\u044f \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0432 .img, \u043c\u043e\u0436\u0435\u043c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 <code>loop<\/code><\/p>\n<pre><code class=\"bash\"> LOOP_DEVICE=$(sudo losetup --partscan --show --find .\/deploy\/${IMAGE_FILENAME})  ls -l ${LOOP_DEVICE}*<\/code><\/pre>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u044b\u0439 u-boot \u0438 \u0444\u0430\u0439\u043b \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439 RAM<\/p>\n<pre><code class=\"bash\">sudo dd if=.\/arm-trusted-firmware\/build\/stm32mp1\/release\/tf-a-stm32mp157c-dk2.stm32 of=${LOOP_DEVICE}p1 sudo dd if=.\/arm-trusted-firmware\/build\/stm32mp1\/release\/tf-a-stm32mp157c-dk2.stm32 of=${LOOP_DEVICE}p2 sudo dd if=.\/arm-trusted-firmware\/build\/stm32mp1\/release\/fip.bin of=${LOOP_DEVICE}p3<\/code><\/pre>\n<p>\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0443\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b \u0441 \u043d\u0430\u0448\u0438\u043c \u0431\u0443\u0434\u0443\u0449\u0438\u043c rootfs. \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0434\u043b\u044f \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430\u0448\u0435\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u043c <\/p>\n<pre><code class=\"bash\">sudo mkfs.ext4 -L rootfs ${LOOP_DEVICE}p4 sudo mkdir -p deploy\/rootfs MOUNT_PATH=deploy\/rootfs sudo mount ${LOOP_DEVICE}p4 ${MOUNT_PATH}<\/code><\/pre>\n<p>\u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c Ubuntu 22.04 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <\/p>\n<pre><code class=\"bash\">wget https:\/\/cdimage.ubuntu.com\/ubuntu-base\/releases\/22.04\/release\/ubuntu-base-22.04-base-armhf.tar.gz sudo tar xvfp ubuntu-base-22.04-base-armhf.tar.gz -C ${MOUNT_PATH}<\/code><\/pre>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0430\u0439\u043b <code>extlinux.conf<\/code><\/p>\n<pre><code class=\"bash\">sudo mkdir -p ${MOUNT_PATH}\/boot\/extlinux\/ sudo sh -c \"echo 'label Linux ${kernel_ver}' > ${MOUNT_PATH}\/boot\/extlinux\/extlinux.conf\" sudo sh -c \"echo '    kernel \/boot\/vmlinuz-${kernel_ver}' >> ${MOUNT_PATH}\/boot\/extlinux\/extlinux.conf\" sudo sh -c \"echo '    append console=ttySTM0,115200 console=tty1,115200 root=\/dev\/mmcblk0p4 ro rootwait ' >> ${MOUNT_PATH}\/boot\/extlinux\/extlinux.conf\" sudo sh -c \"echo '    fdtdir \/boot\/dtbs\/${kernel_ver}\/' >> ${MOUNT_PATH}\/boot\/extlinux\/extlinux.conf\" <\/code><\/pre>\n<p>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448\u0435 \u044f\u0434\u0440\u043e, dtsb, \u043c\u043e\u0434\u0443\u043b\u0438 \u044f\u0434\u0440\u0430<\/p>\n<pre><code class=\"bash\">sudo cp -v .\/deploy\/${kernel_ver}.zImage ${MOUNT_PATH}\/boot\/vmlinuz-${kernel_ver}  sudo mkdir -p ${MOUNT_PATH}\/boot\/dtbs\/${kernel_ver}\/ sudo cp -r .\/deploy\/dtsb\/* ${MOUNT_PATH}\/boot\/dtbs\/${kernel_ver}\/ sudo cp -r .\/deploy\/modules\/. ${MOUNT_PATH}\/usr\/   # \u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u043c ethernet sudo sh -c \"echo 'auto eth0' >> ${MOUNT_PATH}\/etc\/network\/interfaces\" sudo sh -c \"echo 'iface eth0 inet dhcp' >> ${MOUNT_PATH}\/etc\/network\/interfaces\"  #File Systems Table (\/etc\/fstab)\" sudo sh -c \"echo '\/dev\/mmcblk0p4  \/  auto  errors=remount-ro  0  1' >> ${MOUNT_PATH}\/etc\/fstab\"<\/code><\/pre>\n<p>\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0438 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c WiFi firmware <\/p>\n<pre><code class=\"bash\">mkdir wifi wget -P wifi https:\/\/github.com\/cvetaevvitaliy\/stm32mp1-ubuntu\/raw\/master\/wifi_firmware\/cyfmac43430-sdio.bin wget -P wifi https:\/\/github.com\/cvetaevvitaliy\/stm32mp1-ubuntu\/raw\/master\/wifi_firmware\/cyfmac43430-sdio.1DX.clm_blob wget -P wifi https:\/\/github.com\/cvetaevvitaliy\/stm32mp1-ubuntu\/raw\/master\/wifi_firmware\/brcmfmac43430-sdio.txt  sudo mkdir -p ${MOUNT_PATH}\/lib\/firmware\/brcm\/ sudo cp -v .\/wifi\/brcmfmac43430-sdio.txt ${MOUNT_PATH}\/lib\/firmware\/brcm\/brcmfmac43430-sdio.st,stm32mp157c-dk2.txt sudo cp -v .\/wifi\/cyfmac43430-sdio.bin ${MOUNT_PATH}\/lib\/firmware\/brcm\/brcmfmac43430-sdio.bin sudo cp -v<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-333620","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/333620","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=333620"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/333620\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=333620"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=333620"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=333620"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}