Frugal Full Install - inOnePup v5 - a bit like "Pseudo Full Install"

Under development: PCMCIA, wireless, etc.

Moderator: Forum moderators

gyrog
Posts: 594
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 14 times
Been thanked: 180 times
Contact:

Re: Frugal Full Install - "Pseudo Full Install" for Puppy

Post by gyrog »

This is my frugal install directory, after installing my 'pfi' directory on a fat32 parition using FrugalPup.

frugal.png
frugal.png (39.19 KiB) Viewed 1016 times

'dpupbw64save66.tar.gz' is 1.3MiB, 'puppy_dpupbw64_10.0.4.sfs' is 589.1MiB.
It runs fine.

User avatar
rockedge
Site Admin
Posts: 5711
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 1990 times
Been thanked: 2097 times
Contact:

Re: Frugal Full Install - "Pseudo Full Install" for Puppy

Post by rockedge »

I'm not buying it.
To my mind a "Frugal Full Install" effectively has no layers, that's the point, there never is, and never can be, any whiteout files, no matter what you do. What I'm trying to do is have the only difference in function between a real "Full" install and a "Frugal Full" install as the latter using only a directory, rather than a partition.

Why bother with that approach when it's already possible to take ANY full install Linux distro and make it a frugal installation in a few minutes with @wiak 's script? I would grab one like MX Linux and convert it to a "Frugal Full Install" and get all those bells and whistles or just take a Ubuntu or Debian release and do the same.

I get the idea of what you are working towards, just wondering what usefulness it will offer. Being a Puppy trying to be another full install in principle will make this type of system just a low end entry in a huge array of existing full installs far more polished.

User avatar
wiak
Posts: 3627
Joined: Tue Dec 03, 2019 6:10 am
Location: Packing - big job
Has thanked: 56 times
Been thanked: 994 times
Contact:

Re: Frugal Full Install - "Pseudo Full Install" for Puppy

Post by wiak »

gyrog wrote: Tue Jan 02, 2024 12:31 pm

...
Experiment 2:
Emulate experiment 1 while updating the kernel in my Bookworm64 "pfi" install.
unsquashfs 'kernel-modules-6.1.69-kernel-kit.sfs' into 'dpupbw64files'.
unsquashfs 'fdrv-6.1.69-kernel-kit.sfs' into 'dpupbw64files'.
unsquashfs 'kbuild-6.1.69.sfs' into 'dpupbw64files'.
replace 'vmlinuz' with 'vmlinuz-6.1.69-kernel-kit'.

Cleanup 'dpupbw64files':

Code: Select all

