{"id":360283,"date":"2024-05-21T00:50:12","date_gmt":"2024-05-21T00:50:12","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=360283"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=360283","title":{"rendered":"<span>VisionFive2 (\u044f\u0434\u0440\u043e Linux)<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412 <a href=\"https:\/\/habr.com\/ru\/articles\/773852\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0431\u043e\u0440\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u044f\u0434\u0440\u043e Linux, \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f <a href=\"https:\/\/www.starfivetech.com\/en\/site\/company\/\" rel=\"noopener noreferrer nofollow\">StarFive<\/a> \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 <a href=\"https:\/\/github.com\/starfive-tech\/linux\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/starfive-tech\/linux<\/a>. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u044f\u0434\u0440\u0430 (boot.scr) \u0434\u043b\u044f U-Boot.<\/p>\n<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f StarFive \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0432\u0435\u0434\u0435\u0442 \u0434\u0432\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u044f\u0434\u0440\u0430: 5.15.x \u0438 6.1.x. \u041d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0442\u043a\u0430 6.1.x, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0432\u043e\u0437\u044c\u043c\u0435\u043c snapshoot \u0442\u0435\u0433\u0430 <strong>VF2_6.1_v3.8.2<\/strong>:<\/p>\n<pre><code class=\"bash\">git clone https:\/\/github.com\/starfive-tech\/linux.git cd linux git archive --format=tar --prefix=linux-starfive-6.1.31-3.8.2\/ 22e0315434b13cdde93ded101b567d5d1c4d5a2e | \\     xz >..\/linux-starfive-6.1.31-3.8.2.tar.xz cd .. rm -rf linux tar xJvf linux-starfive-6.1.31-3.8.2.tar.xz<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u044f\u0434\u0440\u0430, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0442\u0435\u0433\u0443 <strong>VF2_6.1_v3.8.2<\/strong>, \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 .\/linux-starfive-6.1.31-3.8.2\/.<\/p>\n<p>\u041a\u0430\u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 toolchain \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b\u0438 \u0432 <a href=\"https:\/\/habr.com\/ru\/articles\/773852\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/a><\/p>\n<p>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0434\u043b\u044f VisionFive2 <strong>starfive_visionfive2_defconfig<\/strong> \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 .\/linux-starfive-6.1.31-3.8.2\/arch\/riscv\/configs\/ \u0438 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b .\/linux-starfive-6.1.31-3.8.2\/.config, \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u044b\u0439 \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u043d\u0443\u0436\u0434, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 (\u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 .\/linux-starfive-6.1.31-3.8.2\/):<\/p>\n<pre><code class=\"bash\">#!\/bin\/sh  JOBS=-j24  PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \\ make ${JOBS} ARCH=riscv CROSS_COMPILE=\"\/opt\/toolchains\/riscv64-RV64GC-linux-glibc\/1.9.8\/bin\/riscv64-rv64gc-linux-gnu-\" \\      KCFLAGS=\"-Wno-unused-variable -Wno-undef -Wno-unused-label -Wno-unused-function -Wno-address -Wno-discarded-qualifiers -Wno-int-conversion -Wimplicit-fallthrough=0 -Wformat=0\" \\      HOSTLDFLAGS=\"-L\/lib64 -L\/usr\/lib64\" \\      starfive_visionfive2_defconfig <\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u043d\u0435\u0441\u0442\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u044f\u0434\u0440\u0430, \u043f\u0435\u0440\u0435\u0434 \u0441\u0431\u043e\u0440\u043a\u043e\u0439. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438:<\/p>\n<pre><code class=\"bash\"># # Userland interfaces # CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_PSAUX=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 CONFIG_INPUT_JOYDEV=m CONFIG_INPUT_EVDEV=m # CONFIG_INPUT_EVBUG is not set<\/code><\/pre>\n<p>\u043c\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u044b\u0448\u0438 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435.<\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u044f:<\/p>\n<pre><code>CONFIG_DRM_IMG=y CONFIG_DRM_IMG_ROGUE=y CONFIG_DRM_LEGACY=y<\/code><\/pre>\n<p>\u0432\u0435\u0434\u044c SoC JH7110 \u0438\u043c\u0435\u0435\u0442 \u0432 \u0441\u0432\u043e\u0435\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u0435 GPU Imagination MG BXE-4-32 MC1.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0444\u0430\u0439\u043b\u0430 .\/linux-starfive-6.1.31-3.8.2\/<strong>.config<\/strong>, \u0434\u043b\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 make oldconfig:<\/p>\n<pre><code class=\"bash\">#!\/bin\/sh  JOBS=-j24  PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \\ make ${JOBS} ARCH=riscv CROSS_COMPILE=\"\/opt\/toolchains\/riscv64-RV64GC-linux-glibc\/1.9.8\/bin\/riscv64-rv64gc-linux-gnu-\" \\      KCFLAGS=\"-Wno-unused-variable -Wno-undef -Wno-unused-label -Wno-unused-function -Wno-address -Wno-discarded-qualifiers -Wno-int-conversion -Wimplicit-fallthrough=0 -Wformat=0\" \\      HOSTLDFLAGS=\"-L\/lib64 -L\/usr\/lib64\" \\      oldconfig<\/code><\/pre>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0441\u0431\u043e\u0440\u043a\u0438 \u044f\u0434\u0440\u0430 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"bash\">#!\/bin\/sh  JOBS=-j24  PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \\ make ${JOBS} ARCH=riscv CROSS_COMPILE=\"\/opt\/toolchains\/riscv64-RV64GC-linux-glibc\/1.9.8\/bin\/riscv64-rv64gc-linux-gnu-\" \\      KCFLAGS=\"-Wno-unused-variable -Wno-undef -Wno-unused-label -Wno-unused-function -Wno-address -Wno-discarded-qualifiers -Wno-int-conversion -Wimplicit-fallthrough=0 -Wformat=0\" \\      HOSTLDFLAGS=\"-L\/lib64 -L\/usr\/lib64\" \\      oldconfig  PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \\ make ${JOBS} ARCH=riscv CROSS_COMPILE=\"\/opt\/toolchains\/riscv64-RV64GC-linux-glibc\/1.9.8\/bin\/riscv64-rv64gc-linux-gnu-\" \\      KCFLAGS=\"-Wno-unused-variable -Wno-undef -Wno-unused-label -Wno-unused-function -Wno-address -Wno-discarded-qualifiers -Wno-int-conversion -Wimplicit-fallthrough=0 -Wformat=0\" \\      HOSTLDFLAGS=\"-L\/lib64 -L\/usr\/lib64\" \\      modules_prepare  PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \\ make ${JOBS} ARCH=riscv CROSS_COMPILE=\"\/opt\/toolchains\/riscv64-RV64GC-linux-glibc\/1.9.8\/bin\/riscv64-rv64gc-linux-gnu-\" \\      KCFLAGS=\"-Wno-unused-variable -Wno-undef -Wno-unused-label -Wno-unused-function -Wno-address -Wno-discarded-qualifiers -Wno-int-conversion -Wimplicit-fallthrough=0 -Wformat=0\" \\      HOSTLDFLAGS=\"-L\/lib64 -L\/usr\/lib64\" \\      Image  PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \\ make ${JOBS} ARCH=riscv CROSS_COMPILE=\"\/opt\/toolchains\/riscv64-RV64GC-linux-glibc\/1.9.8\/bin\/riscv64-rv64gc-linux-gnu-\" \\      KCFLAGS=\"-Wno-unused-variable -Wno-undef -Wno-unused-label -Wno-unused-function -Wno-address -Wno-discarded-qualifiers -Wno-int-conversion -Wimplicit-fallthrough=0 -Wformat=0\" \\      HOSTLDFLAGS=\"-L\/lib64 -L\/usr\/lib64\" \\      Image.lzma  PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \\ make ${JOBS} ARCH=riscv CROSS_COMPILE=\"\/opt\/toolchains\/riscv64-RV64GC-linux-glibc\/1.9.8\/bin\/riscv64-rv64gc-linux-gnu-\" \\      KCFLAGS=\"-Wno-unused-variable -Wno-undef -Wno-unused-label -Wno-unused-function -Wno-address -Wno-discarded-qualifiers -Wno-int-conversion -Wimplicit-fallthrough=0 -Wformat=0\" \\      HOSTLDFLAGS=\"-L\/lib64 -L\/usr\/lib64\" \\      modules  PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \\ make ${JOBS} ARCH=riscv CROSS_COMPILE=\"\/opt\/toolchains\/riscv64-RV64GC-linux-glibc\/1.9.8\/bin\/riscv64-rv64gc-linux-gnu-\" \\      KCFLAGS=\"-Wno-unused-variable -Wno-undef -Wno-unused-label -Wno-unused-function -Wno-address -Wno-discarded-qualifiers -Wno-int-conversion -Wimplicit-fallthrough=0 -Wformat=0\" \\      HOSTLDFLAGS=\"-L\/lib64 -L\/usr\/lib64\" \\      dtbs  PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \\ make ${JOBS} ARCH=riscv CROSS_COMPILE=\"\/opt\/toolchains\/riscv64-RV64GC-linux-glibc\/1.9.8\/bin\/riscv64-rv64gc-linux-gnu-\" \\      KCFLAGS=\"-Wno-unused-variable -Wno-undef -Wno-unused-label -Wno-unused-function -Wno-address -Wno-discarded-qualifiers -Wno-int-conversion -Wimplicit-fallthrough=0 -Wformat=0\" \\      HOSTLDFLAGS=\"-L\/lib64 -L\/usr\/lib64\" \\      modules_install DEPMOD=true INSTALL_MOD_PATH=`pwd`\/_dist<\/code><\/pre>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 .\/linux-starfive-6.1.31-3.8.2\/ \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u044b \u044f\u0434\u0440\u0430: .\/linux-starfive-6.1.31-3.8.2\/arch\/riscv\/boot\/Image{,.lzma} \u0438 \u043c\u043e\u0434\u0443\u043b\u0438 .\/linux-starfive-6.1.31-3.8.2\/_dist\/lib\/modules\/6.1.31 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <strong>\/lib\/modules\/<\/strong> \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>DeviceTree-\u0444\u0430\u0439\u043b .\/linux-starfive-6.1.31-3.8.2\/arch\/riscv\/boot\/dts\/starfive\/jh7110-visionfive-v2.dtb, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0444\u0430\u0439\u043b .\/linux-starfive-6.1.31-3.8.2\/arch\/riscv\/boot\/dts\/starfive\/vf2-overlay\/vf2-overlay-uart3-i2c.dtbo \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <strong>\/boot\/starfive\/<\/strong> \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 <strong>mkimage<\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 <a href=\"https:\/\/habr.com\/ru\/articles\/773852\/\" rel=\"noopener noreferrer nofollow\">\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u043a\u043e\u0434\u043e\u0432 U-Boot<\/a>, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430\u044f \u0434\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043e\u0431\u0440\u0430\u0437\u043e\u0432.<\/p>\n<p>\u0412\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u044f\u0434\u0440\u0430, devicetree \u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 .\/u-boot-2021.10-3.8.2-orig\/include\/configs\/starfive-visionfive2.h:<\/p>\n<pre><code class=\"cpp\">#define CONFIG_EXTRA_ENV_SETTINGS\\ \"fdt_high=0xffffffffffffffff\\0\"\\ \"initrd_high=0xffffffffffffffff\\0\"\\ \"kernel_addr_r=0x40200000\\0\"\\ \"kernel_comp_addr_r=0x5a000000\\0\"\\ \"kernel_comp_size=0x4000000\\0\"\\ \"fdt_addr_r=0x46000000\\0\"\\ \"scriptaddr=0x43900000\\0\"\\ \"script_offset_f=0x1fff000\\0\"\\ \"script_size_f=0x1000\\0\"\\ \"pxefile_addr_r=0x45900000\\0\"\\ \"ramdisk_addr_r=0x46100000\\0\"\\ \"fdtoverlay_addr_r=0x4f000000\\0\"\\ \"loadaddr=0x60000000\\0\"\\     . . .<\/code><\/pre>\n<p>\u041f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437\u044b Image \u0438 Image.lzma \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043a\u043e\u043c\u043c\u0430\u043d\u0434:<\/p>\n<pre><code class=\"bash\">.\/u-boot-2021.10-3.8.2\/tools\/mkimage \\    -A riscv -O linux -T kernel -C none -a 0x40200000 -e 0x40200000 \\    -n 6.1.31 -d Image uImage  .\/u-boot-2021.10-3.8.2\/tools\/mkimage \\    -A riscv -O linux -T kernel -C lzma -a 0x40200000 -e 0x40200000 \\    -n 6.1.31 -d Image.lzma uzImage<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 kernel_addr_r=<strong>0x40200000<\/strong> \u0438 \u0432\u0435\u0440\u0441\u0438\u044e \u044f\u0434\u0440\u0430 <strong>6.1.31<\/strong>. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b <strong>uImage<\/strong> \u0438 <strong>uzImage<\/strong> \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <strong>\/boot\/<\/strong> \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u043c\u043e\u0433 \u043d\u0430\u0439\u0442\u0438 \u044d\u0442\u0438 \u043e\u0431\u0440\u0430\u0437\u044b.<\/p>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a U-Boot \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \/boot\/boot.scr \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u044b \u043d\u0430\u0434\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0432 \u043f\u044f\u043c\u044f\u0442\u044c, \u043f\u043e \u043a\u0430\u043a\u0438\u043c \u0430\u0434\u0440\u0435\u0441\u0430\u043c \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u044d\u0442\u0438 \u043e\u0431\u0440\u0430\u0437\u044b \u0438 \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>\u041c\u044b \u043f\u0440\u0438\u0433\u043e\u0442\u043e\u0432\u0438\u043c \u0442\u0440\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441 SD-\u043a\u0430\u0440\u0442\u044b (<strong>mmc1<\/strong>), EMMC Flash (<strong>mmc0<\/strong>), \u0430 \u0442\u0430\u043a\u0436\u0435 NVME \u0434\u0438\u0441\u043a\u0430 (<strong>nvme0<\/strong>):<\/p>\n<p><strong>boot.sdhc.script<\/strong>:<\/p>\n<pre><code>mmc dev 1 mmcinfo ext4load mmc 1:2 ${kernel_comp_addr_r} \/boot\/uzImage ext4load mmc 1:2 ${fdt_addr_r} \/boot\/starfive\/jh7110-visionfive-v2.dtb setenv bootargs 'earlycon=sbi console=ttyS0,115200n8 console=tty1 ro root=\/dev\/mmcblk1p2 rootwait rootfstype=ext4 consoleblank=0 no_console_suspend' bootm ${kernel_comp_addr_r} - ${fdt_addr_r} <\/code><\/pre>\n<p><strong>boot.emmc.script<\/strong>:<\/p>\n<pre><code>mmc dev 0 mmcinfo ext4load mmc 0:2 ${kernel_comp_addr_r} \/boot\/uzImage ext4load mmc 0:2 ${fdt_addr_r} \/boot\/starfive\/jh7110-visionfive-v2.dtb setenv bootargs 'earlycon=sbi console=ttyS0,115200n8 console=tty1 ro root=\/dev\/mmcblk0p2 rootwait rootfstype=ext4 consoleblank=0 no_console_suspend' bootm ${kernel_comp_addr_r} - ${fdt_addr_r}<\/code><\/pre>\n<p><strong>boot.nvme.script<\/strong>:<\/p>\n<pre><code>nvme device 0 nvme info ext4load nvme 0:2 ${kernel_comp_addr_r} \/boot\/uzImage ext4load nvme 0:2 ${fdt_addr_r} \/boot\/starfive\/jh7110-visionfive-v2.dtb setenv bootargs 'earlycon=sbi console=ttyS0,115200n8 console=tty1 ro root=\/dev\/nvme0n1p2 rootwait rootfstype=ext4 consoleblank=0 no_console_suspend' bootm ${kernel_comp_addr_r} - ${fdt_addr_r}<\/code><\/pre>\n<p>\u0418 \u043f\u043e\u0434\u043f\u0438\u0448\u0435\u043c \u0438\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u044b <strong>mkimage<\/strong>:<\/p>\n<pre><code>.\/u-boot-2021.10-3.8.2\/tools\/mkimage -A $(ARCH) -T script -C none -n \"Boot Script\" -d boot.sdhc.script boot.sdhc.scr .\/u-boot-2021.10-3.8.2\/tools\/mkimage -A $(ARCH) -T script -C none -n \"Boot Script\" -d boot.emmc.script boot.emmc.scr .\/u-boot-2021.10-3.8.2\/tools\/mkimage -A $(ARCH) -T script -C none -n \"Boot Script\" -d boot.nvme.script boot.nvme.scr<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b: <strong>boot.sdhc.scr<\/strong>, <strong>boot.emmc.scr<\/strong> \u0438 <strong>boot.mvme.scr<\/strong> \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <strong>\/boot\/<\/strong> \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>\u0414\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441 SD-\u043a\u0430\u0440\u0442\u044b, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443:<\/p>\n<pre><code class=\"bash\">cd \/boot ln -sf boot.sdhc.scr boot.scr <\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u043c\u0438 \u043e\u0431\u0440\u0430\u0437\u044b, \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u043c\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432:<\/p>\n<pre><code>\/boot\/ \u251c\u2500\u2500 boot.emmc.scr \u251c\u2500\u2500 boot.nvme.scr \u251c\u2500\u2500 boot.sdhc.scr \u251c\u2500\u2500 starfive\/ \u2502\u00a0\u00a0 \u251c\u2500\u2500 jh7110-visionfive-v2.dtb \u2502\u00a0\u00a0 \u2514\u2500\u2500 vf2-overlay\/ \u2502\u00a0\u00a0     \u2514\u2500\u2500 vf2-overlay-uart3-i2c.dtbo \u251c\u2500\u2500 uImage \u2514\u2500\u2500 uzImage<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0432 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u043e\u043c \u043d\u0430\u043c\u0438 \u0441\u043b\u0443\u0447\u0430\u0435, \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c, \u0431\u0443\u0434\u044c \u0442\u043e SD-\u043a\u0430\u0440\u0442\u0430 \u0438\u043b\u0438 NVME \u0434\u0438\u0441\u043a, \u0438\u043c\u0435\u0435\u0442 \u0434\u0432\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0430:<\/p>\n<pre><code class=\"bash\">bash-5.1# fdisk -l \/dev\/sdi Disk \/dev\/sdi: 58.61 GiB, 62929764352 bytes, 122909696 sectors Disk model: MassStorageClass Units: sectors of 1 * 512 = 512 bytes Sector size (logical\/physical): 512 bytes \/ 512 bytes I\/O size (minimum\/optimal): 512 bytes \/ 512 bytes Disklabel type: gpt Disk identifier: 0A88052A-5572-5E43-B543-02CBC7D4290A  Device      Start      End  Sectors  Size Type \/dev\/sdi1    2048   526335   524288  256M EFI System \/dev\/sdi2  526336 36444159 35917824 17.1G Linux filesystem <\/code><\/pre>\n<p>\u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0430 <strong>fat32<\/strong> \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u0430 U-Boot, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0432 QSPI Nor Flash, \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0441\u043e \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0430 <strong>ext4<\/strong> \u043a\u043e\u0440\u043d\u0435\u0432\u0430\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043c\u044b \u0437\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a GRUB \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435:<\/p>\n<pre><code>efi\/boot\/bootriscv64.efi<\/code><\/pre>\n<p>\u0442\u043e \u043c\u044b \u0442\u0430\u043a\u0436\u0435 \u0441\u043c\u043e\u0436\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 (\u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435 U-Boot):<\/p>\n<pre><code class=\"bash\">VisionFive2 # fatload mmc 1:1 ${kernel_addr_r} efi\/boot\/bootriscv64.efi VisionFive2 # bootefi ${kernel_addr_r}<\/code><\/pre>\n<hr\/>\n<p>\u0413\u043e\u0442\u043e\u0432\u044b\u0435 \u043e\u0431\u0440\u0430\u0437\u044b \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c: <a href=\"https:\/\/ftp.radix.pro\/radix\/system\/releases\/1.9.219\/riscv64-glibc\/visionfive2\/visionfive2.efi32fs\" rel=\"noopener noreferrer nofollow\">visionfive2.efi32fs<\/a> \u0438 <a href=\"https:\/\/ftp.radix.pro\/radix\/system\/releases\/1.9.219\/riscv64-glibc\/visionfive2\/visionfive2.ext4fs\" rel=\"noopener noreferrer nofollow\">visionfive2.ext4fs<\/a> \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438\u0437 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 <a href=\"https:\/\/ftp.radix.pro\/radix\/system\/releases\/1.9.219\/riscv64-glibc\/visionfive2\/\" rel=\"noopener noreferrer nofollow\">releases<\/a> FTP-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 <a href=\"https:\/\/ftp.radix.pro\/radix\/system\/releases\/1.9.219\/riscv64-glibc\/visionfive2\/\" rel=\"noopener noreferrer nofollow\">https:\/\/ftp.radix.pro\/<\/a>, \u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 <a href=\"https:\/\/ftp.radix.pro\/radix\/system\/releases\/1.9.219\/riscv64-glibc\/visionfive2\/write-efiboot-image\" rel=\"noopener noreferrer nofollow\">write-efiboot-image<\/a> \u043f\u043e <a href=\"https:\/\/radix.pro\/devices\/visionfive2\/#boot_images\" rel=\"noopener noreferrer nofollow\">\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438<\/a> \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u0443\u044e SD-\u043a\u0430\u0440\u0442\u0443 \u0441 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 <a href=\"https:\/\/radix.pro\/\" rel=\"noopener noreferrer nofollow\">Radix cross Linux<\/a>.<\/p>\n<p>\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 <a href=\"https:\/\/radix.pro\/platform\/install\/\" rel=\"noopener noreferrer nofollow\">RcL<\/a> \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445 <a href=\"https:\/\/radix.pro\/platform\/download\/\" rel=\"noopener noreferrer nofollow\">Download<\/a>, <a href=\"https:\/\/radix.pro\/platform\/install\/\" rel=\"noopener noreferrer nofollow\">Install<\/a>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 <a href=\"https:\/\/radix.pro\/devices\/visionfive2\/\" rel=\"noopener noreferrer nofollow\">Devices,<\/a> \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u043e\u043c SBC VisionFive2.<\/p>\n<p>\u041e\u0442\u043c\u0435\u0442\u0438\u043c \u0437\u0434\u0435\u0441\u044c, \u0447\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0430 <a href=\"https:\/\/radix.pro\/\" rel=\"noopener noreferrer nofollow\">Radix cross Linux<\/a> \u0438\u043c\u0435\u0435\u0442 \u0432 \u0441\u0432\u043e\u0435\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b, \u043a\u0430\u043a \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0430\u043a\u0438\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u043a\u0430\u043a GCC-12.2.0, LLVM-16.0.2, QtCreator, Glade, Cambalache \u0438 \u043c\u043d\u043e\u0433\u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u0445. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b Libreoffice-7.6.2.1, Firefox-118.0.1, Thunderbird-115.3.1, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c SBC VisionFive2 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 (old school) \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b. \u041f\u043e\u043b\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u0444\u0430\u0439\u043b\u0435 <a href=\"https:\/\/ftp.radix.pro\/radix\/system\/releases\/1.9.219\/riscv64-glibc\/visionfive2\/visionfive2.pkglist\" rel=\"noopener noreferrer nofollow\">visionfive2.pkglist<\/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\/774248\/\"> https:\/\/habr.com\/ru\/articles\/774248\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412 <a href=\"https:\/\/habr.com\/ru\/articles\/773852\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0431\u043e\u0440\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u044f\u0434\u0440\u043e Linux, \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f <a href=\"https:\/\/www.starfivetech.com\/en\/site\/company\/\" rel=\"noopener noreferrer nofollow\">StarFive<\/a> \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 <a href=\"https:\/\/github.com\/starfive-tech\/linux\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/starfive-tech\/linux<\/a>. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u044f\u0434\u0440\u0430 (boot.scr) \u0434\u043b\u044f U-Boot.<\/p>\n<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f StarFive \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0432\u0435\u0434\u0435\u0442 \u0434\u0432\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u044f\u0434\u0440\u0430: 5.15.x \u0438 6.1.x. \u041d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0442\u043a\u0430 6.1.x, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0432\u043e\u0437\u044c\u043c\u0435\u043c snapshoot \u0442\u0435\u0433\u0430 <strong>VF2_6.1_v3.8.2<\/strong>:<\/p>\n<pre><code class=\"bash\">git clone https:\/\/github.com\/starfive-tech\/linux.git cd linux git archive --format=tar --prefix=linux-starfive-6.1.31-3.8.2\/ 22e0315434b13cdde93ded101b567d5d1c4d5a2e | \\     xz >..\/linux-starfive-6.1.31-3.8.2.tar.xz cd .. rm -rf linux tar xJvf linux-starfive-6.1.31-3.8.2.tar.xz<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u044f\u0434\u0440\u0430, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0442\u0435\u0433\u0443 <strong>VF2_6.1_v3.8.2<\/strong>, \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 .\/linux-starfive-6.1.31-3.8.2\/.<\/p>\n<p>\u041a\u0430\u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 toolchain \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b\u0438 \u0432 <a href=\"https:\/\/habr.com\/ru\/articles\/773852\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/a><\/p>\n<p>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0434\u043b\u044f VisionFive2 <strong>starfive_visionfive2_defconfig<\/strong> \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 .\/linux-starfive-6.1.31-3.8.2\/arch\/riscv\/configs\/ \u0438 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b .\/linux-starfive-6.1.31-3.8.2\/.config, \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u044b\u0439 \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u043d\u0443\u0436\u0434, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 (\u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 .\/linux-starfive-6.1.31-3.8.2\/):<\/p>\n<pre><code class=\"bash\">#!\/bin\/sh  JOBS=-j24  PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \\ make ${JOBS} ARCH=riscv CROSS_COMPILE=\"\/opt\/toolchains\/riscv64-RV64GC-linux-glibc\/1.9.8\/bin\/riscv64-rv64gc-linux-gnu-\" \\      KCFLAGS=\"-Wno-unused-variable -Wno-undef -Wno-unused-label -Wno-unused-function -Wno-address -Wno-discarded-qualifiers -Wno-int-conversion -Wimplicit-fallthrough=0 -Wformat=0\" \\      HOSTLDFLAGS=\"-L\/lib64 -L\/usr\/lib64\" \\      starfive_visionfive2_defconfig <\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u043d\u0435\u0441\u0442\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u044f\u0434\u0440\u0430, \u043f\u0435\u0440\u0435\u0434 \u0441\u0431\u043e\u0440\u043a\u043e\u0439. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438:<\/p>\n<pre><code class=\"bash\"># # Userland interfaces # CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_PSAUX=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 CONFIG_INPUT_JOYDEV=m CONFIG_INPUT_EVDEV=m # CONFIG_INPUT_EVBUG is not set<\/code><\/pre>\n<p>\u043c\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u044b\u0448\u0438 \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435.<\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u044f:<\/p>\n<pre><code>CONFIG_DRM_IMG=y CONFIG_DRM_IMG_ROGUE=y CONFIG_DRM_LEGACY=y<\/code><\/pre>\n<p>\u0432\u0435\u0434\u044c SoC JH7110 \u0438\u043c\u0435\u0435\u0442 \u0432 \u0441\u0432\u043e\u0435\u043c \u0441\u043e\u0441\u0442\u0430\u0432\u0435 GPU Imagination MG BXE-4-32 MC1.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0444\u0430\u0439\u043b\u0430 .\/linux-starfive-6.1.31-3.8.2\/<strong>.config<\/strong>, \u0434\u043b\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 make oldconfig:<\/p>\n<pre><code class=\"bash\">#!\/bin\/sh  JOBS=-j24  PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \\ make ${JOBS} ARCH=riscv CROSS_COMPILE=\"\/opt\/toolchains\/riscv64-RV64GC-linux-glibc\/1.9.8\/bin\/riscv64-rv64gc-linux-gnu-\" \\      KCFLAGS=\"-Wno-unused-variable -Wno-undef -Wno-unused-label -Wno-unused-function -Wno-address -Wno-discarded-qualifiers -Wno-int-conversion -Wimplicit-fallthrough=0 -Wformat=0\" \\      HOSTLDFLAGS=\"-L\/lib64 -L\/usr\/lib64\" \\      oldconfig<\/code><\/pre>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0441\u0431\u043e\u0440\u043a\u0438 \u044f\u0434\u0440\u0430 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"bash\">#!\/bin\/sh  JOBS=-j24  PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \\ make ${JOBS} ARCH=riscv CROSS_COMPILE=\"\/opt\/toolchains\/riscv64-RV64GC-linux-glibc\/1.9.8\/bin\/riscv64-rv64gc-linux-gnu-\" \\      KCFLAGS=\"-Wno-unused-variable -Wno-undef -Wno-unused-label -Wno-unused-function -Wno-address -Wno-discarded-qualifiers -Wno-int-conversion -Wimplicit-fallthrough=0 -Wformat=0\" \\      HOSTLDFLAGS=\"-L\/lib64 -L\/usr\/lib64\" \\      oldconfig  PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \\ make ${JOBS} ARCH=riscv CROSS_COMPILE=\"\/opt\/toolchains\/riscv64-RV64GC-linux-glibc\/1.9.8\/bin\/riscv64-rv64gc-linux-gnu-\" \\      KCFLAGS=\"-Wno-unused-variable -Wno-undef -Wno-unused-label -Wno-unused-function -Wno-address -Wno-discarded-qualifiers -Wno-int-conversion -Wimplicit-fallthrough=0 -Wformat=0\" \\      HOSTLDFLAGS=\"-L\/lib64 -L\/usr\/lib64\" \\      modules_prepare  PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \\ make ${JOBS} ARCH=riscv CROSS_COMPILE=\"\/opt\/toolchains\/riscv64-RV64GC-linux-glibc\/1.9.8\/bin\/riscv64-rv64gc-linux-gnu-\" \\      KCFLAGS=\"-Wno-unused-variable -Wno-undef -Wno-unused-label -Wno-unused-function -Wno-address -Wno-discarded-qualifiers -Wno-int-conversion -Wimplicit-fallthrough=0 -Wformat=0\" \\      HOSTLDFLAGS=\"-L\/lib64 -L\/usr\/lib64\" \\      Image  PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \\ make ${JOBS} ARCH=riscv CROSS_COMPILE=\"\/opt\/toolchains\/riscv64-RV64GC-linux-glibc\/1.9.8\/bin\/riscv64-rv64gc-linux-gnu-\" \\      KCFLAGS=\"-Wno-unused-variable -Wno-undef -Wno-unused-label -Wno-unused-function -Wno-address -Wno-discarded-qualifiers -Wno-int-conversion -Wimplicit-fallthrough=0 -Wformat=0\" \\      HOSTLDFLAGS=\"-L\/lib64 -L\/usr\/lib64\" \\      Image.lzma  PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \\ make ${JOBS} ARCH=riscv CROSS_COMPILE=\"\/opt\/toolchains\/riscv64-RV64GC-linux-glibc\/1.9.8\/bin\/riscv64-rv64gc-linux-gnu-\" \\      KCFLAGS=\"-Wno-unused-variable -Wno-undef -Wno-unused-label -Wno-unused-function -Wno-address -Wno-discarded-qualifiers -Wno-int-conversion -Wimplicit-fallthrough=0 -Wformat=0\" \\      HOSTLDFLAGS=\"-L\/lib64 -L\/usr\/lib64\" \\      modules  PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \\ make ${JOBS} ARCH=riscv CROSS_COMPILE=\"\/opt\/toolchains\/riscv64-RV64GC-linux-glibc\/1.9.8\/bin\/riscv64-rv64gc-linux-gnu-\" \\      KCFLAGS=\"-Wno-unused-variable -Wno-undef -Wno-unused-label -Wno-unused-function -Wno-address -Wno-discarded-qualifiers -Wno-int-conversion -Wimplicit-fallthrough=0 -Wformat=0\" \\      HOSTLDFLAGS=\"-L\/lib64 -L\/usr\/lib64\" \\      dtbs  PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \\ make ${JOBS} ARCH=riscv CROSS_COMPILE=\"\/opt\/toolchains\/riscv64-RV64GC-linux-glibc\/1.9.8\/bin\/riscv64-rv64gc-linux-gnu-\" \\      KCFLAGS=\"-Wno-unused-variable -Wno-undef -Wno-unused-label -Wno-unused-function -Wno-address -Wno-discarded-qualifiers -Wno-int-conversion -Wimplicit-fallthrough=0 -Wformat=0\" \\      HOSTLDFLAGS=\"-L\/lib64 -L\/usr\/lib64\" \\      modules_install DEPMOD=true INSTALL_MOD_PATH=`pwd`\/_dist<\/code><\/pre>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 .\/linux-starfive-6.1.31-3.8.2\/ \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u044b \u044f\u0434\u0440\u0430: .\/linux-starfive-6.1.31-3.8.2\/arch\/riscv\/boot\/Image{,.lzma} \u0438 \u043c\u043e\u0434\u0443\u043b\u0438 .\/linux-starfive-6.1.31-3.8.2\/_dist\/lib\/modules\/6.1.31 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <strong>\/lib\/modules\/<\/strong> \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>DeviceTree-\u0444\u0430\u0439\u043b .\/linux-starfive-6.1.31-3.8.2\/arch\/riscv\/boot\/dts\/starfive\/jh7110-visionfive-v2.dtb, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0444\u0430\u0439\u043b .\/linux-starfive-6.1.31-3.8.2\/arch\/riscv\/boot\/dts\/starfive\/vf2-overlay\/vf2-overlay-uart3-i2c.dtbo \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <strong>\/boot\/starfive\/<\/strong> \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 <strong>mkimage<\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 <a href=\"https:\/\/habr.com\/ru\/articles\/773852\/\" rel=\"noopener noreferrer nofollow\">\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u043a\u043e\u0434\u043e\u0432 U-Boot<\/a>, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430\u044f \u0434\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043e\u0431\u0440\u0430\u0437\u043e\u0432.<\/p>\n<p>\u0412\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u044f\u0434\u0440\u0430, devicetree \u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 .\/u-boot-2021.10-3.8.2-orig\/include\/configs\/starfive-visionfive2.h:<\/p>\n<pre><code class=\"cpp\">#define CONFIG_EXTRA_ENV_SETTINGS\\ \"fdt_high=0xffffffffffffffff\\0\"\\ \"initrd_high=0xffffffffffffffff\\0\"\\ \"kernel_addr_r=0x40200000\\0\"\\ \"kernel_comp_addr_r=0x5a000000\\0\"\\ \"kernel_comp_size=0x4000000\\0\"\\ \"fdt_addr_r=0x46000000\\0\"\\ \"scriptaddr=0x43900000\\0\"\\ \"script_offset_f=0x1fff000\\0\"\\ \"script_size_f=0x1000\\0\"\\ \"pxefile_addr_r=0x45900000\\0\"\\ \"ramdisk_addr_r=0x46100000\\0\"\\ \"fdtoverlay_addr_r=0x4f000000\\0\"\\ \"loadaddr=0x60000000\\0\"\\     . . .<\/code><\/pre>\n<p>\u041f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437\u044b Image \u0438 Image.lzma \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043a\u043e\u043c\u043c\u0430\u043d\u0434:<\/p>\n<pre><code class=\"bash\">.\/u-boot-2021.10-3.8.2\/tools\/mkimage \\    -A riscv -O linux -T kernel -C none -a 0x40200000 -e 0x40200000 \\    -n 6.1.31 -d Image uImage  .\/u-boot-2021.10-3.8.2\/tools\/mkimage \\    -A riscv -O linux -T kernel -C lzma -a 0x40200000 -e 0x40200000 \\    -n 6.1.31 -d Image.lzma uzImage<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 kernel_addr_r=<strong>0x40200000<\/strong> \u0438 \u0432\u0435\u0440\u0441\u0438\u044e \u044f\u0434\u0440\u0430 <strong>6.1.31<\/strong>. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b <strong>uImage<\/strong> \u0438 <strong>uzImage<\/strong> \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <strong>\/boot\/<\/strong> \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a \u043c\u043e\u0433 \u043d\u0430\u0439\u0442\u0438 \u044d\u0442\u0438 \u043e\u0431\u0440\u0430\u0437\u044b.<\/p>\n<p>\u0417\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a U-Boot \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \/boot\/boot.scr \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u044b \u043d\u0430\u0434\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0432 \u043f\u044f\u043c\u044f\u0442\u044c, \u043f\u043e \u043a\u0430\u043a\u0438\u043c \u0430\u0434\u0440\u0435\u0441\u0430\u043c \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u044d\u0442\u0438 \u043e\u0431\u0440\u0430\u0437\u044b \u0438 \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>\u041c\u044b \u043f\u0440\u0438\u0433\u043e\u0442\u043e\u0432\u0438\u043c \u0442\u0440\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441 SD-\u043a\u0430\u0440\u0442\u044b (<strong>mmc1<\/strong>), EMMC Flash (<strong>mmc0<\/strong>), \u0430 \u0442\u0430\u043a\u0436\u0435 NVME \u0434\u0438\u0441\u043a\u0430 (<strong>nvme0<\/strong>):<\/p>\n<p><strong>boot.sdhc.script<\/strong>:<\/p>\n<pre><code>mmc dev 1 mmcinfo ext4load mmc 1:2 ${kernel_comp_addr_r} \/boot\/uzImage ext4load mmc 1:2 ${fdt_addr_r} \/boot\/starfive\/jh7110-visionfive-v2.dtb setenv bootargs 'earlycon=sbi console=ttyS0,115200n8 console=tty1 ro root=\/dev\/mmcblk1p2 rootwait rootfstype=ext4 consoleblank=0 no_console_suspend' bootm ${kernel_comp_addr_r} - ${fdt_addr_r} <\/code><\/pre>\n<p><strong>boot.emmc.script<\/strong>:<\/p>\n<pre><code>mmc dev 0 mmcinfo ext4load mmc 0:2 ${kernel_comp_addr_r} \/boot\/uzImage ext4load mmc 0:2 ${fdt_addr_r} \/boot\/starfive\/jh7110-visionfive-v2.dtb setenv bootargs 'earlycon=sbi console=ttyS0,115200n8 console=tty1 ro root=\/dev\/mmcblk0p2 rootwait rootfstype=ext4 consoleblank=0 no_console_suspend' bootm ${kernel_comp_addr_r} - ${fdt_addr_r}<\/code><\/pre>\n<p><strong>boot.nvme.script<\/strong>:<\/p>\n<pre><code>nvme device 0 nvme info ext4load nvme 0:2 ${kernel_comp_addr_r} \/boot\/uzImage ext4load nvme 0:2 ${fdt_addr_r} \/boot\/starfive\/jh7110-visionfive-v2.dtb setenv bootargs 'earlycon=sbi console=ttyS0,115200n8 console=tty1 ro root=\/dev\/nvme0n1p2 rootwait rootfstype=ext4 consoleblank=0 no_console_suspend' bootm ${kernel_comp_addr_r} - ${fdt_addr_r}<\/code><\/pre>\n<p>\u0418 \u043f\u043e\u0434\u043f\u0438\u0448\u0435\u043c \u0438\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u044b <strong>mkimage<\/strong>:<\/p>\n<pre><code>.\/u-boot-2021.10-3.8.2\/tools\/mkimage -A $(ARCH) -T script -C none -n \"Boot Script\" -d boot.sdhc.script boot.sdhc.scr .\/u-boot-2021.10-3.8.2\/tools\/mkimage -A $(ARCH) -T script -C none -n \"Boot Script\" -d boot.emmc.script boot.emmc.scr .\/u-boot-2021.10-3.8.2\/tools\/mkimage -A $(ARCH) -T script -C none -n \"Boot Script\" -d boot.nvme.script boot.nvme.scr<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b: <strong>boot.sdhc.scr<\/strong>, <strong>boot.emmc.scr<\/strong> \u0438 <strong>boot.mvme.scr<\/strong> \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 <strong>\/boot\/<\/strong> \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<p>\u0414\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441 SD-\u043a\u0430\u0440\u0442\u044b, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443:<\/p>\n<pre><code class=\"bash\">cd \/boot ln -sf boot.sdhc.scr boot.scr <\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u043c\u0438 \u043e\u0431\u0440\u0430\u0437\u044b, \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u043c\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432:<\/p>\n<pre><code>\/boot\/ \u251c\u2500\u2500 boot.emmc.scr \u251c\u2500\u2500 boot.nvme.scr \u251c\u2500\u2500 boot.sdhc.scr \u251c\u2500\u2500 starfive\/ \u2502\u00a0\u00a0 \u251c\u2500\u2500<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-360283","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/360283","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=360283"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/360283\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=360283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=360283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=360283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}