How to build the smallest pup - just core?

New to Puppy and have questions? Start here

Moderator: Forum moderators

Post Reply
idh
Posts: 5
Joined: Sat Jun 12, 2021 8:43 am

How to build the smallest pup - just core?

Post by idh »

Hello everyone.
I'd like to build a very small Puppy, only including CUPS, SANE, Blender, LibreOffice and SeaMonkey, plus the "usual" command line tools and hardware support. No other GUI Apps, maybe just the Terminal.
The real issue is I'd like to also install AddOns for all of them
(Blender, LibreOffice and SeaMonkey), so I'll need to update frequently, and to pack these Apps with the installation/run media, because I'd like them to be default on the resulting Puppy, together with AddOns I choose.
FYI, I have XUbuntu currently running on my PC.
Finally, I'd like to do a Full Install on a USB Drive, is this possible?

Thanks in advance for any help

darry19662018
Posts: 453
Joined: Sat Dec 14, 2019 12:24 am
Has thanked: 54 times
Been thanked: 65 times

Re: The smallest pup - just core

Post by darry19662018 »

You are better off doing a frugal install to flash drive. As for a barebones puppy either build one from woodce or strip a pup down using the buildins utility of preinstalled software. Then remaster to create the final barebones pup.

idh
Posts: 5
Joined: Sat Jun 12, 2021 8:43 am

Re: The smallest pup - just core

Post by idh »

Why am I better doing a frugal?

User avatar
mikewalsh
Moderator
Posts: 6149
Joined: Tue Dec 03, 2019 1:40 pm
Location: King's Lynn, UK
Has thanked: 788 times
Been thanked: 1976 times

Re: The smallest pup - just core

Post by mikewalsh »

@idh :- Hallo.....and :welcome: to the 'kennels'.

idh wrote: Sat Jun 12, 2021 9:46 am

Why am I better doing a frugal?

For the simple reason that Puppy was never intended to run as a full install on a flash drive......or anywhere else, for that matter. None of the software is coded to function properly like that, and the "full" install is intended as a last-gasp, last-resort way to get a Puppy running on very old, seriously resource-starved hardware.

If you don't understand anything else yet, try to get your head round this; the 'frugal' Puppy is not, repeat NOT a 'stripped-back', 'cut-down' version of Puppy. It's very much the whole thing.....the 'real deal'. In Puppy land, a frugal install means one thing, and one thing ONLY.....that Puppy is being frugal with your disk/storage space, because the whole thing runs from just 3 or 4 highly-compressed, read-only files. :)

What you're asking should be eminently possible. Stick around, and we'll do our best to get ya sorted..! :thumbup:

Mike. ;)

User avatar
mikeslr
Posts: 2955
Joined: Mon Jul 13, 2020 11:08 pm
Has thanked: 178 times
Been thanked: 910 times

Re: The smallest pup - just core

Post by mikeslr »

Hi idh, Welcome to the Kennels. :welcome:
The first thing you have to do is clear your mind of all you think you know about Linux. 20 years ago Barry K --perhaps taking a page from knoppix-- created a version of Linux designed to run as much as possible in RAM so as not to conflict with the any operating system --ATT, Windows-- already on a computer. Today, with very little effort you can boot Puppy Linux from a USB-Stick, unplug the Stick and still fully use every application in your Puppy; because after bootup Puppy is in RAM and will only have to access the Stick if you want to save stuff back to it. Frugal relates to your use of the storage media; not a Puppy's operating system.
About 'stripping puppy down to it's core'. It is possible. It is a waste of effort. See the thread here, viewtopic.php?p=4070#p4070

This again has to do with how a Frugal Puppy makes use of RAM. Although I haven't gotten anyone with technical knowledge to confirm it, my understanding is that what a frugal Puppy does on boot-up is copy the files from the storage media into RAM, compressing those files by a ratio of about 5:1. I may have misused the phrase. What I mean is that an application which occupied 100 Mbs of space on your storage media only occupies 20 Mbs of space in RAM. Those compressed files show up as 'cache'. To be put to use they are decompressed. Already in RAM how quickly the decompression takes place depends on the speed of your CPUs and the amount of available RAM.

To accomplish your other objectives, get to know nicOS-Utility-Suite, viewtopic.php?f=106&t=1694. Any application not otherwise available via Puppy's Package Manager can be located in the /opt folder. For example, Mike Walsh has published a 'portable-seamonkey'. Blender can be downloaded from its website and unpacked into /opt. All you need to do with application fully in /opt is create menu entries. Ordinarily, Puppy saves changes to a SaveFile or SaveFolder. But using one of amethyst's tools, you can employ an adrv or ydrv instead.

