OK, so you want to install slackware on that old machine, but...
a) it's so old that it doesn't support booting from CD (it doesn't even have USB so scratch that idea too!) ***Try isolinux/sbootmgr***
b) in the case of my old laptop I can have either the floppy drive OR the cddrive plugged in but not both and it won't boot from cd (it also doesn't like my homeburnt cds)
c) doesn't do network boot
d) it has only 32MB of memory
Fear not!
Now we know slackware13.37 can "run" on as little as 20MB of memory, if we can just get it installed!
Note - This is all being done on Current as of 20120721, kernel 3.2.23
What to do?
1) Cheat! Move the hard drive to a newer machine and install, build a minimal kernel and then put it back into the old machine.
2) Be patient, very patient... start with an old version say 11.0 and install using the floppies from that, building a small kernel at each step before upgrading to the next version (I tried this - it took about 3 weeks to get to 13.37)
3)Think different!
Grab Virtualbox, it will save a lot of pain! Create 2 new machines, one for building your kernel, one for testing your install
On your test "box"
With the huge.s kernel we can install with 128MB (hugesmp still barfed with this amount) and run once installed with 40MB.
If you see
hrtimer: interrupt took XXXXXXXns
The kernel is worried that it's taking too long to respond to hardware events
It's generally because we are getting too close to the limit!
Look at the output of free
Mem: 25376
That means the kernel itself is using up 14MB of memory, I know from another machine that with a tailored kernel this can go down to about 4 !
****************************************************************
Once we we have a kernel we can run with we can then look at working on the install so...
We need a kernel that boots in as little memory as possible!
cd /usr/src/linux
mv .config .config_slackware
menuconfig
[General setup]
Local version
Optimize for size
[Processor type and features]
SMP off
386
Generic off
High memory off
Math Emulation on
Timer 100Hz
[Power management and ACPI options]
APM on
[Bus options (PCI etc)]
ISA on
[Networking support]
[Networking options]
ipv6 off
netfilter off
RF switch subsystem support off
[Device drivers]
raid & lvm off
Macintosh off
[Network device support]
[Ethernet driver support]
select your card, clear the others
FDDI off
Wireless LAN off *****
sound off
USB off
[X86 platform specific]
Eee PC off
[File systems]
ext2 & ext3 on
fuse on
[Kernel hacking]
Testcase for NX off
[Security options]
selinux off
*****
After switching Wireless LAN off go back and
[Networking support]
Wireless off
build and copy it over to your test box and boot
free: 34572
a big increase - but look at the increase in free/cache, lots more available!
ok, let's drop the available memory again!
Booting in 26Meg! ok, now we are getting somewhere - that old box is starting to look usable!
*******************************************************************
Let's get started on the installer
Make a copy in a new tree of isolinux, kernels and slackware, this will be your install set
Using the instructions in /isolinux check that you can create a working, booting cd/dvd, yet another Virtualbox... (128MB memory)
On our real box, cdrom is not bootable but our goal at this stage is an easy way of making sure it all works before we move to floppies/network installs
ok so far?
Right, start hacking away at your discsets, byebye emacs, kde*, x*, everything except a,n and l* (at time of writing, 20120721 we need zlib from l (reported), nothing else) as much to speed up testing as anything at this point... but we'll be putting this on an old machine and old machines have small hard disks, think MB not GB...
in kernels create a new folder for your fresh kernel, edit isolinux.cfg and add it
build another dvd, test your new kernel (128MB but 96 now works too
)
Look at top... 60MB used, that's the ramdisk that our rootfs is loaded into, remember that ramdisk=1 in isolinux.cfg? If we can get rid of that...
But first - once we have installed it, it will use the stock kernels so we need to replace the stock kernels in discset a with our shrunken one.
use the package scripts in source/k/packageing-x86
replace the stock kernels & modules in a with your new ones, remember to change tagfile to reflect the new names
rebuild your cd/dvd and test it again, all the way through. you should now be booting the dvd with your new kernel and finishing the install with your new kernel all neatly installed
Before we break out the floppies we have one more thing to do. Bzip2 uses a lot more memory to decompress than gzip, so let's change all those packages to tgz. From the man page xz looks to use even more.
for I in *txz; do unxz $I; done
for I in *tar ; do A=`echo $I | sed 's/.tar$/.tgz/'` ; gzip $I -c > $A ; done
rm *.tar
make another disc and test again!
**********************************************************************
OK, time to break out the floppies! you need 4 and your Slackware 11.0 cd1
Why slack11? It has the last of the kernels that fitted on a floppy (2.4 series kernel)
bare.i, install.1, install.2, network.dsk
When fdisking your drive, also create a 60MB ish partition BUT DO NOT USE IT (yet) (remember in the olden days, it was hda not sda)
Install via nfs slack 11.0 discsets a,n
All installed and happy? Reboot into your fresh Slack11 install
NFS mount your Slack14 install set (the one we kept testing on the cd)
ext2 format that 60MB partition, mount it under /test
don't go into it yet, we need to unzip the initrd.img from the cd
zcat /MYNFSMOUNT/MYSLACK/isolinux/initrd.img > myrootdisk
cd /test
cpio -iv < /root/myrootdisk
you should now have something that looks a lot like your root directory, it is! Instead of loading it into a ramdisk and using lots of our very precious memory we'll use it as a normal root partition
We are nearly there
copy in that kernel, system.map and config we tested so much.
Now, so that lilo can find it both before and after boot we need to be a bit sneaky
from within /test mkdir test
cd into /test/test and
ln -s ../vmlinuz vmlinuz
now edit lilo.conf, add a new section to point to your new root, using its hda partition number and /test/vmlinuz
if you have don't already, add timeout = 50 near the top
lilo !
ok?
reboot!
as soon as the lilo prompt comes up select your new kernel and hit TAB not enter, we need to change the parameters a bit.
boot: Linux-3.2.23 root=/dev/sda3 rw
NOTE both sda (not hda) and rw (normally we want root partions mounted ro but not this time)
Ready??? ok
<enter>
*********************************************************************
You may want to repartion to get rid of the old dos partion compatability, that's fine, just delete the partitions around your temporary root and recreate - fdisk will will allow for your not deleted partion, run partprobe to update the partion table. after installing Slack14 you can delete this partiton and reuse it.
With only 32Meg of memory you will definitely need some swap space, don't go too mad though - keeping track of swapspace uses memory so keep it about to 64MB, max 128MB
Enjoy