Build Live Release
The scripts are short and easy to understand. The most important functions and workflows are described here.
You can build the standard version or create a custom Live version with additional programs.
1. Plop Linux Release Tools
Download the ploplinux-release-19.1.tar.gz archive.
desktop/arm-boot/ desktop/hd-images/ desktop/release/ live/create-core-sqfs/ <- Create the core files bin.sqfs, sbin.sqfs, lib|64.sqfs, usr.sqfs live/create-opt-sqfs/ <- Create the opt.sqfs file live/initramfs/ <- Create the initramfs.gz file live/release/ <- Create the compressed files for the Live Version
2. Build initramfs
You can build the initramfs for i486 and x86_64. The initramfs is using busybox and some boot scripts.
You find the busybox source code and configuration files in the busybox/ directory.
Build the final initramfs.gz with the 2 build scripts 1makeimage-i486 and 1makeimage-x86_64. The initramfs.gz has a minimal etc/ directory to boot Plop Linux.
The etc.tgz will be extracted to /etc. Update etc.tgz to change or add configurations.
4. Core SQFS files
You can create a live version from your personal Plop Linux with all your installed programs. It's also possible to create a size reduced version.
The core Squashfs files are bin.sqfs, sbin.sqfs, lib.sqfs, lib64.sqfs, usr.sqfs.
4.1. Standard version
In the directory create-core-sqfs/01-standard/ are 2 scripts.
10_copy-files-all is used to copy the directories /bin, /sbin, /lib, /lib64, /usr to the files/ directory.
20_mksquashfs creates the Squashfs files bin.sqfs, sbin.sqfs, lib.sqfs, lib64.sqfs, usr.sqfs from the directories in the files/ directory. You find the created Squashfs files also in the files/ directory.
4.2. Reduced size
When you want smaller Squashfs files or you don't want all programs in the Squashfs files, maybe you don't want GCC in your Live Version or you want to reduce the size with stripping the binaries, then use the scripts in create-core-sqfs/02-reduced-size/.
The skel-files/ directory is used as template. All the files in the skel-files/ directory will be copied from / to the files/ directory.
You can create the template in skel-files/ by yourself or use scripts.
The 10_copy-all-to-skel copies all files from / to skel-files/. Then use 30_cleanup-skel-files to remove all unwanted files. The 30_cleanup-skel-files example removes gcc and a lot of other files. Modify it for your needs.
Another way to create the skel-files/ template is to use a filelist file. The script 10_copy-to-skel-from-list is reading the file skel-files.list and copies the files to the skel-files/ directory.
When the skel-files/ template directory is ready then use 40_copy-files to copy the files from / to files/.
To reduce the size of the binary files use the script
The final step is to run 90_mksquashfs to create the bin.sqfs, sbin.sqfs, lib.sqfs, lib64.sqfs, usr.sqfs files. You find them in the files/ directory.
5. Create the opt.sqfs file
Create the opt.sqfs file with the scripts in create-opt-sqfs/.
The file opt.sqfs is optional and not required to boot the Live Version of Plop Linux. The file opt.sqfs is the compressed version of the /opt/ directory. When you don't need the programs of /opt/ then it's not needed to add the opt.sqfs file to your Plop Linux Live Version.
The directory additional/ is used to automatically add files to opt.sqfs.
Use 10_copy-opt to copy the /opt/ directory and the content of ./additional/ to ./opt/.
You can reduce the size of the opt/ directory with the 20_strip script.
The script 30_mksqfs does some required modifications in the opt/ directory and creates the opt.sqfs file.
The opt.sqfs has a own etc.tgz with the configurations for the programs in /opt. This etc.tgz will be extracted during boot and the config files became available through /etc/opt/.
The root.conf.tgz file in opt.sqfs adds required files to the root user home directory.
6. Build release files
Use the scripts in release-live/ to create the ISO and compressed release files.
To use your own custom Squashfs file, overwrite the sqfs files in the ploplinux directory with your own files. Remove the opt.sqfs file when you don't need it.
Use the make-all.sh script to create the iso, tar.gz and zip files for the i486 and x86_64 version. This script just call the other make scripts with the release version as parameter. Just view the make-all.sh script.
Note: The file ploplinux/ploplinux.version is used to find Plop Linux and keeps the release information.
© 2019 by Elmar Hanlhofer