User avatar
mikewalsh
Moderator
Posts: 6149
Joined: Tue Dec 03, 2019 1:40 pm
Location: King's Lynn, UK
Has thanked: 788 times
Been thanked: 1976 times

Re: The smallest pup - just core

Post by mikewalsh »

@mikeslr :-

If that was me, Mike, I'd use Fossapup64 for the project. I know it's quite a bit bigger than many older Pups, but if I have my facts right then it can be turned into a "basic" Puppy by the simple expedient of removing the adrv, or otherwise making it so it doesn't load. As I understand it, Phil has constructed Fossapup in such a way that by removing the adrv, the bulk of the default software is left out of the mix, without otherwise affecting core functionality.

This way, the OP will have themselves a small, yet totally up-to-date & 'modern' Puppy, capable of running all current software.

  • SeaMonkey - use one of my portables

  • Blender - again, it'll run from a totally self-contained directory. One of these days, I'm going to turn this into a 'portable', using the file-manipulation tricks I've been honing over the last year or so.

  • LibreOffice - run the AppImage

That's what I'd do, if it was me. Run Fossapup as its 'core' variant, then run the software as detailed above. Just personal preference, like, but I think it'll work rather well for what the OP requires. And if they're run from a separate directory on the flash-drive, then they can be updated as frequently as the OP wants.

T'other Mike. :D

darry19662018
Posts: 453
Joined: Sat Dec 14, 2019 12:24 am
Has thanked: 54 times
Been thanked: 65 times

Re: How to build the smallest pup - just core?

Post by darry19662018 »

Same here Mike been making stripped down barebone Puppies for years and just use static apps and minimal apps with them and your portables - Got sick of dependency hell also a lot of apps I don't use in my way.

williams2
Posts: 1062
Joined: Sat Jul 25, 2020 5:45 pm
Been thanked: 305 times

Re: How to build the smallest pup - just core?

Post by williams2 »

@mikeslr my understanding is that what a frugal Puppy does on boot-up is copy the files from the storage media into RAM

Puppy typically ran from a cd/dvd and copied the Puppy operating system sfs files (which contain the Puppy operating system) to ram, then mounted the sfs files to build the operating system's file system. That way, the cd/dvd disc could be removed and the cd/dvd drive could be used for other things, for example, to play a dvd movie. That is the main reason the sfs files were copied to ram. It also runs faster that way.

The save file typically would be on the hard drive, or a usb drive.
Save files/folders are never compressed.
The file systems in save files/folders are typically the top writable layer of the aufs layered file system.
So writing to Puppy's file system writes to the aufs top layer, which is the save file on the hard drive.

Puppy's mode 13 adds a tmpfs file system (in ram) as the top layer. The save file is now the second layer, and is treated by aufs as read-only. The save file file system is not read only, it is mounted rw, and can be written to directly (usually it is /initrd/pup_ro1/). Puppy copies changed files in the top tmpfs (ram) file system to the second layer (the save file) if needed, as needed.

Mounting any kind of file system does not use a significant amount of space in ram.
sfs files do not need to be copied to ram before they are mounted. (though Puppy usually does)
Mounting any kind of file system does not cause files in the fs to be automatically copied to ram.
Save files are not copied to ram before they are mounted,
The contents of save files are not automatically copied to ram after they are mounted.
Save files are never compressed (unless you back them up somewhere.)
Puppy uses tmpfs, most Puppy versions do not use zram.

So Puppy operating system sfs files typically are copied to ram then mounted.
Other sfs files (that are not operating system sfs files) are not copied to ram, then mounted.
Save files/folders are never copied to ram then mounted.

User avatar
mikeslr
Posts: 2955
Joined: Mon Jul 13, 2020 11:08 pm
Has thanked: 178 times
Been thanked: 910 times

Re: How to build the smallest pup - just core?

Post by mikeslr »

All true, William2. If you're using a SaveFile or SaveFolder. I guess I wasn't clear.

I've been playing with NicOS-Utility-Suite's Save2SFS which converts a SaveFile or SaveFolder and/or just the applications and settings currently in RAM into a ydrv.sfs or an adrv.sfs and which, on the next boot-up will enable the media source (if a USB-Key) to be unplugged; or if a hard-drive will be automatically unmounted after boot-up.

Under those circumstances, the information has to be in RAM because the original source --the media from which Puppy booted-- is no longer available yet the applications are fully usable.

