]> glassweightruler.freedombox.rocks Git - Ventoy.git/blobdiff - DOC/BuildVentoyFromSource.txt
Merge branch 'master' of https://github.com/Ventoy/Ventoy
[Ventoy.git] / DOC / BuildVentoyFromSource.txt
index 8aae2823f0e9b8f28ba3bf465792ac36e0eb4969..ac71c8eaf80a43488600e8b22696ca21e43a11e1 100644 (file)
@@ -1,9 +1,9 @@
 \r
 ==========================================\r
 \r
 ==========================================\r
-1. Compile Enviroment\r
+1. Compile Environment\r
 ==========================================\r
 ==========================================\r
-    My build envrioment is CentOS 7.8 x86_64. So here I first explain how to create the build environment from scratch.\r
-    Because Ventoy is based on many open source projects, so the environment is important. I suggest you test it on a virtual machine firstly.\r
+    My build environment is CentOS 7.8 x86_64. So here I first explain how to create the build environment from scratch.\r
+    Ventoy is based on many open source projects, so the build environment is important. I suggest you first test it on a virtual machine.\r
 \r
 1.1 Install CentOS 7.8\r
     I use CentOS-7-x86_64-Everything-2003.iso and select Minimal install\r
 \r
 1.1 Install CentOS 7.8\r
     I use CentOS-7-x86_64-Everything-2003.iso and select Minimal install\r
 ==========================================\r
 2. Download Source Code\r
 ==========================================\r
 ==========================================\r
 2. Download Source Code\r
 ==========================================\r
-2.1 Download Ventoy source code from github and decompress it. \r
+2.1 Download Ventoy source code from GitHub and decompress it. \r
     Next I assume that you have unzipped the code into the /home directory (check /home/Ventoy-master/README.md file for the directory layout).\r
     \r
     Next I assume that you have unzipped the code into the /home directory (check /home/Ventoy-master/README.md file for the directory layout).\r
     \r
-2.2 Download third-part source code and tool\r
+2.2 Download third-party source code and tool\r
     \r
     https://www.fefe.de/dietlibc/dietlibc-0.34.tar.xz                    ===>  /home/Ventoy-master/DOC/dietlibc-0.34.tar.xz\r
     https://musl.libc.org/releases/musl-1.2.1.tar.gz                     ===>  /home/Ventoy-master/DOC/musl-1.2.1.tar.gz\r
     \r
     https://www.fefe.de/dietlibc/dietlibc-0.34.tar.xz                    ===>  /home/Ventoy-master/DOC/dietlibc-0.34.tar.xz\r
     https://musl.libc.org/releases/musl-1.2.1.tar.gz                     ===>  /home/Ventoy-master/DOC/musl-1.2.1.tar.gz\r
@@ -34,7 +34,7 @@
     https://codeload.github.com/libfuse/libfuse/zip/fuse-2.9.9           ===>  /home/Ventoy-master/ExFAT/libfuse-fuse-2.9.9.zip\r
     https://releases.linaro.org/components/toolchain/binaries/7.4-2019.02/aarch64-linux-gnu/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz           ===>  /opt/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz\r
     https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarballs/aarch64--uclibc--stable-2020.08-1.tar.bz2 ===> /opt/aarch64--uclibc--stable-2020.08-1.tar.bz2\r
     https://codeload.github.com/libfuse/libfuse/zip/fuse-2.9.9           ===>  /home/Ventoy-master/ExFAT/libfuse-fuse-2.9.9.zip\r
     https://releases.linaro.org/components/toolchain/binaries/7.4-2019.02/aarch64-linux-gnu/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz           ===>  /opt/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz\r
     https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarballs/aarch64--uclibc--stable-2020.08-1.tar.bz2 ===> /opt/aarch64--uclibc--stable-2020.08-1.tar.bz2\r
