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:

#496 Post by goingnuts »

technosaurus: Thanks for the help and hints!

The problem with setting window name in the gtk app builds with tinyX11/uclibc seems solved! :D

Even though compiled with --disable-nls gdk/gtk insist on using Xlib lc-family and friends (and its a huge family with a number of friends!).

By modifying source of gdkwindow.c (function "gdk_window_new") to use XSetWMName/XSetWMIconName instead of XmbSetWMProperties (who is the lc-demanding function) everything works ok.

Maybe a patch to jwm to accept windows without names might be a nice feature to do in the future...is it a bug:?:

Attached and updated mcb_gtk containing Xdialog-2.3.1, dillo-0.8.6 (without ssl), emelfm-0.9.2, mp-3.3.13 and mtpaint-3.21 in one 2173K static bin (905K upxed)

Copy to /usr/bin and run "mcb_gtk --install".

As always errors and bugs are spotted after submission so use with caution! :wink:

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

#497 Post by technosaurus »

It may be worth trying a newer version of jwm 2.1.0 was released in September and Joe has been extremely active upto and since then. (Note: at v530 the source grows substantially )

I also looked into the Xvesa/xvfb differences with possible solution:
move const KdCardFuncs vesaFuncs = { ... }
from vesainit.c to vesa.c
then merge vesainit.c and fbinit.c into a kdinit.c using the same mechanisms used in the mcb to select which function

Code: Select all

