I know I've provided this recipe several time. But I can never find the posts. Hopefully this location on the Forum with the title used will alleviate that issue.
Edit: This post was written before the 'user-merge' Rule was implemented in some newer Puppys. The recipe still works, but there are now two species of kernels which are not interchangeable OOTB. See the following posts for an explanation and hopefully some guidance.
Changing Kernels enables a User to keep an operating system while taking advantage of any abilities a different kernel may offer. Newer kernels often provide protection against possible malware newly discovered and can work with newer hardware; while older kernels may be needed to work with older hardware.
A Puppy's operating system is modular. On your storage media it consists of several READ-ONLY file/file-systems and --after you've created a SaveFile or SaveFolder-- one READ-WRITE file-system. On boot-up, the READ-ONLY file-systems are copied into RAM and the SaveFile/Folder mounted. For more details see here, https://www.forum.puppylinux.com/viewtopic.php?t=5818 and https://www.forum.puppylinux.com/viewtopic.php?t=6526.
Being a 'layman' I'll try to explain things in 'layman's terms'.
The 'kernel' is sort of the Engine and Chassis of a Puppy. It is what powers applications and against which applications are built. The kernel, itself, is always named vmlinuz. But to connect with and communicate with your computer's hardware --your keyboard, monitor, mouse/trackpad, and wifi-adapter, etc-- the kernel requires drivers and firmware specifically for YOUR hardware. Drivers have to be compiled against the kernel which is to use them. By long tradition, Puppys have packaged drivers in a file-system beginning with the term zdrv.. Puppy devs publish 'huge-kernel' packages containing both the kernel/vmlinuz, itself, and the drivers which have been compiled against them. You can find those packages here, https://www.forum.puppylinux.com/viewforum.php?f=65. You can also 'flinch' both the 'kernel' and its associated drivers/zdrv from any Puppy you already have.
Originally firmware was also packaged within the zdrv. But firmware does not have to be compiled against a kernel. Once you have the firmware required by your computer it can be used by any kernel. Download once, use forever. So some creators of Puppys now package firmware separately. When packaged separately the firmware file-system will begin with the term fdrv. You can find such packages here, https://www.forum.puppylinux.com/viewtopic.php?t=5374, often from the first links on a Puppy's thread, or flinch then from another Puppy.
On boot-up, after the vmlinuz the next file copied into RAM is the one named initrd, usually compressed so ending with either a .gz or xz. Initrd contains instructions as to what other files-systems on storage to copy into RAM. Initrd looks for files-systems bearing name and version number specified by those instructions. That's the name which appears on each puppy's core/base SFS. [The core/base SFS contains the file-and-window manager and all the applications that Puppy's creator thought most Users would usually need]. For example, we may refer to the original as fossapup or fossapup64, but its core/base file-system is puppy_fossapup64_9.5.sfs and its initrd will only load into RAM a zdrv named zdrv_fossapup64_9.5.sfs and an fdrv named fdrv_fossapup64_9.5.sfs.
Once you have an alternate kernel (and fdrv) to use it you have to rename it so that it bears the required version name and number. There's an application which may make renaming easier. Your Puppy may already have it. Start Menu>Setup>Quickpet, then click the button named 'change kernel' and follow the instructions. If Change Kernels isn't built-in, you can install it from here, https://www.forum.puppylinux.com/viewto ... 1497#p1497.
But AFAIK. the Change Kernel application has never been updated* to reflect that sometimes firmware has been packaged separately in an fdrv.sfs. And I've never used it. I always renamed file-systems manually. It's done as follows:
If starting with a 'Hugh Kernel Package', decompressing it will reveal two file-systems: one named vmlinuz-SERIES_NUMBER, the other named kernel-modules.sfs-SERIES_NUMBER; e.g. vmlinuz-5.2-64oz and modules.sfs-5.2-64oz. To use them with fossapup64_9.5, I'd Right-Click the former, select Rename, and remove the description so that it only reads vmlinuz. I'd also Right-Click the latter and rename it zdrv_fossapup64_9.5.sfs.
When starting with file-systems flinched from another Puppy, it's even easier. No need to rename vmlinuz and only the name and version number specified of the zdrv have to be changed.
If an fdrv is needed, the above procedure would be used to provide it with the name required for your Puppy's initrd to copy it into RAM.
-=-=-=-=-=-
* Note to those who know and/or to those who know scripting: If the Change Kernel Application has been modified to automate renaming fdrv, please post saying so. If it hasn't, shouldn't it be?
The use of the names modules.sfs and zdrv aren't entirely arbitrary. Originally both drivers and firmware included in the ISO were in one file-system. It was named zdrv as that was the last file-system initrd would copy into RAM. Drivers copied into RAM from the file-system on storage are placed --in the file-system in RAM-- into folders named "modules".