-    http://ftp.loongnix.org/toolchain/gcc/release/mips-loongson-gcc7.3-2019.06-29-linux-gnu.tar.gz ===> /opt/mips-loongson-gcc7.3-2019.06-29-linux-gnu.tar.gz\r
+    https://github.com/ventoy/vtoytoolchain/releases/download/1.0/mips-loongson-gcc7.3-2019.06-29-linux-gnu.tar.gz ===> /opt/mips-loongson-gcc7.3-2019.06-29-linux-gnu.tar.gz\r
     https://github.com/ventoy/musl-cross-make/releases/download/latest/output.tar.bz2 ===> /opt/output.tar.bz2\r
 \r
 \r
     https://github.com/ventoy/musl-cross-make/releases/download/latest/output.tar.bz2 ===> /opt/output.tar.bz2\r
 \r
 \r
@@ -42,7 +42,7 @@
     http://www.tinycorelinux.net/11.x/x86_64/release/distribution_files/corepure64.gz ===> /home/Ventoy-master/LiveCD/ISO/EFI/boot/corepure64.gz\r
     http://www.tinycorelinux.net/11.x/x86_64/release/distribution_files/modules64.gz ===> /home/Ventoy-master/LiveCD/ISO/EFI/boot/modules64.gz    \r
 \r
     http://www.tinycorelinux.net/11.x/x86_64/release/distribution_files/corepure64.gz ===> /home/Ventoy-master/LiveCD/ISO/EFI/boot/corepure64.gz\r
     http://www.tinycorelinux.net/11.x/x86_64/release/distribution_files/modules64.gz ===> /home/Ventoy-master/LiveCD/ISO/EFI/boot/modules64.gz    \r
 \r
-2.3 Prepare third-part tools\r
+2.3 Prepare third-party tools\r
     cd /home/Ventoy-master/DOC/\r
     tar xf musl-1.2.1.tar.gz\r
     cd musl-1.2.1\r
     cd /home/Ventoy-master/DOC/\r
     tar xf musl-1.2.1.tar.gz\r
     cd musl-1.2.1\r
@@ -54,7 +54,7 @@
     mv /opt/output /opt/mips64el-linux-musl-gcc730\r
     \r
 \r
     mv /opt/output /opt/mips64el-linux-musl-gcc730\r
     \r
 \r
-2.4 Set PATH envrioment\r
+2.4 Set PATH environment\r
     export PATH=$PATH:/opt/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin:/opt/aarch64--uclibc--stable-2020.08-1/bin:/opt/mips64el-linux-musl-gcc730/bin\r
     better to add this line to /root/.bashrc and relogin as root\r
 \r
     export PATH=$PATH:/opt/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin:/opt/aarch64--uclibc--stable-2020.08-1/bin:/opt/mips64el-linux-musl-gcc730/bin\r
     better to add this line to /root/.bashrc and relogin as root\r
 \r
 ==========================================\r
 3. All in one script\r
 ==========================================\r
 ==========================================\r
 3. All in one script\r
 ==========================================\r
-    I have made a all_in_one.sh, you can run this script to build and pack ventoy.\r
+    I have made an all-in-one script `all_in_one.sh`. You can run this script to build and pack ventoy.\r
     If you want to compile a certain part separately, you can continue to refer to the later chapters of this text.\r
     \r
     cd /home/Ventoy-master/INSTALL\r
     sh all_in_one.sh\r
 \r
     It should be noted that:\r
     If you want to compile a certain part separately, you can continue to refer to the later chapters of this text.\r
     \r
     cd /home/Ventoy-master/INSTALL\r
     sh all_in_one.sh\r
 \r
     It should be noted that:\r
-    1. Only grub2/EDK2/IPXE will be recompiled in all_in_one.sh. Other part contains the binaries and are few modified, so will no be recompiled everytime.\r
+    1. Only grub2/EDK2/IPXE will be recompiled in all_in_one.sh. Other parts contain binaries and are rarely modified, so will not be recompiled everytime.\r
        You can rebuild these parts separately if you want.\r
        \r
        You can rebuild these parts separately if you want.\r
        \r
