pUPnGO - 6Mb ISO - Basic Building Block Puplet

A home for all kinds of Puppy related projects
Message
Author
goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

Update...

#61 Post by goingnuts »

New build script and builds (build script included in ISO) uploaded. A more user-friendly menu driven build configuration can be used. Also an application menu included.
Basically now ALSA is working (but not in builds), GUI-build with low or full font, use BusyBox intensively or a more safe build. Not quite sure if save to CD works...
Build with Geany, Lynx, Links, Abiword, Gxine, Gparted or Hiawatha+php+mysql-server now available. The applications will run but you might miss some of the features as fine-tuning and size reductions have not been made to its full extent.

Basic build iso (with and with out GUI) is more or less the same as previous build - the main purpose have been to make the build script easier to use - and to give an appetizer of what the pUPnGO-build script can be used for...

The new script fetch PETs from ftp://distro.ibiblio.org/pub/linux/dist ... packages-4 and community PETS.

Examples of builds possible ("QuickPUPs"...?):
  • Hiawatha based Web server with php+mysql (needs RAM!) (20MB)
    A lightweight web-browser with GUI and the Links-browser (13MB)
    Plain writer edition, GUI and Abiword. (17MB)
    Tiny GUI build with XFE, Links and Gparted (16MB)
    Multimedia GUI version with Gxine only. (16MB) NB: remember to include ALSA in the build!

I will not claim the build script to be bug free (its probably not) but I have tested most of the combinations possible. ex. Gxine can play mp3/mpg-files but haven't tested other formats...

Still: To have a proper build you need to install used PETs to the host system - and you need disc-space...(save-file 512->1024 needed)
Have fun...
Kim
Below screen shot of 16MB build with Gparted, Links and XFE-filemanager running in qemu 32MB RAM...
Attachments
pUPnGO_light.png
(124.15 KiB) Downloaded 841 times
Last edited by goingnuts on Thu 04 Mar 2010, 06:35, edited 2 times in total.

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#62 Post by technosaurus »

If anyone would like to setup a kiosk using only jwm this link could help for setting a background and application start buttons
http://www.murga-linux.com/puppy/viewtopic.php?t=51200


On recent X to disable ctrl+alt+backspace - edit the xorg.conf template for:
Section “ServerFlags
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].

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#63 Post by goingnuts »

I am trying to make some hardware dependent build with pUPnGO. This means that using a virtual machine do not work - I have to burn each build to CD and boot on the specific machine the build is for. This is definitely a slow approach as I want to only build in the needed drivers for the specific hardware the target machine have.

One approach is to boot target machine with a full P412 CD, after boot do a lsmod and note what was found. Then afterwards try to figure out where that specific module is in P412 and include it in the build.

A more automatic approach would be nice - maybe do the boot with full P412 - and save the result of lsmod to a file. This file could maybe be used afterwards to pick the modules and put it in the pUPnGO build?

I cannot find a translation between the output of lsmod and the actual place on drive where the module file is - so if someone could give a pointer I would be grateful.

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#64 Post by technosaurus »

I made a zdrv cutter script a while back - its in cutting edge - latest version 0.0.4 added xorg drivers (not currently on zdrv yet, but I think they should be eventually) so you will probably do best with 0.0.3 for now. Please feel free to make any improvements you need, it is public domain.

http://www.murga-linux.com/puppy/viewtopic.php?t=51450
http://www.murga-linux.com/puppy/viewtopic.php?t=51552
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].

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#65 Post by goingnuts »

THANKS technosaurus! :D
Excellent - just what I needed! What a time saver!
First test looks great (reduced my driver "load" to 3MB) and it seems everything is found and included. Just had to comment out the inclusion of "/etc/DISTRO_SPECS" as I have no such file.

If its ok with you I will try to include it as a function in pUPnGO build script?

Kim

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#66 Post by technosaurus »

DISTROSPECS is the replacement for puppyversion in woof builds... should do a check for it and if it does not exist use /etc/puppyversion and the zdrv_XXX.sfs format instead of the new format that includes the kernel version ...probably at the end where the gets moved (and renamed) to the home directory. It is public domain so anyone can use it including M$ (of course that would mean they would have to switch to the linux kernel :)
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].

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#67 Post by goingnuts »

