Get Puppy Linux to work with less than 32MB Memory (WORKS)

How to do things, solutions, recipes, tutorials
Post Reply
Message
Author
Juz10Mac
Posts: 4
Joined: Mon 06 Feb 2006, 02:35
Location: Texas

Get Puppy Linux to work with less than 32MB Memory (WORKS)

#1 Post by Juz10Mac »

Install Puppy on a computer's hard disk with less than 32 megabytes of RAM:

Hello,

I just successfully installed Puppy Linux 1.0.7 to a 486 with 24 megabytes of RAM and I just wanted to share how I got this to work. The normal way of booting puppy from CD-ROM would not work with the amount of memory I had. This is my procedure for getting things to work on a low memory setup. Here's the basic concept: Instead of accessing the initrd from the ram upon boot, I had the computer access it from a 'scratch' disk partition, thus saving tons of RAM. While I haven't tried it, I think it might be possible to use this procedure with even less RAM. This is also a nice work-around if your computer does not support booting from a CD-ROM. This post requires some technical understanding. Here's my procedure:

Required tools:

HAL91 Linux boot floppy
Windows 98/ME startup disk (with CD-ROM support)
Puppy Linux 1.0.7 CD-ROM
Loadlin (an MS-DOS utility to boot linux with kernel parameters)

1) Use HAL91 to partition your hard disk with "fdisk /dev/hda". I assume you are using /dev/hda for your hard disk. You will need one large main partition, a swap partition, a 12-megabyte scratch partition, and a general file copy/store partition. I recommend putting the latter three in an extended partition. Make sure your swap partition has plenty of space and has its type set to 82. Also, Puppy will not boot properly if you don't have some general partition for it to dump temporary 'stuff' to. I set the type of my main partition to an arbitrary 64 so puppy wouldn't see it. Format your general partition with ext2 so you and Puppy will have some place to work with files. And format the swap-space for use. "mke2fs /dev/hda#" & "mkswap /dev/hda#". I partitioned in a way that the swap partition, the scratch partition and the general partition were consecutive, so I could later delete them and replace them with one larger swap partition.

Here's my partition layout:

Code: Select all

Partition Kind              Type Size                    What
------------------------------------------------------------------
hda1      [unformatted]     64   [all remaining space]   Main
hda2      extended          5    128MB                   Extended
hda5      [unformatted]     64   12MB                    Scratch
hda6      ext2              83   52MB                    General
hda7      swap              82   64MB                    Swap
2) Mount the general partition and the CD-ROM. Copy image.gz from the CD-ROM to your general partition and uncompress it with "gzip -d image.gz".

3) Dump Puppy's initial ramdisk to your 12-megabyte scratch partition. "dd if=image of=/dev/hda#" This is the actual RAM saver. Instead of loading the initial ram disk to ram, you load it to your scratch partition

4) Boot from a windows startup disk and use loadlin to boot Puppy: "loadlin D:\vmlinuz root=/dev/hda5 PFILE=pup001-none-262144". Here, I assumed D:\ for the CD-ROM and /dev/hda5 for the scratch partition; make the appropriate changes. (There should be enough free space to install loadlin to the Windows startup disk. If not, you can put it on a separate floppy and access it with B:\. This will even work if you don't have two floppy drives; you will just be prompted to insert the second disk.)

5) Puppy comes up just fine. Now you can do a hard drive install over your main partition.

6) Replace the extended partition with swap space. (You can reboot into Hal91 to do this.)

7) Follow the directions here to see to it that Puppy will in fact use your swap partition when you boot the system without the CD-ROM. http://www.murga.org/~puppy/viewtopic.php?t=4591

What I've learned from this: If you try persistently at a hopeless cause, it pays off!

I hope my hours of trial and error helps someone; enjoy!

Juz10mac
Last edited by Juz10Mac on Tue 14 Feb 2006, 22:57, edited 4 times in total.

User avatar
Theafro
Posts: 2
Joined: Tue 31 Jan 2006, 10:14
Location: Norwich, city of the Anglo king!

#2 Post by Theafro »

i was just gifted an old compaq (urgh!) laptop circa 1996 with a heady 16Mb of RAM, this could be interesting! i'll let ya all know how it works out, nice one for the tip tho' :)
what does the fish know of the water in which he swims all it's life. A. Einstien

Juz10Mac
Posts: 4
Joined: Mon 06 Feb 2006, 02:35
Location: Texas

#3 Post by Juz10Mac »

Well?

Any luck? I'm half tempted to pull some RAM from my 486 to see just how low she'll go. I did read reports of people getting Puppy to work with 32MB of RAM, but nothing less (until now). That's why I said 'less than 32MB memory' in the title of this thread.

Also, I've made a few edits.

