Build your own Puppy
Build your own Puppy
I just updated to 0_pupbuild_tool2.tar.gz
I am posting 0_pupbuild_tools.tar.gz. This contains the main files and folders that I use to work on ChoicePup and other puppy projects. You should extract it to a linux partition.
0_pupbuild_tools contains the following files. If you extract to a linux ext3 or ext2 partiton (can be a usb flash drive) they can be used to edit and rebuild a Puppy4xx or put together a custom sfs file, initrd.gz or iso.
clear-a2-pkg - deletes all files and folders in /a2 and /packages
cp_a2_a1.sh - copies all files and folders from /a2 to /a1
delete_same_a1-2 - compares the contents of /a1 and /a2 and deletes any files in /a1 that match those in /a2
dir2sfs_nover - converts a folder (directory) to an sfs file (without pup version number)
expandpets.sh - extracts the contents of .pets placed in /packages, combines them and copies them to /a2 then opens /a2 in ROX.
make_boot_iso - files that are placed in /iso_files will be converted to myiso.iso
open_initrd.sh - will extract the contents of an initrd.gz file placed in /initrd-tree. It will delete /initrd-tree/initrd.gz after copying it to initrd.gz1 in the pupbuild folder.
Rebuild_initrd.sh - will rebuild initrd.gz from the contents of /inird-tree.
rm_empty.sh - will delete empty sub-folders from any folder you drag to it.
A typical scenario would be removing seamonkey-1.1.15-v1 from Puppy421 and replacing it with synth's opera10-qt452-flash10.pet:
1. Click on puppy-4.2.1-k2.6.25.16-seamonkey.iso (or place the cd in your drive and mount it).
2. If you are running puppy421 then copy pup_421.sfs to another location, rename it (pup_421A) and click on it. Otherwise just click on it.
3. Copy all the contents (ctrl+A) to /0_pupbuild_tools/a1
4. Download ftp://ibiblio.org/pub/linux/distributio ... .15-v1.pet. Change .pet to .tgz, click on the file and extract (with xarchive) to /a2.
5. Click on expandpets.sh.
6. Click on delete_same_a1-2. This will remove seamonkey files from /a1.
7. Click on clear-a2-pkg. This will remove the seamonkey pet from /packages and /a2.
8. Download http://stashbox.org/558016/opera10unite ... lash10.pet and extract it to /a2 as above.
9. Click expandpets.sh and delete pet.specs. If there was a pinstall.sh you would have to open it as text and perform its function manully in /a1.
10. Click cp_a2_a1.sh. This will install Opera in /a1. Note: installing pets this way does not activate the fixmenus command so they will not appear on the menu until this is done. A simple solution is to edit /a1/root/.xinitrc and place the command fixmenus 7 lines from the end just above #exec $CURRENTWM.
11. Drag /a1 to rm_empty.sh and it will delete any empty folders left over from seamonkey/
12. Drag /a1 to dir2sfs_nover and it will create a1.sfs. Rename a1.sfs to pup_421Opera.sfs.
13. Place pup_421Opera.sfs along with boot.cat, boot.msg, help.msg, initrd.gz, isolinux.bin, isolinux.cfg, logo.16, and vmlinuz from the original iso in /iso_files.
14. Click make_boot_iso. Rename myiso.iso to puppy-4.2.1-k2.6.25.16-opera10.iso and you have your new version of puppy.
Note: First try of the new puplet shows at bootup that /usr/local/bin/defaultbrowser and /usr/local/bin/defaulthtmleditor disappeared along with seamonkey. I go back and place copies of these two back in /a1, then edit them to set "startopera" as the browser and "geany" as the htmleditor. Then repeat from step 11. Pretty typical, bugfix time.
Thanks to Barry, Pizzasgood and anyone else (that I don't remember) who contributed code to the above scripts.
#jrb-5sep09
I am posting 0_pupbuild_tools.tar.gz. This contains the main files and folders that I use to work on ChoicePup and other puppy projects. You should extract it to a linux partition.
0_pupbuild_tools contains the following files. If you extract to a linux ext3 or ext2 partiton (can be a usb flash drive) they can be used to edit and rebuild a Puppy4xx or put together a custom sfs file, initrd.gz or iso.
clear-a2-pkg - deletes all files and folders in /a2 and /packages
cp_a2_a1.sh - copies all files and folders from /a2 to /a1
delete_same_a1-2 - compares the contents of /a1 and /a2 and deletes any files in /a1 that match those in /a2
dir2sfs_nover - converts a folder (directory) to an sfs file (without pup version number)
expandpets.sh - extracts the contents of .pets placed in /packages, combines them and copies them to /a2 then opens /a2 in ROX.
make_boot_iso - files that are placed in /iso_files will be converted to myiso.iso
open_initrd.sh - will extract the contents of an initrd.gz file placed in /initrd-tree. It will delete /initrd-tree/initrd.gz after copying it to initrd.gz1 in the pupbuild folder.
Rebuild_initrd.sh - will rebuild initrd.gz from the contents of /inird-tree.
rm_empty.sh - will delete empty sub-folders from any folder you drag to it.
A typical scenario would be removing seamonkey-1.1.15-v1 from Puppy421 and replacing it with synth's opera10-qt452-flash10.pet:
1. Click on puppy-4.2.1-k2.6.25.16-seamonkey.iso (or place the cd in your drive and mount it).
2. If you are running puppy421 then copy pup_421.sfs to another location, rename it (pup_421A) and click on it. Otherwise just click on it.
3. Copy all the contents (ctrl+A) to /0_pupbuild_tools/a1
4. Download ftp://ibiblio.org/pub/linux/distributio ... .15-v1.pet. Change .pet to .tgz, click on the file and extract (with xarchive) to /a2.
5. Click on expandpets.sh.
6. Click on delete_same_a1-2. This will remove seamonkey files from /a1.
7. Click on clear-a2-pkg. This will remove the seamonkey pet from /packages and /a2.
8. Download http://stashbox.org/558016/opera10unite ... lash10.pet and extract it to /a2 as above.
9. Click expandpets.sh and delete pet.specs. If there was a pinstall.sh you would have to open it as text and perform its function manully in /a1.
10. Click cp_a2_a1.sh. This will install Opera in /a1. Note: installing pets this way does not activate the fixmenus command so they will not appear on the menu until this is done. A simple solution is to edit /a1/root/.xinitrc and place the command fixmenus 7 lines from the end just above #exec $CURRENTWM.
11. Drag /a1 to rm_empty.sh and it will delete any empty folders left over from seamonkey/
12. Drag /a1 to dir2sfs_nover and it will create a1.sfs. Rename a1.sfs to pup_421Opera.sfs.
13. Place pup_421Opera.sfs along with boot.cat, boot.msg, help.msg, initrd.gz, isolinux.bin, isolinux.cfg, logo.16, and vmlinuz from the original iso in /iso_files.
14. Click make_boot_iso. Rename myiso.iso to puppy-4.2.1-k2.6.25.16-opera10.iso and you have your new version of puppy.
Note: First try of the new puplet shows at bootup that /usr/local/bin/defaultbrowser and /usr/local/bin/defaulthtmleditor disappeared along with seamonkey. I go back and place copies of these two back in /a1, then edit them to set "startopera" as the browser and "geany" as the htmleditor. Then repeat from step 11. Pretty typical, bugfix time.
Thanks to Barry, Pizzasgood and anyone else (that I don't remember) who contributed code to the above scripts.
#jrb-5sep09
- Attachments
-
- 0_pupbuild_tools_2.tar.gz
- tools for modifying init.gz, pup.sfs, and building new iso
- (3.93 KiB) Downloaded 2293 times
Last edited by jrb on Wed 22 Sep 2010, 01:48, edited 1 time in total.
jrb,
Very nice job of putting together this tutorial and toolkit. (I especially like the part where "some missing/incomplete" items show up after you think it's all done.
Of course, I thought you would use Choicepup as the example, but that's probably a little too much for a typical example....
This looks like "sticky" material to me.
Very nice job of putting together this tutorial and toolkit. (I especially like the part where "some missing/incomplete" items show up after you think it's all done.
Of course, I thought you would use Choicepup as the example, but that's probably a little too much for a typical example....
This looks like "sticky" material to me.
Hi jrb, Great collection of tools and tips. With the steps given seems a fast and simple way to Rebuild Puppy.
I'm using choicepup-4.1.2minV2-k2.6.25.16.iso now. I have a question about the way it loads sfs files, it only has 8 loop devices defined in /dev (/dev/loop0 to /dev/loop7) then: How init can mount more than 8 of sfs files if choicepup don´t have enough loop devices for that work???.
In fact I can mount 10 sfs files in boot (using BootManager or just renaming them to _412.sfs) and choicepup works fine, but I can´t load manually (using ROX or in terminal) more sfs files after choicepup is running because there are not enough loop devices.
I created 7 more loop devices inside /dev/ and now I can mount manually more than 5 sfs files using ROX or terminal, It could be good to add more loop devices in choicepup, because it´s supporting a lot of sfs files in boot but not when you are mounting them manually, and this behaviors can confuse users... It confuses me, although I could add more loop devices I don´t know the way it´s loading more files at boot.
Thank for the attention pleased jrb.
I'm using choicepup-4.1.2minV2-k2.6.25.16.iso now. I have a question about the way it loads sfs files, it only has 8 loop devices defined in /dev (/dev/loop0 to /dev/loop7) then: How init can mount more than 8 of sfs files if choicepup don´t have enough loop devices for that work???.
In fact I can mount 10 sfs files in boot (using BootManager or just renaming them to _412.sfs) and choicepup works fine, but I can´t load manually (using ROX or in terminal) more sfs files after choicepup is running because there are not enough loop devices.
I created 7 more loop devices inside /dev/ and now I can mount manually more than 5 sfs files using ROX or terminal, It could be good to add more loop devices in choicepup, because it´s supporting a lot of sfs files in boot but not when you are mounting them manually, and this behaviors can confuse users... It confuses me, although I could add more loop devices I don´t know the way it´s loading more files at boot.
Thank for the attention pleased jrb.
You're absolutely right clarf. I ran into the same problem so I built a script /usr/local/bin /mknod.sh, which creates 7 more. Its symlinked into /root/Startup/mknod.sh and should start automatically at boot. Check your /root/Startup and make sure its there.clarf wrote: it only has 8 loop devices defined in /dev
Thinking about it I should probably have just made those loops permanent. I'll look into it for ChoicePupminV3.
Thanks for the idea, J
Can that script create more than 7? I notice that the final version of Lighthouse allows for 40 sfs files.jrb wrote: You're absolutely right clarf. I ran into the same problem so I built a script /usr/local/bin /mknod.sh, which creates 7 more. Its symlinked into /root/Startup/mknod.sh and should start automatically at boot. Check your /root/Startup and make sure its there.
Thinking about it I should probably have just made those loops permanent. I'll look into it for ChoicePupminV3.
My conflick is not how many pets I can load in...its how many do I HAVE to load in because the number of sfs files loaded has reached max
Thanks for a great Puppy....
Thom
Clarf,
Further investigation reveals that one must include max_loop=28 or whatever# in the kernel line for a frugal install and in the append line for a CD to get kernel 2.6.25.16 to use more than 8 loops. I have placed this in my menu.lst and have managed to mount up to 17 sfs files (even though I have 39 /dev/loops). This does not seem to affect loading the sfs files for use however, . Only affects mounting them to see the contents. I can load 28, at least using load_sfs. I haven't tried with bootmanager yet.
Thom,
I'm working on V3 right now. I'll see what I can do about more than 28. Sheesh, keeping up with the Lighthouses. One thing you might consider. Combine some of those sfs's. I believe there's a tool in the forum for doing just that. Can't remember whether it was MU or trio or maybe somebody else.
Further investigation reveals that one must include max_loop=28 or whatever# in the kernel line for a frugal install and in the append line for a CD to get kernel 2.6.25.16 to use more than 8 loops. I have placed this in my menu.lst and have managed to mount up to 17 sfs files (even though I have 39 /dev/loops). This does not seem to affect loading the sfs files for use however, . Only affects mounting them to see the contents. I can load 28, at least using load_sfs. I haven't tried with bootmanager yet.
Thom,
I'm working on V3 right now. I'll see what I can do about more than 28. Sheesh, keeping up with the Lighthouses. One thing you might consider. Combine some of those sfs's. I believe there's a tool in the forum for doing just that. Can't remember whether it was MU or trio or maybe somebody else.
4.3 base for next version?
Will the next choicepup use 4.3 as a base?
Bosola and ICPUG,
All compliments gratefully accepted but I must say that I'm pursuing what I want in an operating system and am just happy to share.
Sue,
I'm just working out the last few bugs in ChoicePup4.12V3 but I think I now have the ChoicePup mods packaged well enough that I can fairly quickly make a new one. The other day I played with puppy421barebones and had a workable choicepup421 turned out pretty fast, when I get a little more time I'll release that. I have also put together a rough choicepup400 as that's the only puppy I've been able to get working with the novel network that I use at work (ncpfs filesystem)
I'll wait until Barry is finished with puppy4.3 before I tackle that but I have already discovered that load_sfs doesn't work with the two new kernels he has used so it will have to be ChoicePup4.3retro.
All compliments gratefully accepted but I must say that I'm pursuing what I want in an operating system and am just happy to share.
Sue,
I'm just working out the last few bugs in ChoicePup4.12V3 but I think I now have the ChoicePup mods packaged well enough that I can fairly quickly make a new one. The other day I played with puppy421barebones and had a workable choicepup421 turned out pretty fast, when I get a little more time I'll release that. I have also put together a rough choicepup400 as that's the only puppy I've been able to get working with the novel network that I use at work (ncpfs filesystem)
I'll wait until Barry is finished with puppy4.3 before I tackle that but I have already discovered that load_sfs doesn't work with the two new kernels he has used so it will have to be ChoicePup4.3retro.
Don't forget us folks that need the kernel you used in min-choice!jrb wrote:
I'll wait until Barry is finished with puppy4.3 before I tackle that but I have already discovered that load_sfs doesn't work with the two new kernels he has used so it will have to be ChoicePup4.3retro.
A set of observations:
A. Choicepup is one of the easiest to get running Puppies I've used.
B. It has a nice mix of simplicity and sophistication.
C. You are one of the most responsive and helpful folks in the make-a-puppy world.
I teach in an adult education center....and the seniors love Choice-Pup,
Thanks for producing it.
Thom
Re: Build your own Puppy
I just updated to 0_pupbuild_tool2.tar.gz
Has the needed folders included this time.
Enjoy, J
Has the needed folders included this time.
Enjoy, J
- charlie6
- Posts: 1230
- Joined: Mon 30 Jun 2008, 04:03
- Location: Saint-Gérard / Walloon part of Belgium
Re: Build your own Puppy
Bonjour jrb
Sounds to be an attractive alternative to remaster, remax, etc ...
I just would like to know if this only works for Puppy4xx; or if this is Puppy version, kernel version independent.; for instance does it also works for Puppy derivatives Lucid or Lupq ?
Thanks in advance for any answer !
Cordialement, Charlie
Many thanks for that tool !jrb wrote:... can be used to edit and rebuild a Puppy4xx or put together a custom sfs file, initrd.gz or iso...
Sounds to be an attractive alternative to remaster, remax, etc ...
I just would like to know if this only works for Puppy4xx; or if this is Puppy version, kernel version independent.; for instance does it also works for Puppy derivatives Lucid or Lupq ?
Thanks in advance for any answer !
Cordialement, Charlie
Re: Build your own Puppy
I have used these tools with Luci, Lupu, Wary and Quirky. The only one that requires something extra is Quirky1.3. After you have created new .SFS's you must apply:charlie6 wrote:I just would like to know if this only works for Puppy4xx; or if this is Puppy version, kernel version independent.; for instance does it also works for Puppy derivatives Lucid or Lupq ?
Code: Select all
echo -n 'q130100920100026' >> puppy.sfs
If you create a zdrv.sfs you must do the same to it as well.
Hope these work well for you, J
- technosaurus
- Posts: 4853
- Joined: Mon 19 May 2008, 01:24
- Location: Blue Springs, MO
- Contact:
I put together a detailed howto for most of the parts of this that are left to the user. (with pictures and using no command line tools - hopefully it is helpful) it is in html - so maybe it can be posted to one of puppy's pages.
http://www.murga-linux.com/puppy/viewtopic.php?t=53241
http://www.murga-linux.com/puppy/viewtopic.php?t=53241
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].
There's also two methods I use...
(1) Woofy 0.9 by sc0ttman (don't use 0.91, the delete packages part is way more confusing there, to the point that it's basically useless).
http://murga-linux.com/puppy/viewtopic. ... 73&t=57037
(2) Manual remaster type operation -- unSquash the main SFS file for your base Pup, make manual changes, repack. It's not that hard... harder than it sounds, but not by much
(1) Woofy 0.9 by sc0ttman (don't use 0.91, the delete packages part is way more confusing there, to the point that it's basically useless).
http://murga-linux.com/puppy/viewtopic. ... 73&t=57037
(2) Manual remaster type operation -- unSquash the main SFS file for your base Pup, make manual changes, repack. It's not that hard... harder than it sounds, but not by much