-   Puppy (
-   -   Breaking Up Lucid Puppy For Sub-128 Megs of RAM (

bobbobbix 07-10-2012 06:09 PM

Breaking Up Lucid Puppy For Sub-128 Megs of RAM
Breaking Up Lucid Puppy For Sub-128 Megs of RAM
(Experimental - out in the open)
--not checked for redundancies, but works for me
--I lack hardware to test

WARNING: This approach may not be acceptable to
some. Also, do not attempt if not familiar with
command line.

I became aware of the desire to run
a Puppy Linux on a 128M system. The
oldest computer I have has 240M.
The only option for me to test is through
virtualization, which is not the same as
real hardware. Also, computer shopping is
reliant on both luck and popularity for me
(e.g. those 'modern' 2GHz+ powerhouses
with 4G+ RAM). Therefore, testing
is out in the open. The following worked for
me so far for as low as 64M RAM
(virtualization). Keep in mind that the
default will tie up the CD/DVD. I suspect
that can be changed via initrd, which is
not mandatory here.

I admire the work put into my favorite
Puppy Linux (5.2.8), which is what I'll use
here. What the following does is break up
the filesystem. In turn, this ends up
breaking networking (possibly more that I'm
not aware of - READ: NO INTERNET). The benefits
are that boot time is drastically reduced (you can
see the difference of both in virtualization)
and most of the filesystem does not take up RAM.
The filesystem, for me, was about a 30M load
from cd at boot (which has an alternate),
then loading the rest, which
is extracted to a separate file, which is
mounted to /usr/

The following sections (except for the last)
can be done once. The last can be scripted.

Creating Mini.iso (Needed only Once)
(from regular iso)
1) # mkdir /REMASTER
2) # cd /REMASTER
3) # cp -r /initrd/pup_ro2 .
4) # mkdir usr
5) # mv pup_ro2/usr/* usr
6) # mksquashfs pup_ro2 lupu_528.sfs
7) # mksquashfs usr usr.sfs
8) edit iso with isomaster
-verify if it works with qemu
-replace lupu_528.sfs and add usr.sfs

*May want to boot into it and make remaster via
menu in order to maximize "smoothness."
(forgive me for not using an appropriate term)

At this point, there will be lots of errors
from /usr being empty, but they should be
harmless, and this will bleed through the
next step.
But we are not done yet.

Making and Storing Usr
(Needed only once)
The file used for usr is a generated ext2
file to be used for read-write. Mentioned
file size is about 300M, but you are welcome to
enhance it. Keep in mind that large file
sizes like mentioned take a heavy toll on a
450MHz processor. r/w access is important.
(Following on made partition - cfdisk then mkfs -
backup is not a bad idea)

1) # dd if=/dev/zero of=usr.ext2 bs=100M count=3
('memory exhausted' error sometimes fixed by changing
bs & count: bs=10M count=30)
2) # mkfs.ext2 usr.ext2 (enter y)
3) # mkdir /SFS /EXT2
4) # mount -t ext2 -o loop usr.ext2 /EXT2
5) # cd; mkdir sr0; mount /dev/sr0 sr0
6) # cd sr0; mount -t squashfs -o loop usr.sfs /SFS
7) # cp -r /SFS/* /EXT2 (may take a while)
8) # umount /dev/loop2
9) # umount /dev/loop1 (quick arrow up)
10) # cd; umount /dev/sr0; umount /dev/sda1
11) soft reboot (important for hard drives)

Misuse of dd can ruin existing installs. I know
personally - all it takes is a typo. I'm not sure
about the following tip, but be careful. Don't
blame me if you mess up something.

(Tip: I have not extensively tested, but
qemu-img is quick for generating large files.
I used it for making a 90G file for formatting.
It *can* be instantaneous compared to
using dd! Second vs hours on my computer,
some computers may not work and it is better to use

Mounting Usr for Use (easily modifiable/scriptable)
1) # mkdir sda
2) # mount /dev/sda1 sda (Note: these 2 steps tie up sda1)
3) # mount -t ext2 -o loop sda/usr.ext2 /usr
4) # startx

End Notes
1) There may be instances where ROX is not responsive,
but through right clicking for the openbox menu,
you can use urxvt. One time there was a problem
with ROX-Terminal alone
2) The above steps may vary depending to specific
3) Default scripts/programs in Puppy Lucid 5.2.8 may
take a long time to work on older processors.

8-bit 07-22-2012 01:31 AM

