UnderDog Remaster

A home for all kinds of Puppy related projects
Post Reply
Message
Author
User avatar
Ted Dog
Posts: 3965
Joined: Wed 14 Sep 2005, 02:35
Location: Heart of Texas

UnderDog Remaster

#1 Post by Ted Dog »

As a person with slow-speed rural internet, I dislike the multiple distro-data pulls. Delta files are being produced less and less, almost universally unseen in puppy spinoffs. And multipart files in official puppies have vanished. :cry:

But as a Distro Junky I always download the other guys main distros and the puppy version spin-offs.

What if a miniVbox64Puppy existed that could boot the LiveCD/DVD and remaster a puppyversion without a spare harddrive/or internet

Idea is instead of pulling same data via internet, the parts and pieces would be gathered from the other distros liveCD/DVD.

Using the UnderDog method we can play with the creation before repackaging.

Any other ideas, help?

User avatar
Ted Dog
Posts: 3965
Joined: Wed 14 Sep 2005, 02:35
Location: Heart of Texas

#2 Post by Ted Dog »

If we can get load_sfs to underdog load the other distros squash files we could be in business easy. Any maintainers of load_sys tool interested?

Did I ever share my near brush with the creator of the Underdog cartoon character? Well we both taught at a San Antonio summer day camp program. Saw the boys holding drawings that looked like underdog, asked the camp director and just missed him leaving. To those kids he was just another older adult teacher, :x to me the creator of a beloved childhood hero. :P

:cry: :cry:
R.I.P http://www.nytimes.com/2013/02/19/arts/ ... .html?_r=0
:cry: :cry:

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#3 Post by jamesbond »

Ted Dog wrote:Any maintainers of load_sys tool interested?
That would be me, I suppose :lol:

I don't get the idea, though, what are you trying to do? I mean, the size of puppy SFS is almost the size of the ISO itself, so where does it save you?

cheers!
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

User avatar
Ted Dog
Posts: 3965
Joined: Wed 14 Sep 2005, 02:35
Location: Heart of Texas

#4 Post by Ted Dog »

Not using puppys SFS but the one from the orginal one from the other distro under puppy. There would not be a savings in running size or storage size but in not needing the internet to pull programs already on other distros main sfs files. Thereby using the combined layers of stacked SFSs to create a new SFS if needed. Just like underdog setting used on an installed version of any other linux found on the harddrive. But this idea would not need to have the other distro installed anywhere, just its sqf file.

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#5 Post by jamesbond »

Ah, ok. Let's try this as a concrete example: I have installed Slackware in sda1 and Ubuntu in sda2. Rather than downloading and installing Slacko and Upup and installing them on sda3, I would rather have "general puppy loader" in sda3 together with a collection of "puppy-enabling scripts".

Using this bootloader + puppy scripts, I can boot and use the Underdog feature on sda1 to run an equivalent of "Upup"; or I can do the same and using sda2 instead to run an equivalent of "Slacko".

Or perhaps it is not really only puppy scripts, perhaps you can put a "puppi-fication layer" of some sort to make the underlying OS works like puppy, something like this:

top layer (read/write) --> savefile (or save directory)
2nd layer (read-only) --> "puppi-fication" layer (contains puppy scripts, specific puppy binaries, and other distro-specific patches)
3rd layer (read-only) --> sda1 (or sda2) - the original OS full install location.

I think from the load_sfs point of view this isn't very difficult, in fact even today load_sfs can load any image files (not only SFS), it can also load partitions (/dev/sda1) 8) - despite its name.

It is the "puppi-fication layer" that will be most interesting, because, essentially, it is the "essence" of puppy :wink:
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

User avatar
Ted Dog
Posts: 3965
Joined: Wed 14 Sep 2005, 02:35
Location: Heart of Texas

#6 Post by Ted Dog »

Exactly! Thats the idea bend those other distros files with a generic puppy tools and methods of puppy.

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#7 Post by jamesbond »

