Bugfixes, firmware bug, new web pages

For developers only, we are now testing v4.1alpha1.

Boot script bug fixes
For Puppy 4.1alpha1, there were some small oversights in these boot scripts:

/etc/rc.d/rc.modules, line 81 should look like this:


/etc/rc.d/rc.modules2, line 24 should look like this:

MODALIASES="`cat /sys/bus/*/devices/*/modalias | grep -v '^pci:' | grep ':'`"

Firmware not loading
I had only implemented that theoretically in the pup_eventd script. Feedback from 4.1alpha1 testers is that it isn't working. I wonder why?

New web pages for modules and events
These pages are very preliminary. I created them to give 4.1alpha testers an idea how the new module loading and event management works.


Posted on 27 May 2008, 9:15


Posted on 27 May 2008, 9:45 by BarryK
Re: firmware not loading
Dmesg shows an "error loading firmware zd1211rw - error -2 Usb wireless

ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
ipw2200: ipw2200-bss.fw request_firmware failed: Reason -2
ipw2200: Unable to load firmware: -2

Can you guys check, did the firmware get installed to /lib/firmware? We first need to know if it's there so that pup_eventd can find it.

Posted on 27 May 2008, 11:28 by Lobster
No boot up
Same problem as before (version 4 kernel that was withdrawn) also seen on Hardy Heron Ubuntu - therefore a kernel problem. ps2 mouse and keyboard not working. It froze at entering in locale . . .

Posted on 27 May 2008, 13:00 by CHLee
Inside /lib/firmware , only 14 files and all have the .cis extension.
I think the firmware are in /lib/all-firmware,
because can find many "firmware" inside it. e.g. zd1211_firmware, iw2200_firmware ......

Just reprot : The time using syslinux to load the vmlinuz and initrd.gz in a FAT16 USB in my eeepc 900 are:
v4.01alpha1 : 8 min. 41 sec.
v4.00k2.6.21.7 : 1 min. 5 sec

Posted on 27 May 2008, 13:40 by Sigmund
Great documentation.
Thank you, Barry.

Posted on 27 May 2008, 17:32 by BarryK
Re2: firmware not loading
If the firmware is in /lib/firmware, the next step is to examine pup_eventd script. You can kill it, edit it with some echo statements then start it in a terminal:

# killall pup_eventd
--edit /sbin/pup_eventd--
# pup_eventd

The most relevant part is from line 307:

if [ -e /sys${DEVPATH}/loading -a "$FIRMWARE" != "" ];then
fndFIRMWARE="`find /lib/firmware -type f -name ${FIRMWARE}`"
if [ "$fndFIRMWARE" != "" ];then
echo 1 > /sys$DEVPATH/loading
cat "/lib/firmware/$FIRMWARE" > /sys$DEVPATH/data
echo 0 > /sys$DEVPATH/loading
echo -1 > /sys$DEVPATH/loading

...and I think I can see what the bug is! (that path "/lib/firmware/$FIRMWARE" looks wrong. It looks like it should be just:
cat "$fndFIRMWARE" > /sys$DEVPATH/data
...at least for cases where the firmware is in a subdirectory inside /lib/firmware.