\r
==========================================\r
-1. Compile Enviroment\r
+1. Compile Environment\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
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
-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
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://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
http://www.tinycorelinux.net/11.x/x86_64/release/distribution_files/vmlinuz64 ===> /home/Ventoy-master/LiveCD/ISO/EFI/boot/vmlinuz64\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
- http://distro.ibiblio.org/tinycorelinux/11.x/x86_64/tcz/glib2.tcz /home/Ventoy-master/LiveCD/VTOY/ventoy/tcz/glib2.tcz\r
- http://distro.ibiblio.org/tinycorelinux/11.x/x86_64/tcz/libffi.tcz /home/Ventoy-master/LiveCD/VTOY/ventoy/tcz/libffi.tcz\r
- http://distro.ibiblio.org/tinycorelinux/11.x/x86_64/tcz/liblvm2.tcz /home/Ventoy-master/LiveCD/VTOY/ventoy/tcz/liblvm2.tcz\r
- http://distro.ibiblio.org/tinycorelinux/11.x/x86_64/tcz/ncursesw.tcz /home/Ventoy-master/LiveCD/VTOY/ventoy/tcz/ncursesw.tcz\r
- http://distro.ibiblio.org/tinycorelinux/11.x/x86_64/tcz/parted.tcz /home/Ventoy-master/LiveCD/VTOY/ventoy/tcz/parted.tcz\r
- http://distro.ibiblio.org/tinycorelinux/11.x/x86_64/tcz/readline.tcz /home/Ventoy-master/LiveCD/VTOY/ventoy/tcz/readline.tcz\r
- http://distro.ibiblio.org/tinycorelinux/11.x/x86_64/tcz/udev-lib.tcz /home/Ventoy-master/LiveCD/VTOY/ventoy/tcz/udev-lib.tcz\r
-\r
-2.3 Prepare third-part tools\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-party tools\r
cd /home/Ventoy-master/DOC/\r
tar xf musl-1.2.1.tar.gz\r
cd musl-1.2.1\r
\r
tar xf /opt/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz -C /opt\r
tar xf /opt/aarch64--uclibc--stable-2020.08-1.tar.bz2 -C /opt\r
+ tar xf /opt/output.tar.bz2 -C /opt\r
+ mv /opt/output /opt/mips64el-linux-musl-gcc730\r
+ \r
\r
-2.4 Set PATH envrioment\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\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
\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
- 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
- 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
- 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
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
- cd /home/Ventoy-master/vtoyfat\r
+ cd /home/Ventoy-master/vtoycli\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
- 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
- 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
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
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
- make -f ventoy_makefile64\r
+ make -f ventoy_makefile64 or make -f ventoy_makefile64_musl\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
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
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