Thanks again.
Your approach to driver cut-down brings me a lot forward - was thinking if one could imagine a "in-situ" build of a personal Puppy? Probably not a new idea - but booting the minimum Puppy (could be pUPnGO) and afterwards pulling user chosen needed stuff from internet - and finally build and install...
technosaurus wrote:... including M$ (of course that would mean they would have to switch to the linux kernel :)
Best guess is they will eventually have to/need to move...
Do not know if that is good or bad though...

User avatar
Keef
Posts: 987
Joined: Thu 20 Dec 2007, 22:12
Location: Staffordshire

#68 Post by Keef »

@goingnuts

After making a savefile, on next boot the zdrv is not loaded. I mean that if I further modify the zdrv, (I use Edit-SFS) the changes will not show - the contents of the previous incarnation persist in the savefile.
Other than that, I'm really enjoying messing with pUPnGO - just knocking up a basic CLI version with bash menus (mainly pinched from INX) and a few apps. Using the framebuffer to make it a little nicer looking, but having trouble getting getting the font I want to install - psfu fonts are generally ok, but not plain psf. Something to do with utf8 I believe. Still, I am doing this so I can learn as I go along, so not losing any sleep over it.
I have tried the new build script. Built an iso with Alsa. Ran alsaconf and although it reported that it was unable to load the drivers, it played the sample 'bark' at the end. Not tested it further yet.

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#69 Post by technosaurus »

sounds like it may be an issue with edit-sfs, try running it from the command line so you can see any errors.
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].

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#70 Post by goingnuts »

Keef:
I found the following:
P412 original mounts pup_412.sfs and zdrv (if present) when booted from CD and no other Puppy files on drives.
If you during shutdown create a save-file Puppy offers to copy pup_412.sfs and zdrv to the drive. If you say no this is respected - if you say yes you get pup_412.sfs and zdrv on the drive too.

If you boot again from CD and you have a save file present P412 copy pup_412.sfs to drive (if not present) and you are not asked if this is ok. zdrv is still mounted and content available.

If you boot from CD and save-file and pup_412.sfs is present zdrv is NOT mounted - and your zrdv content is not available.

This seems to be P412 build in behavior (by purpose or not). I think P412 was not meant to use zdrv at all.

To overcome this pUPnGO looks at boot if a zrdv is mounted and have content. If so this content is copied to mounted temp-system and will be included in the personal save-file if you choose to make one at power off. So your zdrv contents moved from zdrv to personal save-file and even though a zdrv-file is present it will never be mounted again (unless you delete main .sfs file). You cant even choose it via the bootmanager as it do not show zdrv (renaming might work - never tried that...)

Also if you have a main .sfs-file on the drive this one seems to be loaded instead of the main-sfs-file on the CD-rom. So if you make changes to main-sfs and think you will see the new content - you wont if you have a main-sfs-file on the HD.

All this makes sense (I think) for the purpose and use of the original PUPPY - It is annoying in the concept of pUPnGO...

I might be missing something but this is at least my findings.

I still have fun with pUPnGO too - it is a great way of learning Puppy and Linux basic. Glad you have fun too.

The font issue is a big mystery to me...It would be nice to have a simple font configuration tool - choose which fonts you want (and need) and have them one place. It seems that there are several places where fonts are placed and several font types. Until now its either one font or all of them in the build script (include all font by choosing beauty-box=yes).
Kim

User avatar
Keef
Posts: 987
Joined: Thu 20 Dec 2007, 22:12
Location: Staffordshire

#71 Post by Keef »

Thanks for the explanation - it all makes sense now, and has exposed my ignorance.
And there's plenty more where that came from.....

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#72 Post by technosaurus »

I think the intention was that they (modules) would be saved to the pupsave file.

the zdrv cutter will automatically make this happen because they are rewritten (you may also want to rm -rf the backup of lib/modules)
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].

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

#73 Post by sunburnt »

