{"id":358526,"date":"2024-05-21T00:13:41","date_gmt":"2024-05-21T00:13:41","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=358526"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-05-21T00:13:41","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=358526","title":{"rendered":"<span>\u0410\u0432\u0442\u043e\u0441\u0431\u043e\u0440\u043a\u0430 Fsbl, U-Boot, linux kernel \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 debian \u0434\u043b\u044f arm64 \u0434\u043b\u044f Zynq Ultrascale zcu106<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h2>\u0426\u0435\u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u0438<\/h2>\n<ul>\n<li>\n<p>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438 \u0441\u0431\u043e\u0440\u043a\u0443 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u043e\u0432 \u0438 \u044f\u0434\u0440\u0430 Linux \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0432 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 gui Vivado;<\/p>\n<\/li>\n<li>\n<p>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b Debian \u0438\u0437 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 \u0438 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437\u044b \u044f\u0434\u0440\u0430 linux + dts \u043f\u043e tftp, \u0430 \u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043f\u043e NFS \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e;<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 U-Boot \u043c\u0435\u043d\u044e \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0432\u044b\u0431\u043e\u0440\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438: \u0432\u0441\u0451 \u0441 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438, \u0432\u0441\u0451 \u043f\u043e \u0441\u0435\u0442\u0438 \u0438 \u0440\u0430\u0437\u043d\u044b\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u044d\u0442\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0434 \u043b\u044e\u0431\u0443\u044e \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u0443\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443. <\/p>\n<\/li>\n<\/ul>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 Debian \u0431\u044b\u043b\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0433\u0434\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044f\u043c\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f: \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u043e\u0441\u0442\u044c, \u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 &#8212; \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438. \u041f\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0434 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e nand \u0438\u043b\u0438 nor \u0444\u043b\u0435\u0448\u043a\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0451\u043c\u0430, \u0434\u0435\u043b\u0430\u0435\u043c \u0441\u0431\u043e\u0440\u043a\u0443 buildroot \u0441 \u0443\u0436\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u043e\u0432.<\/p>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c<\/h2>\n<p>\u0412\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u0441 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 Debian, \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u0414\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 fsbl \u0438 pmu \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c Vivado 2020 \u0438 \u0441\u0442\u0430\u0440\u0448\u0435. \u0412\u0441\u0451 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0441\u0430\u043c\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 2023.2 <\/p>\n<ul>\n<li>\n<p>\u041a\u043b\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 <\/p>\n<p>\u0412\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0432\u044b\u043b\u043e\u0436\u0438\u043b \u043d\u0430 \u0433\u0438\u0442\u0445\u0430\u0431: <\/p>\n<\/li>\n<\/ul>\n<pre><code>git clone https:\/\/github.com\/Igorbunow\/build-uboot-linux-debian.git<\/code><\/pre>\n<ul>\n<li>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043a\u0440\u043e\u0441\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">apt install gcc-aarch64-linux-gnu<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 toolchain, \u0442\u043e \u0435\u0433\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0438\u0436\u0435<\/p>\n<ul>\n<li>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c <em>debootstrap<\/em>, <em>qemu-static<\/em>, <em>tftp<\/em> \u0438 <em>nfs<\/em> \u0441\u0435\u0440\u0432\u0435\u0440<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">apt install debootstrap atftpd nfs-kernel-server qemu-user-static fdisk<\/code><\/pre>\n<ul>\n<li>\n<p>\u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c <strong>tftpd<\/strong><\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">mkdir \/srv mkdir \/srv\/tftp chown 777 \/srv\/tftp  vim  \/etc\/default\/atftpd  ## Options for atftpd: USE_INETD=false OPTIONS=\"--port 69 --tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 \/srv\/tftp\"  systemctl restart atftpd<\/code><\/pre>\n<ul>\n<li>\n<p>\u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c <strong>NFS<\/strong><\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">mkdir \/srv\/nfs mkdir \/srv\/nfs\/root  vim \/etc\/exports  #\/srv\/nfs   *(no_root_squash,no_subtree_check,rw) \/srv\/nfs   192.168.10.1\/24(no_root_squash,no_subtree_check,rw) #\/tmp\/root *(no_root_squash,no_subtree_check,rw)<\/code><\/pre>\n<p>\u041a\u0440\u0430\u0439\u043d\u0435 \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0434\u0430\u0432\u0430\u0442\u044c \u0432\u0441\u0435\u043c \u0445\u043e\u0441\u0442\u0430\u043c \u043f\u0440\u0430\u0432\u0430 (\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c *), \u0442.\u043a. \u043a\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0438\u0437 \u0441\u0435\u0442\u0438 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b \u043e\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0431\u0438\u0442\u043e\u043c SUID \u0441 \u043e\u043f\u0446\u0438\u0435\u0439 <strong>no_root_squash<\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u043e\u043d\u0438\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u0430\u0432 root \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043a NFS, \u043d\u043e \u043e\u043d\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439.<\/p>\n<h2>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a FSBL+U-Boot \u0438 \u044f\u0434\u0440\u043e Linux<\/h2>\n<p>\u0412\u0441\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u043e\u0432 \u0438 \u044f\u0434\u0440\u0430 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043f\u0430\u043f\u043a\u0435 .\/boot \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f:       <\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">configs<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u0430\u043f\u043a\u0430 \u0441 defconfig \u0434\u043b\u044f linux \u0438 uboot<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">all.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u0440\u0438\u043f\u0442, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0439 \u0432\u0441\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u043d\u0438\u0436\u0435 \u0438 \u0434\u0435\u043b\u0430\u044e\u0449\u0438\u0439 \u043f\u043e\u043b\u043d\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">download_orig.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u0440\u0438\u043f\u0442, \u0432\u044b\u043a\u0430\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0438\u0437 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438.  \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u043d\u0451\u043c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u043c\u043c\u0438\u0442. \u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">fsbl_pmu_2020.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u0440\u0438\u043f\u0442, \u0441\u043e\u0437\u0434\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 Vitis \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0449\u0438\u0439 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0438 pmu (\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f Vivado, Vitis \u043e\u0442 2020)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dts.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u0440\u0438\u043f\u0442, \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0449\u0438\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u0443 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0435\u0440\u0435\u0432\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0434\u043b\u044f \u044f\u0434\u0440\u0430 linux \u0438 u-boot (\u0434\u043b\u044f \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430), \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0441\u0431\u043e\u0440\u043a\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">atf.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 ARM trusted firmware (\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043a\u0440\u043e\u0441\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0438\u043b\u0438 \u0442\u0443\u043b\u0447\u0435\u0439\u043d)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">u-boot.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 U-Boot<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">kernel.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u044f\u0434\u0440\u0430 Linux<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">bootbin.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430, U-Boot, pmu \u0438 bl31 \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0431\u043e\u0440\u043a\u043e\u0439 \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 BOOT.bin<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">bootscript.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0413\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 UBoot \u0438\u0437 <strong>boot.script<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">image.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 BOOT.bin, \u044f\u0434\u0440\u0430 linux, device-tree, \u0441\u043a\u0440\u0438\u043f\u0442\u0430 UBoot, \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u044f\u0434\u0440\u0430 \u0432 \u0432\u0438\u0434\u0435, \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u043e\u043c \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b SD \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438. Device tree \u0444\u0430\u0439\u043b \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0432 system.dtb. \u041d\u0430 \u044d\u0442\u043e\u0442 \u0436\u0435 \u0440\u0430\u0437\u0434\u0435\u043b \u043a\u043b\u0430\u0434\u0451\u043c <strong>system.bit<\/strong>, \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0434 \u0432\u0430\u0448\u0443 \u0437\u0430\u0434\u0430\u0447\u0443.  \u041c\u043e\u0434\u0443\u043b\u0438 \u044f\u0434\u0440\u0430 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0432 <strong>rootfs<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u041d\u0430\u0441\u0442\u043e\u0439\u043a\u0430 \u044f\u0434\u0440\u0430 Linux \u0438 UBoot<\/h3>\n<ul>\n<li>\n<p> \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 defconfig<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0431\u0435\u0440\u0435\u0442 defconfig, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0432 \u043f\u0430\u043f\u043a\u0430\u0445 <strong>.\/configs\/linux\/xilinx_ulrascale_debug_defconfig<\/strong> \u0438 <strong>.\/configs\/uboot\/xilinx_ulrascale_debug_defconfig<\/strong> \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0438\u0437 \u043d\u0438\u0445 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 <strong>.config <\/strong>\u0444\u0430\u0439\u043b\u044b. \u0415\u0441\u043b\u0438 \u0412\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0434 \u0441\u0432\u043e\u044e \u0437\u0430\u0434\u0430\u0447\u0443, \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 <strong>u-boot-xlnx<\/strong> \u0438\u043b\u0438 <strong>linux-xlnx<\/strong>, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c:<\/p>\n<pre><code class=\"bash\">make ARCH=arm64 menuconfig<\/code><\/pre>\n<p>\u0418 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c. \u0417\u0430\u0442\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0438\u0437 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e <strong>.config<\/strong> -> <strong>defconfig<\/strong>:<\/p>\n<pre><code class=\"bash\">make ARCH=arm64 savedefconfig<\/code><\/pre>\n<p>\u0417\u0430\u0431\u0438\u0440\u0430\u0435\u043c \u0438\u0437 \u043a\u043e\u0440\u043d\u044f <strong>u-boot-xlnx<\/strong> \u0438\u043b\u0438 <strong>linux-xlnx<\/strong> defconfig, \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0438 \u043a\u043b\u0430\u0434\u0451\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 <strong>\/xilinx_ulrascale_debug_defconfig<\/strong> \u0438\u043b\u0438 <strong>.\/configs\/uboot\/xilinx_ulrascale_debug_defconfig<\/strong>.<\/p>\n<ul>\n<li>\n<p>\u0414\u0435\u0440\u0435\u0432\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 Device tree<\/p>\n<\/li>\n<\/ul>\n<p>Device tree files (dts) \u043e\u0431\u0449\u0438\u0435 \u0434\u043b\u044f \u044f\u0434\u0440\u0430 \u0438 UBoot \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 overlay \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0438\u0437 <strong>.\/configs\/dts<\/strong>, \u043a\u0443\u0434\u0430 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0441\u0432\u043e\u0438, \u0435\u0441\u043b\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f. \u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e, \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0435 \u0432 \u0444\u0430\u0439\u043b\u0435 <strong>.\/configs\/dts\/Makefile.in<\/strong> \u043d\u0430\u0434\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0446\u0435\u043b\u044c \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 dtb:<\/p>\n<pre><code class=\"bash\">dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu106-custom.dtb<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u0432 defconfig UBoot <strong>.\/configs\/uboot\/xilinx_ulrascale_debug_defconfig <\/strong>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0439 \u043d\u0430\u043c dts, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0431\u0435\u0437 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"bash\">CONFIG_DEFAULT_DEVICE_TREE=\"zynqmp-zcu106-custom\"<\/code><\/pre>\n<h3>\u0417\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 UBoot<\/h3>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f UBoot \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0435 SD. \u0421\u043a\u0440\u0438\u043f\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0446\u0438\u043a\u043b\u044b \u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0443\u0441\u043b\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430, \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 bash. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 ip \u0430\u0434\u0440\u0435\u0441\u043e\u0432 tftp \u0438\u043b\u0438 nfs \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0438 \u0438\u0445 \u043f\u0430\u043f\u043e\u043a, \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u043c\u0435\u043d\u044e \u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u043c\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/479\/c81\/d72\/479c81d727157780d4204a6aa6fdb1b9.png\" width=\"1103\" height=\"426\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/479\/c81\/d72\/479c81d727157780d4204a6aa6fdb1b9.png\"\/><\/figure>\n<details class=\"spoiler\">\n<summary>boot.script<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">setenv bitsteam_name system.bit setenv kernel_image_name Image setenv dts_name system.dtb setenv bitsteam_addr 0x20000000 setenv kernel_image_addr 0x10000000 setenv dts_addr 0x02a00000 setenv load_tftp_bitsteam 'dhcp ${bitsteam_addr} ${tftp_serverip}:${tftp_dir}${bitsteam_name}; fpga load 0 ${bitsteam_addr} $filesize;' setenv load_tftp_kernel_image 'dhcp ${kernel_image_addr} ${tftp_serverip}:${tftp_dir}${kernel_image_name}' setenv load_tftp_dts 'dhcp ${dts_addr} ${tftp_serverip}:${tftp_dir}${dts_name}' setenv load_mmc_bitsteam 'fatload mmc 0:1 ${bitsteam_addr} ${bitsteam_name}; fpga load 0 ${bitsteam_addr} $filesize;' setenv load_mmc_kernel_image 'fatload mmc 0 ${kernel_image_addr} ${kernel_image_name}' setenv load_mmc_dts 'fatload mmc 0 ${dts_addr} ${dts_name}' setenv boot_dev booti 0x10000000 - 0x02a00000 setenv bootargs_mmc 'earlycon clk_ignore_unused consoleblank=0 root=\/dev\/mmcblk0p2 rootfstype=btrfs rw rootwait uio_pdrv_genirq.of_id=generic-uio net.ifnames=0 biosdevname=0' setenv bootargs_nfs 'earlycon clk_ignore_unused consoleblank=0 root=\/dev\/nfs ip=dhcp nfsroot='${nfs_serverip}':'${nfs_dir}',nolock,nfsvers=4 rootfstype=nfs rw rootwait uio_pdrv_genirq.of_id=generic-uio net.ifnames=0 biosdevname=0'  setenv bootcmd bootmenu 10  setenv bootmenu_0 Load All from MMC='setenv bootargs '${bootargs_mmc}';run load_mmc_bitsteam; run load_mmc_kernel_image; run load_mmc_dts; run boot_dev;'   if test -n $tftp_serverip; then if test -n $nfs_serverip; then setenv root_name NFS setenv bootargs ${bootargs_nfs} else setenv root_name SD_card setenv bootargs ${bootargs_mmc} fi setenv bootmenu_1 Load All via tftp ${tftp_serverip} root ${root_name}='run load_tftp_bitsteam; run load_tftp_kernel_image; run load_tftp_dts; run boot_dev;' setenv bootmenu_2 Load bitsteam via tftp ${tftp_serverip} kernel from SD card root ${root_name}='run load_tftp_bitsteam; run load_mmc_kernel_image; run load_mmc_dts; run boot_dev;' setenv bootmenu_3 Load bitsteam from SD Card  kernel via tftp ${tftp_serverip} root ${root_name}='run load_mmc_bitsteam; run load_tftp_kernel_image; run load_tftp_dts; run boot_dev;' setenv bootmenu_4 Reset board=reset setenv bootmenu_5 Test='ls' else setenv bootmenu_1 Reset board=reset fi  bootmenu 5<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 c ip \u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0434\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430. \u041e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0438\u0436\u0435.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u043c\u043e\u0436\u043d\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 bootargs \u0434\u043b\u044f bootargs_mmc \u0438 bootargs_nfs. `net.ifnames=0 biosdevname=0` \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u0435\u0442\u0430 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f eth0 -> end0, \u0442.\u043a. \u043f\u0440\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e nfs \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438 \u044d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u0435\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 rootfs.<\/p>\n<\/div>\n<\/details>\n<h3>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043a\u0440\u043e\u0441\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 toolchain, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445: <em>fsbl_pmu_2020.sh<\/em>, <em>kernel.sh<\/em>, <em>u-boot.sh<\/em> \u043f\u0443\u0442\u044c \u0434\u043e \u0435\u0433\u043e \/bin, \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u043a\u0440\u043e\u0441\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443:<\/p>\n<pre><code class=\"bash\">export PATH=\/tmp\/build\/buildroot\/output\/host\/bin:${PATH} export ARCH=arm64 export CROSS_COMPILE=aarch64-linux-gnu-<\/code><\/pre>\n<h3>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432<\/h3>\n<ul>\n<li>\n<p>\u041f\u0443\u0442\u044c \u043a Vivado \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 <strong>all.sh<\/strong>:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">export VIVADO=\/opt\/Electro\/FPGA\/Xilinx\/Vivado\/2023.1\/settings64.sh<\/code><\/pre>\n<ul>\n<li>\n<p>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0432 \u043e\u0431\u0440\u0430\u0437 \u0444\u0430\u0439\u043b\u044b \u0438 \u0438\u0445 \u0438\u043c\u0435\u043d\u0430 &#8212; \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 <strong>image.sh<\/strong>, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 device tree dtb \u0444\u0430\u0439\u043b \u043c\u044b \u0438\u0441\u0442\u043e\u043b\u044c\u0437\u0443\u0435\u043c:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">cp ${WORK}\/linux-xlnx\/arch\/arm64\/boot\/dts\/xilinx\/zynqmp-zcu106-custom.dtb .\/system.dtb<\/code><\/pre>\n<h3>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0431\u043e\u0440\u043a\u0443<\/h3>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442 .\/<strong>all.sh<\/strong> \u0438 \u0436\u0434\u0451\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0441\u0431\u043e\u0440\u043a\u0438. \u0415\u0441\u043b\u0438 \u0432\u0441\u0451 \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0442\u043e \u0432 \u043f\u0430\u043f\u043a\u0435 .\/image \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0444\u0430\u0439\u043b\u044b, \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0434\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b \u043a\u0430\u0440\u0442\u044b \u043f\u0430\u043c\u044f\u0442\u0438 \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u044f\u0434\u0440\u0430 &#8212; \u0438\u0445 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0432 rootfs<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">modules<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0430\u043f\u043a\u0430 \u0441 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438 \u044f\u0434\u0440\u0430 Linux. \u041f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 rootfs \u0440\u0430\u0437\u0434\u0435\u043b \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438 \u043d\u0438\u0436\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">BOOT.bin<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u0440\u0430\u0437 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 fsbl, pmu, bl31, UBoot<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">boot.scr<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 UBoot<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Image<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u042f\u0434\u0440\u043e Linux<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">system.dtb<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0435\u0440\u0435\u0432\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u044f\u0434\u0440\u0430 linux<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">system.bit<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0442\u0441\u0442\u0440\u0438\u043c \u0434\u043b\u044f fpga, \u043f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h2>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c Debian \u0438\u0437 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/h2>\n<p>\u0421\u0431\u043e\u0440\u043a\u0430 debian \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432. RootFs debian \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0430\u043f\u043a\u0435 .\/root. \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 debian:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">files<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0424\u0430\u0439\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0441 \u0437\u0430\u043c\u0435\u043d\u043e\u0439 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2_debian_bootstrap.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u0440\u0438\u043f\u0442, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0438\u0439 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 debian \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u044f\u0449\u0438\u0439 \u0438\u0445 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 debootstrap<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">3_copy_kernel_modules.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u0440\u0438\u043f\u0442, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0438\u0439 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0448\u0435 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u044f\u0434\u0440\u0430 \u0432 rootfs debian<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">4_copy_and_config.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b: \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u043e\u043b\u044f root, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0441\u0435\u0442\u0438<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<ul>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b, \u0443\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 <strong>2_debian_bootstrap.sh<\/strong> \u0437\u0430\u0434\u0430\u0451\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <strong>PACKAGES<\/strong> \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c, \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u0410 \u0442\u0430\u043a\u0436\u0435, \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u043c\u043e\u0436\u043d\u043e \u0432\u043c\u0435\u0441\u0442\u043e debian \u0441\u043e\u0431\u0440\u0430\u0442\u044c ubuntu<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0432\u043e\u0434\u0438\u043c \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 <strong>4_copy_and_config.sh<\/strong> \u0437\u0430\u0434\u0430\u0451\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c root, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0441\u0435\u0442\u0438, \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e fstab, \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u0437 \u043f\u0430\u043f\u043a\u0438 files, \u043e\u0447\u0438\u0441\u0442\u043a\u0443 \u043a\u044d\u0448\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0438 \u043b\u043e\u0433\u043e\u0432 \u0438 \u043b\u044e\u0431\u044b\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u044b:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">.\/2_debian_bootstrap.sh .\/3_copy_kernel_modules.sh .\/4_copy_and_config.sh<\/code><\/pre>\n<p>\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432 \u043f\u0430\u043f\u043a\u0435 .\/root \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0433\u043e\u0442\u043e\u0432\u0443\u044e rootfs \u0441 debian, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0443\u044e \u043c\u043e\u0434\u0443\u043b\u0438 \u044f\u0434\u0440\u0430 \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435.<\/p>\n<h3>\u0420\u0430\u0431\u043e\u0442\u0430 c rootfs<\/h3>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e. \u0414\u043e\u0436\u0434\u0430\u0432\u0448\u0438\u0441\u044c, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0441\u0431\u043e\u0440\u043a\u0438 debian \u0432\u044b \u0432\u0434\u0440\u0443\u0433 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 \u043d\u0435 \u0432\u043f\u0438\u0441\u0430\u043b\u0441\u044f \u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0451\u043c, \u0438\u043b\u0438 \u0432\u044b \u0437\u0430\u0431\u044b\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0430\u043a\u0435\u0442. \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435? \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0437\u0430\u043d\u043e\u0432\u043e \u0441\u0431\u043e\u0440\u043a\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e, \u043d\u0430\u0441 \u0432\u044b\u0440\u0443\u0447\u0430\u0435\u0442 qemu-static, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u044f\u0449\u0438\u0439 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430. \u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 <em>QEMU<\/em> \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b Linux, \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0426\u041f, \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u0426\u041f. \u042d\u0442\u043e\u0442 \u0440\u0435\u0436\u0438\u043c \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u043a\u0440\u043e\u0441\u0441\u0431\u043e\u0440\u043a\u0438 \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c\u0438. \u0421\u0430\u043c\u044b\u043c \u0431\u044b\u0441\u0442\u0440\u044b\u043c, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043a\u0440\u043e\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u0430 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0441\u0451 \u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0443 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u043b\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0438\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e:<\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0432 .\/root \u0441\u0438\u043c\u0432\u043e\u043b\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 qemu-arm64-static \u0438 \u043f\u0440\u0438 \u0435\u0451 \u043e\u0442\u0441\u0442\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">ln -s \"$(which qemu-arm64-static)\" .\/root\/qemu-arm64-static<\/code><\/pre>\n<ul>\n<li>\n<p>\u041c\u043e\u043d\u0442\u0438\u0440\u0443\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 rootfs \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 (\u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b, \u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u0448\u0430\u0433 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c):<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">mount --bind \/dev .\/root\/dev\/ mount --bind \/sys .\/root\/sys\/ mount --bind \/proc .\/root\/proc\/ mount --bind \/dev\/pts .\/root\/dev\/pts<\/code><\/pre>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0434\u0435\u043b\u0430\u044f \u0442\u0443\u0434\u0430 chroot<\/p>\n<\/li>\n<\/ul>\n<pre><code>chroot .\/root<\/code><\/pre>\n<ul>\n<li>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">PACKAGES=\"valgrind build-essential clang u-boot-tools cmake git subversion \\           tcpdump kbuild nmap wget libboost-all-dev linux-headers-arm64 \\           minicom picocom p7zip-full gzip zstd bzip2 sysfsutils\" apt update apt install ${PACKAGES} echo \"packages: ${PACKAGES}\" >> \/info apt clean<\/code><\/pre>\n<ul>\n<li>\n<p>\u0414\u0430\u043b\u0435\u0435, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0439\u0442\u0438 \u043f\u043e\u0434 <strong>user<\/strong> \u0447\u0435\u0440\u0435\u0437 <code>login<\/code> \u0438\u043b\u0438 `sudo -u user bash`, \u0441\u043e\u0431\u0440\u0430\u0442\u044c, \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438 \u0432\u044b\u0439\u0442\u0438 `exit`<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0445\u043e\u0434\u0438\u043c \u0438\u0437 <code>chroot<\/code>:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">exit<\/code><\/pre>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0432 rootfs \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043e\u0442\u043c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u043c:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">umount .\/root\/sys umount .\/root\/proc umount .\/root\/dev\/pts umount .\/root\/dev<\/code><\/pre>\n<ul>\n<li>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u0431\u0430\u0433\u043e\u0432, \u043c\u0435\u0448\u0430\u044e\u0449\u0438\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0436\u0431, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 <code>binfmt.service<\/code> \u0447\u0438\u043d\u0438\u043c \u044d\u0442\u043e:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">rm -rf .\/root\/usr\/lib\/binfmt.d\/python3.11.conf  rm -rf .\/root\/usr\/lib\/binfmt.d\/llvm-14-runtime.binfmt.conf<\/code><\/pre>\n<ul>\n<li>\n<p>\u041e\u0447\u0438\u0449\u0430\u0435\u043c \u043b\u043e\u0433\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">rm -rf .\/root\/var\/log\/apt\/* echo -n > .\/root\/var\/log\/alternatives.log echo -n > .\/root\/var\/log\/dpkg.log echo -n > .\/root\/root\/.bash_history rm .\/root\/var\/cache\/apt\/archives\/lock<\/code><\/pre>\n<ul>\n<li>\n<p>\u0414\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432 .\/root\/info \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0438\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u043f\u043e\u043c\u0438\u043c\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u0435\u043c, \u0447\u0442\u043e stable (12.0 bookworm), \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0432\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442, \u0447\u0442\u043e \u0437\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043b\u0435\u0436\u0438\u0442 \u0432 \u043e\u0431\u0440\u0430\u0437\u0435<\/p>\n<\/li>\n<\/ul>\n<h2>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043e\u0431\u0440\u0430\u0437 \u0434\u043b\u044f \u043a\u0430\u0440\u0442\u044b SD \u043f\u0430\u043c\u044f\u0442\u0438<\/h2>\n<p>\u0414\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043e\u0431\u0440\u0430\u0437\u0430 \u043a\u0430\u0440\u0442\u044b \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0435\u0433\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f, \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u043f\u0440\u0438 \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0438 \u043d\u0430 \u043a\u0430\u0440\u0442\u0443 \u043f\u0430\u043c\u044f\u0442\u0438 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c\u0441\u044f \u0434\u043e \u0435\u0433\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043c\u044b \u0432\u044b\u0431\u0440\u0430\u043b\u0438 btrfs &#8212; \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0430\u044f \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0435 \u0441\u0436\u0430\u0442\u0438\u0435 \u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438 \u0437\u0430\u043f\u0438\u0441\u0438, \u0447\u0442\u043e \u043f\u0440\u043e\u0434\u043b\u0435\u0432\u0430\u0435\u0442 \u0436\u0438\u0437\u043d\u044c \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0430\u043c \u043f\u0430\u043c\u044f\u0442\u0438 \u043b\u0438\u0431\u043e \u0438\u043d\u043e\u043c\u0443 \u0444\u043b\u0435\u0448 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044e, \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044f \u043c\u0435\u043d\u044c\u0448\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0434\u0432\u0430\u0436\u0434\u044b \u0432 \u043e\u0434\u043d\u043e \u043c\u0435\u0441\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u043f\u0438\u0448\u0443\u0442\u0441\u044f, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u0430. \u0415\u0441\u043b\u0438 \u043f\u043e \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c ext2, ext3, ext4 \u0441\u0438\u0441\u0442\u0435\u043c\u044b &#8212; \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0442\u043e\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0438\u0436\u0435.<\/p>\n<h3>\u041e\u0446\u0435\u043d\u0438\u0432\u0430\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0431\u0440\u0430\u0437\u0430<\/h3>\n<ul>\n<li>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u0442 32Mb \u0434\u043e 4\u0413\u0431. 32\u041c\u0431 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0432\u0441\u0435\u043c \u0432\u043f\u0440\u0438\u0442\u044b\u043a, \u0430 4\u0413\u0431 &#8212; \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e. \u0420\u0430\u0437\u043c\u0435\u0440 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u0430\u0434\u0430\u0447 \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u043c\u044b\u0445 \u043d\u0430 \u043d\u0451\u043c \u0444\u0430\u0439\u043b\u0430\u0445. \u0412\u044b\u0431\u0435\u0440\u0435\u043c 128\u041c\u0431<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0421\u043c\u043e\u0442\u0440\u0438\u043c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0432 \u043e\u0431\u0440\u0430\u0437\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430, \u0440\u0430\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u043a\u0442\u043e\u0432. \u0421\u043c\u043e\u0442\u0440\u0438\u043c:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">du -h -d 0 517M<\/code><\/pre>\n<p>\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c, 640\u041c\u0431 \u043f\u043e\u0434 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0440\u0430\u0437\u0434\u0435\u043b<\/p>\n<ul>\n<li>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043d\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 640\u041c\u0431 + 128\u041c\u0431 = 768\u041c\u0431<\/p>\n<\/li>\n<\/ul>\n<h3>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u0443\u0441\u0442\u043e\u0439 \u043e\u0431\u0440\u0430\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430<\/h3>\n<p>\u0412\u044b\u0448\u0435 \u043c\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438, \u0447\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0440 \u043d\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 768\u041c\u0431. \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0443\u0441\u0442\u043e\u0439 \u0444\u0430\u0439\u043b \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430:<\/p>\n<pre><code class=\"bash\">dd if=\/dev\/zero bs=1M count=768 of=ultrascale_short.img sync;<\/code><\/pre>\n<p>\u0438 \u0434\u043e\u0436\u0438\u0434\u0430\u0435\u043c\u0441\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f:<\/p>\n<pre><code>768+0 records in 768+0 records out 805306368 bytes (805 MB, 768 MiB) copied, 0.396911 s, 2.0 GB\/s<\/code><\/pre>\n<h3>\u041c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u0438 \u0440\u0430\u0437\u043c\u0435\u0447\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0437<\/h3>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u043c\u0435\u0447\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0437 \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 fdisk:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">fdisk -c=dos ultrascale_short.img<\/code><\/pre>\n<p>\u0417\u0430\u0442\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u0420\u0430\u0437\u043c\u0435\u0440 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0432 \u0441\u0435\u043a\u0442\u043e\u0440\u0430\u0445 \u043f\u043e 512 \u0431\u0430\u0439\u0442:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043d\u043e\u0432\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b (\u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">p<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0442\u0438\u043f MBR \u0440\u0430\u0437\u0434\u0435\u043b\u0430 &#8212; \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043d\u043e\u043c\u0435\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430 (\u0441\u0442\u0440\u043e\u0433\u043e 1-\u044b\u0439 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">63<\/p>\n<\/td>\n<td>\n<p align=\"left\">1-\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">262144<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0440\u0430\u0437\u0434\u0435\u043b\u0430, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0434\u043b\u044f 128\u041c\u0431: 128*2^20\/512<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">a<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0435\u043b\u0430\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">n<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043d\u043e\u0432\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b (rootfs)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">p<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0442\u0438\u043f MBR \u0440\u0430\u0437\u0434\u0435\u043b\u0430 &#8212; \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043d\u043e\u043c\u0435\u0440 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 rootfs<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">262145<\/p>\n<\/td>\n<td>\n<p align=\"left\">1-\u044b\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 rootfs, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">1572863<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0441\u0435\u043a\u0442\u043e\u0440 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 rootfs<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"117\" width=\"117\">\n<p align=\"left\">w<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0444\u0430\u0439\u043b \u0438 \u0432\u044b\u0445\u043e\u0434\u0438\u043c<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<details class=\"spoiler\">\n<summary>\u043b\u043e\u0433 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f fdisk<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>fdisk -c=dos ultrascale_short.img  Welcome to fdisk (util-linux 2.39.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command.  Device does not contain a recognized partition table. DOS-compatible mode is deprecated.  Created a new DOS (MBR) disklabel with disk identifier 0xb315f728.  Command (m for help): n Partition type    p   primary (0 primary, 0 extended, 4 free)    e   extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (63-1572863, default 63):  Last sector, +\/-sectors or +\/-size{K,M,G,T,P} (63-1572863, default 1572863): 262144  Created a new partition 1 of type 'Linux' and of size 128 MiB.  Command (m for help): a Selected partition 1 The bootable flag on partition 1 is enabled now.  Command (m for help): n Partition type    p   primary (1 primary, 0 extended, 3 free)    e   extended (container for logical partitions) Select (default p): p Partition number (2-4, default 2): 2 First sector (262145-1572863, default 262145):  Last sector, +\/-sectors or +\/-size{K,M,G,T,P} (262145-1572863, default 1572863):   Created a new partition 2 of type 'Linux' and of size 640 MiB.  Command (m for help): w The partition table has been altered. Syncing disks.<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<ul>\n<li>\n<p>\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0431\u0443\u0444\u0435\u0440\u0430 \u043d\u0430 \u0434\u0438\u0441\u043a:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">sync;<\/code><\/pre>\n<ul>\n<li>\n<p>\u041c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u043d\u0430\u0448 \u0444\u0430\u0439\u043b \u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">losetup --partscan --find --show ultrascale_short.img<\/code><\/pre>\n<p>\u0438 \u0434\u043e\u0436\u0438\u0434\u0430\u0435\u043c\u0441\u044f \u043e\u0442\u0432\u0435\u0442\u0430, \u043a\u0430\u043a\u0438\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u0441\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u0441\u044c:<\/p>\n<pre><code>\/dev\/loop0<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0438\u0437\u0431\u0435\u0436\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0442.\u043a. \u0443 \u0432\u0430\u0441 \u043c\u043e\u0433\u0443\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043f\u043e-\u0434\u0440\u0443\u0433\u043e\u043c\u0443, \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0442\u044c <strong>loop0<\/strong> \u043a\u0430\u043a <strong>loopX<\/strong>. \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0434\u0443\u043c\u0430\u043d\u043d\u043e\u043c \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430 \u043f\u043e\u0442\u0435\u0440\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0441\u043b\u0430\u0432\u0438\u0442\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 dd, \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u0437\u0430\u0442\u0438\u0440\u0430\u044e\u0449\u0430\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0434\u0438\u0441\u043a\u0438, \u0435\u0441\u043b\u0438 \u043e\u0448\u0438\u0431\u0438\u0442\u044c\u0441\u044f \u0441 \u0431\u0443\u043a\u0432\u043e\u0439 \u0434\u0438\u0441\u043a\u0430 \u0438 \u0435\u0449\u0451 \u043f\u043e\u0434\u043e\u0436\u0434\u0430\u0442\u044c \u043f\u0440\u0438 \u044d\u0442\u043e\u043c&#8230;<\/p>\n<p>\u0421\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u044b:<\/p>\n<pre><code>ls \/dev | grep loopX<\/code><\/pre>\n<p>\u0438 \u0432\u0438\u0434\u0438\u043c \u043d\u0430\u0448\u0438 2 \u0440\u0430\u0437\u0434\u0435\u043b\u0430:<\/p>\n<pre><code>loop0 loop0p1 loop0p2<\/code><\/pre>\n<ul>\n<li>\n<p>\u041e\u0447\u0438\u0449\u0430\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b:<\/p>\n<\/li>\n<\/ul>\n<pre><code>dd if=\/dev\/zero of=\/dev\/loopXp1 bs=4M dd if=\/dev\/zero of=\/dev\/loopXp2 bs=4M sync;<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u041b\u043e\u0433 \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 loopXp1 \u0438 loopXp2<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">dd if=\/dev\/zero of=\/dev\/loop0p1 bs=4M dd if=\/dev\/zero of=\/dev\/loop0p2 bs=4M sync; dd: error writing '\/dev\/loop0p1': No space left on device 32+0 records in 31+0 records out 134185984 bytes (134 MB, 128 MiB) copied, 0.617296 s, 217 MB\/s dd: error writing '\/dev\/loop0p2': No space left on device 160+0 records in 159+0 records out 671088128 bytes (671 MB, 640 MiB) copied, 4.38618 s, 153 MB\/s<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u043e\u0441\u044c \u043c\u0435\u0441\u0442\u043e \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u043c\u043e, \u0442\u043a dd \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0438\u0441\u043a\u0430 \u0438 \u043f\u0438\u0448\u0435\u0442 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f \u043c\u0435\u0441\u0442\u043e \u043d\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0435.<\/p>\n<p>\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0443\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b \u0432 fat, \u0430 rootfs \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 btrfs:<\/p>\n<pre><code class=\"bash\">mkfs.vfat -F 32 -n \"BOOT\" \/dev\/loopXp1 mkfs.btrfs \/dev\/loopXp2 -L \"root\" sync;<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u041b\u043e\u0433 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432:<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">mkfs.vfat -F 32 -n \"BOOT\" \/dev\/loop0p1 mkfs.btrfs \/dev\/loop0p2 -L \"root\" sync; mkfs.fat 4.2 (2021-01-31) btrfs-progs v6.3.2 See https:\/\/btrfs.readthedocs.io for more information.  Performing full device TRIM \/dev\/loop0p2 (640.00MiB) ... NOTE: several default settings have changed in version 5.15, please make sure       this does not affect your deployments:       - DUP for metadata (-m dup)       - enabled no-holes (-O no-holes)       - enabled free-space-tree (-R free-space-tree)  Label:              root UUID:               553f75fd-bc80-4553-8c7c-279c4e38a6a6 Node size:          16384 Sector size:        4096 Filesystem size:    640.00MiB Block group profiles:   Data:             single            8.00MiB   Metadata:         DUP              32.00MiB   System:           DUP               8.00MiB SSD detected:       yes Zoned device:       no Incompat features:  extref, skinny-metadata, no-holes, free-space-tree Runtime features:   free-space-tree Checksum:           crc32c Number of devices:  1 Devices:    ID        SIZE  PATH     1   640.00MiB  \/dev\/loop0p2<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u0415\u0441\u043b\u0438 \u0432\u0441\u0451 \u0436\u0435 \u0432\u044b\u0431\u0440\u0430\u043b\u0438 ext4<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0443\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c (\u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u044f \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 <strong>boot.script<\/strong> \u0432 <em>bootargs_mmc<\/em>  \u0442\u0438\u043f \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043d\u0430 <em>rootfstype=<\/em><strong>ext4<\/strong>):<\/p>\n<pre><code class=\"bash\">mkfs.vfat -F 32 -n \"BOOT\" \/dev\/loopXp1 mkfs.ext4 \/dev\/loopXp2 -L \"root\" sync;<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<ul>\n<li>\n<p>\u041c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b. \u0414\u043b\u044f btrfs \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0441\u0436\u0430\u0442\u0438\u0435. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c lzo \u043d\u0430\u0438\u043c\u0435\u043d\u0435\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e-\u0437\u0430\u0442\u0440\u0430\u0442\u043d\u044b\u0439 \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0441\u0436\u0438\u043c\u0430\u0435\u0442:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">mkdir \/tmp\/root mkdir \/tmp\/boot mount -o compress=lzo \/dev\/loopXp2 \/tmp\/root mount  \/dev\/loopXp1 \/tmp\/boot<\/code><\/pre>\n<h3>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0438 \u0438 rootfs \u0432 \u043f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b \u043e\u0431\u0440\u0430\u0437\u0430<\/h3>\n<ul>\n<li>\n<p>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c bitstream <strong>system.bit<\/strong> \u0432 \/tmp\/boot<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a, \u044f\u0434\u0440\u043e linux, dts \u0438 \u0441\u043a\u0440\u0438\u043f\u0442 U-Boot<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">cp .\/..\/boot\/image\/BOOT.bin  \/tmp\/boot cp .\/..\/boot\/image\/boot.scr  \/tmp\/boot cp .\/..\/boot\/image\/Image \/tmp\/boot cp .\/..\/boot\/image\/system.dtb \/tmp\/boot chmod -R 777 \/tmp\/boot sync;<\/code><\/pre>\n<ul>\n<li>\n<p>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c rootfs -> \/tmp\/root, \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u044f \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043e\u0442\u0442\u0443\u0434\u0430 qemu-arm64-static<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">cp -rpna  .\/root\/*  \/tmp\/root\/ rm \/tmp\/root\/qemu-arm64-static sync;<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0430\u0448\u0430 \u043a\u043e\u0440\u043d\u0435\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0431\u044b\u043b\u0430 \u0437\u0430\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0430:<\/p>\n<pre><code class=\"bash\">tar -C \/tmp\/root -xjf images\/rootfs.tar.bz2 sync;<\/code><\/pre>\n<ul>\n<li>\n<p>\u041e\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u043f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b \u043d\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">umount \/tmp\/boot umount \/tmp\/root sync;<\/code><\/pre>\n<ul>\n<li>\n<p>\u041e\u0442\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u043d\u0430\u0448\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">losetup -d \/dev\/loopX sync;<\/code><\/pre>\n<h3>\u0421\u0436\u0438\u043c\u0430\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u043d\u0430 SD \u043a\u0430\u0440\u0442\u0443<\/h3>\n<ul>\n<li>\n<p>\u0441\u0436\u0438\u043c\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0437<\/p>\n<p>\u0414\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u0430 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0435\u0433\u043e \u0434\u0440\u0443\u0433\u0438\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c, \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u0436\u0430\u0442\u044c. \u0414\u043b\u044f \u0441\u0436\u0430\u0442\u0438\u044f \u0432\u044b\u0431\u0435\u0440\u0435\u043c \u0444\u043e\u0440\u043c\u0430\u0442 <strong>gzip<\/strong>, <strong>xz<\/strong>, <strong>bz2<\/strong>, \u0442\u043a \u0441\u0436\u0430\u0442\u044b\u0439 \u0438\u043c \u0434\u0438\u0441\u043a \u043f\u043e\u043d\u0438\u043c\u0430\u044e\u0442 \u043c\u043d\u043e\u0433\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0434\u0438\u0441\u043a\u043e\u0432, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 rufus. \u0412 \u043d\u0430\u0448\u0435\u043b \u0441\u043b\u0443\u0447\u0430\u0435, \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0435\u0433\u043e \u0441\u0436\u0430\u0442\u0438\u044f \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0441 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c <strong>xz<\/strong>. \u0414\u0440\u0443\u0433\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 <strong>zstd<\/strong> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0441\u0436\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0435, \u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u0435\u0433\u043e, \u0435\u0441\u043b\u0438 \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u043a\u043e\u043c\u0443 \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u0435\u0433\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">gzip -9cvf ultrascale_short.img > ultrascale_short.img.gz xz -9cvf ultrascale_short.img > ultrascale_short.img.xz bzip2 -9cvf ultrascale_short.img > ultrascale_short.img.bz2 zstd -16v --ultra --format=zstd ultrascale_short.img -o ultrascale_short.img.zst<\/code><\/pre>\n<p>\u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p>ultrascale_short.img<\/p>\n<\/td>\n<td>\n<p align=\"left\">640\u041c\u0431<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p>ultrascale_short.img.gz<\/p>\n<\/td>\n<td>\n<p align=\"left\">206\u041c\u0431<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\">ultrascale_short.img.bz2<\/p>\n<\/td>\n<td>\n<p align=\"left\">189\u041c\u0431<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\">ultrascale_short.img.zst<\/p>\n<\/td>\n<td>\n<p align=\"left\">170\u041c\u0431<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\">ultrascale_short.img.xz<\/p>\n<\/td>\n<td>\n<p align=\"left\">143\u041c\u0431<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<ul>\n<li>\n<p>\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0437 \u043d\u0430 SD \u043a\u0430\u0440\u0442\u0443 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">zcat ultrascale_short.img.gz | dd bs=8M iflag=fullblock of=\/dev\/sdxxx status=progress; sync; xzcat ultrascale_short.img.xz | dd bs=8M iflag=fullblock of=\/dev\/sdxxx status=progress; sync; bzcat ultrascale_short.img.bz | dd bs=8M iflag=fullblock of=\/dev\/sdxxx status=progress; sync; zstdcat ultrascale_short.img.zst | dd bs=8M iflag=fullblock of=\/dev\/sdxxx status=progress; sync;<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u041b\u043e\u0433 \u0437\u0430\u043f\u0438\u0441\u0438 \u043e\u0431\u0440\u0430\u0437\u0430 sd \u043a\u0430\u0440\u0442\u044b<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">zcat ultrascale_short.img.gz | dd bs=8M iflag=fullblock of=\/dev\/sdf status=progress; sync; 754974720 bytes (755 MB, 720 MiB) copied, 5 s, 150 MB\/s 96+0 records in 96+0 records out 805306368 bytes (805 MB, 768 MiB) copied, 129.194 s, 6.2 MB\/s<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043b\u0438\u0446\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0435 \u043e\u0431\u0440\u0430\u0437, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 windows, \u0442\u043e gzip \u043e\u0431\u0440\u0430\u0437 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0447\u0435\u0440\u0435\u0437 rufus \u0431\u0435\u0437 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438:<\/p>\n<\/li>\n<\/ul>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/923\/904\/11e\/92390411e9d33b7d900efbe8489e5129.png\" width=\"448\" height=\"545\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/923\/904\/11e\/92390411e9d33b7d900efbe8489e5129.png\"\/><\/figure>\n<h2>\u041f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/h2>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043a\u0430\u0440\u0442\u0443 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 \u0443\u0441\u0442\u0440\u043e\u0443\u0439\u0441\u0442\u0432\u043e, \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0440\u0435\u0436\u0438\u043c\u043e\u0432 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 sw6 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 1000.<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043a uart \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0447\u0435\u0440\u0435\u0437 microusb \u043a\u0430\u0431\u0435\u043b\u044c. \u041d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u0440\u0442 \/dev\/ttyUSB0 \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e:<\/p>\n<\/li>\n<\/ul>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/65397b61ff7a727696f21fc6\" data-style=\"\" id=\"65397b61ff7a727696f21fc6\" width=\"\"><\/div>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0437 rootfs \u043d\u0430 \u0432\u0441\u0451 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 \u043f\u0430\u043c\u044f\u0442\u0438:<\/p>\n<\/li>\n<li>\n<p>\u0434\u043b\u044f <strong>brtfs<\/strong>:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">growpart \/dev\/mmcblk0 2 btrfs filesystem resize max \/ sync;<\/code><\/pre>\n<details class=\"spoiler\">\n<summary>\u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c<\/summary>\n<div class=\"spoiler__content\">\n<ul>\n<li>\n<p>\u0434\u043b\u044f <strong>ext2<\/strong>, <strong>ext3<\/strong>, <strong>ext4<\/strong>:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">growpart \/dev\/mmcblk0 2 resize2fs \/dev\/mmcblk0p2 sync;<\/code><\/pre>\n<ul>\n<li>\n<p>\u0434\u043b\u044f <strong>xfs<\/strong>:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">growpart \/dev\/mmcblk0 2 xfs_growfs \/ sync;<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e<\/p>\n<ul>\n<li>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0440\u043e\u043f\u0430\u043b\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e uart \u0431\u0435\u0437 \u043f\u043e\u0440\u043e\u043b\u044f (\u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435):<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">chattr +i \/lib\/systemd\/system\/serial-getty@.service<\/code><\/pre>\n<h2>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u044f\u0434\u0440\u0430 Linux, dts, bitstream \u043f\u043e tftp, rootfs debian \u043f\u043e NFS<\/h2>\n<ul>\n<li>\n<p>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c tftp \u0438 NFS \u043a\u0430\u043a \u0431\u044b\u043b\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432\u044b\u0448\u0435<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435 \u0434\u043e\u0436\u0438\u0434\u0430\u044f\u0441\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 uboot, \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u0440\u0438 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043e\u0442\u0441\u0447\u0451\u0442\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043a\u043b\u0430\u0432\u0438\u0448\u0435\u0439 enter:<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/201\/d78\/290\/201d7829003fafba0a5c6ff686a4fda4.png\" width=\"1042\" height=\"634\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/201\/d78\/290\/201d7829003fafba0a5c6ff686a4fda4.png\"\/><\/figure>\n<ul>\n<li>\n<p> \u0438 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u043c \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b U-Boot, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c ip fttp \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u043f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0430\u043c, \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u043e\u0440\u043d\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">setenv tftp_serverip '192.168.4.12' setenv tftp_dir \/zsu106\/ saveenv reset<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u0441\u044f \u0438 \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043f\u0443\u043d\u043a\u0442\u044b \u043c\u0435\u043d\u044e, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u044f\u0434\u0440\u043e Linux, dts, bitstream \u043f\u043e tftp, \u0430 rootFS debian &#8212; \u0441 \u043a\u0430\u0440\u0442\u044b \u043f\u0430\u043c\u044f\u0442\u0438: <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/488\/2c1\/05a\/4882c105a33d913a059fe5e974beab72.png\" width=\"1103\" height=\"426\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/488\/2c1\/05a\/4882c105a33d913a059fe5e974beab72.png\"\/><\/figure>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/65397f1d3add7830897d4275\" data-style=\"\" id=\"65397f1d3add7830897d4275\" width=\"\"><\/div>\n<ul>\n<li>\n<p>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0432\u0441\u0435 \u043f\u043e \u0441\u0435\u0442\u0438: \u044f\u0434\u0440\u043e Linux, dts, bitstream \u043f\u043e tftp, \u0430 rootFS debian &#8212; \u043f\u043e NFC<\/p>\n<p>\u041f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 UBoot \u043a\u0430\u043a \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 tftp \u0438 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c ip \u0438 \u043f\u0443\u0442\u044c \u043a \u043f\u0430\u043f\u043a\u0435 \u0441 rootfs debian:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">setenv nfs_serverip '192.168.4.12' setenv nfs_dir \/tmp\/root saveenv reset<\/code><\/pre>\n<ul>\n<li>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0442\u0430\u043a\u043e\u0435 \u043c\u0435\u043d\u044e:<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/828\/60d\/066\/82860d0663dda521d5bb31531a3669db.png\" width=\"1037\" height=\"414\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/828\/60d\/066\/82860d0663dda521d5bb31531a3669db.png\"\/><\/figure>\n<p>\u0412\u0435\u0441\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e:<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/65398043ff7a727696f2227a\" data-style=\"\" id=\"65398043ff7a727696f2227a\" width=\"\"><\/div>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e  \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u0438\u0437 \u0440\u0435\u0436\u0438\u043c\u043e\u0432 &#8212; \u0437\u0430\u0434\u0430\u0439\u0442\u0435 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0431\u0435\u0437 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">setenv tftp_serverip setenv nfs_serverip<\/code><\/pre>\n<ul>\n<li>\n<p>\u041d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430, \u0438\u043d\u0430\u0447\u0435 \u043c\u0435\u043d\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e! \u0415\u0441\u043b\u0438 \u0432\u0441\u0451 \u0436\u0435 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b\u0438 &#8212; \u0442\u043e \u0438\u0437\u0432\u043b\u0435\u043a\u0438\u0442\u0435 \u043a\u0430\u0440\u0442\u0443 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u0435 \u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f: <code>uboot-redund.env<\/code> \u0438 <code>uboot.env<\/code><\/p>\n<\/li>\n<\/ul>\n<h2>\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u043a \u0441\u0442\u0430\u0442\u044c\u0435<\/h2>\n<p>1) <a href=\"https:\/\/github.com\/Igorbunow\/build-uboot-linux-debian.git\" rel=\"noopener noreferrer nofollow\"><u>\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0441\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438<\/u><\/a><\/p>\n<p>2) <a href=\"https:\/\/github.com\/Igorbunow\/build-uboot-linux-debian\/releases\/tag\/0.2_zcu106\" rel=\"noopener noreferrer nofollow\"><u>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u044b\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0437<\/u><\/a><\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/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\/articles\/769988\/\"> https:\/\/habr.com\/ru\/articles\/769988\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h2>\u0426\u0435\u043b\u0438 \u0441\u0442\u0430\u0442\u044c\u0438<\/h2>\n<ul>\n<li>\n<p>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438 \u0441\u0431\u043e\u0440\u043a\u0443 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u043e\u0432 \u0438 \u044f\u0434\u0440\u0430 Linux \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0432 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 gui Vivado;<\/p>\n<\/li>\n<li>\n<p>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b Debian \u0438\u0437 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 \u0438 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437\u044b \u044f\u0434\u0440\u0430 linux + dts \u043f\u043e tftp, \u0430 \u043a\u043e\u0440\u043d\u0435\u0432\u0443\u044e \u0444\u0430\u0439\u043b\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043f\u043e NFS \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e;<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 U-Boot \u043c\u0435\u043d\u044e \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0432\u044b\u0431\u043e\u0440\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438: \u0432\u0441\u0451 \u0441 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438, \u0432\u0441\u0451 \u043f\u043e \u0441\u0435\u0442\u0438 \u0438 \u0440\u0430\u0437\u043d\u044b\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u044d\u0442\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0434 \u043b\u044e\u0431\u0443\u044e \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u0443\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443. <\/p>\n<\/li>\n<\/ul>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 Debian \u0431\u044b\u043b\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0433\u0434\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044f\u043c\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f: \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u043e\u0441\u0442\u044c, \u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 &#8212; \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438. \u041f\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0434 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e nand \u0438\u043b\u0438 nor \u0444\u043b\u0435\u0448\u043a\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0451\u043c\u0430, \u0434\u0435\u043b\u0430\u0435\u043c \u0441\u0431\u043e\u0440\u043a\u0443 buildroot \u0441 \u0443\u0436\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u043e\u0432.<\/p>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c<\/h2>\n<p>\u0412\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u0441 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 Debian, \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u0414\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 fsbl \u0438 pmu \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c Vivado 2020 \u0438 \u0441\u0442\u0430\u0440\u0448\u0435. \u0412\u0441\u0451 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0441\u0430\u043c\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 2023.2 <\/p>\n<ul>\n<li>\n<p>\u041a\u043b\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 <\/p>\n<p>\u0412\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0432\u044b\u043b\u043e\u0436\u0438\u043b \u043d\u0430 \u0433\u0438\u0442\u0445\u0430\u0431: <\/p>\n<\/li>\n<\/ul>\n<pre><code>git clone https:\/\/github.com\/Igorbunow\/build-uboot-linux-debian.git<\/code><\/pre>\n<ul>\n<li>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043a\u0440\u043e\u0441\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">apt install gcc-aarch64-linux-gnu<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 toolchain, \u0442\u043e \u0435\u0433\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0438\u0436\u0435<\/p>\n<ul>\n<li>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c <em>debootstrap<\/em>, <em>qemu-static<\/em>, <em>tftp<\/em> \u0438 <em>nfs<\/em> \u0441\u0435\u0440\u0432\u0435\u0440<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">apt install debootstrap atftpd nfs-kernel-server qemu-user-static fdisk<\/code><\/pre>\n<ul>\n<li>\n<p>\u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c <strong>tftpd<\/strong><\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">mkdir \/srv mkdir \/srv\/tftp chown 777 \/srv\/tftp  vim  \/etc\/default\/atftpd  ## Options for atftpd: USE_INETD=false OPTIONS=\"--port 69 --tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 \/srv\/tftp\"  systemctl restart atftpd<\/code><\/pre>\n<ul>\n<li>\n<p>\u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c <strong>NFS<\/strong><\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">mkdir \/srv\/nfs mkdir \/srv\/nfs\/root  vim \/etc\/exports  #\/srv\/nfs   *(no_root_squash,no_subtree_check,rw) \/srv\/nfs   192.168.10.1\/24(no_root_squash,no_subtree_check,rw) #\/tmp\/root *(no_root_squash,no_subtree_check,rw)<\/code><\/pre>\n<p>\u041a\u0440\u0430\u0439\u043d\u0435 \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0434\u0430\u0432\u0430\u0442\u044c \u0432\u0441\u0435\u043c \u0445\u043e\u0441\u0442\u0430\u043c \u043f\u0440\u0430\u0432\u0430 (\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c *), \u0442.\u043a. \u043a\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0438\u0437 \u0441\u0435\u0442\u0438 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b \u043e\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c \u0431\u0438\u0442\u043e\u043c SUID \u0441 \u043e\u043f\u0446\u0438\u0435\u0439 <strong>no_root_squash<\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u043e\u043d\u0438\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u0430\u0432 root \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043a NFS, \u043d\u043e \u043e\u043d\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439.<\/p>\n<h2>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a FSBL+U-Boot \u0438 \u044f\u0434\u0440\u043e Linux<\/h2>\n<p>\u0412\u0441\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u043e\u0432 \u0438 \u044f\u0434\u0440\u0430 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043f\u0430\u043f\u043a\u0435 .\/boot \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f:       <\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">configs<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u0430\u043f\u043a\u0430 \u0441 defconfig \u0434\u043b\u044f linux \u0438 uboot<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">all.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u0440\u0438\u043f\u0442, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0439 \u0432\u0441\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u043d\u0438\u0436\u0435 \u0438 \u0434\u0435\u043b\u0430\u044e\u0449\u0438\u0439 \u043f\u043e\u043b\u043d\u0443\u044e \u0441\u0431\u043e\u0440\u043a\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">download_orig.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u0440\u0438\u043f\u0442, \u0432\u044b\u043a\u0430\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0438\u0437 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438.  \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u043d\u0451\u043c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u043c\u043c\u0438\u0442. \u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">fsbl_pmu_2020.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u0440\u0438\u043f\u0442, \u0441\u043e\u0437\u0434\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 Vitis \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0449\u0438\u0439 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u0438 pmu (\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f Vivado, Vitis \u043e\u0442 2020)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">dts.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u0440\u0438\u043f\u0442, \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0449\u0438\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u0443 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0435\u0440\u0435\u0432\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0434\u043b\u044f \u044f\u0434\u0440\u0430 linux \u0438 u-boot (\u0434\u043b\u044f \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430), \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u0441\u0431\u043e\u0440\u043a\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">atf.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 ARM trusted firmware (\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043a\u0440\u043e\u0441\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0438\u043b\u0438 \u0442\u0443\u043b\u0447\u0435\u0439\u043d)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">u-boot.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 U-Boot<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">kernel.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u044f\u0434\u0440\u0430 Linux<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">bootbin.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430, U-Boot, pmu \u0438 bl31 \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0431\u043e\u0440\u043a\u043e\u0439 \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 BOOT.bin<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">bootscript.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0413\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 UBoot \u0438\u0437 <strong>boot.script<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">image.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 BOOT.bin, \u044f\u0434\u0440\u0430 linux, device-tree, \u0441\u043a\u0440\u0438\u043f\u0442\u0430 UBoot, \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u044f\u0434\u0440\u0430 \u0432 \u0432\u0438\u0434\u0435, \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u043e\u043c \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b SD \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438. Device tree \u0444\u0430\u0439\u043b \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0432 system.dtb. \u041d\u0430 \u044d\u0442\u043e\u0442 \u0436\u0435 \u0440\u0430\u0437\u0434\u0435\u043b \u043a\u043b\u0430\u0434\u0451\u043c <strong>system.bit<\/strong>, \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0434 \u0432\u0430\u0448\u0443 \u0437\u0430\u0434\u0430\u0447\u0443.  \u041c\u043e\u0434\u0443\u043b\u0438 \u044f\u0434\u0440\u0430 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0432 <strong>rootfs<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u041d\u0430\u0441\u0442\u043e\u0439\u043a\u0430 \u044f\u0434\u0440\u0430 Linux \u0438 UBoot<\/h3>\n<ul>\n<li>\n<p> \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 defconfig<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0431\u0435\u0440\u0435\u0442 defconfig, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0432 \u043f\u0430\u043f\u043a\u0430\u0445 <strong>.\/configs\/linux\/xilinx_ulrascale_debug_defconfig<\/strong> \u0438 <strong>.\/configs\/uboot\/xilinx_ulrascale_debug_defconfig<\/strong> \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0438\u0437 \u043d\u0438\u0445 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 <strong>.config <\/strong>\u0444\u0430\u0439\u043b\u044b. \u0415\u0441\u043b\u0438 \u0412\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0434 \u0441\u0432\u043e\u044e \u0437\u0430\u0434\u0430\u0447\u0443, \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 <strong>u-boot-xlnx<\/strong> \u0438\u043b\u0438 <strong>linux-xlnx<\/strong>, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c:<\/p>\n<pre><code class=\"bash\">make ARCH=arm64 menuconfig<\/code><\/pre>\n<p>\u0418 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c. \u0417\u0430\u0442\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0438\u0437 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e <strong>.config<\/strong> -> <strong>defconfig<\/strong>:<\/p>\n<pre><code class=\"bash\">make ARCH=arm64 savedefconfig<\/code><\/pre>\n<p>\u0417\u0430\u0431\u0438\u0440\u0430\u0435\u043c \u0438\u0437 \u043a\u043e\u0440\u043d\u044f <strong>u-boot-xlnx<\/strong> \u0438\u043b\u0438 <strong>linux-xlnx<\/strong> defconfig, \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0438 \u043a\u043b\u0430\u0434\u0451\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 <strong>\/xilinx_ulrascale_debug_defconfig<\/strong> \u0438\u043b\u0438 <strong>.\/configs\/uboot\/xilinx_ulrascale_debug_defconfig<\/strong>.<\/p>\n<ul>\n<li>\n<p>\u0414\u0435\u0440\u0435\u0432\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 Device tree<\/p>\n<\/li>\n<\/ul>\n<p>Device tree files (dts) \u043e\u0431\u0449\u0438\u0435 \u0434\u043b\u044f \u044f\u0434\u0440\u0430 \u0438 UBoot \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 overlay \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0438\u0437 <strong>.\/configs\/dts<\/strong>, \u043a\u0443\u0434\u0430 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u0441\u0432\u043e\u0438, \u0435\u0441\u043b\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f. \u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e, \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0435 \u0432 \u0444\u0430\u0439\u043b\u0435 <strong>.\/configs\/dts\/Makefile.in<\/strong> \u043d\u0430\u0434\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0446\u0435\u043b\u044c \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 dtb:<\/p>\n<pre><code class=\"bash\">dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu106-custom.dtb<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e\u0431\u044b \u0432 defconfig UBoot <strong>.\/configs\/uboot\/xilinx_ulrascale_debug_defconfig <\/strong>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0439 \u043d\u0430\u043c dts, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0431\u0435\u0437 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"bash\">CONFIG_DEFAULT_DEVICE_TREE=\"zynqmp-zcu106-custom\"<\/code><\/pre>\n<h3>\u0417\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 UBoot<\/h3>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f UBoot \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0435 SD. \u0421\u043a\u0440\u0438\u043f\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0446\u0438\u043a\u043b\u044b \u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0443\u0441\u043b\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430, \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 bash. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 ip \u0430\u0434\u0440\u0435\u0441\u043e\u0432 tftp \u0438\u043b\u0438 nfs \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0438 \u0438\u0445 \u043f\u0430\u043f\u043e\u043a, \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u043c\u0435\u043d\u044e \u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u043c\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438:<\/p>\n<figure class=\"full-width\"><\/figure>\n<details class=\"spoiler\">\n<summary>boot.script<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">setenv bitsteam_name system.bit setenv kernel_image_name Image setenv dts_name system.dtb setenv bitsteam_addr 0x20000000 setenv kernel_image_addr 0x10000000 setenv dts_addr 0x02a00000 setenv load_tftp_bitsteam 'dhcp ${bitsteam_addr} ${tftp_serverip}:${tftp_dir}${bitsteam_name}; fpga load 0 ${bitsteam_addr} $filesize;' setenv load_tftp_kernel_image 'dhcp ${kernel_image_addr} ${tftp_serverip}:${tftp_dir}${kernel_image_name}' setenv load_tftp_dts 'dhcp ${dts_addr} ${tftp_serverip}:${tftp_dir}${dts_name}' setenv load_mmc_bitsteam 'fatload mmc 0:1 ${bitsteam_addr} ${bitsteam_name}; fpga load 0 ${bitsteam_addr} $filesize;' setenv load_mmc_kernel_image 'fatload mmc 0 ${kernel_image_addr} ${kernel_image_name}' setenv load_mmc_dts 'fatload mmc 0 ${dts_addr} ${dts_name}' setenv boot_dev booti 0x10000000 - 0x02a00000 setenv bootargs_mmc 'earlycon clk_ignore_unused consoleblank=0 root=\/dev\/mmcblk0p2 rootfstype=btrfs rw rootwait uio_pdrv_genirq.of_id=generic-uio net.ifnames=0 biosdevname=0' setenv bootargs_nfs 'earlycon clk_ignore_unused consoleblank=0 root=\/dev\/nfs ip=dhcp nfsroot='${nfs_serverip}':'${nfs_dir}',nolock,nfsvers=4 rootfstype=nfs rw rootwait uio_pdrv_genirq.of_id=generic-uio net.ifnames=0 biosdevname=0'  setenv bootcmd bootmenu 10  setenv bootmenu_0 Load All from MMC='setenv bootargs '${bootargs_mmc}';run load_mmc_bitsteam; run load_mmc_kernel_image; run load_mmc_dts; run boot_dev;'   if test -n $tftp_serverip; then if test -n $nfs_serverip; then setenv root_name NFS setenv bootargs ${bootargs_nfs} else setenv root_name SD_card setenv bootargs ${bootargs_mmc} fi setenv bootmenu_1 Load All via tftp ${tftp_serverip} root ${root_name}='run load_tftp_bitsteam; run load_tftp_kernel_image; run load_tftp_dts; run boot_dev;' setenv bootmenu_2 Load bitsteam via tftp ${tftp_serverip} kernel from SD card root ${root_name}='run load_tftp_bitsteam; run load_mmc_kernel_image; run load_mmc_dts; run boot_dev;' setenv bootmenu_3 Load bitsteam from SD Card  kernel via tftp ${tftp_serverip} root ${root_name}='run load_mmc_bitsteam; run load_tftp_kernel_image; run load_tftp_dts; run boot_dev;' setenv bootmenu_4 Reset board=reset setenv bootmenu_5 Test='ls' else setenv bootmenu_1 Reset board=reset fi  bootmenu 5<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 c ip \u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0434\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430. \u041e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0438\u0436\u0435.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u043c\u043e\u0436\u043d\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 bootargs \u0434\u043b\u044f bootargs_mmc \u0438 bootargs_nfs. `net.ifnames=0 biosdevname=0` \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u0435\u0442\u0430 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f eth0 -> end0, \u0442.\u043a. \u043f\u0440\u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e nfs \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438 \u044d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u0435\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432 rootfs.<\/p>\n<\/div>\n<\/details>\n<h3>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043a\u0440\u043e\u0441\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 toolchain, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445: <em>fsbl_pmu_2020.sh<\/em>, <em>kernel.sh<\/em>, <em>u-boot.sh<\/em> \u043f\u0443\u0442\u044c \u0434\u043e \u0435\u0433\u043e \/bin, \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u043a\u0440\u043e\u0441\u0441\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443:<\/p>\n<pre><code class=\"bash\">export PATH=\/tmp\/build\/buildroot\/output\/host\/bin:${PATH} export ARCH=arm64 export CROSS_COMPILE=aarch64-linux-gnu-<\/code><\/pre>\n<h3>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432<\/h3>\n<ul>\n<li>\n<p>\u041f\u0443\u0442\u044c \u043a Vivado \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 <strong>all.sh<\/strong>:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">export VIVADO=\/opt\/Electro\/FPGA\/Xilinx\/Vivado\/2023.1\/settings64.sh<\/code><\/pre>\n<ul>\n<li>\n<p>\u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0432 \u043e\u0431\u0440\u0430\u0437 \u0444\u0430\u0439\u043b\u044b \u0438 \u0438\u0445 \u0438\u043c\u0435\u043d\u0430 &#8212; \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 <strong>image.sh<\/strong>, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 device tree dtb \u0444\u0430\u0439\u043b \u043c\u044b \u0438\u0441\u0442\u043e\u043b\u044c\u0437\u0443\u0435\u043c:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">cp ${WORK}\/linux-xlnx\/arch\/arm64\/boot\/dts\/xilinx\/zynqmp-zcu106-custom.dtb .\/system.dtb<\/code><\/pre>\n<h3>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0431\u043e\u0440\u043a\u0443<\/h3>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442 .\/<strong>all.sh<\/strong> \u0438 \u0436\u0434\u0451\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0441\u0431\u043e\u0440\u043a\u0438. \u0415\u0441\u043b\u0438 \u0432\u0441\u0451 \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0442\u043e \u0432 \u043f\u0430\u043f\u043a\u0435 .\/image \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0444\u0430\u0439\u043b\u044b, \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0434\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u0440\u0430\u0437\u0434\u0435\u043b \u043a\u0430\u0440\u0442\u044b \u043f\u0430\u043c\u044f\u0442\u0438 \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u044f\u0434\u0440\u0430 &#8212; \u0438\u0445 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0432 rootfs<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">modules<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0430\u043f\u043a\u0430 \u0441 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438 \u044f\u0434\u0440\u0430 Linux. \u041f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 rootfs \u0440\u0430\u0437\u0434\u0435\u043b \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438 \u043d\u0438\u0436\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">BOOT.bin<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0431\u0440\u0430\u0437 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 fsbl, pmu, bl31, UBoot<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">boot.scr<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430 UBoot<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Image<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u042f\u0434\u0440\u043e Linux<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">system.dtb<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u0435\u0440\u0435\u0432\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u044f\u0434\u0440\u0430 linux<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">system.bit<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0411\u0438\u0442\u0441\u0442\u0440\u0438\u043c \u0434\u043b\u044f fpga, \u043f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h2>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c Debian \u0438\u0437 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/h2>\n<p>\u0421\u0431\u043e\u0440\u043a\u0430 debian \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432. RootFs debian \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0430\u043f\u043a\u0435 .\/root. \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 debian:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">files<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0424\u0430\u0439\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0441 \u0437\u0430\u043c\u0435\u043d\u043e\u0439 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2_debian_bootstrap.sh<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u0440\u0438\u043f\u0442, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0438\u0439<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-358526","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/358526","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=358526"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/358526\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=358526"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=358526"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=358526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}