rm dpupbw64files/usr/lib/modules/6.1.67
rm dpupbw64files/usr/src/kbuild-6.1.67
rm dpupbw64files/etc/modules/*6.1.67*

Remove un-needed files from 'dpupbw64files/usr/lib/firmware/'

Boot the "pfi" install.

run 'pfiSfs' to create a new 'puppy_dpupbw64_10.0.4.sfs'.
Replace the 'puppy_dpupbw64_10.0.4.sfs' in my frugal install with the new one.
Replace the 'vmlinuz' in my frugal install with the new one.

Boot the frugal install.

All this works fine for me.

Well that Exp 2 arrangement does work of course. We can include merged firmware and modules in KL overall root filesystem too (the uncompressed upper_changes folder), but we don't 'have' to - and most of us probably prefer to leave firmware and modules out of the pseudo full install main root filesystem for the usual huge kernel frugal install advantages that allow very quick kernel/modules/firmware swap without additional processing.

And certainly, using firmware and modules at higher layer (your experiment 1) isn't problematic or expected to be, but... better, I feel, when firmware/modules are placed on lower read-only layers such that the top read-write layer can be used to modify one or all of their component parts, which an advantage of using overlays more generally.

I wouldn't myself want to restrict the flexibility on the basis of some strict 'definition' of what "pseudo full install" should mean as a phrase. Nevertheless, the word pseudo implies in its meaning: "similar to but not exactly like a normal full install". Being (optionally) able to use a 'hybrid' approach, where firmware/modules can be kept out of the overall main root filesystem, at least in KL's implementation of pseudo full install, is an additional feature that can be employed or not; user choice. As I said, I haven't time to study the Puppy way of doing things - perhaps it is more difficult with Puppy's layer system and alphabetic sfs layer files to allow optional hybrid approach; otherwise I see no reason myself for any such restrictions.

https://www.tinylinux.info/
DOWNLOAD wd_multi for hundreds of 'distros' at your fingertips: viewtopic.php?p=99154#p99154
Αξίζει να μεταφραστεί;

dancytron
Posts: 653
Joined: Fri Dec 13, 2019 6:26 pm
Has thanked: 421 times
Been thanked: 190 times

Re: Frugal Full Install - "Pseudo Full Install" for Puppy

Post by dancytron »

rockedge wrote: Tue Jan 02, 2024 1:23 pm

I'm not buying it.
To my mind a "Frugal Full Install" effectively has no layers, that's the point, there never is, and never can be, any whiteout files, no matter what you do. What I'm trying to do is have the only difference in function between a real "Full" install and a "Frugal Full" install as the latter using only a directory, rather than a partition.

Why bother with that approach when it's already possible to take ANY full install Linux distro and make it a frugal installation in a few minutes with @wiak 's script? I would grab one like MX Linux and convert it to a "Frugal Full Install" and get all those bells and whistles or just take a Ubuntu or Debian release and do the same.

I get the idea of what you are working towards, just wondering what usefulness it will offer. Being a Puppy trying to be another full install in principle will make this type of system just a low end entry in a huge array of existing full installs far more polished.

Is this still a valid set of instructions for converting a regular distro?

viewtopic.php?p=36144#p36144

User avatar
rockedge
Site Admin
Posts: 5711
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 1990 times
Been thanked: 2097 times
Contact:

Re: Frugal Full Install - "Pseudo Full Install" for Puppy

Post by rockedge »

@dancytron Yes I think the process still works :thumbup2:

gyrog
Posts: 594
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 14 times
Been thanked: 180 times
Contact:

Re: Frugal Full Install - a bit like "Pseudo Full Install"

Post by gyrog »

About:

I gather that my "Frugal Full Install" is not the same as "Pseudo Full Install".
With this new version the difference probably becomes a little more obvious.
I will revert to referring to it as "Frugal Full Install" or "ffi".

This release implements "Frugal Full Install" without recourse to a layered filesystem of any kind.
And I'm not surprised that it's been done before, it's not "rocket science".

It could possibly be used by folk who would otherwise do a normal full Puppy install.
It could also be used a bit like a "pseudo full install", i.e. as a "source" for a slightly odd frugal install.
In this case the resultant frugal install has all the sfs files collapsed into a single 'puppy....sfs'.

There are more Puppy centric support utilities, but they usually assume they are being run from some other Puppy install.

To try:
Download 'ffi_files-01.tar' and extract it's contents.

Files in 'ffi_files-01.tar':

'local-initrd.gz' contains a new version of the '/sbin/init_full_install' script in 'initrd.gz'.
This still requires a 'fullinstall' boot parameter in the "linux" line of the grub2 boot entry.

'ffiInstallSfs' is a CLI utility to install a specified sfs file into a specified directory.
If an "include list" file is specified, only files defined by the contents of the "include list" file are installed.
If the "include list" file exists, but is empty, no files are installed.
Run "ffiInstallSfs -h" for usage information.

'ffiPuppy' is a CLI utility to setup a "Frugal Full Install" directory from either an ISO or a normal frugal install.
It calls 'ffiInstallSfs' for each sfs file it processes.
Run "ffiPuppy -h" for usage information.

'ffiBoot' is a CLI utility to generate a grub2 boot entry for a "Frugal Full Install" directory.
It writes to STDOUT so it can easily be redirected to append to a 'grub.cfg' file.
Run "ffiBoot -h" for usage information.

'ffiUnInstallSfs' removes the files contained in an sfs from a "Frugal Full Install" directory.
The actual sfs file is used to produce the list of files to remove.
Run "ffiUnInstallSfs -h" for usage information.

'ffiPupSfs' writes a 'mksquashfs' of "${DISTRO_FILE_PREFIX}root/" to the install directory, as "puppy${DISTRO_FILE_PREFIX}${DISTRO_VERSION}.sfs".
It uses 'ffiPupSfs-exclude.lst', if it exists in the same directory as 'ffiPupSfs'.
Run "ffiPupSfs -h" for usage information.

'ffiKernelUpgrade' updates a "Frugal Full Install" directory with a new kernel,
from a woof-ce kernel-kit output zip file, or a huge kernel-kit tar file.
It calls 'ffiInstallSfs' for each sfs file it processes.
Run "ffiKernelUpgrade -h" for usage informaton.

'ffiKernelClean' removes files belonging to old kernel versions from a "Frugal Full Install" directory.
Run "ffiKernelClean -h" for usage informaton.

Note: An updated 'rc.shutdown' is no longer required for a clean shutdown.

A JammyPup32 example:
To create a "Frugal Full Install" directory:

Code: Select all

mkdir -p /tpups/upupjj+dFull
touch /tpups/upupjj+dFull/adrv_include.lst
echo "lib/firmware/i915
lib/firmware/rtl_nic
lib/firmware/rt2870.bin" > /tpups/upupjj+dFull/fdrv_include.lst
./ffiPuppy /downloads/JammyPup32-22.04-231221.iso /tpups/upupjj+dFull
mv -f ./local-initrd.gz /tpups/upupjj+dFull/local-initrd.gz
./ffiBoot /tpups/upupjj+dFull >> /mnt/sdb1/grub.cfg

Reboot, selecting "Puppy JammyPup32 22.04 (FFI) (xxx)" in the grub2 menu.

Note: The empty 'adrv_include.lst' file, causes 'adrv_upupjj+d_22.04.sfs' to be ignored.
The 'fdrv_include.lst' file causes only a small subset of 'fdrv_upupjj+d_22.04.sfs' to be installed.

A "Frugal Full Install" directory now looks something like this:

ffi.png
ffi.png (25.78 KiB) Viewed 812 times

To create a normal frugal install from a "Frugal Full Install" directory:

Code: Select all

./ffiPupSfs /tpups/upupjj+dFull

Run "FrugalPup" to install the "Frugal Full Install" directory.

A Bookworm64 example:
To upgrade from kernel version 6.1.67 to 6.1.69:

Code: Select all

echo "usr/lib/firmware/i915
usr/lib/firmware/rtl_nic
usr/lib/firmware/rt2870.bin" > /tpups/bw64Full/fdrv_usr_include.lst
./ffiKernelUpgrade /downloads/kernel-kit-output-usrmerge-6.1.x-x86_64.zip /tpups/bw64Full
./ffiKernelClean /tpups/bw64Full

Edit:
'ffi_files-01.tar' has been replaced by 'ffi_files-03.tar', download is in first post.
For ffi_files-03.tar details, see viewtopic.php?p=110303#p110303

Edit: Fixed the "Bookworm64 example" to write '/tpups/bw64Full/fdrv_usr_include.lst'

Last edited by gyrog on Sat Jan 27, 2024 4:03 pm, edited 5 times in total.
gyrog
Posts: 594
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 14 times
Been thanked: 180 times
Contact:

Re: Frugal Full Install - a bit like "Pseudo Full Install"

Post by gyrog »

A couple of extra thoughts:

  1. If a "savefile" technology was used instead the current "savefolder" technology, to contain the "root" filesystem,
    there could be a "frugal full install" in a large sparse file on ntfs.

  2. I could produce, what I would call a "hybrid full install", a bit more like "pseudo full install" (I think),
    but that would not allow users to escape the "tyrany of layered filesystems with their layer order, save mechanisms, and whiteout files".
    If I did, I would probably go for a 2 layer concept, a "software" layer (puppy) and a "kernel" layer (zdrv).

dancytron
Posts: 653
Joined: Fri Dec 13, 2019 6:26 pm
Has thanked: 421 times
Been thanked: 190 times

Re: Frugal Full Install - a bit like "Pseudo Full Install"

Post by dancytron »

Are adv.sfs and fdrv.sfs hooked up to the package manager or are they static or can it be either way?

gyrog
Posts: 594
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 14 times
Been thanked: 180 times
Contact:

Re: Frugal Full Install - a bit like "Pseudo Full Install"

Post by gyrog »

dancytron wrote: Fri Jan 12, 2024 10:55 pm

Are adv.sfs and fdrv.sfs hooked up to the package manager or are they static or can it be either way?

I'm not completely clear on the exact meaning of your question.
But:
In a "Frugal Full Install" files from all Puppy ".sfs" files are extracted into the ${DISTRO_FILE_PREFIX}root directory, (unless they are excluded).
When it is running, there are no ".sfs" files in play at all.
".sfs" files are only procesed by the 'ffiPuppy', 'ffiInstallSfs', and 'ffiUnInstallSfs' scripts. The 'init_full_install' script ignores them.

If you run the 'ffiPupSfs' utility, a puppy_${DISTRO_FILE_PREFIX}_${DISTRO_VERSION}.sfs is produced from the ${DISTRO_FILE_PREFIX}root directory, so it also conatins the appropriate content of all the usual Puppy ".sfs" files.
This ".sfs" file can be used in a normal frugal install, except there is only 1 ".sfs" file, by default.

gyrog
Posts: 594
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 14 times
Been thanked: 180 times
Contact:

Re: Frugal Full Install - a bit like "Pseudo Full Install"

Post by gyrog »

'ffi_files-01.tar' has been replaced by 'ffi_files-02.tar'.

It contains all the same files, except for 2 changes:

'ffiInstallSfs' now honours any symbolic links to directories, in the destination.
The old version made a nice mess if you installed a normal kernel-kit kernel to a usrmerge Puppy.

'local-initrd.gz' contains a patched 'init_full_install', the code to setup /tmp as a tmpfs has been removed.
It's done in 'rc.sysinit' for "pupmode=2".

'ffi_files-02.tar' has been replaced by 'ffi_files-03.tar'.

Last edited by gyrog on Sat Jan 27, 2024 4:17 pm, edited 1 time in total.
gyrog
Posts: 594
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 14 times
Been thanked: 180 times
Contact:

Re: Frugal Full Install - a bit like "Pseudo Full Install"

Post by gyrog »

About:

This is the first implementation of a "Frugal Hybrid Install" or "fhi".

Like my first implementation of "Frugal Full Install", this 'init_full_install' script uses an overlayfs as the '/' for the running Puppy.
The upper (RW) layer is a directory containing the contents of all the Puppy sfs files not associated with the kernel, i.e 'adrv', 'ydrv', 'bdrv' and 'puppy'.
The lower (RO) layer is an 'zdrv...sfs', a merge of 'kbuild', 'fdrv' and 'zdrv' sfs files.

It still runs as pupmode=2, so it is a bit like a "pseudo full install".

This means that you can install/uninstall/upgrade/insert/delete any software directly in the '/'.
Except for kernel realted stuff, for that you need to build a replacement 'zdrv...sfs',
which makes kernel upgrades rather simple.

A corresponding frugal install would have 2 sfs files, a 'puppy...sfs' and a 'zdrv...sfs'.

For real use, more utilities would be provided.

To try:
Download 'fhi_files-01.tar' and extract it's contents.

Files in 'fhi_files-01.tar':

'fhiAddSfs' is a CLI utility to install a specified sfs file into a specified directory.
If an "include list" file is specified, only files defined by the contents of the "include list" file are installed.
If the "include list" file exists, but is empty, no files are installed.
Run "fhiAddSfs -h" for usage information.

'fhiSetup' is a CLI utility to setup a "Frugal Hybrid Install" directory from either an ISO or a normal frugal install.
It calls 'fhiAddSfs' for each sfs file it processes.
Run "fhiSetup -h" for usage information.

'fhiGrub' is a CLI utility to generate a grub2 boot entry for a "Frugal Hybrid Install" directory.
It writes to STDOUT so it can easily be redirected to append to a 'grub.cfg' file.
Run "fhiGrub -h" for usage information.

'fhiKernel' is a CLI utility to upgrade the Kernel, by generating a new 'zdrv...sfs' and replacing the 'vmlinuz' file.

'rc.shutdown' is patched to remount everything "rw" to "ro", this ensures a clean shutdown.
'etc/rc.d/rc.shutdown' in "${DISTRO_FILE_PREFIX}puppy/" should be replaced with this file.

'local-initrd.gz' contains a new version of the '/sbin/init_full_install' script in 'initrd.gz'.
This still requires a 'fullinstall' boot parameter in the "linux" line of the grub2 boot entry.

A JammyPup32 example:
To create a "Frugal Hybrid Install" directory:

Code: Select all

mkdir -p /tpups/upupjj+dHybrid
touch /tpups/upupjj+dHybrid/adrv_include.lst
echo "lib/firmware/i915
lib/firmware/rtl_nic
lib/firmware/rt2870.bin" > /tpups/upupjj+dHybrid/fdrv_include.lst
./fhiSetup /downloads/JammyPup32-22.04-231221.iso /tpups/upupjj+dHybrid
mv -f ./local-initrd.gz /tpups/upupjj+dHybrid/local-initrd.gz
mv -f ./rc.shutdown /tpups/upupjj+dHybrid/upupjj+dpuppy/etc/rc.d/rc.shutdown
./fhiGrub /tpups/upupjj+dHybrid >> /mnt/sdb1/grub.cfg

Reboot, selecting "Puppy JammyPup32 22.04 (FHI) (xxx)" in the grub2 menu.

Note: The empty 'adrv_include.lst' file, causes 'adrv_upupjj+d_22.04.sfs' to be ignored.
The 'fdrv_include.lst' file causes only a small subset of 'fdrv_upupjj+d_22.04.sfs' to be installed.

A "Frugal Hybrid Install" directory now looks something like this:

fhi.png
fhi.png (32.88 KiB) Viewed 591 times
fhi_files-01.tar
tar xf ./fhi_files-01.tar
(12.02 KiB) Downloaded 18 times
gyrog
Posts: 594
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 14 times
Been thanked: 180 times
Contact:

Re: Frugal Full Install - a bit like "Pseudo Full Install"

Post by gyrog »

Here is an update to "Frugal Full Install".

This version fixes the "/mnt/home" symbolic link to work in the "normal" way.
Most of the files in this release are unchanged.

Download 'ffi_files-03.tar' and extract it's contents.

Files in 'ffi_files-03.tar' that are different:

'local-initrd.gz' contains a new version of the '/sbin/init_full_install' script in 'initrd.gz'.

'rc.sysinit' has been added. It now supports '/sbin/init_full_install' defining $PUP_HOME in pupmode=2.

Download 'ffi_files-03.tar' from first post.

for ffi_files-02.tar details, see viewtopic.php?p=108456#p108456

Note: I'll probably put "Frugal Hybrid Install" on the backburner, and concentrate on improving the support utilities for "Frugal Full Install".

gyrog
Posts: 594
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 14 times
Been thanked: 180 times
Contact:

Re: Frugal Full Install - a bit like "Pseudo Full Install"

Post by gyrog »

The first release of the onePup project, 2 Puppy installs where all of Puppy is contained in a single file.
(Inspired by "Pseudo Full Install", @amethyst's "SFS-Merger" and "Save2SFS", and @taersh's "PaDS")

ffiPup or Frugal Full Install
The single file is a directory.
It boots without a layered filesystem.
Useful for "maintainence" because all the files are "just there".

It can be generated from a Puppy release ISO, or a directory.
Or from an fsiPup install directory.

The main difference in this version is the 'ffiMan' gui frontend for running all the support scripts.
These scripts have mostly been already documented in previous releases.

'ffiPuppy' now copies 'rc.sysinit' and 'local-initrd.gz' into their appropriate locations in the new 'ffi'.
'ffi2fsiPup' converts the "ffi" root directory into an "fsi" 'puppy...sfs'.

fsiPup or Frugal Squashfs Install
The single file is a 'puppy...sfs' file.
Yes, the name is derived by replacing "Full" with "Squashfs", because that's exactly what happens when it is created from an "ffi".

It is a normal layered frugal install, and boots as such.
A suitable grub2 "menuentry" can be installed as per "normal", e.g. with "FrugalPup->Boot".
Useful as a running system, since it has virtually no dependence on a "save",
so it runs very efficiently, even in pupmode=66.

It can be generated from a Puppy frugal install, this includes an existing fsiPup install directory.
Or from an ffiPup install directory.

This can be a personalised Puppy, including the configuration and software you want, but without the software you don't want.
Provided you do all this modification in the "source" Puppy install.

A fresh fsiPup install has no "save" but contains the content of the "save" of the source frugal install.
Since it has no "save", it can be booted using either aufs or overlayfs.
While the first boot is in pupmode=5, it doesn't look like a first boot.
It's probably a good idea to "save" on first shutdown, just so it runs in the way you are used to.

There is a new utility:
'fsiMergeSfs' is yet another utility that merges sfs files, but will also merge directories.
It does so by mounting the layers specified on the command line in stack order, as a stack.
If the first item is a directory containing any '.wh.' files, aufs is used, otherwise overlayfs is used.
It then runs 'mksquashfs' against the mount-point of the stack.
It is fairly IO efficient, as the files are copied only once, during the 'mksquashfs' run.
It is called by 'fsiPupSfs'.
(Hm..., maybe I should have called it 'mergeLayers'.)

This release also contains a gui frontend, 'fsiMan', for the following new scripts.

'fsiPuppy' creates and populates an 'fsiPup' directory, from an exitsing frugal install.

'fsiPupSfs' generates a fresh 'puppy...sfs' from an existing frugal install
It supports the use of "_include.lst" files to control the extraction of files from an sfs file.
It can extract files from savefolders and pupmode=66 archive files, but not savefiles.
It is called by 'fsiPuppy'.

'fsi2ffiPup' converts an "fsi" 'puppy...sfs' into an "ffi" root directory.

Try
You could actually build an "fsi" 'puppy...sfs' using existing utilities to save to sfs, and merge sfs files.

Using my code:
Extract 'onePup-04.tar' into an empty directory on a linux partition.
In a terminal change directory to the one containing the extracted files.
Run the command:

Code: Select all

./SETUP

All the onePup utilities are now symbolic linked in $HOME/my-applications/bin, so are available via $PATH.
You can run them via a terminal in any diretory, e.g.

Code: Select all

ffiman

or

Code: Select all

fsiman

to run the gui's.
(There are quite a few of these symbolic links, so you may want to try this in a pupmode=13 puppy, so you can discard the "save" at the end of the session.)

NOTE: The GUI utilities require Python3 with gtk3. Works fine on either BookwormPup.
The CLI utilities, are just scripts, so should run on any Puppy.

onePup-04.tar
tar xf onePup-04.tar to extract files
(31.25 KiB) Downloaded 23 times
User avatar
rockedge
Site Admin
Posts: 5711
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 1990 times
Been thanked: 2097 times
Contact:

Re: Frugal Full Install - a bit like "Pseudo Full Install"

Post by rockedge »

@gyrog Excellent work! I am getting ready to give all the tools a few runs to get myself familiar with their operation and potential, then put something together for a workhorse type system to play around with. :thumbup:

gyrog
Posts: 594
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 14 times
Been thanked: 180 times
Contact:

Re: Frugal Full Install - a bit like "Pseudo Full Install"

Post by gyrog »

I'll keep on trucking, I hope to have even better looking utils in the near future.
(I'm working on the underlying Python3 windows generation utils. Opps, off topic.)

gyrog
Posts: 594
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 14 times
Been thanked: 180 times
Contact:

Re: Frugal Full Install - a bit like "Pseudo Full Install"

Post by gyrog »

I'm starting to like "fsiPup".

I have an "fsiPup" of Bookwormpup64 installed on my SSD, but the save location is on a fat32 partition with a bit of space.
This means it runs in pupmode=66, but that's not a problem, because the save contains nothing of value, just the files Puppy writes every time it runs, so it remains small.

It has FrugalPup removed, I run it as a portable AppDir. The adrv was excluded since I have Firefox as a portable AppDir.
All my "standard" config changes are included. And it's all in the single puppy_dpupbw64_10.0.4.sfs file.
So I have a number of unused ?drv's available for "testing" purposes, even with a normal 'init' script.

I can delete my "save" at any time and start again with a "ready to go" Puppy, setup the way I want it.
Then I can run it with either aufs or overlayfs, and with any "save" mechanism.
So if I want to try installing something huge that might not fit in the tmpfs of pupmode=66, I can set it up to run with a savefolder in pupmode=12. Then when I'm finished playing, set it up to run pupmode=66 again and delete the savefolder.
I don't even need to keep the old pupmode=66 save-archihve file, just start again.

But I'm really comming to like, is always selecting "no save" at shutdown.
Which is even better if I have just tried installing something and want to get rid of it.
(Yes, I realise this last bit is normal pupmode=13 experience.)

And if I do decide that a particular sfs file should be included, or I have installed a keeper in my "save", I can run the 'fsiPupSfs' utillity against the "fsiPup" install directory.

Hmm... I might be looking at removing the current "fat32" limitation on pupmode=66 in the 'init' script.

gyrog
Posts: 594
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 14 times
Been thanked: 180 times
Contact:

Re: Frugal Full Install - a bit like "Pseudo Full Install"

Post by gyrog »

Sorry, there is a problem:
if you create an ffiPup from an ISO.
create a normal frugal install from the same ISO, and configure it.
create an fsiPup from this normal frugal install
So far all is fine.
But if you then convert the fsiPup sfs file to an ffiPup root directory, replacing the existing one in the ffiPup, the ffiPup does not boot.

Hm..., the whole package is a bit too complicated, the way you are supposed to be able to go from one to the other.

Maybe there has to be a "base" for a fsiPup, and that can be either a normal frugal install or an ffiPup, but your can't mix.
The thing is, either "base" is easier to "upgrade" than fsiPup, or maybe it shouldn't, i.e. write "upgrade" utilities for fsiPup.

A lot more testing is needed, and some thinking.

Clarity
Posts: 3268
Joined: Fri Jul 24, 2020 10:59 pm
Has thanked: 1347 times
Been thanked: 438 times

Re: Frugal Full Install - a bit like "Pseudo Full Install"

Post by Clarity »

If I understand (this is an assumption on my part), @wiak "may" have a solution that does NOT require any work on your part. Merely its an simple implementation.

If offers additional benefit, too, already. See it in the forum here down the webpage under "Notes": "wd_ Multi-instance frugal install"

Hope this is helpful as he addresses it for WoofCE PUPs, too.

gyrog
Posts: 594
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 14 times
Been thanked: 180 times
Contact:

Re: Frugal Full Install - a bit like "Pseudo Full Install"

Post by gyrog »

@Clarity,
It's my understanding that the closest thing in the KL world is "pseudo full install".
"wd_multi KL frugal installs" is something different.

gyrog
Posts: 594
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 14 times
Been thanked: 180 times
Contact:

Re: Frugal Full Install - a bit like "Pseudo Full Install"

Post by gyrog »

I confim that no matter how you create an fsiPup, if you convert it back to an ffiPup root, the ffiPup will not boot.

For the next release I propose:
There will be no conversion like utilites.

ffiman:
will have the "Create an 'fsiPup' sfs file from root directory" item removed.

fsiman:
will have the "Create an 'ffiPup' root directory from 'fsiPup' sfs file" item removed.
it will get 2 new items:
"Setup an 'fsiPup' directory from an 'ffiPup' install directory"
and
"Create just a 'puppy...sfs' file from an 'ffiPup' install directory"

So there will be 2 paths to an fsiPup:
ISO->normal frugal install->fsiPup
or
ISO->ffiPup->fsiPup
But there will be no provision for going backwards.

This reinforces the idea of the <ffiPup> or the <normal frugal install> act as a "base" for the fsiPup,
If you want to seriously change the fsiPup, you upgrade it's "base" and produce a new 'puppy...sfs' file.

How I see this stuff being used:
When I decide to use a new Puppy, I:
Install it on my HD as an ffiPup, or a normal frugal install with a savefolder in pupmode=12.
Configure this "base" with all the changes I desire.
Setup an fsiPup from my "base" on my SSD, (doesn't matter where the save goes).
Run the fsiPup with an "indirect" save, either pupmode=66, or pupmode=13.
(pupmode=66 would probably be my first choice, because it is so simple.)
I would use the fsiPup for test installs to the save, so I can discard the save when I'm done.
If it was a "keeper", I do the same install to the "base", and produce a new 'puppy...sfs' in the fsiPup.

User avatar
rockedge
Site Admin
Posts: 5711
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 1990 times
Been thanked: 2097 times
Contact:

Re: Frugal Full Install - a bit like "Pseudo Full Install"

Post by rockedge »

gyrog wrote:

How I see this stuff being used:
When I decide to use a new Puppy, I:
Install it on my HD as an ffiPup, or a normal frugal install with a savefolder in pupmode=12.
Configure this "base" with all the changes I desire.
Setup an fsiPup from my "base" on my SSD, (doesn't matter where the save goes).
Run the fsiPup with an "indirect" save, either pupmode=66, or pupmode=13.
(pupmode=66 would probably be my first choice, because it is so simple.)
I would use the fsiPup for test installs to the save, so I can discard the save when I'm done.
If it was a "keeper", I do the same install to the "base", and produce a new 'puppy...sfs' in the fsiPup.

I am going to follow these steps and set this scenario up. I understand your point about the order of what build goes when and in what direction. We experience some wobbly behavior on occasion with Kennel Linux/FirstRib's when experimenting with out of the ordinary situations.

gyrog
Posts: 594
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 14 times
Been thanked: 180 times
Contact:

Re: Frugal Full Install - a bit like "Pseudo Full Install"

Post by gyrog »

@rockedge , that would be a good test.
Thanks for testiing.

I might have forgotten to mention, how to get from an ffiPup to an fsiPup.
'ffi2fsiPup' currently generates only a 'puppy...sfs' in the ffiPup install directory.
I then do a normal frugal install (I use FrugalPup->Puppy) to install the ffiPup in the fsiPup diretory,
and then delete the useless 'local-initrd.gz' in the fsiPup directory.

In the next release there will be a utility to setup a complete fsiPup from an ffiPup.

gyrog
Posts: 594
Joined: Thu Oct 01, 2020 8:17 am
Location: Australia
Has thanked: 14 times
Been thanked: 180 times
Contact:

Re: Frugal Full Install - inOnePup v5 - a bit like "Pseudo Full Install"

Post by gyrog »

Frugal Full Install - inOnePup, including ffiPup and fsiPup

This is the second release of the inOnePup project, 2 Puppy installs where all of Puppy is contained in a single file.
(Inspired by "Pseudo Full Install", @amethyst's "SFS-Merger" and "Save2SFS", and @taersh's "PaDS")

This release contains enhanced scripts and enhanced GUI's.
The GUI's now do some basic validation of selections,
e.g. if you are asked to select an ffiPup, it checks for the existence of a '*root' directory.

There is no utility to convert an fsiPup into an ffiPup,
but you can unsquashfs an fsiPup 'puppy...sfs' file to produce an ffiPup '*root' directory, and it will boot.

The problem with the old 'fsi2ffiPup' was due to fsiPup 'puppy...sfs' files being created withoud a '/sys' directory,
This worked Ok when booted as a normal layered filesystem, but failed as a frugal full install.
fsiPup 'puppy...sfs' files are now created with a more appropriate set of files.

The 'local-initrd.gz' now includes a patched 'init' script to support pupmode=66 anywhere.
So, it is now needed for both ffiPup's and fsiPup's.

Support for pupmode=66 anywhere, is now provided by the included 'rc.shutdown', 'rc.sysinit', and 'savesession-archive' files.
These files are automatically copied into place when an fsiPup or ffiPup is setup.

Any 'extra_boot_parameters.txt' file is supported and honoured by the 'ffiBoot' utility.
('extra_boot_parameters.txt' is written by "FrugalPup->Puppy".)

There is no utility for generating a grub2 boot entry for an fsiPup,
just use your normal method for booting a frugal install, e.g. "FrugalPup->Boot->append".

'fsiSfsFromFrugal':
Can use savefolders and "pupmode=66" save archives, but not savefiles.

'empty-save66.tar.gz':
If copied into the save location of an fsiPup, and renamed as a "save" for the particular Puppy,
the fsiPup will boot in "pupmode=66", e.g. 'dpupbw64save66.tar.gz'
(For a default install, the "save location" is the install directory.)

'$HOME/.config/ggwins.css':
This CSS file controls the "look" of a number of the elements in the GUI's.
Edits made to this file will be reflected in the "look" of the GUI's.
Much of it is commented out; it's just there to show what is possible.

ffiPup or Frugal Full Install
The single file is a directory.

ffiman.png
ffiman.png (57.32 KiB) Viewed 208 times

Note the "Brief help for ffiPup CLI support utilities" button.

fsiPup or Frugal Squashfs Install
The single file is a 'puppy_...sfs' file.

fsiman.png
fsiman.png (49.57 KiB) Viewed 208 times

Note the "Brief help for fsiPup CLI support utilities" button.

Try

inOnePup-05.tar
(55.91 KiB) Downloaded 13 times

Extract 'inOnePup-05.tar' into an empty directory on a linux partition.
In a terminal, change directory to the one containing the extracted files.
Run the command:

Code: Select all

./SETUP

You can now run the GUI scripts via a terminal in any directory, e.g.

Code: Select all

ffiman

or

Code: Select all

fsiman

The CLI utilities, are not symbolic linked, but can be run from the 'bin/' directory.

NOTE: The GUI utilities require Python3 with gtk3. Works fine on either BookwormPup.
The CLI utilities, are just scripts, so should run on any Puppy.

Post Reply

Return to “Cutting Edge”