Do you know of some physically existing item beyond RAM and Storage Media (and the miniscule cache provided on CPUs) where the information which makes up the instructions for applications can be located?

My exploration showed that on boot-up the same puppy with such adrv.sfs generated more 'cache' than one [by renaming the adrv.sfs and rebooting] booted without such adrv.sfs .

Less definitive --as more factors come into play-- is the growth in the size of 'cache' and reduction of immediately 'available' RAM on boot-up between a Puppy booted with such 'adrv.sfs' and without. As you know, neither SaveFile nor a SaveFolder are compressed. But the source of their contents, and those only existing in RAM --i.e., not yet SAVED-- may have been compressed packages; and different compression mechanisms and ratios are available for creating SFSes, including ones designated as an adrv.sfs or ydrv.sfs. Applications may impose different demands on RAM even when not in use: certainly LibreOffice with multiple modules each having a menu listing might use more RAM just to signify its existence than a simpler application. So the 5:1 I mentioned is a 'Rule of Thumb'. Although the size of the 'cache' in use at boot-up seemed to correspond roughly with a ratio of 1:1 to the size of the adrv.sfs, the amount of available RAM reported by pupsys-info immediately on boot-up was only reduced by about 1/5 the space of the original files (SaveFile or uncompressed portable-app relocated to /opt in an adrv) had occupied on Storage media (USB-or-hard-drive).
Hence "compressed in RAM as cache'.

williams2
Posts: 1062
Joined: Sat Jul 25, 2020 5:45 pm
Been thanked: 305 times

Re: How to build the smallest pup - just core?

Post by williams2 »

Under those circumstances, the information has to be in RAM because the original source --the media from which Puppy booted-- is no longer available yet the applications are fully usable.

The files in the Puppy operating system's file system (config files, etc etc) are used to make an sfs file.
That is, the files that were in the top writable aufs layer were copied into the squash file system (adrv, ydrv, whatever.)
The next time Puppy boots, the operating system sfs files are usually copied to ram, then mounted.
Then aufs creates a layered file system using the mounted file systems that are in each sfs file, with a writable layer (ram or save file or save folder) on top.

So, yes, the sfs files ARE copied to ram.
The contents of the file systems in each sfs file have not automatically been copied to ram before or after mounting.
To access any particular file in the squashfs compressed file system, data is read from the data in the sfs file and processed to uncompress the data to get back the original file. So, for Puppy which typically does not use the zram compressed file system:

Save files are not compressed.
The tmpfs file system in ram is not compressed.
sfs files are compressed.
The operating system sfs files are in a compressed form and are usually copied to ram.

if you copy the files from the save file or save folder into an sfs file like an adrv.sfs file, when the adrv.sfs is automatically mounted when Puppy boots, those files from the save file are in the operating system sfs files and are seen and used by the operating system, so all your installed applications still work properly.

what a frugal Puppy does on boot-up is copy the files from the storage media into RAM, compressing those files

If you mean by "storage media" the save file, then no, the save file is not compressed, and no, mounting a save file (or sfs file or any file system) does not use significant amount of space in ram.

If you mean that the operating system sfs files are copied to ram, then yes, that is absolutely true.

My exploration showed that a puppy booted without such adrv.sfs --by renaming it before rebooting-- generated less 'cache' than one booted with such adrv.sfs being loaded on bootup

Space used in the tmpfs file system does not show up as "used" or "free" memory. Space used in the tmpfs file system always is treated as if it is space used in "cache" memory. For example:

Code: Select all

free -wh
dd if=/dev/zero bs=1M count=512 > /tmp/dd.bin
free -wh
rm /tmp/dd.bin
free -wh

Operating system sfs files that are automatically copied to ram take up space in ram, which is shown as space used in cache.
Mounting a file system that is in an sfs file or in a save file does not use much memory. (buffers and linking to the virtual file system.)

The only significant space used (from mounting file systems) in ram by Puppy is the operating system sfs files that are copied to the tmpfs (ram) file system.
You can stop Puppy from copying the sfs files to ram by using the pfix=nocopy boot parameter.
In my case, BionicPup64 sfs files including my adrv.sfs file, are using 455MiB of space in the tmpfs.
The effect of pfix=nocopy is about the same as a "full" install to a partition.

User avatar
mikeslr
Posts: 2955
Joined: Mon Jul 13, 2020 11:08 pm
Has thanked: 178 times
Been thanked: 910 times

Re: How to build the smallest pup - just core?

