pUPnGO - 6Mb ISO - Basic Building Block Puplet

A home for all kinds of Puppy related projects
Message
Author
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.

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

#81 Post by technosaurus »

it probably just uses -Os instead of -O2

they are the same except -O2 does further "optimizations" that may increase size with the hope of gaining speed in return (unrolling loops, duplicating small functions to inline them in multiple places etc...) gcc-4.4.x is much smarter and there is less difference, since it now will inline, unroll etc when code size is smaller such as:

for i = 1 to 3
x += 1
...

could become (depending on ...)
x += 3
...

The example is an oversimplification, but the gcc manual is well documented if you want to know the exact details.

Why not the 2.6.32.xx kernel using Barry's X.31.x .kconfig? too bad .33 broke compatibility with Puppy's init - it had some good stuff
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:

#82 Post by technosaurus »

haven't tried this yet, but it is the ultra basic X with rxvt and jwm built for png icons only (+libc,m,z,X11,Xdmcp,Xau,png) and some icons
Attachments
Xbase.png
screenie
(15.71 KiB) Downloaded 1428 times
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:

#83 Post by goingnuts »

technosaurus: Thank you for the explanation. So no reason not to downsize kernel if needed...and maybe include extra if needed...

I did test your ultra-basic X - but could not get it running. Probably font/file-structure have to be sorted out. But really a cut down in size if it can be implemented.

I realize that getting things smaller and more lean is rather difficult with the present setup of pUPnGO. A more user friendly approach might be to make packages for pUPnGO that holds everything to get the feature/application going by installing it on top of the very bare system. For this to work an installer have to be in the basic system.

Then size/feature optimization could be done in the application package - and not as now in the build script. Below the present state of a basic system with Xvesa-package on top (According to your ultra-basic approach the size of this system could come down below 7 MB for the ISO...). The present size is 8-9 MB ...
Attachments
pupngo_010410.png
(106.33 KiB) Downloaded 599 times

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

#84 Post by technosaurus »

petget only requires a few modifications to work with busybox (it has various scripts that can be run from the commandline)

