Firmware loading, savepuppyd

Ok, I have figured out how firmware gets loaded for modules. The kernel has firmware-loading functions that the module calls just after it has loaded, resulting in the kernel generating a uevent requesting a particular firmware file.

My daemon script /sbin/pup_eventd now recognises this uevent and loads the firmware. It's actually quite simple, you have to take a look in the script when I release 4.1alpha.

I have hardcoded the script to search for the requested firmware in /lib/firmware, but it can be located in any subdirectory under /lib/firmware and it will be found.

This is theoretical -- not tested yet!

Oh yes, one important thing. The 'hotplug' package has now been removed. It is not needed anymore and in fact the script /sbin/hotplug must not be there. It is possible to tell the kernel to ignore it if it is there, but if it isn't then the kernel will register that fact and not try to use it from then on (for current session). I found that if it is present then it messes up the uevent firmware loading system.

The daemon script /usr/sbin/savepuppyd is (or rather was) launched from /etc/c.d/rc.local0, however it no longer exists. I have merged it into pup_eventd. That functionality is to monitor free memory and place warning messages at top of screen when low, and handle saving of RAM periodically when in PUPMODEs 3, 7 or 13.

The main reason for the merge is to eliminate one daemon that has its own polling loop, but mostly it helps everything to happen in the right order and at the right time. For example, kernel uevents are not processed during a save from RAM, avoiding potential conflicts.

Posted on 21 May 2008, 20:39


Posted on 22 May 2008, 4:20 by nfisher
This is getting very exciting to read about. I am really wanting to get a look at that script!

Posted on 22 May 2008, 7:05 by melhundo
That's not good for me. savepuppyd is what I get rid of, every time I make new personal file. I don't like when it saves everything from RAM into my file, because I like to handle myself what does it contain. For example, I sometimes download zipped set of pictures, unzip it, view and delete from my RAM, so that it doesn't get saved into my file and this is what I want to happen: not saving. When I want to make a change in personal file, I do it through /initrd/something or just by shutting the system down.

Sir, could you keep Puppy being able to get rid of periodic saving everything from RAM to personal file? That would save PuppyLinux on my computer...

Posted on 22 May 2008, 11:05 by BarryK
30 minute saves from RAM
Yes, ok, I can make that configurable. The default is 30 minutes, but I can create a little GUI to adjust that, even to never save -- in which case there is still the 'save' button on the desktop and save at shutdown.

In fact, I wonder if the majority would prefer the 'never save' periodic save as default?

Posted on 22 May 2008, 11:38 by Ted Dog
Agreed never save
That and the default save question for DVD multisession, I routinely by-pass. In some video modes the return from Xorg is so horribly garbled, making those text dialog boxes unusable.
For multisession I just default everything to yes , and skip the text dialog altogether. I just eject the DVD before leaving XORG if I do not wish to save. Sure throws up some errors, but the machine will turnoff without additional actions on my part.

Posted on 22 May 2008, 14:23 by pakt
'never save'
"I wonder if the majority would prefer the 'never save' periodic save as default?"

Yes, please, (but make it configurable).

Posted on 22 May 2008, 14:46 by no save
It would be nice to have the control of saving or not (in frugal install too)... in everyday use , When using puppy only to browse, chat...I would prefer not to save on shutdown ,when using puppy from an USB stick it could save time and undesirable stick write cicles.