{"id":21329,"date":"2023-05-04T23:32:22","date_gmt":"2023-05-04T20:02:22","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/fleet-provisioning-for-embedded-linux-devices-with-aws-iot-greengrass-4h8b\/"},"modified":"2023-05-04T23:32:22","modified_gmt":"2023-05-04T20:02:22","slug":"fleet-provisioning-for-embedded-linux-devices-with-aws-iot-greengrass-4h8b","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/fleet-provisioning-for-embedded-linux-devices-with-aws-iot-greengrass-4h8b\/","title":{"rendered":"\u062a\u0627\u0645\u06cc\u0646 \u0646\u0627\u0648\u06af\u0627\u0646 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06af\u0627\u0647 \u0647\u0627\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633 \u062c\u0627\u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u0628\u0627 AWS IoT Greengrass"},"content":{"rendered":"<div data-article-id=\"1457545\" id=\"article-body\">\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/fleet-provisioning-for-embedded-linux-devices-with-aws-iot-greengrass-4h8b\/#%D9%85%D8%B9%D8%B1%D9%81%DB%8C\" >\u0645\u0639\u0631\u0641\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/fleet-provisioning-for-embedded-linux-devices-with-aws-iot-greengrass-4h8b\/#%D9%BE%DB%8C%D8%B4_%D9%86%DB%8C%D8%A7%D8%B2%D9%87%D8%A7\" >\u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/fleet-provisioning-for-embedded-linux-devices-with-aws-iot-greengrass-4h8b\/#%DA%AF%D9%88%D8%A7%D9%87%DB%8C_%D8%A7%D8%AF%D8%B9%D8%A7_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\" >\u06af\u0648\u0627\u0647\u06cc \u0627\u062f\u0639\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/fleet-provisioning-for-embedded-linux-devices-with-aws-iot-greengrass-4h8b\/#%D8%AE%D8%B7_%D9%85%D8%B4%DB%8C_AWS_IoT_%D8%B1%D8%A7_%D8%A8%D9%87_%DA%AF%D9%88%D8%A7%D9%87%DB%8C_%D8%A7%D8%AF%D8%B9%D8%A7%DB%8C_%D8%AA%D8%AF%D8%A7%D8%B1%DA%A9%D8%A7%D8%AA_%D9%BE%DB%8C%D9%88%D8%B3%D8%AA_%DA%A9%D9%86%DB%8C%D8%AF\" >\u062e\u0637 \u0645\u0634\u06cc AWS IoT \u0631\u0627 \u0628\u0647 \u06af\u0648\u0627\u0647\u06cc \u0627\u062f\u0639\u0627\u06cc \u062a\u062f\u0627\u0631\u06a9\u0627\u062a \u067e\u06cc\u0648\u0633\u062a \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/fleet-provisioning-for-embedded-linux-devices-with-aws-iot-greengrass-4h8b\/#%DB%8C%DA%A9_%DA%AF%D8%B1%D9%88%D9%87_%DA%86%DB%8C%D8%B2_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\" >\u06cc\u06a9 \u06af\u0631\u0648\u0647 \u0686\u06cc\u0632 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/fleet-provisioning-for-embedded-linux-devices-with-aws-iot-greengrass-4h8b\/#%D8%B3%D8%A7%D8%AE%D8%AA%D9%86_%D8%AA%D8%B5%D9%88%DB%8C%D8%B1_RPi\" >\u0633\u0627\u062e\u062a\u0646 \u062a\u0635\u0648\u06cc\u0631 RPi<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/fleet-provisioning-for-embedded-linux-devices-with-aws-iot-greengrass-4h8b\/#%D8%B1%D9%88%D8%B4%D9%86_%DA%A9%D8%B1%D8%AF%D9%86_%D8%AF%D8%B3%D8%AA%DA%AF%D8%A7%D9%87_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A7%D9%88%D9%84%DB%8C%D9%86_%D8%A8%D8%A7%D8%B1\" >\u0631\u0648\u0634\u0646 \u06a9\u0631\u062f\u0646 \u062f\u0633\u062a\u06af\u0627\u0647 \u0628\u0631\u0627\u06cc \u0627\u0648\u0644\u06cc\u0646 \u0628\u0627\u0631<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/fleet-provisioning-for-embedded-linux-devices-with-aws-iot-greengrass-4h8b\/#%D9%86%D8%AA%DB%8C%D8%AC%D9%87\" >\u0646\u062a\u06cc\u062c\u0647<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B9%D8%B1%D9%81%DB%8C\"><\/span>\n<p>  \u0645\u0639\u0631\u0641\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u062f\u06cc\u0631\u06cc\u062a \u0646\u0627\u0648\u06af\u0627\u0646 \u0628\u0632\u0631\u06af\u06cc \u0627\u0632 \u062f\u0633\u062a\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647\u200c\u0634\u062f\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0648 \u0686\u0627\u0644\u0634 \u0628\u0631\u0627\u0646\u06af\u06cc\u0632 \u0628\u0627\u0634\u062f\u060c \u0628\u0647\u200c\u0648\u06cc\u0698\u0647 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0635\u062d\u0628\u062a \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u062a\u0635\u0648\u06cc\u0631 \u0648\u0627\u062d\u062f \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0631\u0648\u06cc \u0686\u0646\u062f\u06cc\u0646 \u062f\u0633\u062a\u06af\u0627\u0647 \u0641\u0644\u0634 \u0634\u0648\u062f.  \u0627\u06cc\u0646 \u062f\u0633\u062a\u06af\u0627\u0647\u200c\u0647\u0627 \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0646\u062d\u0635\u0631\u0628\u0647\u200c\u0641\u0631\u062f \u0645\u0627\u0646\u0646\u062f \u0634\u0645\u0627\u0631\u0647 \u0633\u0631\u06cc\u0627\u0644 \u062e\u0648\u062f\u060c \u067e\u0633 \u0627\u0632 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u0648\u0644\u06cc\u0647\u060c \u062e\u0648\u062f \u062a\u0647\u06cc\u0647 \u0634\u0648\u0646\u062f.  \u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af\u060c \u0645\u0627 \u0628\u062d\u062b \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 AWS IoT Greengrass &#8211; Fleet Provisioning \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u0631\u0627 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06af\u0627\u0647 \u0647\u0627\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633 \u062c\u0627\u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u0633\u0627\u062f\u0647 \u06a9\u0646\u062f \u0648 \u0622\u0646 \u0631\u0627 \u06a9\u0627\u0631\u0622\u0645\u062f\u062a\u0631 \u0648 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f\u062a\u0631 \u06a9\u0646\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0645\u0647\u0646\u062f\u0633\u06cc\u0646 \u0633\u06cc\u0633\u062a\u0645 \u0647\u0627\u06cc \u062c\u0627\u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u0628\u0627 \u062a\u062c\u0631\u0628\u0647 \u062f\u0631 \u0644\u06cc\u0646\u0648\u06a9\u0633 \u062c\u0627\u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u0648 Yocto\u060c \u0645\u0627 \u0634\u0645\u0627 \u0631\u0627 \u062f\u0631 \u0633\u0627\u062e\u062a \u062a\u0635\u0648\u06cc\u0631 Raspberry Pi Yocto \u0628\u0627 Greengrass \u0628\u0627 \u067e\u0644\u0627\u06af\u06cc\u0646 Fleet Provisioning \u0631\u0627\u0647\u0646\u0645\u0627\u06cc\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u0627\u06cc\u0646 \u0627\u0645\u0631 \u062a\u0647\u06cc\u0647 \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u062f\u0633\u062a\u06af\u0627\u0647 \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u062b\u0628\u062a \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631 \u0631\u0627 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f. <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nabfollower.com\/blog\/wp-content\/uploads\/2023\/05\/\u062a\u0627\u0645\u06cc\u0646-\u0646\u0627\u0648\u06af\u0627\u0646-\u0628\u0631\u0627\u06cc-\u062f\u0633\u062a\u06af\u0627\u0647-\u0647\u0627\u06cc-\u0644\u06cc\u0646\u0648\u06a9\u0633-\u062c\u0627\u0633\u0627\u0632\u06cc-\u0634\u062f\u0647-\u0628\u0627-AWS.png\" alt=\"\u062a\u0627\u0645\u06cc\u0646 \u0646\u0627\u0648\u06af\u0627\u0646 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0627\u062f\u0639\u0627\" loading=\"lazy\" width=\"800\" height=\"438\" title=\"\"><\/p>\n<blockquote>\n<p>\u0644\u0637\u0641\u0627\u064b \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0644\u0627\u0645\u0628\u062f\u0627 \u0627\u0632 \u067e\u06cc\u0634 \u062a\u0647\u06cc\u0647 \u0634\u062f\u0647 \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0627\u0633\u062a \u0627\u0645\u0627 \u0628\u0647 \u0645\u0646\u0638\u0648\u0631 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0628\u06cc\u0634\u062a\u0631 \u062a\u0634\u0648\u06cc\u0642 \u0645\u06cc \u0634\u0648\u062f.  \u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a \u0628\u0647 \u0622\u0646 \u0646\u0645\u06cc \u067e\u0631\u062f\u0627\u0632\u06cc\u0645.  \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0628\u06cc\u0634\u062a\u0631 \u062f\u0631 \u0645\u0648\u0631\u062f \u0622\u0646 \u0628\u06cc\u0627\u0645\u0648\u0632\u06cc\u062f.<\/p>\n<\/blockquote>\n<p>\u0628\u0627 \u0645\u062c\u0645\u0648\u0639\u0647 \u0645\u0631\u062d\u0644\u0647\u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc AWS IoT Greengrass \u0648 Fleet Provisioning \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06af\u0627\u0647 \u0647\u0627\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633 \u062a\u0639\u0628\u06cc\u0647 \u0634\u062f\u0647 \u0634\u0645\u0627 \u0628\u067e\u0631\u062f\u0627\u0632\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%BE%DB%8C%D8%B4_%D9%86%DB%8C%D8%A7%D8%B2%D9%87%D8%A7\"><\/span>\n<p>  \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0648\u0627\u0631\u062f \u0634\u062f\u0646 \u0628\u0647 \u0641\u0631\u0622\u06cc\u0646\u062f \u0622\u0645\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0647\u0627\u0633\u062a \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0633\u0627\u062e\u062a \u062a\u0635\u0648\u06cc\u0631 Yocto\u060c \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc AWS IoT Core \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a.  \u0627\u06cc\u0646 \u0634\u0627\u0645\u0644 \u0627\u06cc\u062c\u0627\u062f \u062e\u0637 \u0645\u0634\u06cc \u0647\u0627\u060c \u062f\u0631\u06cc\u0627\u0641\u062a \u06af\u0648\u0627\u0647\u06cc \u0627\u062f\u0639\u0627 \u0648 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0646\u0635\u0628 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc AWS CLI \u0627\u0633\u062a.  \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06a9\u0644\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f \u0646\u062d\u0648\u0647 \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u062f\u0631 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u0647 AWS IoT Greengrass \u06cc\u0627\u0641\u062a.<br \/>\u0628\u0647 \u0637\u0648\u0631 \u062e\u0644\u0627\u0635\u0647\u060c \u0645\u0627 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645:<\/p>\n<ol>\n<li>\u0646\u0642\u0634 IAM \u062a\u0628\u0627\u062f\u0644 \u062a\u0648\u06a9\u0646\u060c \u06a9\u0647 \u062f\u0633\u062a\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u0628\u0631\u0627\u06cc \u0645\u062c\u0627\u0632 \u06a9\u0631\u062f\u0646 \u062a\u0645\u0627\u0633\u200c\u0647\u0627 \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc AWS \u0648 \u0646\u0642\u0634 \u0645\u0633\u062a\u0639\u0627\u0631 \u0646\u0642\u0634 AWS IoT \u06a9\u0647 \u0628\u0647 \u0646\u0642\u0634 \u062a\u0628\u0627\u062f\u0644 \u062a\u0648\u06a9\u0646 \u0627\u0634\u0627\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/li>\n<li>\u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc \u062a\u0627\u0645\u06cc\u0646 \u0646\u0627\u0648\u06af\u0627\u0646 AWS IoT.  \u0627\u0644\u06af\u0648 \u0628\u0627\u06cc\u062f \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0686\u06cc\u0632 \u0648 \u062e\u0637 \u0645\u0634\u06cc \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u062f \u06a9\u0647 \u0628\u0647 \u062f\u0633\u062a\u06af\u0627\u0647 \u0647\u0633\u062a\u0647 \u0633\u0628\u0632 \u06af\u0631\u0627\u0633 \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0645\u062a\u0635\u0644 \u0645\u06cc \u0634\u0648\u062f.  \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0646\u0627\u0645 \u062e\u0637\u200c\u0645\u0634\u06cc \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u0627\u0634\u06cc\u0627 \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u062e\u0637\u200c\u0645\u0634\u06cc \u0631\u0627 \u0631\u0648\u06cc \u0627\u0644\u06af\u0648 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u06cc\u06a9 \u06af\u0648\u0627\u0647\u06cc \u0627\u062f\u0639\u0627\u06cc \u062a\u0627\u0645\u06cc\u0646 \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u0627\u0634\u06cc\u0627\u0621 AWS \u0648 \u06a9\u0644\u06cc\u062f \u062e\u0635\u0648\u0635\u06cc \u0628\u0631\u0627\u06cc \u0627\u0644\u06af\u0648\u06cc \u062a\u0627\u0645\u06cc\u0646 \u0646\u0627\u0648\u06af\u0627\u0646.<\/li>\n<\/ol>\n<p>\u062f\u0633\u062a\u06af\u0627\u0647 \u0647\u0627 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0627 \u06af\u0648\u0627\u0647\u06cc \u0627\u062f\u0639\u0627\u06cc \u062a\u0627\u0645\u06cc\u0646 \u0648 \u06a9\u0644\u06cc\u062f \u062e\u0635\u0648\u0635\u06cc \u062a\u0639\u0628\u06cc\u0647 \u0634\u062f\u0647 \u062f\u0631 \u0622\u0646\u0647\u0627 \u0633\u0627\u062e\u062a.  \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u062f\u0633\u062a\u06af\u0627\u0647 \u0628\u0631\u0627\u06cc \u0627\u0648\u0644\u06cc\u0646 \u0628\u0627\u0631 \u0628\u0647 AWS IoT \u0645\u062a\u0635\u0644 \u0645\u06cc \u0634\u0648\u062f\u060c \u0627\u0632 \u06af\u0648\u0627\u0647\u06cc \u0627\u062f\u0639\u0627 \u0628\u0631\u0627\u06cc \u062b\u0628\u062a \u062f\u0633\u062a\u06af\u0627\u0647 \u062c\u062f\u06cc\u062f \u0648 \u0645\u0628\u0627\u062f\u0644\u0647 \u0622\u0646 \u0628\u0647 \u06af\u0648\u0627\u0647\u06cc \u062f\u0633\u062a\u06af\u0627\u0647 \u0645\u0646\u062d\u0635\u0631 \u0628\u0647 \u0641\u0631\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.  \u06af\u0648\u0627\u0647\u06cc \u0627\u062f\u0639\u0627\u06cc \u062a\u0627\u0645\u06cc\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0636\u0645\u06cc\u0645\u0647 \u062e\u0637 \u0645\u0634\u06cc AWS IoT \u062f\u0627\u0631\u062f \u06a9\u0647 \u0628\u0647 \u062f\u0633\u062a\u06af\u0627\u0647 \u0647\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0627\u0644\u06af\u0648\u06cc \u062a\u0627\u0645\u06cc\u0646 \u0646\u0627\u0648\u06af\u0627\u0646 \u0631\u0627 \u062b\u0628\u062a \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0646\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0622\u0645\u062f\u062a\u0631 \u06a9\u0631\u062f\u0646 \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc CloudFormation \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0627\u06a9\u062b\u0631 \u0627\u06cc\u0646 \u0645\u0631\u0627\u062d\u0644 \u0631\u0627 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>AWSTemplateFormatVersion: \"2010-09-09\"\n\nParameters:\n  ProvisioningTemplateName:\n    Type: String\n    Default: 'GreengrassFleetProvisioningTemplate' \n  GGTokenExchangeRoleName:\n    Type: String\n    Default: 'GGTokenExchangeRole'\n  GGFleetProvisioningRoleName:\n    Type: String\n    Default: 'GGFleetProvisioningRole'\n  GGDeviceDefaultPolicyName:\n    Type: String\n    Default: 'GGDeviceDefaultIoTPolicy'\n  GGProvisioningClaimPolicyName:\n    Type: String\n    Default: 'GGProvisioningClaimPolicy'\n\nResources:\n\n  GGTokenExchangeRole:\n    Type: AWS::IAM::Role\n    Properties:\n      RoleName: !Ref GGTokenExchangeRoleName\n      AssumeRolePolicyDocument:\n        Version: '2012-10-17'\n        Statement:\n          - Effect: Allow\n            Principal:\n              Service:\n                - credentials.iot.amazonaws.com\n            Action:\n              - 'sts:AssumeRole'\n      Path: \"https:\/\/dev.to\/\"\n      Policies:\n        - PolicyName: !Sub ${GGTokenExchangeRoleName}Access\n          PolicyDocument:\n            Version: \"2012-10-17\"\n            Statement:\n              - Effect: Allow\n                Action:\n                  - 'iot:DescribeCertificate'\n                  - 'logs:CreateLogGroup'\n                  - 'logs:CreateLogStream'\n                  - 'logs:PutLogEvents'\n                  - 'logs:DescribeLogStreams'\n                  - 's3:GetBucketLocation'\n                Resource: '*'\n\n  GGTokenExchangeRoleAlias:\n    Type: AWS::IoT::RoleAlias\n    Properties:\n      RoleArn: !GetAtt GGTokenExchangeRole.Arn\n      RoleAlias: !Sub ${GGTokenExchangeRoleName}Alias\n\n  GGFleetProvisioningRole:\n    Type: AWS::IAM::Role\n    Properties:\n      RoleName: !Ref GGFleetProvisioningRoleName\n      AssumeRolePolicyDocument:\n        Version: '2012-10-17'\n        Statement:\n          - Effect: Allow\n            Principal:\n              Service:\n                - iot.amazonaws.com\n            Action:\n              - 'sts:AssumeRole'\n      Path: \"https:\/\/dev.to\/\"\n      ManagedPolicyArns:\n        - 'arn:aws:iam::aws:policy\/service-role\/AWSIoTThingsRegistration'\n\n  GGDeviceDefaultPolicy:\n    Type: AWS::IoT::Policy\n    Properties:\n      PolicyName: !Ref GGDeviceDefaultPolicyName\n      PolicyDocument:\n        Version: '2012-10-17'\n        Statement:\n        - Effect: Allow\n          Action:\n            - 'iot:Connect'\n            - 'iot:Publish'\n            - 'iot:Subscribe'\n            - 'iot:Receive'\n            - 'iot:Connect'\n            - 'greengrass:*'\n          Resource: '*'\n        - Effect: Allow\n          Action:\n            - 'iot:AssumeRoleWithCertificate'\n          Resource: !GetAtt GGTokenExchangeRoleAlias.RoleAliasArn\n\n  GGFleetProvisionTemplate:\n    Type: AWS::IoT::ProvisioningTemplate\n    Properties:\n      TemplateName: !Ref ProvisioningTemplateName\n      Description: 'Fleet Provisioning template for AWS IoT Greengrass.'\n      Enabled: True\n      ProvisioningRoleArn: !GetAtt GGFleetProvisioningRole.Arn\n      TemplateBody: !Sub |+ \n        {\n          \"Parameters\": {\n            \"ThingName\": {\n              \"Type\": \"String\"\n            },\n            \"ThingGroupName\": {\n              \"Type\": \"String\"\n            },\n            \"AWS::IoT::Certificate::Id\": {\n              \"Type\": \"String\"\n            }\n          },\n          \"Resources\": {\n            \"GGThing\": {\n              \"OverrideSettings\": {\n                \"AttributePayload\": \"REPLACE\",\n                \"ThingGroups\": \"REPLACE\",\n                \"ThingTypeName\": \"REPLACE\"\n              },\n              \"Properties\": {\n                \"AttributePayload\": {},\n                \"ThingGroups\": [\n                  {\n                    \"Ref\": \"ThingGroupName\"\n                  }\n                ],\n                \"ThingName\": {\n                  \"Ref\": \"ThingName\"\n                }\n              },\n              \"Type\": \"AWS::IoT::Thing\"\n            },\n            \"GGDefaultPolicy\": {\n              \"Properties\": {\n                \"PolicyName\": \"${GGDeviceDefaultPolicyName}\"\n              },\n              \"Type\": \"AWS::IoT::Policy\"\n            },\n            \"GGCertificate\": {\n              \"Properties\": {\n                \"CertificateId\": {\n                  \"Ref\": \"AWS::IoT::Certificate::Id\"\n                },\n                \"Status\": \"Active\"\n              },\n              \"Type\": \"AWS::IoT::Certificate\"\n            }\n          }\n        }\n\n  GGProvisioningClaimPolicy:\n    Type: AWS::IoT::Policy\n    Properties:\n      PolicyName: !Ref GGProvisioningClaimPolicyName\n      PolicyDocument:\n        Version: '2012-10-17'\n        Statement:\n        - Effect: Allow\n          Action:\n            - 'iot:Connect'\n          Resource: '*'\n        - Effect: Allow\n          Action:\n            - 'iot:Publish'\n            - 'iot:Receive'\n          Resource: \n            - !Sub 'arn:aws:iot:${AWS::Region}:${AWS::AccountId}:topic\/$aws\/certificates\/create\/*'\n            - !Sub 'arn:aws:iot:${AWS::Region}:${AWS::AccountId}:topic\/$aws\/provisioning-templates\/${ProvisioningTemplateName}\/provision\/*'\n        - Effect: Allow\n          Action:\n            - 'iot:Subscribe'\n          Resource:\n            - !Sub 'arn:aws:iot:${AWS::Region}:${AWS::AccountId}:topicfilter\/$aws\/certificates\/create\/*'\n            - !Sub 'arn:aws:iot:${AWS::Region}:${AWS::AccountId}:topicfilter\/$aws\/provisioning-templates\/${ProvisioningTemplateName}\/provision\/*'\n\nOutputs:\n\n  GGTokenExchangeRole:\n    Description: Name of token exchange role.\n    Value: !Ref GGTokenExchangeRole\n  GGTokenExchangeRoleAlias:\n    Description: Name of token exchange role alias.\n    Value: !Ref GGTokenExchangeRoleAlias\n  GGFleetProvisionTemplate:\n    Description: Name of Fleet provisioning template.\n    Value: !Ref GGFleetProvisionTemplate\n  GGProvisioningClaimPolicy:\n     Description: Name of claim certificate IoT policy.\n     Value: !Ref GGProvisioningClaimPolicy\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u067e\u0634\u062a\u0647 CloudFormation \u0631\u0627 \u0627\u0632 template.yaml \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>aws cloudformation create-stack --stack-name GGFleetProvisoning --template-body [file:\/\/template.yaml](file:\/\/template.yaml\/) \u2014capabilities CAPABILITY_NAMED_IAM\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0686\u0646\u062f \u062f\u0642\u06cc\u0642\u0647 \u0635\u0628\u0631 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0645\u0646\u0627\u0628\u0639 \u0627\u06cc\u062c\u0627\u062f \u0634\u0648\u062f.  \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0648\u0636\u0639\u06cc\u062a \u0631\u0627 \u0627\u0632 \u06a9\u0646\u0633\u0648\u0644 CloudFormation \u06cc\u0627 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>aws cloudformation describe-stacks \u2014stack-name GGFleetProvisoning\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%DA%AF%D9%88%D8%A7%D9%87%DB%8C_%D8%A7%D8%AF%D8%B9%D8%A7_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u06af\u0648\u0627\u0647\u06cc \u0627\u062f\u0639\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06cc\u0646\u0647\u0627 \u0631\u0627 \u062f\u0631 \u062a\u0635\u0648\u06cc\u0631 \u06a9\u0627\u0631\u062a SD RPi \u062e\u0648\u062f \u062c\u0627\u0633\u0627\u0632\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0628\u0631\u0627\u06cc \u062a\u0647\u06cc\u0647 \u062f\u0633\u062a\u06af\u0627\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>mkdir claim-certs\n\nexport CERTIFICATE_ARN=$(aws iot create-keys-and-certificate \\\n    --certificate-pem-outfile \"claim-certs\/claim.cert.pem\" \\\n    --public-key-outfile \"claim-certs\/claim.pubkey.pem\" \\\n    --private-key-outfile \"claim-certs\/claim.pkey.pem\" \\\n    --set-as-active \\\n    --query certificateArn)\n\ncurl -o \"claim-certs\/claim.root.pem\" https:\/\/www.amazontrust.com\/repository\/AmazonRootCA1.pem\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AE%D8%B7_%D9%85%D8%B4%DB%8C_AWS_IoT_%D8%B1%D8%A7_%D8%A8%D9%87_%DA%AF%D9%88%D8%A7%D9%87%DB%8C_%D8%A7%D8%AF%D8%B9%D8%A7%DB%8C_%D8%AA%D8%AF%D8%A7%D8%B1%DA%A9%D8%A7%D8%AA_%D9%BE%DB%8C%D9%88%D8%B3%D8%AA_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u062e\u0637 \u0645\u0634\u06cc AWS IoT \u0631\u0627 \u0628\u0647 \u06af\u0648\u0627\u0647\u06cc \u0627\u062f\u0639\u0627\u06cc \u062a\u062f\u0627\u0631\u06a9\u0627\u062a \u067e\u06cc\u0648\u0633\u062a \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0633\u06cc\u0627\u0633\u062a \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u0627\u0634\u06cc\u0627 \u0631\u0627 \u0628\u0647 \u0646\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u0645 <code>GGProvisioningClaimPolicy<\/code> \u0628\u0627 CloudFormation \u0641\u0642\u0637 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u0646\u0627\u0645 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0648\u0633\u062a \u06a9\u0631\u062f\u0646 \u062e\u0637 \u0645\u0634\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>aws iot attach-policy \u2014policy-name GGProvisioningClaimPolicy \u2014target ${CERTIFICATE_ARN\/\/\\\"}\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%DB%8C%DA%A9_%DA%AF%D8%B1%D9%88%D9%87_%DA%86%DB%8C%D8%B2_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u06cc\u06a9 \u06af\u0631\u0648\u0647 \u0686\u06cc\u0632 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u062f\u0633\u062a\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u0645\u0627 \u062a\u0647\u06cc\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0628\u062e\u0634\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u06af\u0631\u0648\u0647 \u0686\u06cc\u0632 \u062e\u0648\u0627\u0647\u0646\u062f \u0634\u062f \u0648 \u0628\u0647 \u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u0628\u0639\u062f\u0627\u064b \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0646\u0627\u0648\u06af\u0627\u0646 Thing Group \u0631\u0627 \u0647\u062f\u0641 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>aws iot create-thing-group \u2014thing-group-name EmbeddedLinuxFleet\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0645\u0627 \u0628\u0627\u06cc\u062f \u062e\u0648\u0628 \u0628\u0631\u0648\u06cc\u0645 \u0648 \u062a\u0635\u0648\u06cc\u0631 RPI \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B3%D8%A7%D8%AE%D8%AA%D9%86_%D8%AA%D8%B5%D9%88%DB%8C%D8%B1_RPi\"><\/span>\n<p>  \u0633\u0627\u062e\u062a\u0646 \u062a\u0635\u0648\u06cc\u0631 RPi<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0633\u0627\u062e\u062a \u06cc\u06a9 \u062a\u0635\u0648\u06cc\u0631 Yocto \u0628\u0631\u0627\u06cc Raspberry Pi \u0628\u0647 \u0686\u0646\u062f\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f\u060c \u0627\u0632 \u062c\u0645\u0644\u0647 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062d\u06cc\u0637 \u0633\u0627\u062e\u062a\u060c \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632\u06cc \u0645\u062e\u0627\u0632\u0646 \u0644\u0627\u0632\u0645\u060c \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0633\u0627\u062e\u062a \u0648 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0633\u0627\u062e\u062a\u0646 \u062e\u0648\u062f \u062a\u0635\u0648\u06cc\u0631.  \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645 \u0628\u0631\u0627\u06cc \u06a9\u0645\u06a9 \u0628\u0647 \u0634\u0645\u0627 \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>\u06cc\u06a9 \u067e\u0646\u062c\u0631\u0647 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062f\u0631 \u0627\u06cc\u0633\u062a\u06af\u0627\u0647 \u06a9\u0627\u0631\u06cc \u062e\u0648\u062f \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0647\u0645\u0647 \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627 \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0633\u0646\u062f \u0633\u0627\u062e\u062a \u067e\u0631\u0648\u0698\u0647 Yocto \u062f\u0627\u0631\u062f.<\/p>\n<blockquote>\n<p>\u062a\u0648\u062c\u0647 \u0628\u0647 \u062e\u0627\u0637\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u0645\u062a\u063a\u06cc\u0631 <code>BASE<\/code> \u0628\u0647 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0648\u0627\u0644\u062f \u0645\u062d\u06cc\u0637 \u0633\u0627\u062e\u062a \u0627\u0634\u0627\u0631\u0647 \u062f\u0627\u0631\u062f.  \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627\u060c \u0627\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645 \u062e\u0648\u0627\u0647\u062f \u0634\u062f <code>$HOME<\/code>.  \u0627\u06af\u0631 \u0627\u0632 \u067e\u0627\u0631\u062a\u06cc\u0634\u0646 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u067e\u0627\u06cc\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0644\u0637\u0641\u0627\u064b \u0622\u0646 \u0631\u0627 \u0645\u0637\u0627\u0628\u0642 \u0628\u0627 \u0622\u0646 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/blockquote>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>export BASEDIR=$(pwd)\nexport DIST=poky-rpi4\nexport B=kirkstone\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0644\u0627\u06cc\u0647 \u067e\u0627\u06cc\u0647 Poky \u0631\u0627 \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0634\u0627\u0645\u0644 OpenEmbedded Core\u060c Bitbake \u0648 \u063a\u06cc\u0631\u0647 \u0628\u0627\u0634\u062f \u062a\u0627 \u0645\u062d\u06cc\u0637 \u0633\u0627\u062e\u062a Yocto \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>git clone -b $B git:\/\/git.yoctoproject.org\/poky.git $BASEDIR\/$DIST\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u062e\u0627\u0632\u0646 \u0648\u0627\u0628\u0633\u062a\u0647 \u0627\u0636\u0627\u0641\u06cc \u0631\u0627 \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f.  \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0645\u0627 \u0641\u0642\u0637 \u0622\u0646\u0686\u0647 \u0631\u0627 \u06a9\u0647 \u0628\u0631\u0627\u06cc AWS IoT Greengrass \u0644\u0627\u0632\u0645 \u0627\u0633\u062a \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>git clone -b $B git:\/\/git.openembedded.org\/meta-openembedded \\\n    $BASEDIR\/$DIST\/meta-openembedded\ngit clone -b $B git:\/\/git.yoctoproject.org\/meta-raspberrypi \\\n    $BASEDIR\/$DIST\/meta-raspberrypi\ngit clone -b $B git:\/\/git.yoctoproject.org\/meta-virtualization \\\n    $BASEDIR\/$DIST\/meta-virtualization\ngit clone -b $B git:\/\/git.yoctoproject.org\/meta-java \\\n    $BASEDIR\/$DIST\/meta-java\ngit clone -b $B git:\/\/github.com\/aws\/meta-aws \\\n    $BASEDIR\/$DIST\/meta-aws\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u0646\u0628\u0639 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0645\u062d\u06cc\u0637 Yocto.  \u0627\u06cc\u0646 \u062f\u0627\u0646\u0647 <code>build\/conf<\/code> \u0641\u0647\u0631\u0633\u062a \u0631\u0627\u0647\u0646\u0645\u0627.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>cd $BASEDIR\/$DIST\n. .\/oe-init-build-env\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0644\u0627\u06cc\u0647 \u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0631\u0627 \u0628\u0647 \u0622\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f <code>bblayers.conf<\/code> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0643\u0631\u062f\u0646 <code>bitbake-layer add-layer<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>bitbake-layers add-layer ..\/meta-openembedded\/meta-oe\nbitbake-layers add-layer ..\/meta-openembedded\/meta-python\nbitbake-layers add-layer ..\/meta-openembedded\/meta-filesystems\nbitbake-layers add-layer ..\/meta-openembedded\/meta-networking\nbitbake-layers add-layer ..\/meta-virtualization\nbitbake-layers add-layer ..\/meta-raspberrypi\nbitbake-layers add-layer ..\/meta-java\nbitbake-layers add-layer ..\/meta-aws\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f <code>local.conf:<\/code><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0630\u06a9\u0631 \u0627\u06cc\u0646 \u0646\u06a9\u062a\u0647 \u0645\u0647\u0645 \u0627\u0633\u062a \u06a9\u0647 \u062c\u062f\u0627 \u0627\u0632 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0631\u0632\u0628\u0631\u06cc \u067e\u0627\u06cc:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>MACHINE ?= \"raspberrypi4-64\"\n\nDISABLE_VC4GRAPHICS = \"1\"\n\n# Parallelism Options\nBB_NUMBER_THREADS ?= \"${@oe.utils.cpu_count()}\"\nPARALLEL_MAKE ?= \"-j ${@oe.utils.cpu_count()}\"\n\n# Additional image features\nUSER_CLASSES ?= \"buildstats\"\n\n# By default disable interactive patch resolution (tasks will just fail instead):\nPATCHRESOLVE = \"noop\"\n\n# Disk Space Monitoring during the build\nBB_DISKMON_DIRS = \"\\\n    STOPTASKS,${TMPDIR},1G,100K \\\n    STOPTASKS,${DL_DIR},1G,100K \\\n    STOPTASKS,${SSTATE_DIR},1G,100K \\\n    HALT,${TMPDIR},100M,1K \\\n    HALT,${DL_DIR},100M,1K \\\n    HALT,${SSTATE_DIR},100M,1K\"\n\nCONF_VERSION = \"2\"\n\nDISTRO_FEATURES += \"systemd\"\nDISTRO_FEATURES_BACKFILL_CONSIDERED = \"sysvinit\"\nVIRTUAL-RUNTIME_init_manager = \"systemd\"\nVIRTUAL-RUNTIME_initscripts = \"\"\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u0627 \u0628\u0627\u06cc\u062f \u0631\u0648\u06cc \u0642\u0633\u0645\u062a \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Greengrass FleetProvisioning \u062a\u0645\u0631\u06a9\u0632 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0628\u0627\u0634\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\nIMAGE_INSTALL:append = \" greengrass-bin \"\nGGV2_DATA_EP     = \"xxx-ats.iot.&lt;your aws region&gt;.amazonaws.com\"\nGGV2_CRED_EP     = \"xxx.iot.&lt;your aws region&gt;.amazonaws.com\"\nGGV2_REGION      = \"&lt;your aws region&gt;\"\nGGV2_THING_NAME  = \"ELThing\"\nGGV2_TES_RALIAS  = \"GGTokenExchangeRoleAlias\" # we got this from the cloudformation\nGGV2_THING_GROUP = \"EmbeddedLinuxFleet\"\n\nPACKAGECONFIG:pn-greengrass-bin = \"fleetprovisioning\"\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0630\u06a9\u0631 \u0627\u06cc\u0646 \u0646\u06a9\u062a\u0647 \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0647\u0633\u062a\u06cc\u0645 <code>greengrass-bin<\/code> \u0628\u0647 \u062a\u0635\u0648\u06cc\u0631 \u0645\u0627 \u0648 \u0633\u067e\u0633 \u0627\u0631\u0627\u0626\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0627\u0636\u0627\u0641\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u062a\u0648\u0633\u0637 <code>config.yaml<\/code> \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 <code>PACKAGECONFIG:pn-greengrass-bin = \"fleetprovisioning\"<\/code> \u0628\u0647 \u0645\u0646\u0638\u0648\u0631 \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 \u0639\u0645\u0644\u06a9\u0631\u062f<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 \u0645\u0646\u0637\u0642\u0647 AWS \u0648 \u0646\u0642\u0627\u0637 \u067e\u0627\u06cc\u0627\u0646\u06cc \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u0627\u0634\u06cc\u0627\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>echo \"GGV2_REGION=\"$(aws configure get region)\necho \"GGV2_DATA_EP=\"$(aws --output text iot describe-endpoint \\\n    --endpoint-type iot:Data-ATS \\\n    --query 'endpointAddress')\necho \"GGV2_CRED_EP=\"$(aws --output text iot describe-endpoint \\\n    --endpoint-type iot:CredentialProvider \\\n    --query 'endpointAddress')\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0644\u0637\u0641\u0627\u064b \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0645\u0627 \u0628\u0647 \u06cc\u06a9 Thing Name \u0645\u0646\u062d\u0635\u0631 \u0628\u0647 \u0641\u0631\u062f \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0647\u0631 \u062f\u0633\u062a\u06af\u0627\u0647 \u062a\u0648\u0644\u06cc\u062f \u0634\u0648\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u0627\u0645 Thing \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u067e\u06cc\u0634\u0648\u0646\u062f \u06af\u0631\u0641\u062a\u0647 \u0645\u06cc \u0634\u0648\u062f \u0648 \u06cc\u06a9 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u062f\u0631 \u062f\u0627\u062e\u0644 \u06cc\u06a9 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f. <code>greengreass-bin<\/code> \u062f\u0633\u062a\u0648\u0631\u06cc \u06a9\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u062f\u0631\u0633 MAC\u060c \u0634\u0646\u0627\u0633\u0647 \u0645\u0646\u062d\u0635\u0631 \u0628\u0647 \u0641\u0631\u062f \u062f\u0633\u062a\u06af\u0627\u0647 \u0631\u0627 \u0628\u0647 \u0646\u0627\u0645 \u0686\u06cc\u0632 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>#!\/bin\/sh\nfile_path=\"$1\"\ndefault_iface=$(busybox route | grep default | awk '{print $8}')\nmac_address=$(busybox ifconfig \"$default_iface\" | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}' | tr ':' '_')\nsed -i \"s\/&lt;unique&gt;\/$mac_address\/g\" \"$file_path\"\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>meta-aws\n\u2514\u2500\u2500 recipes-iot\n    \u2514\u2500\u2500 aws-iot-greengrass\n        \u2514\u2500\u2500files\n            \u2514\u2500\u2500 replace_board_id.sh\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0627 \u0647\u0631 \u0631\u0648\u0634 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0631\u0627\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 \u0645\u0646\u062d\u0635\u0631 \u0628\u0647 \u0641\u0631\u062f \u0628\u0648\u062f\u0646 \u0645\u0627\u0646\u0646\u062f \u0634\u0645\u0627\u0631\u0647 \u0633\u0631\u06cc\u0627\u0644 \u06cc\u0627 \u0645\u0648\u0627\u0631\u062f \u0645\u0634\u0627\u0628\u0647 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f <\/p>\n<p>\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0628\u0627\u06cc\u062f \u0627\u0639\u062a\u0628\u0627\u0631 \u0627\u062f\u0639\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u06a9\u0647 \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0628\u0648\u062f\u06cc\u0645 \u06a9\u067e\u06cc \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u062f\u0631 \u0633\u0627\u062e\u062a \u0645\u0627 \u06af\u0646\u062c\u0627\u0646\u062f\u0647 \u0634\u0648\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>cp  \"claim-certs\/claim.cert.pem\" \\\n    \"claim-certs\/claim.pkey.pem\" \\\n    \"claim-certs\/claim.root.pem\" \\\n    meta-aws\/recipes-iot\/aws-iot-greengrass\/files\/\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0644\u0637\u0641\u0627\u064b \u0645\u0633\u06cc\u0631\u0647\u0627 \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0645\u062d\u0644 \u06af\u0648\u0627\u0647\u06cc\u200c\u0647\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u0634\u062f\u0647 \u0648 \u062f\u0633\u062a\u0648\u0631 \u063a\u0630\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u067e\u0633 \u0627\u0632 \u0647\u0645\u0647 \u0627\u06cc\u0646\u0647\u0627 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0633\u0627\u062e\u062a\u0646 \u062a\u0635\u0648\u06cc\u0631 \u062e\u0648\u062f \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>bitbake core-image-minimal\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u231b \u0686\u0646\u062f \u0633\u0627\u0639\u062a \u0628\u0639\u062f \u231b \u0633\u0627\u062e\u062a \u0628\u0627\u06cc\u062f \u06a9\u0627\u0645\u0644 \u0634\u0648\u062f \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u062a\u0635\u0648\u06cc\u0631 \u062d\u0627\u0635\u0644 \u0631\u0627 \u062f\u0631 \u0641\u0647\u0631\u0633\u062a \u0632\u06cc\u0631 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>ls tmp\/deploy\/images\/raspberrypi4-64\/*sdimg\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u0641\u0644\u0634 \u06a9\u0631\u062f\u0646 \u062a\u0635\u0648\u06cc\u0631 \u0631\u0648\u06cc \u06a9\u0627\u0631\u062a SD\u060c \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u06cc \u0645\u0627\u0646\u0646\u062f &#8216;dd&#8217; \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>sudo dd if=tmp\/deploy\/images\/raspberrypi4-64\/core-image-minimal-raspberrypi4-64.sdimg of=\/dev\/sdX bs=4M\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u0645 \u06a9\u0647 &#8220;\/dev\/sdX&#8221; \u0631\u0627 \u0628\u0627 \u0634\u0646\u0627\u0633\u0647 \u062f\u0633\u062a\u06af\u0627\u0647 \u0645\u0646\u0627\u0633\u0628 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u062a SD \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u0645.<\/p>\n<blockquote>\n<p>\u26a0\ufe0f \u0644\u0637\u0641\u0627\u064b \u0634\u0646\u0627\u0633\u0647 \u06a9\u0627\u0631\u062a SD \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u0632\u06cc\u0631\u0627 \u06cc\u06a9 \u0627\u0634\u062a\u0628\u0627\u0647 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0633\u06cc\u0633\u062a\u0645 \u0627\u06cc\u0633\u062a\u06af\u0627\u0647 \u06a9\u0627\u0631\u06cc \u0634\u0645\u0627 \u0631\u0627 \u067e\u0627\u06a9 \u06a9\u0646\u062f<\/p>\n<\/blockquote>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B1%D9%88%D8%B4%D9%86_%DA%A9%D8%B1%D8%AF%D9%86_%D8%AF%D8%B3%D8%AA%DA%AF%D8%A7%D9%87_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A7%D9%88%D9%84%DB%8C%D9%86_%D8%A8%D8%A7%D8%B1\"><\/span>\n<p>  \u0631\u0648\u0634\u0646 \u06a9\u0631\u062f\u0646 \u062f\u0633\u062a\u06af\u0627\u0647 \u0628\u0631\u0627\u06cc \u0627\u0648\u0644\u06cc\u0646 \u0628\u0627\u0631<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u062a SD \u0628\u0627 \u0628\u0631\u0642 \u0648 \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u0645\u062a\u0635\u0644 \u0628\u0647 \u0631\u0632\u0628\u0631\u06cc \u067e\u0627\u06cc \u062f\u0648\u0628\u0627\u0631\u0647 \u0648\u0627\u0631\u062f \u0634\u062f\u060c \u062f\u0633\u062a\u06af\u0627\u0647 \u0628\u0627\u06cc\u062f \u0622\u0645\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u062f \u0648 \u062f\u0631 \u0644\u06cc\u0633\u062a \u062f\u0633\u062a\u06af\u0627\u0647 \u0647\u0627\u06cc \u0647\u0633\u062a\u0647 \u06af\u0631\u06cc\u0646 \u06af\u0631\u0627\u0633 \u0638\u0627\u0647\u0631 \u0634\u0648\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>aws greengrassv2 list-core-devices\n\n{\n    \"coreDevices\": [\n        {\n            \"coreDeviceThingName\": \"ELThing_11_22_33_44_55_60\",\n            \"status\": \"HEALTHY\",\n            \"lastStatusUpdateTimestamp\": \"2023-04-25T15:39:00.703000+00:00\"\n        },\n       {\n            \"coreDeviceThingName\": \"ELThing_11_22_33_44_55_61\",\n            \"status\": \"HEALTHY\",\n            \"lastStatusUpdateTimestamp\": \"2023-03-31T03:11:17.911000+00:00\"\n        },\n       {\n            \"coreDeviceThingName\": \"ELThing_11_22_33_44_55_62\",\n            \"status\": \"HEALTHY\",\n            \"lastStatusUpdateTimestamp\": \"2023-02-25T15:17:29.505000+00:00\"\n        },        \n    ]\n}\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u0648\u0641\u0642\u06cc\u062a! <\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%AA%DB%8C%D8%AC%D9%87\"><\/span>\n<p>  \u0646\u062a\u06cc\u062c\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0647 \u0637\u0648\u0631 \u062e\u0644\u0627\u0635\u0647\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u0646\u0627\u0648\u06af\u0627\u0646 \u0628\u0632\u0631\u06af\u06cc \u0627\u0632 \u062f\u0633\u062a\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633 \u062a\u0639\u0628\u06cc\u0647\u200c\u0634\u062f\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u06cc\u06a9 \u06a9\u0627\u0631 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0648 \u0686\u0627\u0644\u0634 \u0628\u0631\u0627\u0646\u06af\u06cc\u0632 \u0628\u0627\u0634\u062f\u060c \u0628\u0647\u200c\u0648\u06cc\u0698\u0647 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0635\u062d\u0628\u062a \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u062a\u0635\u0648\u06cc\u0631 \u0648\u0627\u062d\u062f \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0631 \u0631\u0648\u06cc \u0686\u0646\u062f\u06cc\u0646 \u062f\u0633\u062a\u06af\u0627\u0647 \u0641\u0644\u0634 \u0634\u0648\u062f.  \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c AWS IoT Greengrass \u0628\u0627 Fleet Provisioning \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u0631\u0627 \u0633\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u06a9\u0627\u0631\u0622\u0645\u062f\u062a\u0631 \u0648 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f\u062a\u0631 \u06a9\u0646\u062f.  \u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af\u060c \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc AWS IoT Greengrass \u0648 Fleet Provisioning\u060c \u0627\u0632 \u062c\u0645\u0644\u0647 \u0627\u06cc\u062c\u0627\u062f \u062e\u0637 \u0645\u0634\u06cc \u0647\u0627\u060c \u062f\u0631\u06cc\u0627\u0641\u062a \u06af\u0648\u0627\u0647\u06cc \u0627\u062f\u0639\u0627 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0633\u0627\u062e\u062a \u062a\u0635\u0648\u06cc\u0631 Yocto \u0631\u0627 \u0645\u0648\u0631\u062f \u0628\u062d\u062b \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0647 \u0627\u06cc\u0645.  \u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u06cc\u06a9 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u062a\u0635\u0648\u06cc\u0631 Yocto \u0628\u0631\u0627\u06cc Raspberry Pi \u0628\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Greengrass Fleet Provisioning \u0627\u0631\u0627\u0626\u0647 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645.  \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 AWS IoT Greengrass &#8211; Fleet Provisioning\u060c \u0645\u062f\u06cc\u0631\u06cc\u062a \u0646\u0627\u0648\u06af\u0627\u0646 \u0628\u0632\u0631\u06af\u06cc \u0627\u0632 \u062f\u0633\u062a\u06af\u0627\u0647 \u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647 \u0634\u062f\u0647 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0622\u0633\u0627\u0646 \u062a\u0631\u060c \u06a9\u0627\u0631\u0622\u0645\u062f\u062a\u0631 \u0648 \u0627\u06cc\u0645\u0646 \u062a\u0631 \u06a9\u0631\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0628\u0627\u0632\u062e\u0648\u0631\u062f\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u06cc\u0646 \u067e\u0633\u062a \u062f\u0627\u0631\u06cc\u062f \u06cc\u0627 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0645\u0637\u0627\u0644\u0628 \u0645\u0631\u062a\u0628\u0637 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f\u060c \u0644\u0637\u0641\u0627\u064b \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0628\u0627 \u0645\u0646 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f <a href=\"https:\/\/twitter.com\/nenadilic84\" rel=\"nofollow noopener\" target=\"_blank\">\u062a\u0648\u06cc\u06cc\u062a\u0631<\/a> \u06cc\u0627 \u0644\u06cc\u0646\u06a9\u062f\u06cc\u0646<\/p>\n<\/p><\/div>\n<p><script async src=\"\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0645\u0639\u0631\u0641\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0646\u0627\u0648\u06af\u0627\u0646 \u0628\u0632\u0631\u06af\u06cc \u0627\u0632 \u062f\u0633\u062a\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647\u200c\u0634\u062f\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0648 \u0686\u0627\u0644\u0634 \u0628\u0631\u0627\u0646\u06af\u06cc\u0632 \u0628\u0627\u0634\u062f\u060c \u0628\u0647\u200c\u0648\u06cc\u0698\u0647 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0635\u062d\u0628\u062a \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u062a\u0635\u0648\u06cc\u0631 \u0648\u0627\u062d\u062f \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0631\u0648\u06cc \u0686\u0646\u062f\u06cc\u0646 \u062f\u0633\u062a\u06af\u0627\u0647 \u0641\u0644\u0634 \u0634\u0648\u062f. \u0627\u06cc\u0646 \u062f\u0633\u062a\u06af\u0627\u0647\u200c\u0647\u0627 \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0646\u062d\u0635\u0631\u0628\u0647\u200c\u0641\u0631\u062f \u0645\u0627\u0646\u0646\u062f \u0634\u0645\u0627\u0631\u0647 \u0633\u0631\u06cc\u0627\u0644 \u062e\u0648\u062f\u060c \u067e\u0633 \u0627\u0632 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u0648\u0644\u06cc\u0647\u060c \u062e\u0648\u062f \u062a\u0647\u06cc\u0647 \u0634\u0648\u0646\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af\u060c \u0645\u0627 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-21329","post","type-post","status-publish","format-standard","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/21329","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=21329"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/21329\/revisions"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=21329"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=21329"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=21329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}