{"id":336602,"date":"2022-08-05T09:00:29","date_gmt":"2022-08-05T09:00:29","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=336602"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=336602","title":{"rendered":"<span>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 Python \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Docker \u0434\u043b\u044f Sipeed Lichee RV RISC-V<\/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-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><a href=\"https:\/\/habrastorage.org\/webt\/zm\/jx\/z8\/zmjxz8dpvzecs94czkbz5fqmypm.jpeg\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/zm\/jx\/z8\/zmjxz8dpvzecs94czkbz5fqmypm.jpeg\" alt=\"Lichee RV\" data-src=\"https:\/\/habrastorage.org\/webt\/zm\/jx\/z8\/zmjxz8dpvzecs94czkbz5fqmypm.jpeg\" data-blurred=\"true\"\/><\/a><\/p>\n<p>  \u0412 <a href=\"https:\/\/habr.com\/ru\/company\/timeweb\/blog\/649327\/\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a> \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0438\u0441\u044c \u0441 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u043c Allwinner D1 \u043d\u0430 RISC-V \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0441 \u043e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u043c Sipeed Lichee RV. \u0421\u0442\u0430\u0440\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043b \u043c\u043d\u043e\u0433\u0438\u0435 \u043d\u0435\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u043e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u0438\u043a\u0430. \u0412 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f Lichee RV, \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 Ubuntu, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u044f\u0434\u0440\u0435 Linux 5.19, \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0446\u0435 \u0438\u044e\u043b\u044f 2022 \u0433\u043e\u0434\u0430. \u041f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 GPIO \u0438\u0437 Python`\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c Docker. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437, \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u043d\u0430 \u0447\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0430 \u043f\u043b\u0430\u0442\u0430 \u0438 \u043d\u0430\u0447\u043d\u0435\u043c \u0443\u0436\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 Python.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0445 \u043e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u0438\u043a\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0440\u0430\u0439\u043d\u0435 \u0441\u043b\u0430\u0431\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c. \u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f <a href=\"http:\/\/sipeed.com\/index-en.html\">Sipeed<\/a> \u0441 \u043d\u0430\u0447\u0430\u043b\u0430 \u044d\u0442\u043e\u0433\u043e \u0433\u043e\u0434\u0430, \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0434\u0430\u0436 \u043c\u043e\u0434\u0443\u043b\u044f Lichee RV, \u043d\u0435 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b\u0430 \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u041c\u043d\u043e\u0433\u0438\u0435 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439 \u043e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u0438\u043a\u0438 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0438\u0441\u044c \u0431\u044b \u0432 \u043c\u0443\u0437\u0435\u0439\u043d\u044b\u0439 \u044d\u043a\u0441\u043f\u043e\u043d\u0430\u0442, \u0435\u0441\u043b\u0438 \u043d\u0435 \u043f\u0440\u043e\u0435\u043a\u0442 Armbian. <a href=\"https:\/\/devdotnet.org\/post\/armbian-linux-distributiv-dlya-otladochnyh-plat-na-arm\/\">Armbian<\/a> \u2014 \u044d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432 Linux, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 ARM \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435, \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043f\u043b\u0430\u0442 \u043e\u0433\u0440\u043e\u043c\u0435\u043d: Orange Pi, Banana Pi, Odroid, Olimex, Cubietruck, Roseapple Pi, Pine64, NanoPi \u0438 \u0434\u0440. \u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0430\u0432\u043d\u043e \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 <a href=\"https:\/\/www.armbian.com\/rpi4b\/\">Raspberry Pi<\/a>.<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/e3\/nt\/1s\/e3nt1sdt3xbzxmbmbo9msssagcc.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/e3\/nt\/1s\/e3nt1sdt3xbzxmbmbo9msssagcc.png\" alt=\"Lichee RV\" data-src=\"https:\/\/habrastorage.org\/webt\/e3\/nt\/1s\/e3nt1sdt3xbzxmbmbo9msssagcc.png\"\/><\/a><\/p>\n<p>  \u041e\u0434\u0438\u043d \u0438\u0437 \u0432\u0435\u0434\u0443\u0449\u0438\u0445 \u043c\u0435\u0439\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Armbian, \u041e\u043b\u0435\u0433 \u0441\u0434\u0435\u043b\u0430\u043b <a href=\"https:\/\/github.com\/150balbes\/build\">\u043f\u043e\u0440\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 Allwinner D1<\/a>. \u0412 <a href=\"https:\/\/forum.armbian.com\/topic\/21465-armbian-image-and-build-support-for-risc-v\/\">\u0432\u0435\u0442\u043a\u0435 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f<\/a> \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u0440\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043f\u043b\u0430\u0442\u0430\u0445 Nezha D1 \u0438 Lichee RV (Dock).  <\/p>\n<ul>\n<li>\u0414\u043b\u044f \u043f\u043b\u0430\u0442\u044b Nezha D1 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f: HDMI, LAN, USB, \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u0447\u0435\u0440\u0435\u0437 3.5 jack;<\/li>\n<li>\u0414\u043b\u044f \u043f\u043b\u0430\u0442\u044b Lichee RV Dock \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f: HDMI, WiFi, USB, USB-LAN.<\/li>\n<\/ul>\n<p>  \u041e\u0431\u0440\u0430\u0437\u044b \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u043e <a href=\"https:\/\/disk.yandex.ru\/d\/da8qJ8wyE1hhcQ\">\u0441\u0441\u044b\u043b\u043a\u0435<\/a>.<\/p>\n<p>  \u0412\u0441\u0435 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438\u0441\u044c \u043d\u0430 \u043e\u0431\u0440\u0430\u0437\u0435 <a href=\"https:\/\/disk.yandex.ru\/d\/da8qJ8wyE1hhcQ\/Nezha_D1\/ArmbianTV\/20220627\"><strong>Armbian_22.08.0-trunk_Nezha_jammy_current_5.19.0.img.xz<\/strong><\/a> \u043e\u0442 2022.06.27. \u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f micro-SD \u043a\u0430\u0440\u0442\u0430 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 <a href=\"https:\/\/github.com\/balena-io\/etcher\/releases\">balenaEtcher<\/a>, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u0431\u0440\u0430\u0437 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u0440\u0442\u0443-\u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<h1>\u041f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a Armbian<\/h1>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a <a href=\"https:\/\/www.armbian.com\/\">Armbian<\/a> \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0415\u0441\u043b\u0438 \u043d\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c HDMI-\u043f\u0430\u043d\u0435\u043b\u044c, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c USB-TTL UART \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440 \u0438 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 (<a href=\"https:\/\/habr.com\/ru\/company\/timeweb\/blog\/649327\/\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u043f\u043e\u0441\u0442<\/a>, \u0440\u0430\u0437\u0434\u0435\u043b \u2014 \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e UART).<\/p>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u044b <i>uname -a<\/i> \u0438 <i>lsb_release -a<\/i>.<\/p>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"bash\">root@nezha:~# uname -a Linux nezha 5.19.0-rc1-d1 #trunk Mon Jun 27 13:50:54 MSK 2022 riscv64 riscv64 riscv64 GNU\/Linux root@nezha:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description:    Ubuntu 22.04 LTS Release:        22.04 Codename:       jammy root@nezha:~# <\/code><\/pre>\n<p>  \u041e\u0431\u0440\u0430\u0437 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 <strong>Ubuntu 22.04 LTS (jammy), \u044f\u0434\u0440\u043e Linux 5.19.0-rc1-d1.<\/strong><\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435<\/b>                         <\/p>\n<div class=\"spoiler_text\"><a href=\"https:\/\/habrastorage.org\/webt\/jf\/dh\/qr\/jfdhqr_qd0i8taju7f2knmri_0e.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/jf\/dh\/qr\/jfdhqr_qd0i8taju7f2knmri_0e.png\" alt=\"Lichee RV\" data-src=\"https:\/\/habrastorage.org\/webt\/jf\/dh\/qr\/jfdhqr_qd0i8taju7f2knmri_0e.png\"\/><\/a><br \/>  <em>\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435<\/em>  <\/div>\n<\/p><\/div>\n<p>  \u041e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 neofetch:<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/xl\/bs\/fm\/xlbsfmwpxznsdelmp2tnaxnqibq.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/xl\/bs\/fm\/xlbsfmwpxznsdelmp2tnaxnqibq.png\" alt=\"Lichee RV\" data-src=\"https:\/\/habrastorage.org\/webt\/xl\/bs\/fm\/xlbsfmwpxznsdelmp2tnaxnqibq.png\"\/><\/a><br \/>  <em>\u0417\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b neofetch \u043d\u0430 Lichee RV<\/em><\/p>\n<p>  \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0437\u0430\u0434\u0430\u0447, \u0443\u0442\u0438\u043b\u0438\u0442\u0430 <i>htop<\/i>. \u0422\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 48.5\u00b0C \u0432 \u0445\u043e\u043b\u043e\u0441\u0442\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/-h\/25\/k1\/-h25k1zd4pav4-jsz-xvfhbamoc.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/-h\/25\/k1\/-h25k1zd4pav4-jsz-xvfhbamoc.png\" alt=\"Lichee RV\" data-src=\"https:\/\/habrastorage.org\/webt\/-h\/25\/k1\/-h25k1zd4pav4-jsz-xvfhbamoc.png\"\/><\/a><br \/>  <em>\u0417\u0430\u043f\u0443\u0441\u043a \u0443\u0442\u0438\u043b\u0438\u0442\u044b htop \u043d\u0430 Lichee RV<\/em><\/p>\n<p>  \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u0430\u043c\u044f\u0442\u0438 RAM \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0441\u0435\u0433\u043e 117 \u041c\u0431 \u0438\u0437 512.<\/p>\n<h1>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432<\/h1>\n<p>  \u0412\u0441\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a HDMI, WiFi, USB, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043f\u043b\u0435\u044f 1.14\u2033 SPI \u043d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 Sitronix ST7789V.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0412\u044b\u0432\u043e\u0434 \u0441\u043f\u0438\u0441\u043a\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 inxi<\/b>                         <\/p>\n<div class=\"spoiler_text\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f:  <\/p>\n<pre><code class=\"bash\">root@nezha:~# inxi -Fc0 System:   Host: nezha Kernel: 5.19.0-rc1-d1 riscv64 bits: 64 Console: pty pts\/0     Distro: Ubuntu 22.04 LTS (Jammy Jellyfish) Machine:   Type: RISCV System: Allwinner D1 Nezha details: N\/A CPU:   Info: single core model: N\/A variant: c906 bits: 64 type: UP   Speed (MHz): 1008 max: 1008 core: 1: 1008 Graphics:   Device-1: sun20i-d1-dw-hdmi driver: sun8i_dw_hdmi v: N\/A   Device-2: sun20i-d1-display-engine driver: sun4i_drm v: N\/A   Display: server: No display server data found. Headless machine? tty: 117x40   Message: Unable to show GL data. Required tool glxinfo missing. Audio:   Device-1: sun20i-d1-dw-hdmi driver: sun8i_dw_hdmi   Sound Server-1: ALSA v: k5.19.0-rc1-d1 running: yes Network:   Device-1: sun20i-d1-emac driver: N\/A   Device-2: mmc-pwrseq-simple driver: pwrseq_simple   IF-ID-1: docker0 state: down mac: 02:42:21:0c:9a:20   IF-ID-2: usb0 state: down mac: 6a:74:8e:f9:16:6c   IF-ID-3: wlan0 state: up mac: 74:ee:2a:6b:43:59 Drives:   Local Storage: total: 14.88 GiB used: 4.65 GiB (31.2%)   ID-1: \/dev\/mmcblk0 model: ASTC size: 14.88 GiB Partition:   ID-1: \/ size: 13.93 GiB used: 4.58 GiB (32.9%) fs: ext4 dev: \/dev\/mmcblk0p2   ID-2: \/boot size: 511 MiB used: 50.3 MiB (9.8%) fs: vfat dev: \/dev\/mmcblk0p1   ID-3: \/var\/log size: 46.8 MiB used: 13.7 MiB (29.3%) fs: ext4 dev: \/dev\/zram1 Swap:   ID-1: swap-1 type: zram size: 238.6 MiB used: 22.2 MiB (9.3%) dev: \/dev\/zram0 Sensors:   Missing: Required tool sensors not installed. Check --recommends Info:   Processes: 110 Uptime: 5h 40m Memory: 477.2 MiB used: 152 MiB (31.9%) Init: systemd runlevel: 5   Shell: Bash inxi: 3.3.13 <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0414\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0434\u0435\u0440\u0435\u0432\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 <a href=\"https:\/\/github.com\/devdotnetorg\/Lichee-RV\/blob\/master\/dt-overlays\/sun20i-d1-nezha_Armbian_22.08.0-trunk.dts\">sun20i-d1-nezha.dto<\/a>. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/devdotnet.org\/post\/rabota-s-gpio-na-primere-banana-pi-bpi-m64-chast-2-device-tree-overlays\/\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 GPIO. \u0427\u0430\u0441\u0442\u044c 2. Device Tree overlays<\/a>.<\/p>\n<p>  \u0424\u0430\u0439\u043b <a href=\"https:\/\/github.com\/devdotnetorg\/Lichee-RV\/blob\/master\/dt-overlays\/sun20i-d1-nezha_Armbian_22.08.0-trunk.dts\">sun20i-d1-nezha.dto<\/a> \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u043f\u0443\u0442\u0438 <i>\/boot\/dtb\/allwinner<\/i>, \u0434\u043b\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u0438 \u0432 \u0447\u0438\u0442\u0430\u0439\u043c\u044b\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0432\u0438\u0434 (DTS) \u0438\u0437 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">$ dtc -I dtb -O dts sun20i-d1-nezha.dtb -o sun20i-d1-nezha.dts <\/code><\/pre>\n<p>  \u041d\u0430 \u0441\u0430\u043c\u043e\u0439 \u043f\u043b\u0430\u0442\u0435 Dock \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d RGB-\u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u0430\u044f \u043a\u0430\u043a KEY.<\/p>\n<h3>RGB-\u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434<\/h3>\n<p>  RGB-\u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0435 <a href=\"https:\/\/%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B018.%D1%80%D1%84\/ws2812b-%D0%B0%D1%80%D0%B4%D1%83%D0%B8%D0%BD%D0%BE\/\">WS2812<\/a> \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u043a \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0443 <strong>PC0<\/strong>, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b Sysfs.<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/mx\/v6\/3a\/mxv63adx-3xrgga4dwsvibvet_i.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/mx\/v6\/3a\/mxv63adx-3xrgga4dwsvibvet_i.png\" alt=\"Lichee RV\" data-src=\"https:\/\/habrastorage.org\/webt\/mx\/v6\/3a\/mxv63adx-3xrgga4dwsvibvet_i.png\"\/><\/a><br \/>  <em>\u0421\u0445\u0435\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f RGB-\u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u043a \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0443 PC0<\/em><\/p>\n<p>  \u041f\u043e \u043f\u0443\u0442\u0438 <i>\/sys\/class\/leds<\/i> \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e <i>rgb:indicator<\/i>.<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b tree<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">root@nezha:\/sys\/class\/leds\/rgb:indicator# tree . \u251c\u2500\u2500 brightness \u251c\u2500\u2500 device -> ..\/..\/..\/2008000.led-controller \u251c\u2500\u2500 max_brightness \u251c\u2500\u2500 multi_index \u251c\u2500\u2500 multi_intensity \u251c\u2500\u2500 power \u2502   \u251c\u2500\u2500 async \u2502   \u251c\u2500\u2500 autosuspend_delay_ms \u2502   \u251c\u2500\u2500 control \u2502   \u251c\u2500\u2500 runtime_active_kids \u2502   \u251c\u2500\u2500 runtime_active_time \u2502   \u251c\u2500\u2500 runtime_enabled \u2502   \u251c\u2500\u2500 runtime_status \u2502   \u251c\u2500\u2500 runtime_suspended_time \u2502   \u2514\u2500\u2500 runtime_usage \u251c\u2500\u2500 subsystem -> ..\/..\/..\/..\/..\/..\/class\/leds \u251c\u2500\u2500 trigger \u2514\u2500\u2500 uevent  3 directories, 15 files <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0414\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0446\u0432\u0435\u0442\u043e\u0432. \u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0435\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430 <i>multi_index<\/i>.<\/p>\n<pre><code class=\"bash\">root@nezha:~# cat \/sys\/class\/leds\/rgb:indicator\/multi_index red green blue <\/code><\/pre>\n<p>  \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u043c \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0430\u0439\u043b\u0430 <i>multi_intensity<\/i>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430\u0434\u0430\u0434\u0438\u043c \u0441\u0438\u043d\u0438\u0439 \u0446\u0432\u0435\u0442 \u0432 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u044f\u0440\u043a\u043e\u0441\u0442\u0438:<\/p>\n<pre><code class=\"bash\">$ echo 0 0 255 > \/sys\/class\/leds\/rgb:indicator\/multi_intensity <\/code><\/pre>\n<p>  \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043a\u043b\u044e\u0447\u0438\u043c <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%91%D0%B8%D1%80%D1%8E%D0%B7%D0%BE%D0%B2%D1%8B%D0%B9_%D1%86%D0%B2%D0%B5%D1%82\">\u0431\u0438\u0440\u044e\u0437\u043e\u0432\u044b\u0439 \u0446\u0432\u0435\u0442<\/a>:<\/p>\n<pre><code class=\"bash\">$ echo 48 213 200 > \/sys\/class\/leds\/rgb:indicator\/multi_intensity <\/code><\/pre>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/dc\/jx\/ev\/dcjxevyrni6x-yljr_uzdwqescu.jpeg\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/dc\/jx\/ev\/dcjxevyrni6x-yljr_uzdwqescu.jpeg\" alt=\"Lichee RV\" data-src=\"https:\/\/habrastorage.org\/webt\/dc\/jx\/ev\/dcjxevyrni6x-yljr_uzdwqescu.jpeg\" data-blurred=\"true\"\/><\/a><br \/>  <em>\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 RGB-\u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u0430 \u043d\u0430 Sipeed Lichee RV Dock<\/em><\/p>\n<h3>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430 (KEY)<\/h3>\n<p>  \u041a\u043d\u043e\u043f\u043a\u0430 KEY \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043a \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0443 <strong>ADC_LRADC<\/strong>. \u042d\u0442\u043e \u043d\u0438\u0437\u043a\u043e\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u043e\u0439 \u0410\u0426\u041f (LRADC) \u0438\u043c\u0435\u0435\u0442 6-\u0431\u0438\u0442\u043d\u043e\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. LRADC \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f 2 \u043a\u0413\u0446. \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u043e\u0442 0 \u0434\u043e 3.3 \u0412.<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/q5\/ka\/zv\/q5kazvwz8xvftnlhz-2sp08o0rc.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/q5\/ka\/zv\/q5kazvwz8xvftnlhz-2sp08o0rc.png\" alt=\"Lichee RV\" data-src=\"https:\/\/habrastorage.org\/webt\/q5\/ka\/zv\/q5kazvwz8xvftnlhz-2sp08o0rc.png\"\/><\/a><br \/>  <em>\u0421\u0445\u0435\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 KEY \u043a \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0443 ADC_LRADC<\/em><\/p>\n<p>  \u041d\u0438\u0436\u0435 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438\u0437 <a href=\"https:\/\/github.com\/devdotnetorg\/Lichee-RV\/blob\/master\/dt-overlays\/sun20i-d1-nezha_Armbian_22.08.0-trunk.dts\">sun20i-d1-nezha.dto<\/a><\/p>\n<pre><code class=\"bash\">keys@2009800 {   compatible = \"allwinner,sun20i-d1-lradc allwinner,sun50i-r329-lradc\";   reg = &lt;0x2009800 0x400>;   clocks = &lt;0x02 0x68>;   resets = &lt;0x02 0x2f>;   interrupts = &lt;0x4d 0x04>;   status = \"okay\";   vref-supply = &lt;0x1a>;   wakeup-source;    button-160 {     label = \"OK\";     linux,code = &lt;0x160>;     channel = &lt;0x00>;     voltage = &lt;0x27100>;     }; }; <\/code><\/pre>\n<p>  \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <strong>linux,code<\/strong> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043a\u043e\u0434 \u043a\u043d\u043e\u043f\u043a\u0438, \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u0434\u043e\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432 \u0444\u0430\u0439\u043b\u0435 <a href=\"https:\/\/github.com\/torvalds\/linux\/blob\/master\/include\/uapi\/linux\/input-event-codes.h\">input-event-codes.h<\/a>. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <strong>voltage<\/strong> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0432 2.71 \u0412.<\/p>\n<h3>\u041c\u043e\u0434\u0443\u043b\u044c Wi-Fi<\/h3>\n<p>  \u041d\u0430 \u043d\u0435\u0441\u0443\u0449\u0435\u0439 \u043f\u043b\u0430\u0442\u0435 Lichee RV Dock \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d \u043c\u043e\u0434\u0443\u043b\u044c <a href=\"https:\/\/www.realtek.com\/en\/products\/communications-network-ics\/item\/rtl8723ds\">Realtek RTL8723DS<\/a> \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438 Wi-Fi 4 (802.11b\/g\/n) \u0438 Bluetooth 4.2. \u041e\u0431\u0440\u0430\u0437 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0434\u043b\u044f \u0447\u0438\u043f\u043e\u0432 Realtek: RTL8723DS, RTL8712, R8188EU. \u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u0441\u0432\u044f\u0437\u0438 USB-Dongle Wi-Fi \u0438 Ethernet (\u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e rt8152). \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u043e\u0431\u0440\u0430\u0437\u0435 \u0431\u044b\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435\u043c \u0438 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 Wi-Fi \u043c\u043e\u0434\u0443\u043b\u044f. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0442\u043e\u0447\u043a\u0430\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435. \u0412 \u043d\u043e\u0432\u043e\u043c \u043e\u0431\u0440\u0430\u0437\u0435 \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u0432\u044f\u0437\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0448\u0442\u0430\u0442\u043d\u043e.<\/p>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b <i>iwlist wlan0 scan<\/i> \u0434\u043b\u044f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0444\u0438\u0440\u0430:<\/p>\n<pre><code class=\"bash\">root@nezha:~# iwlist wlan0 scan wlan0     Scan completed :           Cell 01 - Address: **:**:**:**:**:99                     ESSID:\"asus\"                     Protocol:IEEE 802.11bgn                     Mode:Master                     Frequency:2.437 GHz (Channel 6)                     Encryption key:on                     Bit Rates:72 Mb\/s                     Extra:rsn_ie=30140100000fac040100000fac040100000fac020c00                     IE: IEEE 802.11i\/WPA2 Version 1                         Group Cipher : CCMP                         Pairwise Ciphers (1) : CCMP                         Authentication Suites (1) : PSK                     Quality=100\/100  Signal level=68\/100                     Extra:fm=0003           Cell 02 - Address: **:**:**:**:**:94                     ESSID:\"Home\"                     Protocol:IEEE 802.11bgn                     Mode:Master                     Frequency:2.412 GHz (Channel 1)                     Encryption key:on                     Bit Rates:300 Mb\/s                     Extra:rsn_ie=30140100000fac040100000fac040100000fac020000                     IE: IEEE 802.11i\/WPA2 Version 1                         Group Cipher : CCMP                         Pairwise Ciphers (1) : CCMP                         Authentication Suites (1) : PSK                                        Quality=0\/100  Signal level=29\/100                     Extra:fm=0003 **** <\/code><\/pre>\n<p>  \u0414\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a Wi-Fi \u0441\u0435\u0442\u0438 \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0443, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0443\u0434\u043e\u0431\u043d\u0430\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 <i>nmtui<\/i> (\u043f\u0430\u043a\u0435\u0442 <a href=\"https:\/\/packages.debian.org\/sid\/network-manager\">network-manager)<\/a>, \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0440\u0443\u0447\u043d\u043e\u0439 \u043f\u0440\u0430\u0432\u043a\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432. \u0423\u0442\u0438\u043b\u0438\u0442\u0430 <i>nmtui<\/i> \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043a\u0430\u043d\u0438\u0440\u0443\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 Wi-Fi \u0441\u0435\u0442\u0438 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043a \u043b\u044e\u0431\u043e\u0439 \u0441\u0435\u0442\u0438. \u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 Lichee RV, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0435\u0442\u0435\u0432\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 Wi-Fi \u0442\u043e\u0447\u043a\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u0430.<\/p>\n<p>  \u041f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b <i>iwconfig<\/i> \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f:<\/p>\n<pre><code class=\"bash\">root@nezha:~# iwconfig lo        no wireless extensions.  usb0      no wireless extensions.  wlan0     IEEE 802.11bgn  ESSID:\"asus\"  Nickname:\"&lt;WIFI@REALTEK>\"           Mode:Managed  Frequency:2.437 GHz  Access Point: **:**:**:**:**:99           Bit Rate:72.2 Mb\/s   Sensitivity:0\/0           Retry:off   RTS thr:off   Fragment thr:off           Encryption key:****-****-****-****-****-****-****-****   Security mode:open           Power Management:off           Link Quality=97\/100  Signal level=68\/100  Noise level=0\/100           Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0           Tx excessive retries:0  Invalid misc:0   Missed beacon:0 <\/code><\/pre>\n<p>  <\/p>\n<h3>\u0417\u0432\u0443\u043a\u043e\u0432\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/h3>\n<p>  \u0417\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 ALSA \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a, \u043d\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0437\u0432\u0443\u043a\u0430 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u043e\u0441\u044c.<\/p>\n<h1>GPIO<\/h1>\n<p>  \u041d\u0430 \u043d\u0435\u0441\u0443\u0449\u0435\u0439 Dock \u043f\u043b\u0430\u0442\u0435 \u0432\u044b\u0432\u0435\u0434\u0435\u043d \u0440\u0430\u0437\u044a\u0435\u043c GPIO \u043d\u0430 40-pins \u0441 \u0448\u0430\u0433\u043e\u043c 2,54 \u043c\u043c \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u0441 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u0440\u0430\u0437\u044a\u0435\u043c\u043e\u043c Raspberry Pi, \u0442\u0430\u043a \u0436\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e \u043b\u0438\u043d\u0438\u0438 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u043d\u0430 3.3V \u0438 5V, \u043d\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b GND \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0432\u044b\u0432\u043e\u0434\u0430\u043c \u043d\u0430 Raspberry Pi. \u0421\u0445\u0435\u043c\u0443 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 \u043c\u043e\u0436\u0435\u0442\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 <a href=\"https:\/\/habr.com\/ru\/company\/timeweb\/blog\/649327\/\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u043f\u043e\u0441\u0442\u0435<\/a>.<\/p>\n<p>  \u0412\u044b\u0432\u0435\u0434\u0435\u043d\u044b \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b: 1x TWI, 1x SPI, 6x PWM, 4x UART, MIPI DSI, RGB, LVDS.<\/p>\n<p>  \u0414\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430\u043c\u0438 GPIO \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 <a href=\"https:\/\/devdotnet.org\/post\/rabota-s-gpio-v-linux-chast-6-biblioteka-libgpiod\/\">Libgpiod<\/a>. \u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d \u043f\u0430\u043a\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 (\u0432\u0435\u0440\u0441\u0438\u044f 1.6), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0434\u0430\u043d\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:<\/p>\n<pre><code class=\"bash\">$ sudo apt-get update $ sudo apt-get install -y libgpiod-dev gpiod <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <strong>gpiodetect<\/strong> \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0447\u0438\u043f\u043e\u0432 GPIO, \u043c\u0435\u0442\u043a\u0438 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043b\u0438\u043d\u0438\u0439. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"bash\">root@nezha:~# gpiodetect gpiochip0 [2000000.pinctrl] (224 lines) <\/code><\/pre>\n<p>  \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e <i>gpiochip0<\/i> \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430\u043c \u0440\u0430\u0437\u044a\u0435\u043c\u0430 GPIO \u043d\u0430 40-pins.<\/p>\n<p>  \u041a\u043e\u043c\u0430\u043d\u0434\u0430 <strong>gpioinfo<\/strong> \u0432\u044b\u0432\u0435\u0434\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043b\u0438\u043d\u0438\u044f\u0445 GPIO \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 GPIO (\u0438\u043b\u0438 \u0432\u0441\u0435\u0445 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 GPIO, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u044b).<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b gpioinfo<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">root@nezha:~# gpioinfo gpiochip0 - 224 lines:         line   0:      unnamed       unused   input  active-high ...         line  31:      unnamed       unused   input  active-high         line  32:      unnamed       kernel   input  active-high [used]         line  33:      unnamed       kernel   input  active-high [used]         line  34:      unnamed       unused   input  active-high ...            line  39:      unnamed       unused   input  active-high         line  40:      unnamed       kernel   input  active-high [used]         line  41:      unnamed       kernel   input  active-high [used]         line  42:      unnamed       kernel   input  active-high [used]         line  43:      unnamed       kernel   input  active-high [used]         line  44:      unnamed       unused   input  active-high ...            line  63:      unnamed       unused   input  active-high         line  64:      unnamed       kernel   input  active-high [used]         line  65:      unnamed       unused   input  active-high         line  66:      unnamed       kernel   input  active-high [used]         line  67:      unnamed       kernel   input  active-high [used]         line  68:      unnamed       kernel   input  active-high [used]         line  69:      unnamed       kernel   input  active-high [used]         line  70:      unnamed       kernel   input  active-high [used]         line  71:      unnamed       kernel   input  active-high [used]         line  72:      unnamed       unused   input  active-high ...            line 105:      unnamed       unused   input  active-high         line 106:      unnamed       kernel   input  active-high [used]         line 107:      unnamed       kernel   input  active-high [used]         line 108:      unnamed       kernel   input  active-high [used]         line 109:      unnamed       kernel   input  active-high [used]         line 110:      unnamed       kernel   input  active-high [used]         line 111:      unnamed       kernel   input  active-high [used]         line 112:      unnamed       kernel   input  active-high [used]         line 113:      unnamed       unused   input  active-high         line 114:      unnamed       kernel   input  active-high [used]         line 115:      unnamed    \"usbvbus\"  output  active-high [used]         line 116:      unnamed \"usb0_vbus_det\" input active-high [used]         line 117:      unnamed \"usb0_id_det\" input active-low [used]         line 118:      unnamed       kernel   input  active-high [used]         line 119:      unnamed       unused   input  active-high ...            line 159:      unnamed       unused   input  active-high         line 160:      unnamed       kernel   input  active-high [used]         line 161:      unnamed       kernel   input  active-high [used]         line 162:      unnamed       kernel   input  active-high [used]         line 163:      unnamed       kernel   input  active-high [used]         line 164:      unnamed       kernel   input  active-high [used]         line 165:      unnamed       kernel   input  active-high [used]         line 166:      unnamed         \"cd\"   input  active-high [used]         line 167:      unnamed       unused   input  active-high ...            line 191:      unnamed       unused   input  active-high         line 192:      unnamed       kernel   input  active-high [used]         line 193:      unnamed       kernel   input  active-high [used]         line 194:      unnamed       kernel   input  active-high [used]         line 195:      unnamed       kernel   input  active-high [used]         line 196:      unnamed       kernel   input  active-high [used]         line 197:      unnamed       kernel   input  active-high [used]         line 198:      unnamed       kernel   input  active-high [used]         line 199:      unnamed       kernel   input  active-high [used]         line 200:      unnamed       kernel   input  active-high [used]         line 201:      unnamed       kernel   input  active-high [used]         line 202:      unnamed       unused   input  active-high         line 203:      unnamed       unused   input  active-high         line 204:      unnamed      \"reset\"  output   active-low [used]         line 205:      unnamed       unused   input  active-high ...            line 223:      unnamed       unused   input  active-high <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u0438\u0437 \u0440\u0430\u0437\u044a\u0435\u043c\u0430 \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u044b \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043c I2C, SPI, \u0438 \u0442.\u0434. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430 \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u0430, \u043a\u043d\u043e\u043f\u043a\u0438 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0437\u0430\u043d\u044f\u0442\u043e\u0441\u0442\u044c.<\/p>\n<p>  \u0412 \u0434\u0435\u0440\u0435\u0432\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b GPIO \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <strong>pinctrl@2000000<\/strong>. \u0412 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u044b \u0432\u0441\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u0438 \u0438\u0445 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f, \u0435\u0441\u043b\u0438 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <i>cat \/sys\/kernel\/debug\/pinctrl\/2000000.pinctrl\/pinmux-pins<\/i> \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430 \u043a \u0435\u0433\u043e \u043c\u0435\u0442\u043a\u0438, \u0438 \u0442\u0430\u043a \u0436\u0435 \u0437\u0430\u043d\u044f\u0442\u043e\u0441\u0442\u044c.<\/p>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"bash\">root@nezha:~# cat \/sys\/kernel\/debug\/pinctrl\/2000000.pinctrl\/pinmux-pins Pinmux settings per pin Format: pin (name): mux_owner|gpio_owner (strict) hog? pin 32 (PB0): device 2502800.i2c function i2c2 group PB0 pin 33 (PB1): device 2502800.i2c function i2c2 group PB1 pin 34 (PB2): UNCLAIMED ... pin 39 (PB7): UNCLAIMED pin 40 (PB8): device 2500000.serial function uart0 group PB8 pin 41 (PB9): device 2500000.serial function uart0 group PB9 pin 42 (PB10): device 2502000.i2c function i2c0 group PB10 pin 43 (PB11): device 2502000.i2c function i2c0 group PB11 pin 44 (PB12): UNCLAIMED pin 64 (PC0): device 2008000.led-controller function ledc group PC0 pin 65 (PC1): UNCLAIMED ... pin 104 (PD8): UNCLAIMED ... pin 113 (PD17): UNCLAIMED ... pin 210 (PG18): UNCLAIMED <\/code><\/pre>\n<p>  \u0418\u0437 \u043e\u0442\u0447\u0435\u0442\u0430 \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b:  <\/p>\n<ul>\n<li><strong>pin 32 (PB0) \u0438 pin 33 (PB1)<\/strong> \u0437\u0430\u043d\u044f\u0442\u044b \u043f\u043e\u0434 I2C \u0448\u0438\u043d\u0443;<\/li>\n<li><strong>pin 40 (PB8) \u0438 pin 41 (PB9)<\/strong> \u0437\u0430\u043d\u044f\u0442\u044b \u043f\u043e\u0434 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 UART;<\/li>\n<li><strong>pin 64 (PC0)<\/strong> \u0437\u0430\u043d\u044f\u0442 \u043f\u043e\u0434 RGB-\u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u043d\u0430 \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u0435 WS2812;<\/li>\n<li><strong>pin 104 (PD8) \u0438 pin 113 (PD17)<\/strong> \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/li>\n<\/ul>\n<p>  <strong>\u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u043c\u0435\u0440\u0430 GPIOXX<\/strong><\/p>\n<p>  \u0420\u0430\u0441\u0447\u0435\u0442 \u043d\u043e\u043c\u0435\u0440\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430 (\u043b\u0438\u043d\u0438\u044f, \u043f\u043e\u0440\u0442) \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u0441\u0430\u043c\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430. \u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 Allwinner \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f. \u041f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u0443\u0442\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043d\u0442\u0430\u043a\u0442 <strong>PD8<\/strong>, \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u043e\u043c\u0435\u0440\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430 \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043c \u0440\u0430\u0441\u0447\u0435\u0442 \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435:<br \/>  <strong>(\u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0431\u0443\u043a\u0432\u044b \u0432 \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u0435 \u2014 1) * 32 + \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0432\u044b\u0432\u043e\u0434\u0430. <\/strong>\u041f\u0435\u0440\u0432\u0430\u044f \u0431\u0443\u043a\u0432\u0430 \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442.\u043a. P \u2014 PORT, \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0431\u0443\u043a\u0432\u044b D \u0432 \u0430\u043b\u0444\u0430\u0432\u0438\u0442\u0435 = 4, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c <strong>(4-1) * 32 + 8 = 104<\/strong>. \u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043d\u043e\u043c\u0435\u0440 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430 <strong>PD8 <\/strong>\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u043e\u043c\u0435\u0440 <strong>104<\/strong>. <strong>\u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 SoC \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u0432\u043e\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043d\u043e\u043c\u0435\u0440\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432, \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d \u0432 Datasheet \u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0443.<\/strong><\/p>\n<h3>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u0430 \u0438 \u043a\u043d\u043e\u043f\u043a\u0438<\/h3>\n<p>  \u041a\u0430\u043a \u0432 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/vdsina\/blog\/555598\/\">\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430\u043c\u0438 GPIO \u0438\u0437 C# .NET 5 \u0432 Linux<\/a> \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u0438 \u043a\u043d\u043e\u043f\u043a\u0443, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u043e\u0433\u0438\u043a\u0443 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043d\u0430 Python.  <\/p>\n<ul>\n<li>\u041a \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0443 \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u043b\u0438\u043d\u0438\u0438 113, \u043c\u0435\u0442\u043a\u0430 PD17 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434;<\/li>\n<li>\u041a \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0443 \u0441 \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u043b\u0438\u043d\u0438\u0438 104, \u043c\u0435\u0442\u043a\u0430 PD8 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u043a\u043d\u043e\u043f\u043a\u0443.<\/li>\n<\/ul>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430\u0445 GPIO \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 3.3 \u0412.<\/p>\n<p>  \u041a\u043e\u043c\u0430\u043d\u0434\u0430 <strong>gpioset<\/strong> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043b\u0438\u043d\u0438\u0438 GPIO. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434. \u041a\u043e\u043c\u0430\u043d\u0434\u0430: <i>gpioset 0 113=1<\/i>, \u0433\u0434\u0435 0 \u2014 gpiochip0, 113 \u2014 \u043d\u043e\u043c\u0435\u0440 \u043b\u0438\u043d\u0438\u0438(\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430), 0 \u2014 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u00ab0\u00bb \u0438\u043b\u0438 \u00ab1\u00bb. \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/p>\n<pre><code class=\"bash\">root@nezha:~# gpioset 0 113=1 root@nezha:~# <\/code><\/pre>\n<p>  \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0441\u044f.<\/p>\n<p>  \u041a\u043e\u043c\u0430\u043d\u0434\u0430 <strong>gpiomon<\/strong> \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043b\u0438\u043d\u0438\u0438 GPIO \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f. \u0411\u0443\u0434\u0435\u043c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043d\u0430 \u043b\u0438\u043d\u0438\u044e 104, \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u00abP\u04128\u00bb. \u041a\u043e\u043c\u0430\u043d\u0434\u0430: <i>gpiomon 0 104<\/i>, \u0433\u0434\u0435 0 \u2014 gpiochip0, 104 \u2014 \u043d\u043e\u043c\u0435\u0440 \u043b\u0438\u043d\u0438\u0438 (\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430). \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/p>\n<pre><code class=\"bash\">root@nezha:~# gpiomon 0 104 event:  RISING EDGE offset: 104 timestamp: [   11950.645719439] event: FALLING EDGE offset: 104 timestamp: [   11951.143717188] event:  RISING EDGE offset: 104 timestamp: [   11953.794611629] event: FALLING EDGE offset: 104 timestamp: [   11954.324853635] event:  RISING EDGE offset: 104 timestamp: [   11956.510412585] event: FALLING EDGE offset: 104 timestamp: [   11957.104961601] <\/code><\/pre>\n<p>  \u041a\u043d\u043e\u043f\u043a\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043d\u0430\u0436\u0438\u043c\u0430\u043b\u0430\u0441\u044c. <strong>RISING<\/strong> \u2014 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0441 0V \u0434\u043e 3.3V, \u043a\u043d\u043e\u043f\u043a\u0430 \u043d\u0430\u0436\u0430\u0442\u0430 \u0438 \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435. <strong>FALLING<\/strong> \u2014 \u043f\u043e\u043d\u0438\u0436\u0435\u043d\u0438\u0435, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0441 3.3V \u0434\u043e 0V, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438, \u0438 \u043a\u043d\u043e\u043f\u043a\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u00ab\u043d\u0435 \u043d\u0430\u0436\u0430\u0442\u0430\u00bb.<\/p>\n<p>  \u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u0430 \u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b\u0438, \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e.<\/p>\n<h1>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 Python<\/h1>\n<p>  \u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430 Python \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0449\u0435 \u0447\u0435\u043c \u043d\u0430 .NET. \u041f\u043e\u043c\u0438\u043c\u043e \u0441\u0440\u0435\u0434\u044b \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043e\u0431\u0435\u0440\u0442\u043a\u0443-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043d\u0430\u0434 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 <a href=\"https:\/\/devdotnet.org\/post\/rabota-s-gpio-v-linux-chast-6-biblioteka-libgpiod\/\">Libgpiod<\/a>.<\/p>\n<p>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c Python:<\/p>\n<pre><code class=\"bash\">sudo apt-get update sudo apt-get install python3 <\/code><\/pre>\n<p>  \u0417\u0430\u0442\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <strong>gpiod<\/strong>, \u043f\u0430\u043a\u0435\u0442 <i>python3-libgpiod<\/i>:<\/p>\n<pre><code class=\"bash\">sudo apt-get install python3-libgpiod <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u043f\u043e \u043f\u0443\u0442\u0438 <i>\/usr\/share\/doc\/python3-libgpiod\/examples<\/i> \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043d\u0430 Python \u0440\u0430\u0431\u043e\u0442\u044b \u0443\u043b\u0438\u0442\u0438\u0442 Libgpiod. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u043a\u0440\u0438\u043f\u0442 <i>gpioset.py<\/i>, \u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438 \u0441 \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 <i>gpioset<\/i> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430 \u043d\u0430 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u00ab0\u00bb \u0438\u043b\u0438 \u00ab1\u00bb, \u0434\u043b\u044f \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u0430.<\/p>\n<h3>\u041c\u0438\u0433\u0430\u043d\u0438\u0435 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u043c<\/h3>\n<p>  \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u0438 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u043c\u0438\u0433\u0430\u043d\u0438\u044f \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u043c \u043d\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435 <strong>PD17<\/strong>.<\/p>\n<p>  <strong>\u0424\u0430\u0439\u043b: <\/strong><a href=\"https:\/\/github.com\/devdotnetorg\/python-iot-samples\/blob\/master\/blink.py\"><strong>blink.py<\/strong><\/a><\/p>\n<pre><code class=\"python\"># GPIO used PD17  import gpiod import time  chip=gpiod.Chip('gpiochip0')  lines = chip.get_lines([113]) lines.request(consumer='foobar', type=gpiod.LINE_REQ_DIR_OUT, default_vals=[0])  while True:     lines.set_values([1])     time.sleep(1)     lines.set_values([0])     time.sleep(1) <\/code><\/pre>\n<p>  \u0412 \u0441\u0442\u0440\u043e\u043a\u0435 <strong>lines.request(&#8230;)<\/strong> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044c (consumer), \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0435\u0435 \u0434\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441. \u0414\u0430\u043b\u0435\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 <strong>LINE_REQ_DIR_OUT<\/strong> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043b\u0438\u043d\u0438\u0438 \u043d\u0430 \u0432\u044b\u0432\u043e\u0434, \u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u00ab0\u00bb.<\/p>\n<p>  \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443:<\/p>\n<pre><code class=\"bash\">$ python3 blink.py <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u043c\u0438\u0433\u0430\u0435\u0442 \u0441 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u043c \u0432 1 \u0441\u0435\u043a\u0443\u043d\u0434\u0443:<\/p>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/62e5adab82bb9f348992c5f0\" data-style=\"\" id=\"62e5adab82bb9f348992c5f0\" width=\"\"><\/div>\n<\/div>\n<p>  <\/p>\n<h3>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043a\u043d\u043e\u043f\u043a\u0438<\/h3>\n<p>  \u041d\u0435 \u0432\u0441\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0445 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0430 SoC Allwinner D1 \u0444\u0430\u0439\u043b <a href=\"https:\/\/github.com\/devdotnetorg\/Lichee-RV\/tree\/master\/Lichee_RV\/HDK\/7_chip_datasheet\">D1_Datasheet_V0.1(Draft Version).pdf<\/a>. \u041d\u0430 47 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0432 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 Function14 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <strong>PD-EINT8<\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439. \u041a\u0441\u0442\u0430\u0442\u0438, \u043d\u0430 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 \u0432\u0441\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b GPIO \u043f\u043e\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 Allwinner A64 ARM64.<\/p>\n<p>  \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0443\u0436\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043d\u0430 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435 <strong>PD8<\/strong> \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430 \u0443\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u0433\u043e\u0440\u0438\u0442 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434, \u043f\u0440\u0438 \u043e\u0442\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u0433\u0430\u0441\u043d\u0435\u0442.<\/p>\n<p>  <strong>\u0424\u0430\u0439\u043b: <a href=\"https:\/\/github.com\/devdotnetorg\/python-iot-samples\/blob\/master\/button.py\">button.py<\/a><\/strong><\/p>\n<pre><code class=\"python\"># GPIO used PD8, PD17 import gpiod import sys # default_state=1  chip=gpiod.Chip('gpiochip0')  linesKey = chip.get_lines([104]) linesLed = chip.get_lines([113])  linesKey.request(consumer='foobar', type=gpiod.LINE_REQ_EV_BOTH_EDGES) linesLed.request(consumer='foobar', type=gpiod.LINE_REQ_DIR_OUT, default_vals=[default_state])  while True:   ev_lines = linesKey.event_wait(sec=1)   if ev_lines:       for line in ev_lines:               event = line.event_read()               #print_event(event)               if event.type == gpiod.LineEvent.RISING_EDGE:                 evstr = ' RISING EDGE'                 linesLed.set_values([not(default_state)])               elif event.type == gpiod.LineEvent.FALLING_EDGE:                 evstr = 'FALLING EDGE'                 linesLed.set_values([default_state])               else:                 raise TypeError('Invalid event type')               print('event: {} offset: {} timestamp: [{}.{}]'.format(evstr,                       event.source.offset(),                       event.sec, event.nsec)) <\/code><\/pre>\n<p>  \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443:<\/p>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/62e5adab9c344d33ecf97733\" data-style=\"\" id=\"62e5adab9c344d33ecf97733\" width=\"\"><\/div>\n<\/div>\n<p>  <\/p>\n<h1>Docker<\/h1>\n<p>  Docker \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043b\u0438\u0448\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 <i>docker.io<\/i>.<\/p>\n<pre><code class=\"bash\">$ sudo apt-get update $ sudo apt-get install -y docker.io <\/code><\/pre>\n<p>  \u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Docker \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">$ docker version <\/code><\/pre>\n<p>  \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"bash\">root@nezha:\/boot\/dtb\/allwinner# docker version Client:  Version:           20.10.12  API version:       1.41  Go version:        go1.17.3  Git commit:        20.10.12-0ubuntu4  Built:             Mon Mar  7 17:27:43 2022  OS\/Arch:           linux\/riscv64  Context:           default  Experimental:      true  Server:  Engine:   Version:          20.10.12   API version:      1.41 (minimum version 1.12)   Go version:       go1.17.3   Git commit:       20.10.12-0ubuntu4   Built:            Mon Mar  7 15:57:50 2022   OS\/Arch:          linux\/riscv64   Experimental:     false  containerd:   Version:          1.5.9-0ubuntu3   GitCommit:  runc:   Version:          1.1.0-0ubuntu1   GitCommit:  docker-init:   Version:          0.19.0   GitCommit: <\/code><\/pre>\n<p>  \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 <a href=\"https:\/\/hub.docker.com\/_\/ubuntu\">\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440<\/a> \u0441 Ubuntu 22.04:<\/p>\n<pre><code class=\"bash\">root@nezha:~# docker run -it ubuntu:22.04 \/bin\/bash Unable to find image 'ubuntu:22.04' locally 22.04: Pulling from library\/ubuntu 1edfbf9ed16b: Pull complete Digest: sha256:b6b83d3c331794420340093eb706a6f152d9c1fa51b262d9bf34594887c2c7ac Status: Downloaded newer image for ubuntu:22.04 root@17b3d67b8e90:\/# uname -a Linux 17b3d67b8e90 5.19.0-rc1-d1 #trunk Mon Jun 27 13:50:54 MSK 2022 riscv64 riscv64 riscv64 GNU\/Linux root@17b3d67b8e90:\/# <\/code><\/pre>\n<p>  \u041f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u043e\u0431\u0440\u0430\u0449\u0430\u0439\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043e\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b RISC-V \u0441 \u043c\u0435\u0442\u043a\u043e\u0439 <strong>riscv64<\/strong>. \u0414\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0435 \u0441\u0432\u043e\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 <a href=\"https:\/\/devdotnet.org\/post\/sborka-docker-konteinerov-dlya-arm-arhitekturi-ispolzuya-buildx\/\">Buildx<\/a> ( \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <a href=\"https:\/\/devdotnet.org\/post\/sborka-docker-konteinerov-dlya-arm-arhitekturi-ispolzuya-buildx\/\">\u0421\u0431\u043e\u0440\u043a\u0430 Docker \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0434\u043b\u044f ARM \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Buildx<\/a>). \u0422\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 <strong>&#8212;platform linux\/riscv64<\/strong>, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"bash\">$ docker buildx build --platform linux\/riscv64 -f Dockerfile -t timeweb\/ubuntu:riscv64 . --push <\/code><\/pre>\n<p>  <\/p>\n<h1><strong>XFCE<\/strong><\/h1>\n<p>  \u0412 \u043e\u0431\u0440\u0430\u0437 <strong>Armbian_22.08.0-trunk_Nezha_jammy_current_5.19.0_xfce_desktop.img.xz<\/strong> \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u0431\u043b\u043e\u0447\u043a\u0430 <a href=\"https:\/\/www.xfce.org\/\">XFCE<\/a>. \u041d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043c\u0430\u043b\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0440\u0435\u0430\u0433\u0438\u0440\u0443\u0435\u0442 \u0431\u0435\u0437 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a, \u043a\u0430\u043a\u0438\u0445 \u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u044d\u043a\u0440\u0430\u043d\u0430 \u043d\u0435 \u0437\u0430\u043c\u0435\u0447\u0435\u043d\u043e.<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/xq\/bj\/bv\/xqbjbvam6ma3a05sj7xdwgjcnnq.jpeg\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/xq\/bj\/bv\/xqbjbvam6ma3a05sj7xdwgjcnnq.jpeg\" alt=\"Lichee RV\" data-src=\"https:\/\/habrastorage.org\/webt\/xq\/bj\/bv\/xqbjbvam6ma3a05sj7xdwgjcnnq.jpeg\" data-blurred=\"true\"\/><\/a><br \/>  <em>\u041e\u0431\u043e\u043b\u043e\u0447\u043a\u0430 XFCE \u043d\u0430 Lichee RV<\/em><\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0415\u0449\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u043e\u0432<\/b>                         <\/p>\n<div class=\"spoiler_text\"><a href=\"https:\/\/habrastorage.org\/webt\/zp\/kr\/4o\/zpkr4otbosgixvfuuiesmvp44qi.jpeg\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/zp\/kr\/4o\/zpkr4otbosgixvfuuiesmvp44qi.jpeg\" alt=\"Lichee RV\" data-src=\"https:\/\/habrastorage.org\/webt\/zp\/kr\/4o\/zpkr4otbosgixvfuuiesmvp44qi.jpeg\" data-blurred=\"true\"\/><\/a><br \/>  <em>\u0417\u0430\u043f\u0443\u0441\u043a \u0443\u0442\u0438\u043b\u0438\u0442\u044b htop \u0432 \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0435 XFCE \u043d\u0430 Lichee RV<\/em><\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/gq\/w8\/ru\/gqw8rukyuy6gyh82vjjsjxh0alk.jpeg\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/gq\/w8\/ru\/gqw8rukyuy6gyh82vjjsjxh0alk.jpeg\" alt=\"Lichee RV\" data-src=\"https:\/\/habrastorage.org\/webt\/gq\/w8\/ru\/gqw8rukyuy6gyh82vjjsjxh0alk.jpeg\" data-blurred=\"true\"\/><\/a><br \/>  <em>\u0417\u0430\u043f\u0443\u0441\u043a \u0443\u0442\u0438\u043b\u0438\u0442\u044b mc \u0432 \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0435 XFCE \u043d\u0430 Lichee RV<\/em><\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/f2\/kf\/u1\/f2kfu1j9nffd7k4umgrhjoycy2s.jpeg\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/f2\/kf\/u1\/f2kfu1j9nffd7k4umgrhjoycy2s.jpeg\" alt=\"Lichee RV\" data-src=\"https:\/\/habrastorage.org\/webt\/f2\/kf\/u1\/f2kfu1j9nffd7k4umgrhjoycy2s.jpeg\" data-blurred=\"true\"\/><\/a><br \/>  <em>\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0435 XFCE \u043d\u0430 Lichee RV<\/em>  <\/div>\n<\/p><\/div>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430:<\/p>\n<div class=\"oembed\">\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/62e5adac6bb29b3416f407ff\" data-style=\"\" id=\"62e5adac6bb29b3416f407ff\" width=\"\"><\/div>\n<\/div>\n<p>  <\/p>\n<h1>\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043b\u0430\u0442 \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 Allwinner D1 RISC-V<\/h1>\n<p>  \u041e\u0431\u043d\u043e\u0432\u0438\u043b\u0441\u044f \u043c\u043e\u0434\u0443\u043b\u044c Lichee RV, \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u0441 1 \u0413\u0431 RAM. \u0412 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Dock, \u0440\u0430\u0437\u044a\u0435\u043c \u0434\u043b\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d\u043e\u0432 \u0437\u0430\u043c\u0435\u043d\u0438\u043b\u0438 \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 MIPI LCD\/RGB \u043d\u0430 30 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f 720p30 LCD-\u043f\u0430\u043d\u0435\u043b\u0435\u0439, \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0438 \u043f\u043e\u0440\u0442 USB-C \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 JTAG+UART \u043d\u0430 \u0431\u0430\u0437\u0435 BL702 RISC-V MCU, \u0434\u043b\u044f \u043f\u043e\u043a\u0443\u043f\u043a\u0438 bundle: <a href=\"https:\/\/aliexpress.ru\/item\/1005003741287162.html\">RV D1 Dock Pro<\/a>.<\/p>\n<h3>MangoPi MQ-Pro<\/h3>\n<p>  \u041f\u043e\u043c\u0438\u043c\u043e Sipeed Lichee RV \u043d\u0430 \u0440\u044b\u043d\u043a\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043b\u0430\u0442\u044b \u0441 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u043c Allwinner D1. \u0421\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u0430\u0447\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 <a href=\"https:\/\/mangopi.cc\/mangopi_mqpro\">MangoPi MQ-Pro<\/a>. \u041f\u043b\u0430\u0442\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0441\u0442\u0430\u0440\u0442\u0430\u043f <a href=\"https:\/\/mangopi.cc\">MangoPi<\/a>. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 Lichee RV, \u043d\u0430 \u043f\u043b\u0430\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d 40-Pins \u0440\u0430\u0437\u044a\u0435\u043c GPIO, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u0441 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u0440\u0430\u0437\u044a\u0435\u043c\u043e\u043c \u043d\u0430 Raspberry Pi 3. \u0424\u043e\u0440\u043c \u0444\u0430\u043a\u0442\u043e\u0440 \u043f\u043b\u0430\u0442\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0432 \u0441\u0442\u0438\u043b\u0435 Raspberry Pi Zero, \u0447\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0434\u043b\u044f DIY \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0447\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0432 \u0432\u0438\u0434\u0435 \u043c\u043e\u0434\u0443\u043b\u044f (SoM). \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0432\u0435\u0434\u0435\u043d \u0440\u0430\u0437\u044a\u0435\u043c MIPI DSI \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043f\u043b\u0435\u0435\u0432 \u0441 \u0441\u0435\u043d\u0441\u043e\u0440\u043d\u044b\u043c \u044d\u043a\u0440\u0430\u043d\u043e\u043c. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f v1.3 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u0432 \u0440\u043e\u0437\u043e\u0432\u043e\u043c \u0446\u0432\u0435\u0442\u0435 \u0442\u0435\u0441\u0442\u043e\u043b\u0438\u0442\u0430. \u0415\u0441\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u0438 \u0441 512 \u041c\u0431 \u0438 1 \u0413\u0431 RAM.<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/webt\/ku\/zf\/mb\/kuzfmbtffwvee3evigwbsftny14.jpeg\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ku\/zf\/mb\/kuzfmbtffwvee3evigwbsftny14.jpeg\" alt=\"MangoPi MQ-Pro\" data-src=\"https:\/\/habrastorage.org\/webt\/ku\/zf\/mb\/kuzfmbtffwvee3evigwbsftny14.jpeg\" data-blurred=\"true\"\/><\/a><br \/>  <em>MangoPi MQ-Pro<\/em><\/p>\n<p>  \u0421\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 \u0441 <a href=\"https:\/\/www.aliexpress.com\/item\/1005004372856686.html\">512MB \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 $29.99<\/a>, \u043c\u043e\u0434\u0435\u043b\u044c \u0441 1GB \u0441\u0442\u043e\u0438\u0442 $38.56, \u0431\u0435\u0437 \u0443\u0447\u0435\u0442\u0430 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438.<\/p>\n<h1>\u0418\u0442\u043e\u0433<\/h1>\n<p>  \u0420\u0430\u0431\u043e\u0442\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 \u043f\u043e\u0440\u0430\u0434\u043e\u0432\u0430\u043b\u0430, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0448\u0443\u0441\u0442\u0440\u043e \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430. \u041c\u043d\u043e\u0433\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0432 \u0441\u0442\u0430\u0440\u043e\u043c \u043e\u0431\u0440\u0430\u0437\u0435, \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0440\u0435\u0448\u0435\u043d\u044b. \u0412\u0440\u0443\u0447\u043d\u0443\u044e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b \u043d\u0430 \u043a\u0430\u0440\u0442\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f, \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u0431\u0435\u0440\u0435\u0442 \u043d\u0430 \u0441\u0435\u0431\u044f \u0441\u043a\u0440\u0438\u043f\u0442 \u0438\u0437 Armbian. \u041e\u0447\u0435\u043d\u044c \u043f\u043e\u0440\u0430\u0434\u043e\u0432\u0430\u043b\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c Docker-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438. \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e, \u0437\u0430\u0432\u0438\u0441\u0430\u043d\u0438\u0439 \u043d\u0435 \u0431\u044b\u043b\u043e \u0437\u0430\u043c\u0435\u0447\u0435\u043d\u043e. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u044b \u0435\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u043d\u0430 \u0431\u0430\u0437\u0435 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b <a href=\"https:\/\/www.altlinux.org\">ALT Linux<\/a>. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u041e\u0421 ALT Linux \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u043b\u0430\u0442\u043e\u0439 \u043d\u0430 Allwinner D1 \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u043d\u0435\u043f\u043b\u043e\u0445\u0438\u043c \u00ab\u043e\u0442\u0435\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u00bb \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u043d\u0430 \u043f\u0435\u0440\u0438\u043e\u0434 \u0441\u0430\u043d\u043a\u0446\u0438\u0439.<\/p>\n<p>  \u041f\u043e\u043a\u0430 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043e\u0431\u0440\u0430\u0437\u0435 \u043d\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 dt-overlays, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043f\u043b\u0430\u0442 \u043d\u0430 ARM-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435. \u041d\u043e DTO \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438, \u0432 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u044d\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c. \u041a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 <a href=\"https:\/\/habr.com\/ru\/company\/timeweb\/blog\/597601\/\">.NET FastIoT<\/a> \u0434\u043b\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0439 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 Python, \u0433\u0434\u0435 \u0438 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0443 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 I2C, SPI, UART.<\/p>\n<h1>\u0420\u0435\u0441\u0443\u0440\u0441\u044b<\/h1>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/150balbes\/build\">Armbian\/build fork for RISC-V \u2014 GitHub<\/a><\/li>\n<li><a href=\"https:\/\/forum.armbian.com\/topic\/21465-armbian-image-and-build-support-for-risc-v\/\">Armbian image and build support for RISC-V \u2014 Armbian Community Forums<\/a><\/li>\n<li><a href=\"https:\/\/disk.yandex.ru\/d\/da8qJ8wyE1hhcQ\">Images for Nezha_D1 \u2014 \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0438\u0441\u043a<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/devdotnetorg\/Allwinner-SoC\/tree\/master\/Allwinner%20D1%20RISC-V\">Allwinner D1 RISC-V \u2014 GitHub<\/a><\/li>\n<\/ul>\n<p>  <a href=\"https:\/\/cloud.timeweb.com\/vds-promo-10-rub?utm_source=habr&amp;utm_medium=banner&amp;utm_campaign=vds-promo-10-rub\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/co\/e2\/kh\/coe2kha8u8_pypip-2k3wk3ppa0.png\" data-src=\"https:\/\/habrastorage.org\/webt\/co\/e2\/kh\/coe2kha8u8_pypip-2k3wk3ppa0.png\"\/><\/a><\/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\/company\/timeweb\/blog\/680054\/\"> https:\/\/habr.com\/ru\/company\/timeweb\/blog\/680054\/<\/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-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><a href=\"https:\/\/habrastorage.org\/webt\/zm\/jx\/z8\/zmjxz8dpvzecs94czkbz5fqmypm.jpeg\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/zm\/jx\/z8\/zmjxz8dpvzecs94czkbz5fqmypm.jpeg\" alt=\"Lichee RV\" data-src=\"https:\/\/habrastorage.org\/webt\/zm\/jx\/z8\/zmjxz8dpvzecs94czkbz5fqmypm.jpeg\" data-blurred=\"true\"\/><\/a><\/p>\n<p>  \u0412 <a href=\"https:\/\/habr.com\/ru\/company\/timeweb\/blog\/649327\/\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a> \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0438\u0441\u044c \u0441 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u043c Allwinner D1 \u043d\u0430 RISC-V \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0441 \u043e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u043c Sipeed Lichee RV. \u0421\u0442\u0430\u0440\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043b \u043c\u043d\u043e\u0433\u0438\u0435 \u043d\u0435\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u043e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u0438\u043a\u0430. \u0412 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f Lichee RV, \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 Ubuntu, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u044f\u0434\u0440\u0435 Linux 5.19, \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0446\u0435 \u0438\u044e\u043b\u044f 2022 \u0433\u043e\u0434\u0430. \u041f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 GPIO \u0438\u0437 Python`\u0430 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c Docker. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437, \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u043d\u0430 \u0447\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0430 \u043f\u043b\u0430\u0442\u0430 \u0438 \u043d\u0430\u0447\u043d\u0435\u043c \u0443\u0436\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 Python.  <\/p>\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-336602","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/336602","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=336602"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/336602\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=336602"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=336602"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=336602"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}