Actually most of this "puppi-fication layer" code is already in woof, under woof-code/rootfs-skeleton. What one needs to do is to somehow coax 3builddistro to run *without importing* any packages, except puppy's common pet packages (gtkdialog, etc). Then resulting puppy sfs will contain only "the essence of puppy", which can be applied on top of mainline distros.

Lets see if any mainline woof-based puppy builders (you know who you are! :wink:) are interested in this. The easiest is probably to start with pupmode=6 (ie full install), when this works then we can try to do it with pupmode=13 (by modifying rc.sysinit to create a fake /etc/rc.d/PUPSTATE) so that load_sfs and all the nice layering stuff works.

Looks like fun. Any takers? Anyone? :P

As a side note, this is very similar to how sb64 is built. I assembled and installed standard Slackware packages; then I applied Fatdog-specific customisation. This is currently done at built-time, but there is no reason why it can't be applied at run-time over an existing Slackware full installation.
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#8 Post by jamesbond »

For one hour of simple hacking, I've got this:

1. Did a full install of slackware (from install dvd, all packages. All 7+ GB worth of stuff). Configure to start with xfce. Configure a working bootloader (I use extlinux).
2. Check out woof2. Run merge2out, got the rootfs-skeleton.
3. Copy DISTRO_SPECS to /etc
4. Rename /etc/rc.d/rc.sysinit to /etc/rc.d/rc.sysinit.puppy
5. Write a new /etc/rc.d/rc.sysinit

Code: Select all

#!/bin/ash
### load the original distro as "underdog"
mkdir /aufs/underdog
mount /dev/sda1 /aufs/underdog
#mount -t aufs -o remount,append:/aufs/underdog=ro aufs /
mount -t aufs -o remount,ins:2:/aufs/underdog=ro aufs /

### dump compatibility stuff to /etc/rc.d/PUPSTATE
{
	# fake it - 12 or 13 (frugal install)
	echo PUPMODE=12
	echo PDEV1=$SAVEFILE_DEVICE
	[ "$SAVEFILE_DEVICE" ] && echo DEV1FS=$(guess_fstype $SAVEFILE_DEVICE)

	echo PUPSFS=
	echo PUPSAVE=
	echo PMEDIA=
	echo pfix=$pfix
	echo ATADRIVES=\'$(ls /sys/block | sed '/^sd/ !d')\'

	echo SAVE_LAYER=$SAVEFILE_MOUNT
	echo PUP_LAYER=$BASE_SFS_MOUNT
	echo PUP_HOME=$(readlink /mnt/home) 
	echo ZDRV=
	echo ZDRVINIT=no
	echo PSAVEMARK=
	echo FASTPARTS=
} > /etc/rc.d/PUPSTATE

### continue boot
. /etc/rc.d/rc.sysinit.puppy

6. Change /etc/inittab to look like this:

Code: Select all

::sysinit:/etc/rc.d/rc.sysinit
#tty1::respawn:/sbin/mingetty --autologin root tty1
tty1::respawn:/bin/busybox getty -n -l /bin/autologin 38400 tty1
tty2::respawn:/bin/busybox getty 38400 tty2
tty3::respawn:/bin/busybox getty 38400 tty3
::ctrlaltdel:/bin/busybox reboot
7. Get a working "autologin" from somewhere.
8. Build the sfs from rootfs-skeleton (say, puppy.sfs)
9. Get sb64 kernel and initrd
10. Crack the initrd, remove the sb64.sfs. Then re-pack initrd.
11. Create a boot loader entry for this sb64 kernel + initrd
12. Tell sb64 to load basesfs from puppy.sfs (the "append" line in my extlinux.conf looks like this: "append basesfs=local:/boot/puppy.sfs base2ram=yes").
13. Boot.

Results so far: boots, got the keyboard layout selection wizard, got the xorgwizard, starts xfce desktop (because we configure slackware with xfce), hears the woofwoof. But keyboard and mouse are not responding. Good thing I tried this in virtualbox.

I think this would be as far as I go for this proof of concept. It is definitely doable, but the rest is just boring hardwork: fine-tuning and bug-fixing. And then of course, one must try with Ubuntu installation, Debian installation, etc etc.
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

Post Reply