Kennel Linux vanilladpup64 root filesystem derivative
KL-vdpup64
EDIT: The weedogit.sh script that automates what is described in this HowTo is also now attached to this post. You basically now just need to run that script to create this WDL frugal install (also automates a WDL Pop!_OS install if you wish [it's pretty huge install and takes time and patience wait on the build though], and more to come...). EDIT2: Since weedogit.sh has now been expanded to allow WeeDogging of 12 distros (some being same type but different desktop manager), all aside from vanilladpup64 being major non-forum distros such as EndeavourOS, Manjaro and MXlinux, I have moved the script weedogit.sh and all discussion about it to WeeDog section (link and weedogit.sh update to come shortly). Any discussion on how to develop KL_vdput64 with, for example, some utility/apps/techniques developed on KLV-Airedale thread should of of course continue in this present thread
I recently noticed some forum members (e.g. @williwaw, @dancytron and @OscarTalks) having issues with official vanilladpup64 in terms of booting it in typical Puppy initrd frugal install own-subdirectory configuration. I also wanted to take a look at how it now overall works and what it provides, but did not wish to burn a new usb stick, or use its officially supported C-coded frugalify boot method, but instead just wanted to use my usual WDL initrd to boot it alongside the other distros on my hard drive (each in their own frugal install subdirectory), as I've done in the past (and as @Duprate has done too). Alas, I found it no longer worked in method I used before because PUPMODE6 hard-coded into its puppy_vanilladpup_9.1.7.sfs caused /proc to be unmounted by its /etc/rc.d/rc.sysinit at boot time. Easy to work around as below however, without needing to modify WDL initrd.gz itself at all. Of couse some additional 'fixes' would be needed for perfect operation, but its fine for my purposes and I can easily edit and improve the fix addon-layer-directory "09puppy_use_initrd/", which is provided in nevertheless perfectly usable form with this post.
Method used (hopefully nothing has changed in any new vanilladpup64 build since yesterday that will prevent the following steps from working... or I'll try my best to fix later):
1. Download latest vanilladpup64 and extract its contents into a directory of its own (for example: I used KL_vdpup64 to emphasise the hybrid kennel components involved in this method). Easiest is probably to use the downloadable vanilladpup64 tar package, though can alternatively extract from one of the img file downloads with a bit of extra work I will document later. Download dimkr official vanilladpup64 via: https://vanilla-dpup.github.io/
2. Into same subdirectory, download latest get script for WDL skeleton initrd from here:
https://weedoglinux.rockedge.org/downlo ... 173c3e475e
Remove the dummy tar and make that executable with chmod +x before then using it to fetch the actual WDL skeleton initrd.gz
3. Download the attached puppy_use_initrd.tar to same subdirectory. It is an actual tar file containing a directory (09puppy_use_initrd) so you need to untar it. For example using: tar xvf puppy_use_initrd.tar into that same subdirectory (or Xarchive or whatever you prefer). It's a very small directory that contains all the current fixes, and it is user-editable, which means you can develop the system using it to your hearts content (and dev ability).
4. Before booting via the WDL skeleton initrd, rename it to simply "initrd.gz". You also need to rename the vanilladpup64 component parts as follows. Rename:
Code: Select all
zdrv_vanilladpup_9.1.7.sfs to 00zdrv_vanilladpup_9.1.7.sfs
fdrv_vanilladpup_9.1.7.sfs to 01fdrv_vanilladpup_9.1.7.sfs
bdrv_vanilladpup_9.1.7.sfs to 02bdrv_vanilladpup_9.1.7.sfs
puppy_vanilladpup_9.1.7.sfs to 08puppy_vanilladpup_9.1.7.sfs
adrv_vanilladpup_9.1.7.sfs to 20adrv_vanilladpup_9.1.7.sfs
devx_vanilladpup_9.1.7.sfs to 21devx_vanilladpup_9.1.7.sfs
docx_vanilladpup_9.1.7.sfs to 22docx_vanilladpup_9.1.7.sfs
nlsx_vanilladpup_9.1.7.sfs to 23nlsx_vanilladpup_9.1.7.sfs
The 2-digit number put at the front of the name are the only important part of the name when using WDL initrd (some or all of them can also be unsquashed if you wish for editing convenience and some speed up if you wish as long as they remain numbered); their value determines the overlay layer they will be put at. You can change the numbers, if you wish (up to max of 99), as long as they remain 2-digits and in same overall order of precedence.
5. I then modified the old grub4dos menu.lst on this old dev machine of mine to the follows (I leave you to amend for same result if using grub2 grub.conf instead - I'll help if you get stuck with that):
Code: Select all
title dpup os 9.1.X
find --set-root uuid () 9f8b9e81-9c04-41ca-ace0-d37b1787a94d
kernel /KL_vpup64/vmlinuz w_bootfrom=UUID=9f8b9e81-9c04-41ca-ace0-d37b1787a94d=/KL_vdpup64 fwmod=usrlib w_changes=RAM2
initrd /KL_vdpup64/initrd.gz
Use your own system UUID of course.
Note that I assume you are familiar with editing such config files or you'd best to become familiar more generally prior to trying this particular install. Most WDL initrd system users will probably never have seen that grub kernel argument fwmod=usrlib (without any spaces) before. It is needed in this case because the zdrv of vanilladpup stores its modules in usr/lib/modules rather than old Puppy lib/modules hierarchy (which WDL initrd otherwise currently assumes as the default modules location).
NOTE. It remains probably best, for most people, to boot official vanilladpup64 via its designer provided boot mechanism, frugalify.
Obviously that is the only supported method that is guaranteed to work as best its designer intended now and during its future developments. However, hopefully this alternative Kennel Linux hybrid will be useful to some. In particular, since it uses same WDL initrd as employed in KLV-Airedale, most of the excellent utility apps related to its operation provided by the likes of @fredx181, often modified versions of similar used in his DebianDogs, and @rockedge, will also work with this KL_vdpup64.
I don't myself promise to maintain it such that the method can be guaranteed to work with future official vanilladpup64 root filesystem component releases, but offer this current HowTo here as at least a temporary Kennel Linux extra, which the community may or may not decide to maintain or manage to keep working depending on what dimkr does to the underlying official vanilladpup rootfilesystem underlying operation. Works quite well just now though (or did last night...).
If I've missed some detail such that it doesn't boot, let me know. Much can be improved in my simple implementation (try it, you'll discover that for yourself. For example the simple wd_exit extra is currently simplistic to say the least). If you want to know the 'fixes' I've made to allow WDL initrd to drive it, just look at the few files inside the provided 09puppy_use_initrd/ (uncompressed/editable) addon layer directory; that's all I've overlayed (over-written the main puppy sfs) thus far.
Same process can be used with basically any Puppy distro, though vanilladpup is the most difficult distro to use WDL initrd with that I've come across so far.
Most other non-forum distros, such as Manjaro and ElementaryOS, work pretty well as versatile frugal installs via WDL initrd, without any special 'fix addon' required (tiny though it is anyway), even when such distros are only intended to be used in full install scenarios. For example, see fredx181 more polished WeeDogged Manjaro HowTo: viewtopic.php?p=36144#p36144
Since the end result does not employ frugalify at all (which can be deleted) the end result has to be considered a kennel linux (hybrid) fork should anyone in this Kennels forum community decide to develop this. Overall I won't be doing so myself, but just use this method myself for quick distro testing.
NOTE: A great deal of information regarding boot parameters for KLV-Airedale will also apply to this installation, including the use of different RAM modes such as w_changes=RAM2 in above grub menu.lst stanza. You can leave that argument out altogether if you want permanent save folder persistence on your storage media device. w_changes=RAM2 just stores session changes in RAM (actually in /mnt/layers/RAM/upper_changes and allows these to be lost on shutdown - though you can use rsync script to save them - see KLV-Airedale thread for details) or use one of the more permanent w_changes save persistent WDL initrd modes.
EDIT: If you happen to have downloaded one of the img.gz of vanilladpup64 instead of the more convenient tar version, then it is possible to extract its contents anyway as follows:
1. gunzip it (produces big 2GB img file though...)
2. Run the following command (modify the location appropriately - USE AT YOUR OWN RISK!):
mount -t auto -o loop,offset=$((2048*512)) vanilladpup-9.1.7-ext4-2gb-bios.img anyplace/
You can then extract the contents to your prepared but empty WDL_vdpup64 directory.
Note that the 2048x512 offset come from fdisk result, or more automatically via checking output of command: fdisk -lu vanilladpup-9.1.7-ext4-2gb-bios.img
(assuming that was the img.gz you had).
I've never actually myself downloaded the vanilladpup64.tar version, but assume you can more conveniently just untar that instead via tar xvf or the likes of Xarchiver.
EDIT: I have now provided a single script (weedogit.sh) to undertake most all the steps of this HowTo automatically for you (weedogit.sh is now also attached to this post). Just run that script in empty directory and all done for you in a few minutes... Note it also auto fetches puppy_use_initrd.tar if required