-    2. some part of Ventoy has 32bit&64bit version (like 4.9 4.10 4.11 follows)\r
-       all_in_one.sh only build 64bit version of them, if you want to rebuild the 32bit verison. You should create a 32bit CentOS environment and build them.\r
-       Fortunately these parts are few modified, you only need to build once or you can directly use the binary I have built.\r
+    2. Some parts of Ventoy have a 32-bit and 64-bit version (like 4.9, 4.10, 4.11 follows)\r
+       all_in_one.sh only builds the 64bit version of them. If you want to rebuild the 32bit verison, you should create a 32-bit CentOS environment and build them.\r
+       Fortunately these parts are rarely modified, so you only need to build once or you can directly use the binaries I have built.\r
 \r
 \r
-    Besides, after a fully compile and pack, you can only build the part you modified (for example grub2) and run ventoy_pack.sh to generate the package.\r
+    Besides, after a full compile and packaging, you can only build the part you modified (for example grub2) and run ventoy_pack.sh to generate the package.\r
 \r
 ==========================================\r
 4. Build every part of Ventoy\r
 \r
 ==========================================\r
 4. Build every part of Ventoy\r
     cd /home/Ventoy-master/VtoyTool\r
     sh build.sh\r
 \r
     cd /home/Ventoy-master/VtoyTool\r
     sh build.sh\r
 \r
-4.8 == Build vtoyfat ==    \r
-    cd /home/Ventoy-master/vtoyfat/fat_io_lib\r
+4.8 == Build vtoycli ==    \r
+    cd /home/Ventoy-master/vtoycli/fat_io_lib\r
     sh buildlib.sh\r
     sh buildlib.sh\r
-    cd /home/Ventoy-master/vtoyfat\r
+    cd /home/Ventoy-master/vtoycli\r
     sh build.sh\r
 \r
 4.9 == Build exfat-util ==\r
     sh build.sh\r
 \r
 4.9 == Build exfat-util ==\r
     After that, copy EXFAT/shared/mkexfatfs         ===> /home/Ventoy-master/INSTALL/tool/mkexfatfs_64\r
     After that, copy EXFAT/shared/mount.exfat-fuse  ===> /home/Ventoy-master/INSTALL/tool/mount.exfat-fuse_64\r
 \r
     After that, copy EXFAT/shared/mkexfatfs         ===> /home/Ventoy-master/INSTALL/tool/mkexfatfs_64\r
     After that, copy EXFAT/shared/mount.exfat-fuse  ===> /home/Ventoy-master/INSTALL/tool/mount.exfat-fuse_64\r
 \r
-    Use the same build step to build exfat-util 32bit in a 32bit CentOS system and get mkexfatfs_32 and mount.exfat-fuse_32\r
+    Use the same build step to build exfat-util 32-bit in a 32-bit CentOS system and get mkexfatfs_32 and mount.exfat-fuse_32\r
 \r
 4.10 == Build vtoy_fuse_iso_64/vtoy_fuse_iso_32 ==\r
     cd /home/Ventoy-master/FUSEISO\r
     sh build_libfuse.sh\r
     sh build.sh\r
     \r
 \r
 4.10 == Build vtoy_fuse_iso_64/vtoy_fuse_iso_32 ==\r
     cd /home/Ventoy-master/FUSEISO\r
     sh build_libfuse.sh\r
     sh build.sh\r
     \r
-    Use the same build step to build in a 32bit CentOS system and get vtoy_fuse_iso_32\r
+    Use the same build step to build in a 32-bit CentOS system and get vtoy_fuse_iso_32\r
    \r
 4.11 == Build unsquashfs_64/unsquashfs_32 ==\r
     cd /home/Ventoy-master/SQUASHFS/SRC\r
    \r
 4.11 == Build unsquashfs_64/unsquashfs_32 ==\r
     cd /home/Ventoy-master/SQUASHFS/SRC\r
     cd /home/Ventoy-master/SQUASHFS/squashfs-tools-4.4/squashfs-tools\r
     sh build.sh\r
     \r
     cd /home/Ventoy-master/SQUASHFS/squashfs-tools-4.4/squashfs-tools\r
     sh build.sh\r
     \r