void InitCard (char *name){
    KdCardAttr	attr;
switch ( FIRST_FIVE(argv[0][0],argv[0][1],argv[0][2],argv[0][3],argv[0][4]) ) {
	case FIRST_FIVE('x','v','f','b','d') : KdCardInfoAdd (&fbdevFuncs, &attr, 0);
	case FIRST_FIVE('X,'v','e','s','a') : KdCardInfoAdd((KdCardFuncs *) &vesaFuncs, &attr, 0);
	default : return 1;
}

void InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv){
    KdInitOutput (pScreenInfo, argc, argv);
}

void InitInput (int argc, char **argv){
KdInitInput(&LinuxMouseFuncs, &LinuxKeyboardFuncs);
//touchscreen support goes here
}

int ddxProcessArgument (int argc, char **argv, int i){
int	ret;    
if (!(ret = vesaProcessArgument (argc, argv, i)))
	ret = KdProcessArgument(argc, argv, i);
return ret;
}
btw this is what I currently have for checking the mcb name:

Code: Select all

#include "mcb.h"
#define FIRST_FIVE(x1,x2,x3,x4,x5)	(((((((((x5)<<8)|(x4))<<8)|(x3))<<8)|(x2))<<8)|(x1))

int main( int argc, char** argv ){
argv[0]=basename(argv[0]);

switch ( FIRST_FIVE(argv[0][0],argv[0][1],argv[0][2],argv[0][3],argv[0][4]) ) {

#ifdef MCB_DILLO
	case FIRST_FIVE('d','i','l','l','o')   :
		return(dillo_main(argc,argv);
#endif

#ifdef MCB_EMELFM
	case FIRST_FIVE('e','m','e','l','f')   :
		return(emelfm_main(argc,argv);
#endif
...
it works but I get this on newer compilers:
warning: assignment makes pointer from integer without a cast

currently writing a wrapper for gcc that will handle nuances like:
always includes the *FLAGS you want
never includes the *FLAGS you dont
future support for:
linking the objects inside the static libs directly by using ar -x to extract them to a dir and then replacing -lsomelib with lsomelib/*.o (needed for fvisibility=hidden)
selectability of C/C++ library (musl, uclibc and uclibc++)

Edit: I posted a mixed shared/static build of mupdf here:
http://www.murga-linux.com/puppy/viewtopic.php?t=61922
needs only X11, Xext, freetype, jpeg and png (patches attached here)
Attachments
mupdf-multicall.patch.gz
Here is a patch for mupdf as mcb, see also ./scripts subdirectory for minimal builds of 3rd party libs
(2.47 KiB) Downloaded 389 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:

#498 Post by goingnuts »

technosaurus wrote:It may be worth trying a newer version of jwm 2.1.0 was released in September and Joe has been extremely active upto and since then. (Note: at v530 the source grows substantially )

I also looked into the Xvesa/xvfb differences with possible solution:
move const KdCardFuncs vesaFuncs = { ... }
from vesainit.c to vesa.c
then merge vesainit.c and fbinit.c into a kdinit.c using the same mechanisms used in the mcb to select which function
Admitted...haven't checked the development of jwm for a long time but did a quick test of the current 547. The no windowname-crash is fixed but new things popped up: Desktop totally covered if background set (ROX is running behind but invisible), respecting GNOME hint removed so "desklaunch" unusable now (spawns windows for every icon) and not on every desktop, still STICKY windows are shown in pager and apps like root-tail have no chance showing anything. So although a lot of new wanted features are taking care of it still seems to be a moving target...

Cool solution with the Xvesa/Xfbdev! I´ll check it out. Thanks!

I have done some initial test of diethotplug-0.4 to replace udevd and most of the pupevent-scripts. Eliminate the need for all the rules in /etc/udev and gives a less complex file-structure. Seems very fast and also seems to find and load most of the modules. Attached - place in /sbin...
Attachments
diethotplug-0.4-bin.tar.gz
diethotplug-0.4 bin
(24.94 KiB) Downloaded 320 times

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

#499 Post by technosaurus »

excellent - it appeared to build on Wary's 2.6.32 kernel also (btw it appears to be kernel version dependent - I assume you were using the 4.1 kernel?)
Attachments
hotplug.tar.gz
this one is bigger b/c the 2.6.32 kernel supports many more devices
(29.95 KiB) Downloaded 334 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:

#500 Post by goingnuts »

technosaurus wrote:excellent - it appeared to build on Wary's 2.6.32 kernel also (btw it appears to be kernel version dependent - I assume you were using the 4.1 kernel?)
Not sure about the kernel dependency...Yes build on P412 (kernel 2.6.25.16). Tested a little further: Finds non-active netcards, usb hotplug works and also find 3-5 more things than if using udevd...
Not sure about loading of firmware - might not work for that...
Also it seems to work without the content in /ect/modules.

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

#501 Post by technosaurus »

goingnuts wrote:Not sure about loading of firmware - might not work for that...
Also it seems to work without the content in /ect/modules.
there was a firmware loader as a separate small package on the same sourceforge page
http://prdownloads.sourceforge.net/linu ... _13.tar.gz
(the other version is roughly the same age as diethotplug though ...)
Re: kernel version ... I am assuming the *_module.maps would vary from kernel to kernel, which are what the build uses to generate its header files.

Edit: also found this dillo ssl patch, may work better?:
http://www.jp.freebsd.org/cgi/query-pr.cgi?pr=96592
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:

#502 Post by goingnuts »

Thanks - I think the ssl patch only makes the ssl-compile possible without changing the real content...
Could not get the firmware thing to compile but will try again later...

Now have Amigos patched ROX-Filer-1.2.2-12 done (without Xft) as standalone or in a MCB - but think it needs some reconfiguring (update icons and helper scripts). But everything seems to work!
Ends up in a 1645K static bin and it seems resource use is extremely low compared to the standard ROX-Filer in P412...(3000K versus 30000K running pinbord and 1 file-window).
Edit: reduced standard ROX ressources above from 30000K to 15000K :oops:
With all these gtk´s onboard...is there any way of preventing a "freeze" if you start too many programs and run out of free ram?
Also discovered that even though diethotplug is fast and attractive - some other functions are depending on the different pupevent scripts - some alternative scripts to handle this should them be made...
Been busy trying to get ROX-Filer running in pupngo - almost working but cant get drive icons to line up (ends in a stack in left bottom corner) and only the cddrive that I boot from opens filer window..?

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

#503 Post by technosaurus »

goingnuts wrote: With all these gtk´s onboard...is there any way of preventing a "freeze" if you start too many programs and run out of free ram?
Also discovered that even though diethotplug is fast and attractive - some other functions are depending on the different pupevent scripts - some alternative scripts to handle this should them be made...
Been busy trying to get ROX-Filer running in pupngo - almost working but cant get drive icons to line up (ends in a stack in left bottom corner and only the cddrive that I boot from opens filer window..?
sure... If its an mcb you could use a while loop to sleep 1 while freemem is less than the amount needed. That was my main reason for writing jwm notify ... To provide important notifications without using additional resources. As for the other parts, please post ... BTW I got a working jwm in a ~600kb initrd.gz ... Need to play with some more stuff to get rxvt to work though, looks like I will need mdev at the least.

Edit: I was thinking about designing a little gtk1 frontend in C using glade 1.x if anyone is interested, but I may need some help with a couple things...

Edit2: just noticed this version of jwm in the mcb_vesa uses sh -c to exec apps ... (I had patched to either use system or my fork_exec code to save ~1mb per process)
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:

#504 Post by goingnuts »

Whats is there to say....? I knew you were some where in the future..now we know you must be a GD enterprise...
COOL!

User avatar
MinHundHettePerro
Posts: 852
Joined: Thu 05 Feb 2009, 22:22
Location: SE

#505 Post by MinHundHettePerro »

Hello :)!

@technosaurus

Very nice toy! - Been playing with it the whole day!

A couple of questions:

1
I use a swedish keyboard and took the easy way out to implement this in this microsaurus-thingy - I simply ungzipped P412's /root/lib/keymaps/se.gz to /usr/share/kmap/se.kmap.

Lo and behold - now I can use my se-kbd out in a terminal (åÅäÄöÖ works and shows properly, as do the other se kbd-layout keys), but in an x terminal-emulator - no go!

Seems like the real terminal uses utf8, and the x term emulator uses ascii/ansi.

In the "welcome screen" - startupcommands - åÅäÄöÖ can be entered properly, but in rxvt, just renders ??????.

A file containing 'e5 c5 e4 c4 f6 d6' renders properly when cat'ed in rxvt, and so does echo -e "\xe5\xc5\xe4....".

- It also makes it impossible to enter backticks (`) in rxvt :(!!!

Any thoughts, did I take a too easy route by simply re-using P412's /root/lib/keymaps/se.gz, is there a better/more complete kmap to use?


2
I'd like to have, at least one free, available tty, apart from the two already in use (tty1, start-up; tty2, x), how to implement this? Or, is this constrained already at compile time?


Cheers :)/ MHHP
[color=green]Celeron 2.8 GHz, 1 GB, i82845, many ptns, modes 12, 13
Dual Xeon 3.2 GHz, 1 GB, nvidia quadro nvs 285[/color]
Slackos & 214X, ... and Q6xx
[color=darkred]Nämen, vaf....[/color] [color=green]ln -s /dev/null MHHP[/color]

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

#506 Post by technosaurus »

I made no real effort to do those things as of yet, I just kept half-splitting between what I thought was the absolute minimum to get xvesa+jwm+rxvt and a small, known-working build (pupngo) ... I actually wanted to have to think about "why?" when adding stuff back in, so that it can be done a little more cleanly ... for instance my entire file structure looks like a house of cards built on symlinks (it is) -- I was actually planning to add the localization types of stuff a bit differently as well, only from inside of X and it is easier for me to rewrite stuff from scratch than to adapt existing code... nothing set in stone at the moment, but take heart in knowing that one of my main purposes in doing this in X, was to enable friendlier bootup with better localization - with every option being specifiable @ the bootloader (I like to run pfix=ram, and am loving qemu now, so I don't want to have to set these all the time)
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
MinHundHettePerro
Posts: 852
Joined: Thu 05 Feb 2009, 22:22
Location: SE

#507 Post by MinHundHettePerro »

technosaurus wrote:I made no real effort to do those things as of yet, I just kept half-splitting between what I thought was the absolute minimum to get xvesa+jwm+rxvt and a small, known-working build (pupngo) ...
I hope you keep on half-splitting ...
Microsaurus reminds me of BL3, but in a modern disguise (and with development potential) - now I'll have to dig around for my BL3-files to see if I ever did get se-kbd working there ...

Cheers :)/ MHHP
[color=green]Celeron 2.8 GHz, 1 GB, i82845, many ptns, modes 12, 13
Dual Xeon 3.2 GHz, 1 GB, nvidia quadro nvs 285[/color]
Slackos & 214X, ... and Q6xx
[color=darkred]Nämen, vaf....[/color] [color=green]ln -s /dev/null MHHP[/color]

PANZERKOPF
Posts: 282
Joined: Wed 16 Dec 2009, 21:38
Location: Earth

#508 Post by PANZERKOPF »

MinHundHettePerro wrote: I use a swedish keyboard and took the easy way out to implement this in this microsaurus-thingy - I simply ungzipped P412's /root/lib/keymaps/se.gz to /usr/share/kmap/se.kmap.
Lo and behold - now I can use my se-kbd out in a terminal (åÅäÄöÖ works and shows properly, as do the other se kbd-layout keys), but in an x terminal-emulator - no go!
Seems like the real terminal uses utf8, and the x term emulator uses ascii/ansi.
In the "welcome screen" - startupcommands - åÅäÄöÖ can be entered properly, but in rxvt, just renders ??????.
Your system locale (/usr/lib/locale/?)and Xlocale (/usr/share/X11/locale/?) are correct? Did you have needed files in those directories?
A font used by xterminal is correct?
Also, Kdrive servers like Xvesa and Xfbdev haven't Xkeyboard extension by default so keyboard setup can be performed with xmodmap only. You should create an Xmodmap file with needed redefinitions then load it with xmodmap utility.
SUUM CUIQUE.

User avatar
MinHundHettePerro
Posts: 852
Joined: Thu 05 Feb 2009, 22:22
Location: SE

#509 Post by MinHundHettePerro »

PANZERKOPF wrote:
MinHundHettePerro wrote: I use a swedish keyboard and took the easy way out to implement this in this microsaurus-thingy - I simply ungzipped P412's /root/lib/keymaps/se.gz to /usr/share/kmap/se.kmap.
Lo and behold - now I can use my se-kbd out in a terminal (åÅäÄöÖ works and shows properly, as do the other se kbd-layout keys), but in an x terminal-emulator - no go!
Seems like the real terminal uses utf8, and the x term emulator uses ascii/ansi.
In the "welcome screen" - startupcommands - åÅäÄöÖ can be entered properly, but in rxvt, just renders ??????.
Your system locale (/usr/lib/locale/?)and Xlocale (/usr/share/X11/locale/?) are correct? Did you have needed files in those directories?
N/A in microsaurus' case, besides, I rarely set my locale corresponding to my keyboard layout - e.g. in Puppy I usually set my locale to en_GB, while my kbd-layout, both in console and in X, is set to "se".
A font used by xterminal is correct?
Yes, that could very well be the case. I tried to change rxvt's font in ~/.Xdefaults, to no avail, though. But, could be the cause of the problem.
Also, Kdrive servers like Xvesa and Xfbdev haven't Xkeyboard extension by default so keyboard setup can be performed with xmodmap only. You should create an Xmodmap file with needed redefinitions then load it with xmodmap utility.
Ah, I'm not so experienced with Xvesa, I could try to install xmodmap from P412, but what kind of kbd redefinition shall I create/look for (a bit confused here, there are compiled kmaps, kmaps, and the nested mappings files, like in /usr/share/kbd/keymaps, /etc/X11/kbd)? Grateful for input here ... :) :)
Thanks :), I'll be a-treading the x-font and xmodmap paths ...


@technosaurus
MinHundHettePerro wrote: 2
I'd like to have, at least one free, available tty, apart from the two already in use (tty1, start-up; tty2, x), how to implement this? Or, is this constrained already at compile time?
Yeah, right, I did solve it (sort of :oops: :P) by inserting

Code: Select all

getty 38400 tty3 &
into /init. But, since /etc/inittab isn't read/acted upon, it's not respawned :cry: :cry:. Ah, well, I can live with that ...


For now :)/ MHHP
[color=green]Celeron 2.8 GHz, 1 GB, i82845, many ptns, modes 12, 13
Dual Xeon 3.2 GHz, 1 GB, nvidia quadro nvs 285[/color]
Slackos & 214X, ... and Q6xx
[color=darkred]Nämen, vaf....[/color] [color=green]ln -s /dev/null MHHP[/color]

PANZERKOPF
Posts: 282
Joined: Wed 16 Dec 2009, 21:38
Location: Earth

#510 Post by PANZERKOPF »

MinHundHettePerro wrote: N/A in microsaurus' case,
Xlocale files you can borrow from same (or maybe any?) verison of Xorg.
MinHundHettePerro wrote: I rarely set my locale corresponding to my keyboard layout - e.g. in Puppy I usually set my locale to en_GB, while my kbd-layout, both in console and in X, is set to "se".
Puppy has Xlocale files. Moreover, Puppy uses Xorg with xkb (even Xvesa is compiled with xkb) so there are no problems with languages.
MinHundHettePerro wrote: what kind of kbd redefinition shall I create/look
This page may be useful for you:
http://www.faqs.org/docs/Linux-mini/Intkeyb.html
SUUM CUIQUE.

keniv
Posts: 583
Joined: Tue 06 Oct 2009, 21:00
Location: Scotland

#511 Post by keniv »

Hello All

I have used a number of puppies and I am typing this in 528. I thought I would try pupngo because I was intrigued by it's size. I was not sure which to try and so I went for the one I thought looked the most recent and downloaded V016_090611.iso from Goingnuts site. I burned the iso booted it up and went through the setup procedure. I elected to keep all the drivers. I now have the following files on my hd. GUI_016.sfs, pup_016pupngo.sfs, pup_save.2fs and zdrv_016.sfs. and I am booting from the cd. My problem is wifi setup. My wifi pcmcia card is detected. My router is detected and its id is shown. It detects the wpa security system and asks for the key. When I type in the key and hit OK I get

udhcpc:
SIOCGIFINDEX no such device

I am then asked if I want to cancel or try again. If I try again I get the same result. Can anybody help me get the wifi working. I am using an old Toshiba laptop PIII 800MHZ, 320MB and40GB hd about half full.

Regards,

Ken.

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

#512 Post by goingnuts »

keniv wrote:..
udhcpc:
SIOCGIFINDEX no such device

I am then asked if I want to cancel or try again. If I try again I get the same result. Can anybody help me get the wifi working. I am using an old Toshiba laptop PIII 800MHZ, 320MB and40GB hd about half full.
Hi ken - thanks for testing pUPnGO!
The wifi-manager is my (obviously not so good) try to get a simple access wizard to wireless. Its buggy I think - sorry for that. I have seen that error before -but its a long time since I messed with the wireless manager so I do not recall how to solve it. It could be a missing/wrong (firmware)-driver.

Still testing the diethotplug as its extremely fast compared to udevd it seems. To watch what the kernel sends to it I have renamed hotplug to hotplug.bin and made the below script (named hotplug). Then the information send from kernel can be evaluated:

Code: Select all

#!/bin/sh
[ ! -f /tmp/hotplug ] && echo -n >/tmp/hotplug
echo "$(date): Arguments ($*)" >> /tmp/hotplug
echo "$(date): Environment $(env)" >> /tmp/hotplug
hotplug.bin $*
exit
Source code for diethotplug show no sign of handling firmware:

Code: Select all

int firmware_handler (void) {return 0;}
but might be modified with some calling of external script that might handle firmware...or maybe some simple c-code additions.
This page might give some good background for hotplug.
Maybe its just reinventing the wheel - but the speed increase is very attractive...

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

#513 Post by technosaurus »

I have gotten the full gtk1 version running in the initrd
resource usage is under 32MB (can get <16mb if you use lower res X) with all gui apps running it is still well <48mb

I am a little distressed that the whole init script needs to keep running or you get the "attempted to kill init" message ... the extra shells push me close to 16mb ram usage with only rxvt running top
Rob Landley has oneit.c which can spawn the init script and act as PID 1, but I also remembered my basic xinit that was derived from my waitfordisplay, which gave me this basic idea:

NOTE- this is just a pseudo-code TODO
fork_exec("/sbin/init.sh")
fork()... xvesa_main(argc, argv)
waitfordisplay(void) //change to waitforX since it is builtin
fork()... jwm_main(3,{"jwm","-display",":0"})
wait()
//should kill Xvesa here, but would need the pid from fork above
fork_exec_wait(1,"/bin/sh")


also jwm/src/command.c has this line that spawns unneeded shells
execl(SHELL_NAME, SHELL_NAME, "-c", command, NULL);
could be?
#define EGGSACK(a) ({if((fork())==0) execvp(a[0],a);})
EGGSACK(command);


Note - jwm used to just use system(command) but was changed for security reasons ... perhaps this no longer applies?
Attachments
microsaurus.png
(122.05 KiB) Downloaded 1004 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:

#514 Post by goingnuts »

I have gotten the full gtk1 version running in the initrd
resource usage is under 32MB (can get <16mb if you use lower res X) with all gui apps running it is still well <48mb
Nice! Let me know if you need sylpheed or aumix as well...
Almost done with the ROX-Filer - working on the hotplug desktop icon update - will propably do a new script just to handle it - to get it out of pup_event_frontend_d.
Found that Dillo download dpi can not use busybox wget (cals wget -O - --load-cookies $HOME/.dillo/cookies.txt) and the --load-cookies makes busybox wget fail. Would also be nice here, to have a message telling that download completed...
If you use some of the dpi´s they stay running after dillo has closed - might be to service other running dillos. But they take up a lot of resources. So I think dillo should be started via a wrapper who looks after that and closes unused dpi´s.

Also found that some scripts fails (if they generate other scripts) with Xdialog. The problem is the rather useless information "locale not supported..." that glib/gtk spawns - as one of its only debug infos.
So modified the code updated build of mcb_gtk attached. No additional files (config, icons etc.) included.

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

#515 Post by technosaurus »

goingnuts wrote:Also found that some scripts fails (if they generate other scripts) with Xdialog. The problem is the rather useless information "locale not supported..." that glib/gtk spawns - as one of its only debug infos.
So modified the code updated build of mcb_gtk attached. No additional files (config, icons etc.) included.
for gtk1 wjaguar suggested using -DGTK_NO_CHECK_CASTS -DG_DISABLE_CAST_CHECKS (several pages back) to save some code size. I also started a project on github called "singularity", but haven't set up the repo yet, b/c I wanted to the latest changes. I tested the aboriginal toolchain and it seems to work quite nicely, but the uclibc / uclibc++ needed some tweaking to get the smallest code size (bonus is that we could use c++ based apps) like eliminating the gnuisms and for uclibc++ disabling support for rtti and exceptions (I know how to patch around that if we need to) I am still working on a wrapper script that uses the objects (*.o files) instead of the static library (*.a archive) because it reduces the code by 10-20% by using -fvisibility=hidden (or we could just use them directly in our build scripts) ... I just wonder how many security exploits are avoided by compiling statically with hidden visibility ... the only ones left that I can think of are stack smashing ... but then we could always use -fstack-protector (or whatever it is)

So, I also tested it with the 2.6.39 kernel and it is working nicely (man I am loving qemu - though it takes ~5seconds to X in qemu vs <2 on my old crap hardware), plus it allows a lot of new things like devtmpfs, lzop/xz compressed kernel, initrd and squashfs, ext4 with support for ext2/3 using its driver. I used the kernels initramfs=(location) to build the entire thing into the kernel (this would allow us to build a "zdrv" as an initrd.xz) ... anyhow I am keeping all the modules out of the main initrd for now so that it can be used with any kernel and even built in to it (great for pxe booting)
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