Actually MU made a " TinyPup " many years ago that was about the same size.
Puppy412 is the " old school " Puppy now, a newer Puppy version would be good.
I`m not sure what value a " console only " version of Puppy has really...

A stripped down Puppy with Xvesa intact would be useful, and one with Xvesa and Xorg too.

User avatar
Keef
Posts: 987
Joined: Thu 20 Dec 2007, 22:12
Location: Staffordshire

Fonts

#74 Post by Keef »

Solved the problems with certain console fonts failing to load by coping the setfont binary from the full 4.12 to replace the symlink to busybox.
Now I can use nice terminus-fonts at a larger size to go with the higher framebuffer resolutions.

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#75 Post by goingnuts »

Keef: org. setfont will be used in next update of builds/build script. Thank you for finding that.
technosaurus: Any chance to remount an already mounted zdrv to be read-write? I am trying to implement part of your zdrvctr in pUPnGO - (offer a cutdown at poweroff) - but if zdrv is large it uses a lot of space in the ramdisk. If one could modify the mounted zdrv directly before copying, less space would be used...
Update: Never mind, after some time at Google I realize it might be impossible. Found another approach: Copy zdrvctr found modules directly to root, after that a for/do/done loop through dirs in zdrv copying to root but avoiding /lib/modules/firmware/network dirs.

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#76 Post by technosaurus »

probably not impossible - to ensure it gets written directly to the pupsave file you can try copying /lib/modules to /initrd/pup_rw/lib/modules

... although you should be able to just eliminate the lines where the cutdown /lib/modules is removed and the backup of the full /lib/modules~ is moved back into place.... for that matter eliminate the line where it makes the backup - remove it instead (rm -rf) - the cutdown version will replace it - if aufs is trying to be "smart" about not wirting duplicate files in the same location to the pupsave you can "touch" the files so that the time stamp is changed
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].

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#77 Post by technosaurus »

http://www.murga-linux.com/puppy/viewto ... h&id=26850

Here is a compile of the full busybox from git - only PAM and SELinux options are disabled - everything else is the fullest desktop version. There is also a pinstall.sh script that will prevent adding busybox apps for items that are already installed even if they are in non-standard locations. you will need which and ln for it to run though, which should exist if you have an existing busybox - this version should make things more functional and give you ~100+ extra programs to play with.

to get the .config file from this busybox incase you want to disable some unnecessary options just run bbconfig >.config

Some scripts need patched to run with busybox ash (petget for example), mostly just converting from using the long options to short options (such as stat -c %s instead of stat --format=%s) I enabled the long options where available so the number of patches should be minimal.
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].

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#78 Post by goingnuts »

The present pUPnGO build uses BB v.1.17.0.git. I managed to include technosaurus zdrvctr in buildscript and in the builds of pUPnGO - it really make things more lean. Build with full driver set and at installation/creating a pupsave reduced size by only including the needed drivers. Makes build for foreign hardware an ease.
I will upload the new build script and builds as soon as I have "beautified" the build-script a little more.

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#79 Post by goingnuts »

New build script for download below - ISO builds in homepage not updated yet. Main difference is the inclusion of technosaurous zdrvctr in build script (build in all drivers loaded by host) and in the builds (if zdrv is used). An all-driver build is also possible.
Attachments
build_pupngo_412.zip
(20.32 KiB) Downloaded 472 times

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

Kernel (re)Build?/Floppy Puppy

#80 Post by goingnuts »

I have been trying to compile P412 kernel following advise found here:

Running in a clean frugal install and after install of lzma-458.pet and compiling I do get a kernel with same size as the original (1590 kB) and it boots and runs OK (so far).
Now I wanted to test some other settings via "make menuconfig" - first thing that looked interesting was "Optimize for size (Look out for broken compilers!)". So changed that, compiled and new kernel with size 1405 kB obtained - 12% lees in size. Not much - but now fits on one floppy - if you want to follow that track...-> 2 Floppy Puppy Boot Disks able of booting already installed P412 or to the initial-ramdisk console if no P412 installed. Download floppy images and (DOS) MAKEBOOT.BAT.

Question: Why is original kernel not build with this feature? Does anyone know of problems using this setting?
EDIT 20180213: Revisited the floppypuppy thing - just a few notes: pupngo initrd has long needed full find binary as busybox find do not understand the "-mount" switch. Turns out that busybox -xdev gives exactly same functionality - so full find can be excluded from initrd.
If main.sfs is located on floppy init wont find it as floppy drives are not searched - add "^fd|" to ALLDRVS code in probepart_init to fix this.
Last edited by goingnuts on Tue 13 Feb 2018, 17:44, edited 1 time in total.

Post Reply