-    Use the same build step to build in a 32bit CentOS system and get unsquashfs_32\r
+    Use the same build step to build in a 32-bit CentOS system and get unsquashfs_32\r
    \r
 4.12 == Build vblade_64/vblade_32 ==\r
     cd /home/Ventoy-master/VBLADE/vblade-master\r
    \r
 4.12 == Build vblade_64/vblade_32 ==\r
     cd /home/Ventoy-master/VBLADE/vblade-master\r
    make -f ventoy_makefile\r
    strip --strip-all xzminidec\r
 \r
    make -f ventoy_makefile\r
    strip --strip-all xzminidec\r
 \r
-4.16 == Build xzminidec64 ==\r
+4.16 == Build xzminidec64/xzminidec64_musl ==\r
    cd /home/Ventoy-master/Ventoy2Disk/Ventoy2Disk/xz-embedded-20130513/userspace\r
    cd /home/Ventoy-master/Ventoy2Disk/Ventoy2Disk/xz-embedded-20130513/userspace\r
-   make -f ventoy_makefile64\r
+   make -f ventoy_makefile64 or make -f ventoy_makefile64_musl\r
    strip --strip-all xzminidec\r
 \r
    strip --strip-all xzminidec\r
 \r
-4.17 == Build iso9660_x64.efi ==\r
+4.17 == Build iso9660_x64.efi/udf_x64.efi/iso9660_ia32.efi/udf_ia32.efi/iso9660_aa64.efi/udf_aa64.efi/ ==\r
    This efi driver is from https://github.com/pbatard/efifs\r
    Follow all the build instructions in this project. I modified 3 files (the original and modified source are at /home/Ventoy-master/EDK2/efiffs)\r
 \r
    This efi driver is from https://github.com/pbatard/efifs\r
    Follow all the build instructions in this project. I modified 3 files (the original and modified source are at /home/Ventoy-master/EDK2/efiffs)\r
 \r
   make\r
   aarch64-buildroot-linux-uclibc-strip --strip-all lunzip\r
 \r
   make\r
   aarch64-buildroot-linux-uclibc-strip --strip-all lunzip\r
 \r
+4.17 == Build xzminidecaa64 ==\r
+   cd /home/Ventoy-master/Ventoy2Disk/Ventoy2Disk/xz-embedded-20130513/userspace\r
+   make -f ventoy_makefileaa64\r
+   strip --strip-all xzminidec\r
+\r
+4.18 == Build xzminidecm64e ==\r
+   cd /home/Ventoy-master/Ventoy2Disk/Ventoy2Disk/xz-embedded-20130513/userspace\r
+   make -f ventoy_makefilem64e\r
+   strip --strip-all xzminidec\r
+\r
 \r
 \r
 ==========================================\r
 \r
 \r
 ==========================================\r
  ISNTALL/ventoy/7z/64/7za.exe  SHA-256: 8117e40ee7f824f63373a4f5625bb62749f69159d0c449b3ce2f35aad3b83549\r
  ISNTALL/ventoy/7z/32/7za.exe  SHA-256: ea308c76a2f927b160a143d94072b0dce232e04b751f0c6432a94e05164e716d\r
  \r
  ISNTALL/ventoy/7z/64/7za.exe  SHA-256: 8117e40ee7f824f63373a4f5625bb62749f69159d0c449b3ce2f35aad3b83549\r
  ISNTALL/ventoy/7z/32/7za.exe  SHA-256: ea308c76a2f927b160a143d94072b0dce232e04b751f0c6432a94e05164e716d\r
  \r
-\r
-\r
+5.13 ./Ventoy/Unix/ventoy_unix/DragonFly/sbin/dmsetup\r
+ download from https://cdimage.debian.org/mirror/dragonflybsd.org/iso-images/dfly-x86_64-5.8.3_REL.iso.bz2\r
+ extract from the ISO file  sbin/dmsetup\r
+ dmsetup  SHA-256: bedcf26650e87edfe961e33bae20d832bce73efd4b6239f9a6a5785661e4e698\r
+\r
+5.14 ./LiveCD/ISO/EFI/boot/vmlinuz64\r
+ download from http://www.tinycorelinux.net/11.x/x86_64/archive/11.0/distribution_files/vmlinuz64    \r
+ vmlinuz64  SHA-256: 641077fc1f9914af244c248453005f56536ba9e7f54ba3e52402f26709ddb8a5\r