I started a script that parses the official puppy packages in /root/.packages and builds a jwm menu to install packages. This will give a gui install method without the gtkdialog dependencies (I'm thinking it should go on the right side of the tray?) Will probably pull in xmessage as well to give notifications etc...
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:

#85 Post by goingnuts »

technosaurus wrote:...I started a script that parses the official puppy packages in /root/.packages and builds a jwm menu to install packages. This will give a gui install method without the gtkdialog dependencies (I'm thinking it should go on the right side of the tray?) Will probably pull in xmessage as well to give notifications etc...
That would really push things forward! I do try to use dialog only for wizards as it can be used also if you do not have X or Xorg. gtkdialog/xdialog/xmessages carry dependencies that only increase size without increasing functionality...being extremely minimalistic by nature...I even tried to avoid dialog and use script only - but that road was too much of a learning-process for my patience...

Beginning to see a structured pUPnGO building block path - for embedded systems or desktop-versions: kernel (1,5Mb) , initrd.gz (1,3Mb), main-basic sfs (3Mb), zdrv holding selected drivers needed to get up and going (5Mb) and on top of that zdrv-cutter to wipe out unneeded drivers, pet-install to build customized Puppys down -> top...

By defining this structure the dependency/anchoring in P412 also vanish...

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

#86 Post by technosaurus »

of all of the dialogs, xmessage is the lightest (only requiring a couple of extra small xlibs if I recall correctly) and you can get a full screen of text with several buttons... plus it is easy to script.

FYI the Xvesa has already been sstripped (it is tinyx that I got from tinycore), so don't try to strip it to make it smaller or it will break... should probably move it to a different directory and make a symlink
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:

#87 Post by goingnuts »

technosaurous: Still no success with the Xvesa from tinycore - but did follow your route with a recompile of jwm and rxvt to minimize total size. Although I can not get the ultra-small size of the 2 programs as you can - I am able to kick some libs out. The attached pet should contain all needed to get a GUI in pUPnGO - and more in line with orig. P412 xwin, X, xinit and xinitrc is used. Reboot and power down now seems to work used from JWM. Still have problems with JWM and finding installed fonts - but works anyway. Updated 080410: See post below.

Also attached a very simple HD installer. This is a very basic OS installer for HD only, only Frugal install, only ext2 file-system, only files from CD, only grub in MBR. Targeted only for pUPnGO-V412. The pet contains the needed files from grub - run the installer with command "PUPNGOINSTALLER".
Last edited by goingnuts on Thu 08 Apr 2010, 17:58, edited 2 times in total.

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

#88 Post by technosaurus »

Code: Select all

xinit -- -br -screen `Xvesa -listmodes 2>&1 |grep 0x[123][246] |sort -r |cut -d " " -f 2|tr "\n" " "|cut -d " " -f 1` -shadow -mouse /dev/mouse -nolisten tcp -tst -I > /tmp/xerrs.log 2>&1 &
start in max resolution (for min resolution remove the -r from sort)
will automatically run .xinitrc (which can simply be a bash script with exec jwm)
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:

#89 Post by goingnuts »

:D - Got him running, updated the pet above - using technosaurous jwm and Xvesa, recompiled rxvt. Added symlinks for fonts and found that Xvesa from tinycore needed courB12-ISO8859-1.pcf and courB14-ISO8859-1.pcf to start. Still JWM claims unable to find his font but turns up anyway...
Reduced pet-size from 1448K to 1305K...

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

#90 Post by technosaurus »

A while back, I modified the startup scripts for the HSB puplet (for kids) to automatically bypass the keyboard, country, mouse and only ask about the video card... with those mods and the xinit code from my previous post it could get to the desktop extremely fast
http://puppylinux.ca/members/T/puplets/ ... _alpha.iso
puppy:linux ...Don't let "lite" fool you its ~170+MB

I wonder if you would even need to wait for the rest of init to finish. It may be able to start before the sfs or the drives are found and let those processes run in the background with a yafsplash, xmessage or something when finished... not sure about the pivotroot/switchroot at the end though

jwm and fonts:
http://joewing.net/programs/jwm/fonts.shtml
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:

#91 Post by technosaurus »

This may be of interest - the old static qt3 build of Opera in 6.5Mb: Opera-9.27

and a whole list of apps that work with gtk-1.2
http://kmandla.wordpress.com/2008/09/02 ... k12-stuff/
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:

#92 Post by goingnuts »

JWM now using his fonts - changed font in .jwmrc to: -adobe-courier-bold-r-normal--14-140-75-75-m-90-iso8859-1

Updated the X_base pet with technosaurous rxvt and included freememapplet as it is an essential info-part of Puppy. Included a small applet "Control Panel" that generates a dynamic menu in dialog. For now only a modified Display-Manager present. The cost of this is an increase in size of 54K (but now there are 4 fonts present...)

The final ISO-build with GUI is 7,7Mb including LYNX-web browser (but no new builds made public yet). Same build with host drivers is 10Mb - and running on host fast as...

Done a quick test to start xwin very early in rc.init: X starts ok but JWM refuses claiming he can not find his config file at that point. We might just end up in the XP-situation (needing the hourglass-courser) if all other init happens in background?

Would like to dig into the GTK-world but every time I try to compile there I get:
The gtk-config script installed by GTK could not be found
*** If GTK was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the GTK_CONFIG environment variable to the
*** full path to gtk-config.
configure: error: GTK+ not found (required)

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

#93 Post by technosaurus »

I compiled a static version of gtk-1.2 with all of the debian patches if you want it, otherwise you can add this to your .profile script (or its equivalent)

export GTK_CONFIG=/path/to/gtk-config
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:

#94 Post by goingnuts »

technosaurus: Thank you - you are helping a lot! If possible I would like to try your static version.

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

#95 Post by technosaurus »

I was only able to cut ~500kb off of the opera package by setting the skin to be basically blank, removing unnecessary files and optimizing images and upxing the binary (recent versions can have 5-7MB of cruft removed)... It is a 6Mb tarball so will have to post it elsewhere

Here is gtk-1.2 with debian patches, I intentionally compiled them "--without-pic" to only be used in executables (so they won't work in shared libs)

(They should probably have a pinstall script that sets any environment variables like export GTK_CONFIG=/path/to/gtk-config etc..., but everything is in the standard locations)

if you run in to issues with gtk2 overriding them at configure, renaming the glib/gtk libs, *.pc files and -*config files may help - keep in mind that if a library can use either 1.2 or 2.0 and the script auto detects it, then gtk2 will get pulled in (unless you can --disable or --without it)
Attachments
gtk+-1.2.10-18.1-i486.pet
(2.96 KiB) Downloaded 465 times
glib_DEV-1.2.10-i486.pet
(82.9 KiB) Downloaded 466 times
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].

Post Reply