I had been using Lucid 5.20 on a very old Compaq laptop with under 128 megs of ram. With all the swapping to a temporary file due to the lack of memory, the whole install got corrupted big time.
I will have to do a reinstall of it if I want to try to recover.
But to give you an idea of my problems, a lot of Puppy's programs will crash due to all the disk swapping.
I cannot run Gparted to set up a swap partition due to it crashing.
I thought about using an older version of Puppy, but I need to be able to load the quick time libraries for use with a program/interface that needs it. And I am loading it on-the-fly with an SFS loader.
Also, other library files needed just do not exist in the earlier Puppy versions.

I may try the latest Wary as I hear it works well with low ram PCs.
Also, that Compaq laptop is being used as a dedicated system being used as an interface to a physical Atari computer.
I can access files stored on the Compaq as well as even booting the Atari from a disk image stored on the Compaq
I am familiar with the Puppy command line, but even CFdisk does not get me where I want to be as to shrinking a partition to make room for a swap partition.
The 4gig drive currently has 2 partitions with Puppy Lucid 5.20 on one and Windows 98SE on the other.
And in Windows, I am lacking a good touchpad driver and that complicates things.
The Compaq has one USB port, one serial port, and PS/2 ports. But I lack a PS/2 mouse and the USB port is needed for accessing files transferred from my desktop.
I now have over 3000 Atari files and still adding more.
The Atari itself now has a 512meg CF card acting as a bootable hard drive too.
The main thing here is getting a version of Puppy that will run on the Compaq without doing a lot of disk swapping as that is asking for trouble as a shutdown with saving/updating the pupsave file is easily corrupted when part of the info to update the pupsave is not in memory, but in a swap file.

Also, part of the reason for using the old Compaq is that it has a true serial port whereas the newer laptops I have do not.
And although I can get a USB2Serial adapter to work with Windows, for the life of me, I cannot get it to work with Puppy.
My interface program reports a connection has been made, but no data ever gets transferred.
Also, in Puppy, the serial backend driver, /dev/ttyUSB0 when activated wiped out the USB2Paralell connection to one of my printers and that printer no longer is usable or even found by Puppy now.
And this is with both Lucid 5.20 and Slacko.
But at least in Slacko, I was able to recover by a reinstall as long as I do not plug in that USB2serial adapter.

One thing that bugs me in all of this is that in Windows, windows sets up a serial port for the adapter that works and in Puppy, it goes off on its own to find something to connect to that may not be the serial connection one is wanting.

Just call me dumb, but I thought linux/Puppy was supposed to give one more control over their PC!

You could consider the above statements a rant, but I had to get it all off my chest.

bobbobbix 07-24-2012 03:24 PM

Thanks for the reply. Your post will probably make a good reference/wake up call.

I forgot most of the limitations of old hardware when running a current operating system. Hard drives back then (pre-7200rpm) probably couldn't handle all the swapping, as I have understood. The other info you gave can be valuable in the future. It could also be the RAM or the Processor holding you back, but you implied that Windows 98SE ran OK, so I'm not sure about that idea. A Puppy to look up would be PupWin98. I have never tried it myself, and I don't think it would have the quicktime libraries like you want.

This method of install would be a hybrid of the Frugal install (just copy the big files) and a Full install (copying of /var, /etc, and so on). Have you tried those options? The install via menu covers those. Frugal can be done manually, even in Windows (be warned that Windows tends to make things unneccessarily complicated and difficult).

That is neat what you are doing with an Atari and a Compaq. I wanted to do similar with a Commodore 64C. I agree with the PS/2 mouse thing. See if you can use a Tiling Window Manager. I did for my old Compaq. Its mouse buttons fell off. The necessity for a mouse becomes optional. I even got Openbox to run off of mostly keybinds. If you find a version of Puppy Linux that works well, remaster it to include the Tiling Window Manager.

I have never seen any piece of hardware not supported by software, be it Windows, Linux and other *nix, Non-unix variants, etc.... I strongly encourage to try as many different versions as you can until you decide what is best. The Linux kernel adds hardware support, but also removes some 'outdated' support. That can be googled.* Linux is NOT a cureall when it comes to hardware support. That is why 'experts' used to have a wide variety of tools in their toolbelt. Some operating systems are better at some things.

About the first post, it is better to use the Puppy Remaster tool via the menu then add the files from there. It is self-explanatory, and you will know when to add/replace what.

I hope this is helpful.

*As just googling is not obvious (but still can be done), a couple of examples to use are 1) using different versions of the kernel for hardware and 2) old modems, which are what I had specifically in mind at first. I have also compiled my own kernel versions for my own use. The customizability in doing so is great (and fun, for me anyways), but comes with limitations of what you are provided with as well as what was available when it was made.

All times are GMT -5. The time now is 11:14 PM.