User avatar
sunburnt
Posts: 5090
Joined: Wed 08 Jun 2005, 23:11
Location: Arizona, U.S.A.

#4 Post by sunburnt »

Yep, just the sort of thing I'm trying to do for LanPuppy, free up more memory for memory challenged PCs.
My problem is the LANboot clients don't have a swap partition, I may look in to NBD (Network Block Device), but it would drastically increase the network traffic load & I don't like that as much as the ramdisk hogging a huge chunk of memory.
I need to reduce the client's ramdisk size to as small as I can get it so more memory is available for apps.
What I'd like to do is take some statistics on file usage (which ones are being constantly accessed), & put only those files in the ramdisk, this would speed up the client PCs while reducing the ramdisk to as small as possable.
I haven't been able to find an app. that will give me the statistics that I need, any suggestions?

Guest

#5 Post by Guest »

Sunburnt,

I don't know if this is what you need or not. My tip here is for getting the Puppy install CD-ROM to boot initially, so you can do a hard drive install. It sounds to me like you are interested in using low memory setups (after they've been installed). Am I correct? You said that your LANboot clients don't have swap partitions. Is this because they do not have hard disks, or because they simply don't have swap partitions on their hard disks? I think the best thing you can do for a low memory machine (aside from upgrading the memory), is to install swap space. As far as your applications are concerned, its as good as RAM. The only reason every computer doesn't have 16MB RAM and 2GB swap, is the immense slow down. I read somewhere that, as a rule of thumb and for all practical purposes, swap is 80 times slower than actual memory (of corse, this depends in large part on the speed of your system and hard drive). If you really want more capabilities, I would consider installing small hard drives, just for the swap space. I'm assuming that because these computers are just being used as network entities, you can make the sacrifice of speed for capabilities. Is this helping any? I don't have any experience with a network block device, but that might be a good alternative to actually installing a hard drive in every machine. As for a program that will log file usage, I don't know of one off hand, but you might try all the usual places (google, sourceforge, etc.).

Juz10mac

Juz10Mac
Posts: 4
Joined: Mon 06 Feb 2006, 02:35
Location: Texas

#6 Post by Juz10Mac »

Oops, I'm sorry I forgot to login for that last post. It really is mine, not Guest.
[b]My Machine:[/b] 100MHz 486dx, 24MB RAM, 800MB HDD, 5.25" & 3.5" FDDs, Ethernet, 4x CD-ROM. [b]Reason for using Puppy Linux:[/b] The sheer novelty of having a usable and up-to-date OS on my 486!

User avatar
sunburnt
Posts: 5090
Joined: Wed 08 Jun 2005, 23:11
Location: Arizona, U.S.A.

#7 Post by sunburnt »

Yep, they're diskless in general, but I want to use Barry's CD, HD, & USB locating routines to mount any local drives.
Ideally the clients would be nothing but little boxes that hang on the side of the monitors, but no one makes anything like that for a reasonable price of under $100, there's a post on this site about Puppy on $100 laptops!
More memory is always better, but expensive for old PCs, it costs more than DDR2 400mhz for brand new ones!
Spending money on old junk is always a bad idea & soon the old garbage will be gone, not good to build on.
NBD would work good on a 1gbps lan & the nics & switches are very cheap, & 10gbps is now available!
I've Googled, etc., but no luck, but I keep trying every now & then, something will turn up.

Basically I need a ramdisk that's no bigger than it has to be, copy the old one to it & delete the old one.
Puppy as it is makes a ram0 to boot from, & then makes a ram1 & copies ram0 to it & deletes ram0.
I think ram1 is bigger than it needs to be, it has like 30MB or so of empty space & I don't think it uses it.
Barry's scripts show how, but I just can't figure them out to be able to free up the memory, 30MB is alot!

Juz10Mac
Posts: 4
Joined: Mon 06 Feb 2006, 02:35
Location: Texas

24MB is the minimum

#8 Post by Juz10Mac »

I pulled some RAM from my machine and got it to boot with only 20MB, but the GUI wouldn't load. I tried with other amounts, too. I'm afraid it couldn't quite make the 16MB mark. Also, I did this with Puppy 1.0.8 (revision 1 - Sorry, but the normal notation gives it a smiley). You will also need to increase the size of the 'scratch' partition to 14-megabytes (They increased the initrd size with 1.0.8 ). It looks like 24MB is the bare minimum to get Puppy Linux to install on any machine.
[b]My Machine:[/b] 100MHz 486dx, 24MB RAM, 800MB HDD, 5.25" & 3.5" FDDs, Ethernet, 4x CD-ROM. [b]Reason for using Puppy Linux:[/b] The sheer novelty of having a usable and up-to-date OS on my 486!

Post Reply