Build NoX KLV mini; single script
Attached is a single script for completely building a FR minimal Void Linux ready for booting (user/password: root/root); internally uses rockedge f_plug, and a huge-kernel (currently from old upup)/modules/firmware and FR initrd.gz are also auto-downloaded by the script.
In fact all you need to do is remove the dummy tar, make this script executable and run it (as root user) from an empty directory on partition you want to boot from (e.g. /KLV_minimal). i.e. using a terminal opened at that directory:
Code: Select all
./FR_minimal_noX_void.sh
To understand FR building just read the comments alongside the simple (very very short) wget/fetch code below (which is the attached script contents). It is very easy :
Code: Select all
#!/bin/bash
# General Build Instructions:
# Create an empty directory at root of partition you want to bootfrom
# For example: /KLV_minimal
# In a terminal opened at that bootfrom directory simply run this single script!!! ;-)
# Fetch the build_firstrib_rootfs build parts:
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/build_firstrib_rootfs.sh && chmod +x build_firstrib_rootfs.sh
# rockedge minimal Void Linux build plugin used during the build (you can add to this plugin for whatever extras you want in your build)
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/noX_f_plugs/f_00_Void_amd64_noXsimple00_rockedge-120rc2.plug
# Download the boot components:
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/initrd-latest.gz -O initrd.gz # FR skeleton initrd
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/huge_kernels/upup_22_04/vmlinuz
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/huge_kernels/upup22_04/00zdrv_upup_22.04.sfs # modules
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/huge_kernels/upup22_04/01fdrv_upup_22.04.sfs # firmware
# Some useful FirstRib utilities in case you want to modify the initrd or the 07firstrib_rootfs
# All these utilities have a --help option
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/wd_grubconfig && chmod +x wd_grubconfig # When run finds correct grub menu stanza for your system
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/modify_initrd_gz.sh && chmod +x modify_initrd_gz.sh # For 'experts' to modify initrd.gz
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/mount_chroot.sh && chmod +x mount_chroot.sh # To enter rootfs in a chroot
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/umount_chroot.sh && chmod +x umount_chroot.sh # to 'clean up mounts used by above mount_chroot.sh'
# Optional addon layers
# Main KL addon containing the likes of gtkdialog, filemnt, UExtract, gxmessage, save2flash and more
# save2flash works with command-line-only distros too
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/12KL_gtkdialogGTK3filemnt64.sfs
# Build the Void Linux root filesystem to firstrib_rootfs directory
# NOTE WELL: If you have an alternative f_plugin in your bootfrom directory (name must start with f_),
# simply alter below command to use it
./build_firstrib_rootfs.sh void default amd64 f_00_Void_amd64_noXsimple00_rockedge-120rc2.plug
# Number the layer ready for booting
mv firstrib_rootfs 07firstrib_rootfs
# The only thing now to do is find correct grub stanza for your system
printf "\nPress any key to run utility wd_grubconfig
which will output suitable exact grub stanzas
Use one of these with your pre-installed grub
Press enter to finish\n"
read choice
./wd_grubconfig
exit 0
NOTE1: @rockedge can provide full XFCE desktop producing f_00 build plugins that can be used with the above script instead (or some other commandline only distro f_ plugs that provide more features than the above). He probably has some Zoneminder-related Void Linux f_00 build plugins as well... and alternatives that use the likes of JWM or the Spectrwm tiling window manager with Rox as primary file manager. These larger builds generally also install Network Manager and its associated desktop applet for connecting to internet via ethernet or wifi.
NOTE2: I believe even KLV minimal can use save-on-demand (when using FirstRib kernel line boot mode: w_changes=RAM2). However since yad not installed, current save2flash won't work, but directly calling snapmergepuppy should.
NOTE3: FirstRib builds can alternatively use upstream distro official kernel (i.e. doesn't need huge-style-kernel). Doing that requires using another FR build utility (FRmake_initrd.sh; not included above) which automatically modifies the FR skeleton initrd.gz to include all boot modules. Some time in the future I will show how to do that by posting a similar single script to build the above, but using Void Linux official kernel, modules, and firmware instead of huge-kernel combination.
NOTE4:If you add wpa_supplicant to the f_00 xbps-install then simplistic wiakwifi (it's in 12KL addon as is wd_mount) should be available for connecting to your wifi. Better would be to install NetworkManager for ethernet or wifi connection (e.g. via nmtui command).
NOTE5:@The default rockedge f_00 plugin used above also provides Midnight Commander (mc) file manager, which includes mcedit text editor.
NOTE6: If you also create an (optional) text file named (exactly!) addons_f.plug and put that in the build directory prior to building, any commands you put in there will occur after the main build is complete. For example, you could include commands to make an iso or for copying other bits and pieces directly into 07firstrib_rootfs (e.g. EFI boot stuff). Note that f_00...plugin code is all done inside a chroot to firstrib_rootfs, whereas any final addons_f.plug code is done on the normal system and not in any chroot.
For some detail on how such KL builds work you can refer to: https://forum.puppylinux.com/viewtopic. ... 487#p98487