Post by mikeslr »

Hi williams2,

Thanks for replying. I always learn something, or try to, from your posts.
At the moment I'm not certain that we aren't actually saying almost the same thing with your terminology being better and, thus, providing a more accurate picture. [Picture being an important word: I have to visualizing what's taking place; then find the words to describe it]. But I have the feeling that may not be the case: that, in fact, I had missed some important relationship.
I'll have to reread your post --maybe a couple of times-- when my mind is clearer. Today has just been 'one of those days'. Thanks again. Especially for bearing with me.

idh
Posts: 5
Joined: Sat Jun 12, 2021 8:43 am

Re: How to build the smallest pup - just core?

Post by idh »

I'm interested in MacPup, but it's quite old.
Is it there any way to update it, after installation?

Note I'd install it to the main hd.

backi
Posts: 600
Joined: Thu Jul 23, 2020 2:28 pm
Has thanked: 76 times
Been thanked: 70 times

Re: How to build the smallest pup - just core?

Post by backi »

idh wrote:

I'm interested in MacPup, but it's quite old.
Is it there any way to update it, after installation?
Note I'd install it to the main hd.
Why install it to HD.....low on resources old Machine?

Better go "frugal"...if possible....instead of "Full Install".....only if not otherwise possible.

I Think Macpup is no longer maintained
Macpup once was almost my favorite Pup.
Because i liked the E17 Enightenment Desktop most.
Since Macpup is so outdated i would not recommened it for a "modern" use.
Don`t know if your Aim is the E17 Enlightenment Desktop.

Don`t know if any Puppy Linux allows a working installation of E17 Desktop (don`t know how to achieve to make it work in the "Puppies").....

I am a user of the "Dogs" OS----Xenial Dog-- Bionic Dog--or Fossa Dog.---or Debian Dogs (Bulleye Dog)....in which E17 or the E23 or E24 Enlightenment Desktop or so can easily be installed via Synaptic or creating E17-E22-E23-E24 squashfs Modules and start them at Boot-up via placing them into casper or the live Folder.
There are a few simple Hacks to make them work with the Enlightenment Desktop.
Could help you out....... but just for the "Dogs".

Dog House:
viewforum.php?f=22

So my Advice ....better forget about Macpup.

idh
Posts: 5
Joined: Sat Jun 12, 2021 8:43 am

Re: How to build the smallest pup - just core?

Post by idh »

Yes, I'm interested in Enlightenment, but I understood nothing of your message.
Please, can you link a modern, Enlightenment enabled pup?

idh
Posts: 5
Joined: Sat Jun 12, 2021 8:43 am

Re: How to build the smallest pup - just core?

Post by idh »

Help please, I'm not used to Puppy and I really don't know where to start

User avatar
Phoenix
Posts: 341
Joined: Fri Feb 12, 2021 2:03 am
Location: Canada
Has thanked: 4 times
Been thanked: 48 times

Re: How to build the smallest pup - just core?

Post by Phoenix »

Full Install is generally a last resort, installing to a savefile is preferred unless you cannot.
If you wish to build a puppy, you can look at woof-ce. https://github.com/puppylinux-woof-CE/woof-CE
Most puppies use JWM or Openbox, however you can use other window managers, which may or may not work.
What backl means is that you can install enlightenment via the package manager, or by creating .sfs files, and there are also tricks to make it work.
The puppy iso's released contain everything needed for general purpose, however if you really do not want the packages that came with it, you can go to menu > setup > remove built-in packages. (Please be absolutely sure that the packages you want to remove will not break puppy)

IRC: firepup | Time to hack Puppy!

dimkr
Posts: 2416
Joined: Wed Dec 30, 2020 6:14 pm
Has thanked: 53 times
Been thanked: 1199 times

Re: How to build the smallest pup - just core?

Post by dimkr »

Phoenix wrote: Wed Aug 04, 2021 2:36 am

If you wish to build a puppy, you can look at woof-ce. https://github.com/puppylinux-woof-CE/woof-CE

dpup (x86_64 or x86, debian, bullseye) is small but very capable. Some small puppies don't support GPU-accelerated video decoding, so YouTube eats up lots of CPU %, others don't support Bluetooth, don't have enough pre-installed fonts to make websites render properly, etc'. In dpup, all these things are baked in, but it's still fairly minimal. Also, it uses zstd compression, which makes it 10-15% bigger, but so much faster, and it's still smaller than many other Puppies that don't provide things like Bluetooth support or tear-free rendering.

What I'm trying to say, is, define "minimal". You can build a smaller Puppy that doesn't support stuff like GPU-accelerated video decoding, and it will be small but slow and power hungry. And you can use xz compression instead of zstd, but applications will be slower to start. Or you can drop stuff like Bluetooth, which IMHO is crucial in the pandemic (video chat and remote learning are super popular now), but it's not trivial to install manually as a user.

If you use a pre-built dpup (for example, from https://github.com/puppylinux-woof-CE/w ... #artifacts), You can get rid of most applications (Firefox, Sylpheed, mtPaint, etc') by deleting adrv*.sfs.

If you want it to be even more minimal and build dpup yourself, you can remove the extra fonts, Bluetooth support and so on. All the dpup-related settings are under woof-distro/x86_64/debian/bullseye64.

To get started using woof-CE quickly, I suggest that you take a look at https://github.com/puppylinux-woof-CE/w ... -on-GitHub.

backi
Posts: 600
Joined: Thu Jul 23, 2020 2:28 pm
Has thanked: 76 times
Been thanked: 70 times

Re: How to build the smallest pup - just core?

Post by backi »

Hi @idh
Do you really need just a "core".
Why not just use/choose one of those "Puppies" there are plenty of them........they are anyway rather "minimal/small" with a "maximum" of full functioning Programs for daily Use.
You get a lot/more bang for your buck(s)
I do not really understand what you are trying to achieve with a "Core".
I think there are no "Puppies" out there with Enlightenment Desktop....except this outdated Mcpup......as far as i know.
But it is not really necessary......JWM Desktop is a fine One......let you achieve everything you want to do.
Maybe have a Look here:

fossapup64:

64bit Version:
Download:
http://distro.ibiblio.org/puppylinux/puppy-fossa/

32Bit Version :
A 32bit eoan-focal hybrid iso by peebee is also available here
viewtopic.php?f=40&t=405&i=1

Regards!

User avatar
rcrsn51
Posts: 1383
Joined: Sun Aug 23, 2020 4:26 pm
Been thanked: 357 times

Re: How to build the smallest pup - just core?

Post by rcrsn51 »

idh wrote: Sat Jun 12, 2021 9:01 am

I'd like to build a very small Puppy, only including CUPS, SANE, Blender, LibreOffice ...

This notion is a contradiction from the very start.

backi
Posts: 600
Joined: Thu Jul 23, 2020 2:28 pm
Has thanked: 76 times
Been thanked: 70 times

Re: How to build the smallest pup - just core?

Post by backi »

This notion is a contradiction from the very start.

I re-read this Thread again from the Beginning (notified by this comment above).

idh wrote:

Hello everyone.
I'd like to build a very small Puppy, only including CUPS, SANE, Blender, LibreOffice and SeaMonkey, plus the "usual" command line tools and hardware support. No other GUI Apps, maybe just the Terminal.
The real issue is I'd like to also install AddOns for all of them
(Blender, LibreOffice and SeaMonkey), so I'll need to update frequently, and to pack these Apps with the installation/run media, because I'd like them to be default on the resulting Puppy, together with AddOns I choose.
FYI, I have XUbuntu currently running on my PC.
Finally, I'd like to do a Full Install on a USB Drive, is this possible?

Seriously........ are you a real bloody Beginner.....or are you just kidding/trolling?

User avatar
rcrsn51
Posts: 1383
Joined: Sun Aug 23, 2020 4:26 pm
Been thanked: 357 times

Re: How to build the smallest pup - just core?

Post by rcrsn51 »

I apologize for not reading carefully.

But if a machine is capable of running Blender, stripping out the small built-in Puppy apps strikes me as a waste of time.

User avatar
mikeslr
Posts: 2955
Joined: Mon Jul 13, 2020 11:08 pm
Has thanked: 178 times
Been thanked: 910 times

Re: How to build the smallest pup - just core?

Post by mikeslr »

rcrsn51 wrote: Wed Aug 04, 2021 3:13 pm

I apologize for not reading carefully.

But if a machine is capable of running Blender, stripping out the small built-in Puppy apps strikes me as a waste of time.

Here's why, viewtopic.php?f=119&t=692: many hours of work to increase available RAM for applications by 7 mbs; and noting that one graphic-rich webpage will eat-up over 200 Mbs of RAM.

The worst thing about applications you don't need is not that they use RAM, but that they clutter the Menu. If not builtin, install radky's PupMenu, http://www.smokey01.com/radky/ to easily turn off their appearance.

Post Reply

Return to “Beginners Help”