text:
Puppy developer news:
first half of 2006
| Older news
|Later news
June 24, 2006
The gpm package, version 1.20.1, that provides mouse support for console applications, is now in Puppy.
I compiled Elinks version 0.11.1. To obtain Javascript support, I
had to download the Spidermonkey javascript library (v1.5) from
ftp://ftp.mozilla.org/pub/mozilla.org/js/ and expand it inside the
Elinks source then patch it with a patch file supplied with the Elinks
source. I then compiled and installed Spidermonkey first.
After configuring Elinks, it reports:
gpm ............................. yes
zlib ............................ yes
bzlib ........................... yes
idn ............................. yes
Bookmarks ....................... yes
XBEL bookmarks .................. yes
ECMAScript (JavaScript) ......... SpiderMonkey
Browser scripting ............... Perl, SpiderMonkey
SSL ............................. OpenSSL
Native Language Support ......... yes
Cookies ......................... yes
Form history .................... yes
Global history .................. yes
Mailcap ......................... yes
Mimetypes files ................. yes
IPv6 ............................ yes
BitTorrent protocol ............. yes
Data protocol ................... yes
URI rewriting ................... yes
Local CGI ....................... yes
Finger protocol ................. yes
FSP protocol .................... no
FTP protocol .................... yes
Gopher protocol ................. no
NNTP protocol ................... yes
SMB protocol .................... yes
Mouse handling .................. yes
BSD sysmouse .................... no
88 colors ....................... no
256 colors ...................... yes
Exmode interface ................ no
LEDs ............................ yes
Marks ........................... yes
Cascading Style Sheets .......... yes
HTML highlighting ............... yes
DOM engine ...................... HTML highlighting
Backtrace ....................... yes
Midnight Commander version 4.6.1 has been compiled. Configure reports:
File system: Midnight Commander Virtual File System
cpiofs, extfs, tarfs, ftpfs, fish
Screen library: ncurses library
Mouse support: gpm and xterm
X11 events support: no
With subshell support: yes
Internal editor: yes
Support for charset: no
Elinks and gpm packages are expected to be in the next OneBone. Perhaps not Midnight Commander, but it can be a PupGet pkg.
I'll put this news into my experimental News blog http://www.puppylinux.com/blog/ as well.
June 23
Yippee, my Puppy2 Developer Forum is working again! My host, netfirms.com finally fixed it. Here is their email, dated June 22:
We have reviewed your request it appears your table had been corrupted. We have
repaired your table. In the further if you encounter this issue.
1. Log into CP
2. Log into phpmyadmin for the db in question.
3. Click on DB name
4. Click the SQL tab
5. In the box, enter the following query:
repair table table_name
replace the table name listed in the error. Once you do this you table should be
repaired and the error will no longer display.
June 21
My Puppy2 Developer Forum is still broken. I have had communications
with customer support at netfirms.com (my host) and they say the forum
works for them. At first, they told me to clear my browser cache, then
they told me to test the forum via an indirect url. Nothing works, yet
they insist it is working. I can see the main index page of the forum,
but cannot browse nor login. It seems that others are browsing, but I
see that there have been no posts since June 17th.
My Developer Forum is here: http://www.puppylinux.com/nfphpbb/
I would like to get feedback, whether you can browse the forum, see
if it is a location problem. I've posted a topic to my experimental
News blog: http://www.puppylinux.com/blog/ -- kindly post a feedback comment there.
June 20
Simplephpblog has been recommended to me, so I set it up. This one
also has flat file storage, no SQL database. Gee, it sure is nice.
Excellent security features. This is also for evaluation. URL:
June 20
I have setup a blog. It's not the official Puppy News blog, just a
plaything for now. It is an ultra-simple blog, as I'm fed up with these
sophisticated forums and SQL databases that are so complicated to
configure and just aren't reliable. Okay, I'm probably over-reacting!
Anyway, I like this blog. Stop by and play with it:
UPDATE: My Puppy2 Developer Forum is still down. John Murga's forum is back up (for now).
June 19
Puppy version 2.01 is released. The live-CD is puppy-2.01-seamonkey.iso and is 70.8M. Release notes:
- Please read the release notes for Puppy v2.00, released June 1st. Those notes still apply.
- Booting from CD in a RAM-challenged PC (32 - 128M RAM) has significant performance improvement. A swap file is now automatically created -- see news for June 18.
- ALSA sound has been upgraded to version 1.0.11, to recognise recent sound chips.
- Tcl/Tk has been upgraded to 8.5a4 and now has font antialiasing, that automatically works on all Tcl/Tk GUI apps.
- The audio recorder/editor is now mhWaveEdit, version 1.4.8, replacing the Snack library and XS editor.
- Perl is upgraded to version 5.8.6 and now includes GTK modules.
- GPRename is a GTK-Perl application for batch file renaming.
- Rarsa's mini-volume taskbar applet is upgraded to version 0.3.
- MU's Puppybackgroundsetter is upgraded to version 2.0.
- Jesse's MUT (Media Utility Tool) is upgraded to version 0.0.9c.
- Unclutter is a utility to auto-hide the mouse pointer when it isn't moving. It is configured via the Mouse Wizard.
- Installing to hard drive is improved, but there are still issues installing over an existing installation of Puppy 1.x or other distro -- best to wipe beforehand. The Installer's handling of creating a boot floppy is messy.
- Lots of bugfixes -- for details, read the news below since June 1st. Upgrading from v2.00 is recommended.
If you have a prior pup_save.3fs file (where all your personal files are saved), booting up the v2.01 CD will perform an automatic upgrade. There is however one odd thing with the ALSA kernel modules: these are upgraded to v1.0.11 but there is an error message about missing symbols and the snd-mixer-oss module does not load (so the sound mixer won't work). But, on the next reboot it is okay -- I investigated this for sometime and it defies logic, but perhaps it is a unionfs problem. Anyway, it's a temporary annoyance.
Please read news for June 1st for download URLs.
The latest Unleashed and devx_201.sfs files are also available.
Discussion forums status
My Puppy2 Developer forum isn't working. I've been waiting almost two days for Netfirms customer support to reply.
Since yesterday I have not been able to post anything to John Murga's Puppy forum, which is our main forum.
Other Puppy flavours
I intend to upload OneBone and BareBones in a couple of days.
OneBone: Puppy with CLI apps only, no X.
BareBones: A very small Puppy with X and lightweight apps.
John Murga will be releasing MeanPuppy soon, a 50M Opera-based Puppy.
June 18
I've taken a step toward improving performance in RAM-challenged
PCs, the 32 - 128M PC without any Linux swap partition. The boot script
/etc/rc.d/rc.sysinit will, under certain circumstances, create and
activate a swap file.
To explain this more clearly:
- You boot the live-CD for the first time on a RAM-challenged
If the PC has 128M RAM, then the pup_xxx.sfs file (the single file
which contains all of Puppy) loads into RAM, with less RAM the file
instead mounts
from the CD. In the former case, there's barely enough room in the RAM
to run big applications like SeaMonkey. In the latter case (<128M),
much CD-drive activity. In both cases, sluggish performance.
- You shutdown/reboot, during which you are asked where you want to create the pup_save.3fs file in which the session will be saved. You choose a suitable hard drive or USB drive (even floppy).
- At next bootup, if you had chosen to create the pup_save.3fs file
on a fast internal non-NTFS partition, then Puppy will automatically
create a swap file and activate it.
You will also notice a lot of free space showing in the blue box in the right side of the taskbar, but note that this only shows the free space in the pup_save.3fs file.
So, now you have lots of space for saving personal files (the pup_save.3fs file) and the RAM working space in which the applications run and the kernel does all of its file management is now effectively much bigger due to the swap file.
The swap file is going to improve performance, however there is one more thing that can be done that will improve performance even more. In the case of the 128M PC, Puppy does manage to load the pup_xxx.sfs file (the 'guts' of Puppy) into RAM, but for PCs with less RAM it has to be mounted from the CD. Either way results in slow performance: the former due to less free RAM, the latter due to frequent CD reads. Solution:
- Use Rox file manager to copy pup_xxx.sfs off the CD to /initrd/mnt/dev_save. The latter is the mount point of the partition that has the pup_save.3fs file.
- Reboot, and you will get a very fast boot, the CD drive is freed for other uses, and performance is snappy.
The above does not apply to a NTFS partition!
Note, the end result of all of the above is, in a hard drive partition you will have three files together, pup_save.3fs, pup_xxx.sfs (example: pup_201.sfs) and pupswap.swp (swap file).
June 17
Improvements to /etc/rc.d/rc.update script. In particular, if there
are changes to the modules, the
latest modules and 'depmod' files must be 'on top' in the unionfs
layered system.
libstdc++-6.0.3 Unleashed package is now part of the 'standard'
live-CD. I figured, so many DotPups and other binary installable
applications need it, so best to have it in beforehand. Opera for
Puppy has embraced Perl, a very small Perl, cutdown by John Murga and then by Mark Ulrich.
Having Perl in Puppy means that ndiswrapper, the tool for installing Windows wireless network drivers into Linux, is available in Puppy. The latest Perl Unleashed package also has GTK modules, so we can have GTK-Perl applications. So, we now have one, GPRename, a very interesting batch file renamer. It will be in the "File managers" menu in Puppy 2.01.
The Unleashed package is gprename-1.7.
I wonder what other GTK-Perl applications are out there?...
Rarsa (Raul) has been very patient... he has developed a great little applet for the window manager taskbar, mini-volume,
a very convenient way to control the speaker volume. He just released
version 0.2, then I asked, please rewrite it as I am taking Snack out
of Puppy. Without grumbling, he did so, and we now have version 0.3.
MU (Mark) has improved the Puppybackgroundsetter.
He brought out a service pack for Puppy 2.00, and I have incorporated
the pack into the Unleashed package, and it is now named
Jesse has done some great work improving MUT (Media Utility Tool). He wrote disks.tcl,
a program to help with distinguishing between the different type of
drives, like SATA and USB. He has incorporated disks.tcl into MUT and
released version 0.0.9.
I made a slight change for MUT to work with Tcl/Tk 8.5 and also changed the load_drivers.sh script, and have made this version 0.0.9a.
Jesse wrote disks.tcl in response to our ongoing agonizing over how
to distinguish between types of drives at bootup. SATA and USB drives
use the SCSI-emulation layer, so their drive letters are the same. I
want to look further at disks.tcl and the other contributions on the
forums to improve booting from SATA/SCSI/USB drives, however have to
hold that over for v2.02.
Version 2.01 is now "frozen" and I'm just doing minor changes and bug fixes. It is urgent to get v2.01 out as soon as possible, as it has some major bug fixes, especially regarding hard drive installation.
June 16
I converted MU's Perl-midi DotPup package into an Unleashed package,
named perl-5.8.6midi. This replaces the perl-5.8.0 Unleashed package.
There was a clash of Perl versions, as devx_xxx.sfs (also the
usr_devx.sfs for Puppy1) has Perl 5.8.6 (taken from Vector) whereas the
Unleashed package was 5.8.0. Now, they are the same versions, so there
should be no problem if the devx_xxx.sfs file is used.
Mark created Perl-midi with just the modules he needed, including GTK modules, and it is somewhat smaller than the previous Unleashed package.
ALSA drivers, library and utilities has been upgraded to version
1.0.11. Previously, the drivers were those that came with the 184.108.40.206
kernel and the asound library and utilities were version 1.0.8.
We had a couple of reports of sound hardware not working, including my own new PC, and we found that ALSA 1.0.11 has the fix.
The application 'iwpriv' has been added to the Wireless Tools v28 Unleashed package.
I've just tested Mark's Perl-midi with ndiswrapper. It only needed a few extra Perl modules and it works. That's fantastic!
Yippee! I found the bug that caused autodetection of network driver
etc. to not work after a hard drive install. Just a simple little
logical error in /etc/rc.d/rc.modules.
Note, Puppy 2.01 is expected to be released early next week, about
19 - 20th. Who cares about a beta release! -- it's looking good, but
I'll fire it up on 4 - 5 different machines to be sure.
June 15
I recompiled the calendar application Ical, to work with Tcl/Tk 8.5.
The Unleashed package is still the same name, ical-2.3.1patched.
The LAME package has been upgraded from version 3.93.1 to 3.96.1.
This package has the 'lame' executable, and previously I had compiled
it without the shared library file libmp3lame.so. However, another
application needs the shared library file, so recompiled and took the
opportunity to upgrade. LAME is for encoding (creating) MP3 audio
files, and is used by many applications, including RipperX and SOX.
The sound conversion library and utilities package libsndfile,
version 1.0.16, is now in Puppy. The reason for this is I like the
mhWaveEdit sound recorder/editor much more than the XS application
provided with the Snack package, and mhWaveEdit can use libsndfile for
opening and saving in all the file formats that libsndfile supports.
Libsndfile also has utilities sndfile-info, sndfile-convert,
sndfile-play, sndfile-request and sndfile-regtest. The Unleashed
package is libsndfile-1.0.16.
Actually, I'm in two minds about whether the extra 400K of libsndfile is really necessary, so I have created two Unleashed packages of mhWaveEdit, compiled with and without support for libsndfile. For the next release of Puppy I'll go for the 'without', to save space.
June 14
I have upgraded the Tcl/Tk libraries from version 8.4.2 to 8.5a4. My
main reason for doing this is to get font antialiasing, which gets
automatically applied to all the Tcl/Tk GUI apps and gives them a more
modern appearance.
I am working through testing the Tcl/Tk apps for compatibility with the new library. Mostly okay, some apps have issues.
PHV (Puppy HTML Viewer), the HTML file viewer that I was working on over a year ago,
looks real nice with the antialiased fonts. It is available as a PupGet
package and you also need the Tkhtml2.0 PupGet package.
Klhrevolutionist mentioned on the Forum that there is now Tkhtml3.0, but I found it is not compatible with my PHV program. probably easy enough to fix. Note, the Tkhtml3.0 source package dontains a "HV" demo HTML file viewer, but it it not as good as mine! -- it also has more dependencies, such as the Snit library.
In some respects, my PHV program is better than Dillo. Yeah, maybe I'll work on it again!
June 13
Jesse's MUT (Media Utility Tool) is upgraded from version 0.0.8 to
0.0.8a. It is a little hack to fix a problem with incorrect recognition
of a swap partition in Puppy2.
As reported in the News for June 11, rerwin discovered a solution to
the SmartLink modem "grab" problem. But, it still didn't work. Our
conversation is to be found in the developer's forum:
After examining error messages from the Modem Wizard and googling, rerwin found another issue and how to fix it -- it turns out that the readme file supplied with the source tarball has wrong information, and it was only by googling and chancing upon a conversation between someone from Smartlink and someone from Fedora that the fix has been found ...sigh.
Anyway, much thanks to rerwin. I'm implementing the fix, so hopefully v2.01 will be fine. I had to edit /etc/rc.d/rc.network, /usr/sbin/modem-wizard, the pinstall.sh script in the slmodem-2.9.11patched-k220.127.116.11 Unleashed package and used mknod to recreate the slamr0-3 and slusb0-3 devices.
Note that the SmartLink drivers can be used for other
(non-SmartLink) modems. I did read somewhere that SmartLink have put a
restriction in their latest drivers so that they only work with actual
SmartLink modems, but rerwin posted an example of one workaround, for
the NetoDragon modem.
Jesse reported that USB drivers were not getting loaded on his PC
and he found the fault in 'init' script in the initial ramdisk. Our
discussion is on the Developers' Forum:
I have improved the script.
While on the subject of USB, I found out what went wrong with USB detection when the Universal Installer is used to install Puppy to hard drive, full installation (what we call 'option 2').
June 12
I compiled Xfmedia
media player. This uses the Xine library, same as Gxine, and is very
similar in features and performance, except doesn't seem to have
full-screen video. Gxine has more configuration options and overall
seems more polished -- but Xfmedia is an on-going project, part of the
Xfce window manager suite, and will steadily improve. Anyway, it is
nice to have a choice, and I have made it into an Unleashed package,
xfmedia-0.9.1, and it will be a PupGet package installable when Puppy
2.01 is released.
I also compiled the latest mhWaveEdit,
a audio recorder and editor. Due to limited available libraries in
Puppy, it only handles mp3 and wav files, but it could be expanded in
the future. I did test mhWaveEdit a couple of years ago, and if my
memory serves me right, it was buggy. This latest version works well.
I'm contemplating using mhWaveEdit in place of the Snack-based XS audio recorder/editor, although the latter does have the advantage that it handles many audio file formats and can be used to convert between file formats.
This also is an Unleashed package, mhwaveedit-1.4.8.
June 11
It has been reported on the Forum that the SmartLink modem driver
does not work. There are two drivers, slamr and slusb, the former for
serial modems, the latter for usb modems, and the only feedback so far
is about the slamr driver.
rerwin (forum name) has helped out here by doing some detective work. This is a known bug. Apparently the winmodem identifies itself to the Linux kernel as a true modem (which it isn't) and this causes the kernel to assign it to a serial port. When the slamr driver is loaded, it finds the modem is already "grabbed" and is unavailable. A program has been written, called ungrab-winmodem, which is a kernel module that has to be loaded just before slamr is loaded.
I have compiled ungrab-winmodem and edited /etc/rc.d/rc.network so that it gets loaded before slamr. I don't have a serial SmartLink modem to test, but this fix will be in v2.01 so you guys with SmartLink modems can give it a spin.
...well, why not test it right now. I have uploaded rc.network and ungrab-winmodem.ko to ibiblio:
Download them to these locations:
Then run these commands:
# depmod
then either reboot (if session is saved) or do this...
# rmmod slusb
# rmmod slamr
# modprobe ungrab-winmodem
# modprobe slamr
Just had an interesting thought... I wonder if the people who have a
SmartLink serial modem are also the same people who reported a problem
with puppyserialdetect? (see News for June 8)
June 11
Puppy v2.01 will have unclutter,
a tiny utility application that auto-hides the mouse cursor when it
moving. I was told about this ages ago then forgot, and only now
remembered it. It is an old application, last updated in 1996, but it
is still very useful. People using Puppy for kiosk type of displays
would like the cursor to be hidden, but the most popular reason is when
using a text editor or wordprocessor (or web browser, etc.,) where the
mouse cursor is
sometimes in the way. It is launched from ~/.xinitrc every time X
starts. I set the idle time to 3 seconds. The Unleashed package is
unclutter-0.8-11 and I got the source from a Debian package archive.
But then I thought, some people might not like the mouse cursor
disappearing from view after a few seconds idle, so have made it
optional. The Mouse Wizard now has an extra checkbox to turn it on or
off, default is off. The Keyboard/Mouse Wizard script is
/usr/sbin/input-wizard. The effect is immediate, does not require a
restart of X.
June 10
John Murga's popular 50M Opera-Puppy, that fits on a
business-card-size-CD and is easy for those on dialup to download, is
now in its first beta based on Puppy 2.00.
Look here: http://www.murga.org/~puppy/viewtopic.php?t=8557
June 10
So much great stuff gets posted on the Puppy Forum! I don't mention
most of it, as a lot gets reported in the Wiki Community-supported News
page: http://www.puppylinux.org/wikka/LatestNews
Just a couple of recent really interesting items:
Bash-diff (in Puppy2) is Bash on steroids. Interested persons invited to get stuck into it: http://www.murga.org/~puppy/viewtopic.php?t=7531
Need wireless driver? http://www.murga.org/~puppy/viewtopic.php?t=8488
Hacao Linux, our Vietnamese flavoured Puppy, is now at beta1 based on Puppy2: http://www.murga.org/~puppy/viewtopic.php?t=8534
Regarding OneBone, could it be smaller? Definitely yes. I left in
lots of packages that may not be required in a text-mode only system.
You could probably sift through the packages.txt file and find more
candidates for removal -- then use Unleashed to build your own OneBone.
Note, sound support is still there (Alsa, Snack, wavplay), so OneBone
can play music, but I did remove Xine.
June 9
OneBone Puppy version 2.00rev.1 is released. The live-CD iso file is puppy-onebone-2.00r1.iso and is 26.4M. This is a play-thing, requested by a few people on the forum, and definitely not for the average user. In other words, Linux commandline nerds only! Download from ibiblio.org.
OneBone does not have any X GUI applications. It does have Elinks
web browser, Ytree file manager and MP text editor. The Lucent and
SmartLink modem drivers are included (though there is an issue with the
latter, see forum). The full list of packages is to be found in
OneBone is a one-off from me, but it would be an interesting ongoing
project for someone so inclined. There are lots of text-mode
applications out there and a very interesting flavour of Puppy could be
created, based on this starting point. Note that currently Puppy does
not have mouse support in text-mode, but I found Elinks quite usable
with the keyboard -- there is no text-mode Network Wizard, but I just
ran "dhcpcd eth0" and I was connected to the Internet. For dialup,
there are the text-mode wvdial and eznet.
Note also that the version of OneBone is 2.00 revision 1, as it
includes the bugfixes mentioned below since the release of v2.00.
June 8
There has been some discussion on the Puppy forums about the missing
'bcm5700' network driver, that was present in the Puppy 1.xx series. We
found that the 'tg3' driver works. This is currently not included in
v2.00, but will be in 2.01. Quoting from
puppyserialdetect is a small program that detects the presence of serial mouse and modem. I posted this on the forum awhile back and invited testers, and all reports were that it works. However, after releasing Puppy 2.00 there have been two reports that puppyserialdetect hangs.
puppyserialdetect is called during bootup by /etc/rc.d/rc.local0, so if it hangs so does the bootup. I have modified the script to launch puppyserialdetect as a separate process and kill it if it doesn't complete after four seconds.
Puppy version 2.00 with Opera web browser is released. The live-CD iso file is puppy-2.00-opera.iso and is 70.1M. release notes:
- The release notes of version 2.00 'standard' (SeaMonkey) Puppy also apply.
- Opera version 9.0 beta2 replaces SeaMonkey 1.0.
- Amaya 8.8.51 WYSIWYG HTML editor replaces SeaMonkey Composer.
- Gaim has been removed (Opera has an IRC chat client).
This is still version 2.00. Fixes, like the abovementioned 'tg3' driver, are not in it. But, the Modem Wizard fix did get in. If you have a PC with only 128M RAM and no Linux swap partition, tweaks for improving performance are still not there, and scheduled for v2.01 -- this release will load totally into RAM, freeing up the CD drive, but loading and running of Opera is a bit sluggish. The problem is that there is not quite enough free RAM and the kernel has to do a lot of juggling, which slows things down. What would improve speed is a swap file, which is what I might do for 2.01. At 70.1M, this is not the slimmer Opera-Puppy I was earlier contemplating.
June 7
Lior's great little freememapplet in the taskbar displays free
memory and has a menu -- just left-click and there it is. One of the
menu entries is "Help: what does this mean?", but as was pointed out in
the forum, this just opens Dillo with an empty page. I fixed it,
created a page that explains exactly what the value in the taskbar is
showing, and what to do if it gets too low.
r_hughes reported that the wrong network driver got loaded, 'tulip'
instead of 'dmfe'. The file /lib/modules/126.96.36.199/modules.pcimap shows
that both drivers are suitable for the 1282:9102 chip (which is what
r_hughes has), and Puppy just loads the first one, the tulip driver.
To fix this problem, I've created a little "cheat table" in /etc/rc.d/rc.modules. The first and so far only entry in this table has this:
dmfe 0x00001282 0x00009102 #r_hughes reports tulip module not work.
which will cause Puppy to use the dmfe driver instead.
If you are getting the wrong module loaded, or the module is not
loaded at all although it is present, send me the vendor:chip numbers,
a brief description of the chip model name and function, and the
correct module.
How to find out the vendor:chip numbers? These are two four-digit
numbers that uniquely identify the chip used in the PCI interface
(video, network, pcmcia, or whatever). If you open a terminal window
and type this:
# lspci -n
you will see all the vendor:chip numbers, but no identification as to what they do. For that, go to http://pciids.sourceforge.net
and either look online or download the 'pci.ids' file. That should
enable you to identify the network chip or whatever is the troublesome
one. Then post the info to me, preferably via the forum.
June 5
I have compiled the latest stable release of Scribus,
version 184.108.40.206. Scribus is a superb desktop publishing application,
however the print-preview in version 1.2.1 used in Puppy does not work.
In the latest version, print-preview works nicely. I've made this into
a Unleashed package and it will be available as a PupGet package with
the next version of Puppy (2.01).
There was a report on the forum that the Modem Wizard is not
working. I found out why. I had placed a little program into it called
modem-stats (see news for May 19 below), which worked fine with the
original modem I tested on. Testing on another modem however, is not so
Sending an "AT" command to the modem, modem-stats just hangs, which means that the Modem Wizard hangs. However, sending "ATZ" does produce an "OK" response. But, turn off the modem and try it, modem-stats hangs.
I need to find something better than modem-stats (or improve its source code), but in the meantime, if you are one of those experiencing trouble with the Modem Wizard, use a text editor to open /usr/sbin/modem-wizard and find the line with "modem-stats" then edit it:
#the above method used to work k2.4, not k2.6. now do it like this...
#no, with one modem at least, it hangs, also only works with atz...
#also hangs if modem unplugged or turned off (contrary to what docs say)...
#modem-stats -c "AT" $1 > /tmp/answer.txt
modem-stats -c "ATZ" $1 > /tmp/answer.txt &
sleep 2
killall modem-stats
Even if the Modem wizard does work with your modem, it is a good
idea to try this code change to make sure that it still works,
considering that I've made this change in the original source and it
may be in the next Puppy release.
June 4
eSvn is
a GUI frontend for the svn program, a subversion control system. I have
made it into an Unleashed package, esvn-0.6.11-1 and have uploaded it
to the pupgets folder at ibiblio.org. For the standard and BareBones
Puppies, and all earlier Puppies, you will need to download it first
and then use the PupGet package manager to install it as an alien
package. It will not appear in the menu (not until the next release of Puppy with updated menus). The executable is 'esvn'.
It requires the 'svn' and 'qt' Pupget packages to be pre-installed.
June 2
BareBones Puppy
version 2.00 is released. The live-CD iso file is
puppy-barebones-2.00.iso and is only 39.9M. Download from ibiblio, see link
in June 1 news below.
BareBones is especially for people on slow dialup Internet connection. What you get is a cutdown Puppy, with Dillo web browser only and Xvesa Kdrive X server only. The major applications such as Abiword and Gnumeric are removed. However, most small applications and utilities, plus the entire infrastructure and libraries, are present. After creating a pup_save.3fs personal storage file, get connected to the Internet and use the PupGet package manager to download whatever extra applications you need. Dillo for example is a pathetic web browser, but you can use PupGet to download Opera, Firefox or SeaMonkey. If the PupGet package manager does not have what you want, there may be a DotPup package that has what you want, such as a later version of Firefox. Though, in the cases of Firefox and Opera, you should be able to download the latest binary tarballs from their home download sites -- look in the Puppy Wiki for help on this.
I've got an idea for a tweak to further improve BareBones and other small Puppy iso's to run fast in less RAM, so I might release a 2.00-revision1 soon, rather than wait until 2.01.
I really love the new Opera version 9.0 beta2. Superb
support for SVG. I like the 'fit to window' feature -- as I run 800x600,
sites like distrowatch are too wide, but Opera can squeeze it to fit the
window. Many other nice things. So, I created a live-CD with Opera and Amaya
to replace SeaMonkey, and I'm running it right now, typing in Amaya.
But, I would like a bit more time before releasing a iso file. I would like to work on it for a few days, perhaps upload it by next Thursday or Friday (8th - 9th). I intend this iso to be slightly slimmer and well-suited to 128M PCs. I think John Murga is going to create an Opera-based 50M iso and I won't compete with that -- I'm aiming for around 65 - 68M.
June 1
Puppy version 2.00
is released. The 'standard' live-CD iso file is
puppy-2.00-seamonkey.iso and is 70.0M. Smaller iso files, such as our
"BareBones Puppy" will be released very soon. This is a major upgrade from
the 1.xx series. How to summarise five months work? The graphical user
interface is much the same, as most work has been on the underlying
architecture. In a nutshell, the fundamental architecture and bootup-shutdown
scripts are a total rewrite, from scratch, no relationship to any other
distro. Release notes:
- Redesign of the underlying architecture of Puppy for streamlined booting from any media, running in a wide range of environments, and installation to any media, including CD/DVD, hard drive, USB, Zip.
- Total rewrite of the boot and shutdown scripts for maximum flexibility.
No longer does Puppy automatically create a personal save-file on the
hard drive -- now you are in control and choose exactly where you want it
(note, you make the choice at the first shutdown). You can even save
personal files/settings to a floppy disk!
- Total rewrite of the main Wizards, in particular the Puppy Universal Installer and the CD/DVD Simple Remaster Wizards.
- The 'standard' live-CD now uses Mozilla SeaMonkey suite, with web browser, composer, mail & news and addressbook.
- The 'standard' live-CD has the wonderful Inkscape vector editor.
- The 'standard' live-CD has GParted, an excellent graphical drive partitioning tool.
- Geany text editor replaces the aging Beaver.
- The 'standard' live-CD now has Perl, v5.8.0.
- Greate little applets for the taskbar, to display free memory, volume
control, network status. Read down this page for further details.
- There is considerably more automatic hardware detection, with loading of the correct kernel modules.
- We have moved from a 2.4 kernel to 2.6. Now using version 184.108.40.206.
- Many more little utility applications, read down this page.
Users of Puppy1 will have to become accustomed to new file names:
|This is the persistent storage, where
all your data, settings, email, installed packages, etc., get saved
permanently. The ".3fs" means that the file contains a ext3
Puppy1 approx. equivalent: pup001
|This is Puppy. The builtin
applications, window manager, scripts, everything. The ".sfs" means
the file contains a squashfs compressed filesystem. The "xxx" is the
Puppy version number without the dots, for example "200".
Puppy1 approx. equivalent: usr_cram.fs
|The initial ramdisk. This is a small
filesystem that loads into ram and is executed first at bootup.
Puppy1 approx. equivalent: image.gz
RAM-challenged PCs
The 'standard' live-CD has become a bit fat and for PCs with 128M or less RAM (and no Linux swap partition) one file (pup_200.sfs) is mounted from the CD, not copied to RAM. This means that the CD/DVD drive is not free for other uses and also Puppy will run a bit slower.
However, there is a simple solution, that will result in very fast boot time, frees up the CD/DVD drive after bootup, and causes Puppy to run very fast! See the notes below, dated May 31.
This simple fix is recommended for PCs with any amount of RAM, even if you have oodles, like 1G, as it speeds the bootup time from CD.
Hardware detection
We are getting close to rivalling the likes of Knoppix for automatic hardware detection. The intention is that if you install Puppy to a portable media such as USB Flash pen drive, or save sessions to a multisession-CD, you will be able to take that media to another PC and have the new hardware autodetected -- in other words, it won't be statically set for the hardware of just one PC. We are getting there... sound, mouse, network are just about there. Currently you would need to choose Xvesa Kdrive X server for portability.
Burning to CD
The iso file can be burnt to CD-R or CD-RW using most Windows or Linux CD-burner programs. If you want to use it in multisession mode (sessions get saved back to CD-R), then be sure the CD-burner program supports multi-session burning (leaves CD "open" for further tracks to be burnt later).
Burning to DVD
You need a Linux DVD-burner program, such as Burniso2cd in Puppy -- this program burns the DVD "open", so that it can be used normally or as multisession. There was a report on the forum that DVDDecypter (www.mrbass.org/dvdrip) works okay in Windows, but beware, many Windows DVD-burner programs will not burn the iso file correctly.
Multisession CD/DVD
Now works extremely well, but note that DVD still is the superior choice. See note above for burning CD and DVD 'open'.
For the multisession-CD, there is one problem with laptop drives. Sometimes at shutdown, when the session is being saved back to CD, the drive tray opens then closes before the actual save -- or rather, that is what happens with normal drives. The laptop drive can only be closed manually, so if the tray opens just before the actual save, you have to manually close it. I will try to determine why this happens and fix it.
If you have a pre-existing pup_save.3fs file, from using earlier alpha-releases of Puppy2, it will now be upgraded automatically. However, I recommend that you first boot up the new CD totally in RAM, by the boot parameters "puppy pfix=ram" to get a feel for how the new Puppy2 works, and you can then try a normal reboot and see if the upgrade works and gives you a correctly updated working environment.
If you want to upgrade from Puppy1, that is, you have a 'pup001' file somewhere, there is a script for importing from it. Open a terminal window and type "importfrompuppy1". This script is pretty bare-bones and I would like help with improving it.
You can find the 'standard' Puppy version 2.00 iso file, puppy-2.00-seamonkey.iso, via the Puppy Download page:
Download the complete set of modules for the 22.214.171.124 kernel, patched kernel source, also the latest devx_200.sfs compiler file: http://www.puppylinux.com/test/
Puppy Unleashed
The complete Unleashed tarball (247M), as well as the 'core' tarball (11M), is available at:
For further information on Puppy Unleashed:
Mark Ulrich has kindly provided this fast mirror: http://dotpups.de/puppy-releases/2.00/
May 31
As mentioned in the release notes for the May 24 beta1 release, the
standard Puppy iso is getting too fat to run properly in a PC with only 128M
RAM (and no Linux swap partition). If the guts of Puppy, the pup_xxx.sfs
file, is loaded from CD to ramdisk, there isn't enough free RAM for Mozilla
to run. So, the beta1 release leaves pup_xxx.sfs on the CD and mounts it from
there -- meaning that you can't use the CD/DVD drive for anything else, and
Puppy will run a bit slow due to the continual CD accesses.
We plan a couple of slimmer releases of Puppy2 that will load totally into RAM on a PC with only 128M total RAM space. However, the standard release now has a workaround:
When you boot from CD, it remains mounted and the mount-point is
/initrd/mnt/dev_ro1. The hard drive partition that has the saved personal
file pup_save.3fs is mounted at /mnt/home, or if this is the very first boot
of Puppy, use Pmount or MUT to mount the partition where you intend to create
the pup_save.3fs file. Using ROX-Filer, drag pup_xxx.sfs from the CD to the
hard drive partition. Then unmount the hard drive partition if you had
mounted it.
At next boot, pup_xxx.sfs on the hard drive partition will be discovered and used instead of the copy on the CD.
It's not too difficult to do, and you only have to do it once, and the reward will be the CD drive becomes free and Puppy will run faster.
Here's a new review of Puppy and interview:
May 31
I fixed a bug with the Ethernet/Network Wizard. It was not displaying
loaded drivers. I found that I had corrupted the format of
/etc/networkmodules (there should not be any space character in column 1).
I've tracked down some modem bugs. There is a bug in the Modem Wizard that
caused the 'ttyLT0' button not to display after the Lucent driver PupGet
package was loaded. Fixed.
May 31
My new PC (see May 25 news below) has some compatibility problems. Neither
sound nor SATA work.
The sound chip is ADI AD1986A and ALSA does have a driver for it, which
Puppy Loads at bootup. Puppy then executes the 'aplay' program to play a
sound, however 'aplay' hangs, thus bootup hangs. This problem was reported by
a couple of people on the forum and it is good that I have got the same bug
as I have now devised a workaround. For those of you using the May 24 Puppy2
and have this bug, type ctrl-c to quit aplay and then booting will continue.
I have modified the boot script so that even if aplay hangs, bootup will
The very latest version of ALSA fixes this bug, but Puppy2 is at the "freeze" stage and I will hold the upgrade of ALSA over to v2.01.
The ASUS P5V800-MX motherboard has the VIA VT8251 Southbridge chip and
there is no Linux distro out there that will work with its SATA interface.
There is a kernel patch available, which apparently needs a bit more work,
and it seems the patch is targetted to be part of the official kernel for
v2.6.18. So, probably we will have to target that fix for Puppy v2.01 or
May 31
As we are currently having "forum problems", I decided to setup another
"emergency" forum. This one is very interesting, it's E-Blah, written in
Perl, with a flat file database (that is, doesn't use any SQL database). I
like being independent of any SQL database, but is E-Blah up to the task?
From all reports I could find, it seems so.
This one is for Puppy version 2 only, to avoid confusion and clutter. For users of 1.09CE, Grafpup, etc. who stumble onto this Puppy2 forum, I'll put links from it, to the appropriate forum.
Puppy 2 Discussion Forum: http://www.puppylinux.com/forum/
This forum requires registration to post, and registration activation
requires email confirmation. This is for security reasons. E-Blah also
supports GD::SecurityImage, which displays a raster image with characters
that the user has to type in, deterring robots, however it seems my host's
Apache server isn't setup right (I shall have to lobby them).
May 29
Tracked down some bugs in the remaster-CD script. The most serious caused
essential files, such as vmlinuz, to be missing from the remastered CD.
On first boot, the assumption is now that you do have a scrollwheel mouse.
There was at least one report that enabling the scrollwheel in Xvesa or Xorg
for a non-scrollwheel mouse caused mouse malfunction, but this was a very
small percentage of cases.
May 28
At bootup, if sound is successfully detected, the 'aplay' program is used
to play '2barks.au', that barks twice. This happens at every bootup. There
are two problems with this. One is that some people do not want to draw
attention to the fact that they are booting Puppy. Second, it seems that some
laptops get stuck in the 'aplay' program, barking forever, preventing the
boot script from continuing.
The compromise is that the two barks will only happen at the very first boot, when the welcome splash window is put up. Subsequent boots, when you have created a permanent storage file, you will not get the splash window nor the barks. For those troublesome laptops, the barking will be continuous but only until you kill the welcome window -- at least Puppy won't hang.
May 28
The jwmconfig background-setter scripts in /root/.jwm/themes/ are wrong. I
thought they had been fixed, but I must have overwritten them with the
jwmconfig-0.2 package designed for 1.09ce, or something. They still use xli
and write to /etc/background, also refer to images that aren't there. Fixed.
I named the Unleashed package jwmconfig-0.2.1.
Lior has added more features to his nifty freememapplet, and it is now
version 1.2.
('nifty' is a slang word, defined as "[slang] attractive, smart, stylish, enjoyable" in my Collins Australian Pocket English Dictionary)
May 28
The 'splash window' on first boot of Puppy2 beta1 (yes, the May 24 alpha
has been promoted) was fairly basic. I've simplified it and made it look
nicer with some graphics. Dillo's rendering is primitive and inaccurate, so
had to take that into account.
May 27
MU has fixed a bug in Dillo, that caused the forward and back buttons not
to work. I have compiled his latest source, but left the Unleashed package at
the same name, dillo-0.8.6teki-mu.
Rarsa has written a great little volume control for the taskbar. I've
named the Unleashed package mini_volume-0.1. This
is great, this is something most useful.
May 26
Geany text editor is now upgraded to version 0.7 beta1. V0.6 has a bug:
all files inside /proc open as empty. Also, the implementation of code
folding was only partially implemented for Bash/Ash scripts: only for comment
lines. Enrico has now implemented folding for functions in Bash/Ash
I asked Enrico if he could implement color syntax highlighting for Tcl/Tk and he has done that also, but requests feedback as he knows nothing about Tcl/Tk.
I expect this beta version will be in the next release of Puppy, Puppy2 beta2.
Lior Tubi has greatly improved the taskbar applet that displays free
memory, and named it freememapplet. As
reported in the forum, the reported size is not always accurate, in
particular when running from a USB pen drive, as the applet reports the sum
of temporary storage in tmpfs ramdisk and permanent storage in the
pup_save.3fs file. So, I created a script, /usr/sbin/calcfreespace.sh, that
performs a more accurate calculation and modified Lior's program to execute
that. The Unleashed package is now freememapplet-1.1.
May 25
Today I placed an order for a "barebones" PC with 160G SATA2 hard drive.
Will pick it up on Tuesday, so will be able to do some SATA testing for
Puppy2 beta2 (followed by Puppy2 final hopefully shortly after). Thanks to
people who have purchased CDs and made donations -- I've now got enough for
this system, plus plan to buy more stuff for testing a bit later.
The specs: Celeron-D 2.66GHz, Asus P5V800-MX motherboard, 512M DDR RAM,
Western Digital 160G SATA2, LiteOn DVD burner, Dpc CX0756R case. Total price
assembled and tested A$473.
My apologies to people who have recently ordered a CD. Let's see, five
orders since May 18, have not yet been processed, as I was waiting on
releasing Puppy2 -- as well as Pup1 CD you will be getting a bonus Pup2 beta
CD gratis. I'll force myself to sit down tomorrow morning and burn CDs...
May 25
Billstclair has a mirror of Puppy2 alpha May 24:
"My mirror is up at http://s3.amazonaws.com/puppy/puppy2.html . Amazon is usually fast. If people use the torrents, it will save me some bandwidth cost."
MU also has a fast mirror site:
The link to the md5sum of the developper-addon is wrong, here is the correct one:
I also uploaded a modified devx_004.sfs, where I renamed /usr/lib/qt to /usr/lib/qt-renamed.
Like that it should be possible to use it together with megapup003.
http://dotpups.de/isos/devx-qt-renamed_004.sfs.md5.txt "
May 24
Puppy2alpha-24may06 is released (70.1M). This is not an official release,
it is for Puppy testers.
This release may be upgraded to 'beta' if it looks fairly solid. Release notes:
- We now have Perl. Currently it's John Murga's v5.8.0 Unleashed
- MU's PB-DebianInstaller is there, but not in the menu. Type 'pb-debianinstaller' in a terminal window.
- Major changes to hardware probing and module loading. Much faster, more automatic, less questions at first bootup.
- Puppy is now highly portable. If you boot from, say, a USB Flash drive
and choose Xvesa X server, then the pen drive will bootup on any PC.
Mouse, keyboard, sound, network-card should all be auto-detected. It's
still not perfect, but well on the way.
- As Puppy has moved up to the 2.6 kernel, we are still discovering hardware-compatibility issues.
- CD: This can be burnt to CD-R or CD-RW using most Windows or Linux CD-burner programs. If you want to use it in multisession mode (sessions get saved back to CD-R), then be sure the CD-burner program supports multi-session burning (leaves CD "open" for further tracks to be burnt later).
- DVD: There is no known Windows burner program that will burn the DVD properly (?). You need a Linux DVD-burner program, such as Burniso2cd in Puppy -- this program burns the DVD "open", so that it can be used normally or as multisession.
- UPGRADING: If you have tested a
previous puppy2 alpha CD, please get rid of any pup_save.3fs file,
wherever it is on the hard drive or plugged-in device. Also delete a
underdog.lnx file if it exists. See further notes below.
Download the complete set of modules for the 188.8.131.52 kernel, patched kernel source, also the latest pup_004.sfs compiler file: http://www.puppylinux.com/test/
There is a special forum for puppy2 development. Report here any bugs, I also want to know about success stories!
Forum URL: http://www.puppylinux.com/nfphpbb/
Puppy2 discussion also takes place on the regular forum: http://www.murga.org/~puppy
If you have a pre-existing pup_save.3fs file, from using earlier alpha-releases of Puppy2, it will now be upgraded automatically. However, I recommend that you first boot up the new CD totally in RAM, by the boot parameters "puppy pfix=ram" to get a feel for how the new Puppy2 works, and you can then try a normal reboot and see if the upgrade works and gives you a correctly updated working environment.
If you want to upgrade from Puppy1, that is, you have a 'pup001' file somewhere, there is a script for importing from it. Open a terminal window and type "importfrompuppy1". This script is pretty bare-bones and I would like help with improving it.
RAM problem
On the subject of bare-bones, there will be a BareBones Puppy2 released along with the standard one, maybe even a Chubby Puppy.
There is a problem, Standard Puppy is becoming too fat, and although it can all load into RAM on a PC with only 128M RAM (and no Linux swap partition), Mozilla is very slow. So, I'm forced to leave a file on the boot CD to give enough working space in the RAM. Most people into using Linux will have a swap partition, so won't have this problem. For those for whom it is, the solution will be to use BareBones. There is another solution, which is to copy the pup_004.sfs file off the CD to the hard drive and mount it from there -- this could be done automatically and it is on my to-do list, high priority.
Feature freeze
It's just about frozen now. There's lots happening, such as Pakt's work on booting from PCMCIA, etc., but time is dragging on and yesterday I decided to freeze it and just fix bugs. The next lot of exciting things are targetted for v2.01. Though, the above-mentioned improvement for a 128M PC will be in v2.00.
May 22
The uClibc root filesystem used to compile the initial ramdisk has been
uploaded to http://www.puppylinux.com/test/. The
file is 27M and expands to a 295M ext2 filesystem that can be mounted with a
loop device. Once mounted, it can be 'chrooted' into.
May 22
A major rewrite of hardware detection and module loading. I have thrown
out the 'scanmodule' program and the 'libhardware' module database. Most of
the changes have taken place in the /etc/rc.d/rc.modules script.
Detection of the correct sound module is now very fast and fully automatic -- in fact, it is also portable and the correct driver will load when the CD/DVD or Flash drive is booted on different PCs. However, this autodetection is only for PCI sound interfaces, not legacy ISA-bus sound cards for which the Alsa Wizard will have to be run after bootup.
Detection and loading of the correct network driver is also improved.
May 21
Rarsa created an Unleashed package for the client application of SVN,
named subversion_client-1.3.1.
As we are moving toward using SVN for Puppy development, I have made this
package an official member of the Unleashed suite, meaning that it will be
installable using the PupGet package manager. I tidied up the package
slightly, adding a small help file and a keyword file, plus a couple other
small changes.
Lobster has created a new Puppy2 home page for the web browser, based on
that in Puppy 1.09CE. I've placed this in /usr/share/doc/home.htm and set
Seamonkey to start with this page.
I created an Unleashed package for MU's pb_debianinstaller-alpha09.
As I had compiled Dillo with "--sysconfdir=/etc", the config files dillorc
and dpidrc are located in /etc. For consistency I also placed
debianinstallerrc into /etc, which meant that I had to edit
/usr/local/PB-Debian-installer/pb-debianinstaller script.
May 20
Dillo v0.8.6 has been patched for Xft (antialiased fonts) and i18n
(internationalisation) support by Kiyo (see link further down) and MU has
added further patches to support the Debian Installer. I have compiled it and
created Unleashed package dillo-0.8.6teki-mu.
Thanks to pop-pop who got his trackball working in Puppy2. It required a
simple change in /etc/rc.d/rc.local0.
The following modules have been added to /etc/networkmodules: atp,
hamachi, sb1000, sis190, axnet_cs, de2104x, uli526x, airo_cs, atmel,
atmel_cs, atmel_pci, ipw2100, ipw2200, orinoco, orinoco_pci, spectrum_cs,
wl3501_cs, hostap_pci, hostap_cs, prism54.
/etc/networkmodules is used by the Network Wizard, however the 2.6 kernel
has better information that may enable loading of the correct driver without
needing this part of the Wizard. Or, the Wizard can be redesigned without
needing the /etc/networkmodules file. This is a work-in-progress.
May 20
It took awhile, but I compiled the Smart Link modem driver for the
188.8.131.52 kernel. There were compile errors, but I eventually found patches.
Same situation as for the Lucent driver, this will have to be downloaded and
then installed with the PupGet package manager. The Unleashed package is
May 19
The Modem Wizard is now working. I could not figure out why echoing "AT"
to a serial port no longer works, however I found a neat little utility
application that does it. I considered using picocom, which is already in
Puppy, but I found modem-stats, a very
small program for sending Hayes commands to a modem. Characters returned from
the modem go to the console. This works great and is now used in the Modem
Wizard. The Unleashed package is modem_stats-1.0.1.
May 19
The Lucent linmodem driver has been compiled for the 22.214.171.124 kernel in
Puppy2. The Unleashed package is ltmodem-2.6.8alk-k22.214.171.124.
This will not be in the live-CD but will be able to be installed by the
PupGet package manager (obviously, if you don't have Internet access from a
running Puppy, you will have to download it some other way, then PupGet can
install it). I have streamlined the installation, such that the driver is
loaded and ready to use as soon as it is installed, and a reboot is not
The Modem Wizard, however, is a headache. It tests for presence of a modem
by sending a "AT" command to the serial port, and if modem is there is
responds with "OK". At least it does for the 2.4 kernel. For the 2.6 kernel,
what gets returned is multiple echoes of "AT" and carriage-return/new-line
characters. I spent a couple of hours puzzling over it, no resolution yet.
May 18
I have not had Internet access since May 14, except from a public library.
Now I'm back home and can upload this page!
Puppy 109
Community Edition is released. This is a release of Puppy that follows
on from version 1.0.8 and is created by a team of Puppy enthusiasts. It has
many enhancements and features. Here is the announcement and download
May 16
The first attempt at a script to import settings and personal files from
Puppy1 to Puppy2. The script is /usr/sbin/importfrompuppy1.
May 16
Tempestuous requested that if "nopcmcia" boot parameter, then pcmcia
drivers and card manager should not be started. I have modified
/etc/rc.d/rc.modules to read the boot commandline /proc/cmdline and check for
May 15
TheKaz (Ric) has been attempting to use the devx_003.sfs file with the
multisession-CD/DVD. I had given instructions that the file should be burnt
to "/" in the CD-R/DVD-R, however that did not work. I have fixed it so that
it does work, with the proviso that there must be a Linux swap partition.
Using devx_003.sfs requires a lot of working space for compiling, hence the
requirement for the swap partition.
Which reminds me: good news, lio2b tested reducing the size of a ntfs
partition using GParted, and Windows XP was still functional afterward. So,
if your hard drive is just one big ntfs partition, consider shrinking it a
little and making a Linux swap partition (500M at least, 1G would be
excellent). If you want to save sessions to hard drive, consider also a
little fat32 or ext3 partition. Note: you do this at your own risk!
May 13
I have written a page about Puppy Linux and the OLPC project (One Laptop
Per Child):
May 13
Puppy 1.09 Community Edition has settled on Geany v0.5 text editor
to replace Beaver. I was going to put Medit into the next release of Puppy2, but
comparing it with Geany, so far Geany is in front. Medit is bigger and there
is nothing oustandingly better than Geany. I'm running Puppy2 right now with
Geany v0.6, and at this stage this looks like the one that will be in Puppy2
beta. Medit will be a PupGet package.
May 13
The sysfs
filesystem is now mounted on /sys at bootup. This required an entry in
/etc/rc.d/rc.sysinit and an entry in /etc/fstab, however many other scripts
had to be made aware of the new directory. They are:
/usr/sbin/snapmergepuppy, /etc/rc.d/rc.shutdown, /usr/sbin/puppyinstaller and
May 12
There is a handy feature of Puppy2 that was mentioned earlier in this News
page, however it is worth reiterating as I don't think testers are aware of
it. You know that the personal data file is 'pup_save.3fs', however it can
actually be any name like this: 'pup_save*.3fs', where the '*' is any string.
The reason this is good for Puppy2 testers is that you can have many of these
files and choose the one you want to use at bootup.
Say for example, you have compiled various packages in one pup_save.3fs file and you now want to start with a clean slate but may want to go back to the older file sometime. Or, you have downloaded a new Puppy2 alpha, and need to start with a clean slate but same situation, you may want to go back to older pup_save.3fs files.
At bootup, if Puppy finds two or more 'pup_save*.3fs' files (in the same location) then a menu is offered. This menu also has the choice of 'nothing' in case you want to bootup totally in ram. You should not rename a pup_save.3fs file while it is in use (although I have done it in a ext3 f.s. which seems able to recover from such misuse), so boot Puppy in ram ("puppy pfix=ram") then find the file and rename it, to say 'pup_save1.3fs'. Create a new pup_save.3fs at shutdown and when you next bootup you automatically get a menu and you choose the one you want.
I have reverted Dillo to the "original" patched source from teki.jpn.ph/pc/software/index-e.shtml,
as the version used in the May 7 alpha cannot handle plain text files.
Dillo's primary purpose in Puppy2 is as the internal Help viewer. This
reversion will probably make it less compatible with the Debian Installer, so
that is something we will have to work out in the future -- for example, it
will be acceptable if Dillo can be made to identify any file with extension
.txt and open it internally (or with an external text editor) while all other
files with plain-text mime type will be handled in a manner compatible with
the Debian Installer. The new Unleashed package is named
May 12
Now that pakt's WakePup2 is in the live-CD, it needs a frontend GUI, so I
have written one, that is run from the menu "Setup --> WakePup create boot
The Puppy Universal Installer has been upgraded to integrate usage of
GParted and WakePup.
May 11
I'm jubilant! A couple of days ago I purchased a Astone 512M USB Flash
"key" drive, a beaut-looking little thing with extruded-aliminium case. It
cost just $31 Australian, which is about $24 US. Note, I already have a 128M
Astone, that has served me well for over a year.
Anyway, I ran the Puppy Universal Installer, but could not get it to boot. Tried all the different MBRs. When the PC powers-up, there is a message on the screen "Boot error" and that's it, stopped. I've been working on this problem all day, and began to wonder if there is something wrong with the way the drive is partitioned, that confuses the BIOS -- note, I was able to boot using pakt's WakePup2 boot floppy disk. I decided to wipe the existing partition and remake it, and this was successful -- I'm running it right now. Here is what I did:
- Since I had been messing around with various MBRs, I decided to put in
the one provided by the Syslinux package, as that is most likely to have
been designed thoughtfully for booting off:
# probedisk <<<to check flash drive letters, probably sda
# cd /usr/lib/syslinux
# dd if=mbr.bin of=/dev/sda
- I then ran GParted and deleted the partition on /dev/sda, so there is a "clean slate" to work with. I then created a new FAT16 primary partition, to fill the entire space, clicked the icon to write the change to the drive, then set the "boot" configuration flag for the partition. (No need for more detailed explanation, GParted is pretty simple to use!).
- I then ran the Puppy Universal Installer, and followed all the default steps to install Puppy to partition /dev/sda1.
- Rebooted, and yippee!
I would like to know if the above steps work for other troublesome USB Flash drives. Try it and report to the Forum! (use the Puppy2 alpha May 7 snapshot)
May 10
Thanks to kwiller who has upgraded jwmconfig to version 0.2. So we now
have Unleashed package jwmconfig-0.2. JWM version 1.7 has also been modified
-- the <tray> tag contents is extracted from .jwmrc to a separate file,
.jwmrc-tray, as kwiller's config program edits that separately.
May 10
Melmo reported that the firewall is "partially broken". When I tested the
firewall, it seemed okay, as it passed its own sanity test, however after
rebooting, /var/log/messages had a report that module iptable_nat.ko has
missing symbols. It was easy to find the cause -- typing "modinfo
iptable_nat" showed the dependent modules are ip_nat, ip_tables, and
ip_conntrack, and are quick check showed that ip_nat is missing.
When I supplied the missing module and run "depmod", then "modprobe iptable_nat", all was fine. So, the missing module won't be missing in the next release of Puppy2.
MU's /usr/sbin/findhostbridge scripted has been updated to the 10th May
May 9
Thanks to GuestToo who did some detective work and found out why Roaring
Penguin PPPOE was crashing at shutdown. The utility application
/usr/bin/setsid, from the util-linux package, was missing. Developer Forum
thread: http://www.puppylinux.com/nfphpbb/viewtopic.php?t=21
MU's temporary mirror for latest Puppy2 alpha
Billstclair has also mirroredthe ISO, devx_003.sfs, and all-modules at:
May 7
Puppy2alpha-7may06 is released (68.9M). This is not an official release,
it is for Puppy testers.
Release notes:
- Exciting, Puppy now has Inkscape and GParted. Despite the bigger iso,
everything still loads completely into RAM on a 128M PC.
- As Puppy has moved up to the 2.6 kernel, we are still discovering hardware-compatibility issues.
- CD: This can be burnt to CD-R or CD-RW using most Windows or Linux CD-burner programs. If you want to use it in multisession mode (sessions get saved back to CD-R), then be sure the CD-burner program supports multi-session burning (leaves CD "open" for further tracks to be burnt later).
- DVD: There is no known Windows burner program that will burn the DVD properly (?). You need a Linux DVD-burner program, such as Burniso2cd in Puppy -- this program burns the DVD "open", so that it can be used normally or as multisession.
- UPGRADING: If you have tested a
previous puppy2 alpha CD, please get rid of any pup_save.3fs file,
wherever it is on the hard drive or plugged-in device. Also delete a
underdog.lnx file if it exists. This is
Note, Puppy2 does have an upgrade mechanism, but it is not quite ready to be used.
Download the complete set of modules for the 220.127.116.11 kernel, patched kernel source, also the latest pup_003.sfs compiler file: http://www.puppylinux.com/test/
There is a special forum for puppy2 development. Report here any bugs, I also want to know about success stories!
Forum URL: http://www.puppylinux.com/nfphpbb/
Puppy2 discussion also takes place on the regular forum: http://www.murga.org/~puppy
I already found one bug with GParted -- I think it needs more utility apps from the e2fsprogs package to enable further capability. ...okay, I have just now examined the gparted source, seems it needs 'dumpe2fs' -- will put that in for the beta release. Nice thing about GParted, it scans the system at startup and uses whatever is found -- so if we want to add reiserfs support later, just need to install reiserfsutils package. Anyone want to be daring and resize their ntfs partition?
It is intended that the next release will be puppy2-beta, and this is the to-do shortlist:
- Improve the h.d. install of the Puppy Universal Installer. Pakt has done excellent work booting Puppy from floppy and other media, and this can be linked into the Installer script (see note on WakePup2 below).
- I will write a program to import personal data from Puppy1.
- Map the mounted "home" partition to /mnt/home, using k2.6 relocation feature.
- Turn on the upgrade mechanism.
- Apparently there is a generic ac'97-compatible modem driver for the 2.6 kernel. Will check it out.
- dumpe2fs from e2fsprogs package needed by GParted.
- Any required bug fixes.
May 7
Pakt's WakePup2 is now in the
Puppy2 live-CD, replacing my older boot floppy image file. The new file is
/lib/wakepup2.img -- not gzipped as everything gets compressed anyway.
I will be writing it into the Puppy Universal Installer, but I have to upload the next snapshot today, as tomorrow I will be back home, without ADSL access -- meaning that I haven't had time to update the Installer. There is also reported a bug with USB install, but same situation.
I will work on the Installer during the week, and it should be fully functional for the beta release. Anyway, you can still use WakePup2, just copy to floppy disk like this:
# dd if=/lib/wakepup2.img of=/dev/fd0
WakePup2 is a great little floppy boot disk creation by pakt (Paul), that
scans the system and will locate and boot Puppy2 from USB, CD, or hard drive.
This is particularly useful if you have installed Puppy to USB pen drive or
burnt to CD but the PC won't boot from those devices.
I've upgraded lior2b's miniXcal
to the updated release (dated April 30, pm). The Unleashed package is
May 6
I have been discussing the Puppy2 remaster-CD script with Samoyed on the
Developer Forum, this thread: http://www.puppylinux.com/nfphpbb/viewtopic.php?t=126
The script works, except that /root/.packages/packages.txt ends up as zero bytes on the CD, which causes the PupGet package manager to not work.
As the remaster script compresses all user-installed PupGet and DotPup packages into the pup_xxx.sfs file, the contents of alienpackages.txt and livepackages.txt (that is, the records of usr-installed packages) get merged into the one file, packages.txt on the live-CD. I found the bug and fixed it, and also put in some syntax checking for the alienpackages.txt file -- in case a package author has written an install script that writes incorrectly to alienpackages.txt.
This remaster-CD script is great. Install what you want, remaster the CD.
The script is very easy to use and most importantly requires very little
working memory -- I have been testing it with Puppy running totally in
May 5
The 126.96.36.199 kernel patched source is available here: http://www.puppylinux.com/test/
May 5
Phil Tuckey reported some difficulty with booting Puppy2 using GRUB, where
initrd.gz (initial ramdisk file), vmlinuz (the kernel) and pup_xxx.sfs (all
the Puppy files) are in a hard drive partition. He succeeded, then saved the
session direct to the boot partition.
Say the partition is /dev/hda2, then the situation looks like this:
partition hda2
all saved sessions here, including file /etc/puppyversion.
I mention file /etc/puppyversion as that always gets saved at every
session, and Puppy looks for it at bootup to determine that the partition has
saved Puppy files in it.
Note, the files initrd.gz, pup_xxx.sfs and vmlinuz could be in a folder, say /boot, as long as GRUB is configured appropriately.
Phil reported that Puppy was starting with PUPMODE=7 and it wasn't working
correctly. I have fixed that, also have defined another mode, PUPMODE 6, in
which Puppy will run in Phil's situation.
Someone asked recently how these PUPMODE numbers are assigned. It is a
number where each bit ( ... 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0) is a
BIT-SET DECIMAL-WEIGHT MEANINGFor example, the multisession CD/DVD runs with PUPMODE=77, which is 1+4+8+64. You see, it is quite logical!
0 1 using tmpfs top layer (/initrd/pup_rw) of union.
1 2 boot partition (PDEV1) has puppy sessions saved in it.
2 4 pup_xxx.sfs file exists on boot partition (PDEV1)
3 8 pup_save.3fs file exists (sessions saved to file).
4 16
5 32
6 64 multisession flag.
In Phil's case, Puppy will run in PUPMODE=6 (2+4), as the saved sessions are on a fast media with unlimited write capability so no need for a tmpfs top layer in ram. Note, a tmpfs top layer is an intermediary to hold the working and new files & directories, and is only really needed where we have to restrict writes (ex: flash memory) or where the session is to be saved to very slow media or at specific times (burning a track to multisession CD), or we deliberately want to run totally in ram (as in the very first bootup of Puppy).
A full hard drive installation ("option 2") will run in PUPMODE 2.
The decision which mode to run in is made in the first boot script, /initrd/sbin/init. Though, in the case of a full h.d. install, the initrd.gz is not used at all and the first script that runs is /etc/rc.d/rc.sysinit -- in that case, Puppy assumes PUPMODE=2.
May 4
We were discussing loading of the correct AGP kernel module in this
An outcome is that Mark Ulrich wrote a little script to compare the vendor:chip ids returned by lspci with the vendor:chip ids in the aliases returned by modinfo, and calculate the correct AGP driver to load. For example, for my SiS motherboard chipset, the correct driver is sis-agp.ko.
Marks' script is /usr/sbin/findhostbridge and I have called it in /usr/X11R6/bin/xwin -- I'm trying to keep the X-specific loading stuff as much as possible in xwin.
I wasn't sure whether the -agp.ko driver needs to be loaded for Xvesa Kdriver X server, but have done so anyway.
Also, would it be required for the VESA framebuffer kernel driver? Currently Puppy is starting up in the basic 80x25 text mode, but if we chose one of the framebuffer graphics modes (by specifying the vga= kernel boot parameter), would the -agp.ko driver be required?
What is so important about the above? The problem has been Intel
i810-family video not working properly. With the intel-agp.ko driver loaded,
before the i810 Xorg driver loads, the video works properly. The above is all
about autodetecting and loading the correct -agp.ko driver for the particular
hardware so video will work properly. We don't know how useful the -agp.ko
drivers are for other vendor video hardware, but for Intel it is almost
May 3
I'm rapidly back-pedalling over my earlier enthusiasm regarding NTFS
write-support. I went to all the trouble of installing FUSE and ntfsprogs, to
get the more reliable user-mode NTFS driver.
For the first time I have a borrowed PC here at home with Windows XP and a single NTFS partition to experiment with ...and it has not been good news. Running Puppy, I experimented with creating a 512M pup_save.3fs file in the NTFS partition, which did work. However, I played around a bit more, not sure exactly what I did, but when I booted the PC normally, without the Puppy CD, a message came up that the "NTLDR file is missing" -- that's bad. If I can stuff up the Windows installation, just doing a few simple things, then others are bound to also.
There is more bad news. This particular PC hangs doing bootup of the Puppy
live-CD, just after attempting to mount the NTFS partition to look for a
pup_save.3fs file. Puppy1, Puppy2, no difference, they all hang. I have to
select the boot option to boot totally running in ram.
On the Puppy Forum we get regular reports that Puppy hangs at bootup, and I wonder how many of them are this same situation?
So, it's not a happy state of affairs. Not only am I back-pedalling, I'm
thinking of a whole new approach, now that GParted will be in Puppy. In a
nutshell, I'm fed up with NTFS and it gets the thumbs-down. I'm pretty
cheesed off that Microsoft can get away with this, closed protocols and
formats for products that are used internationally. The European Union is
making some weak attempts to remedy this ...we live in hope.
The devx_xxx.sfs file, used for compiling C/C++ applications in Puppy, has
been updated with header files for the new gtkmm, glibmm and libsigc++
libraries. It will be uploaded soon.
May 3
Lots of packages have been compiled (within Puppy, for maximum
compatibility) and made into Unleashed packages: qtparted-0.4.5, libsigc++-2.0.17, glibmm-2.6.1, gtkmm-2.6.1, gparted-0.2.4, and
...so, you can guess what to expect in the next Puppy2 snapshot!
May 2
JWM is upgraded to version 1.7.
May 1
Continuing investigation of AGP, it's getting complicated. MU has made
some discoveries:
May 1
More good news. Pakt and MU have solved a problem with using i810 video
hardware in Puppy2. See thread in Puppy2 developer forum:
So, I have upgraded the i810_drv.o driver in Xorg. The kernel modules, in /lib/modules/188.8.131.52/char/agp/ have the agpgart.ko driver, however MU found that the 'intel-agp.ko' driver is needed for the i810 hardware to work properly. There's a whole lot of other drivers in that agp/ folder, such as 'sis-agp.ko', that maybe also will improve behaviour of other video hardware, so I have put the complete folder into Puppy.
In the above thread, the guys loaded 'intel-agp.ko' manually, however, I
need to figure out the best automatic method, that will also load any of the
other '-agp.ko' drivers as needed to match the Xorg driver -- right now I'm
hunting around collecting information. Looking at my Mandriva 2006
installation, the sis-agp.ko driver gets loaded, whereas in Puppy I don't
have have it, with no discernable difference in behaviour. Would it be best
to always preload sis-agp.ko when Xorg uses the SiS video driver? How will it
affect the Xvesa Kdrive server?
Apr 30
Another one bites the dust! Jesse Liley has released MUT version 0.0.8, which has some fixes to
work on Puppy2.
Lior Tubi has created a great little enhancement to the clock in JWM,
called miniXcal.
Clicking on the clock now brings up a calendar. I think someone mentioned
awhile ago on the forum that this would be a good thing, as they could do
that in Windows and it is very convenient. Thanks to Lior we have that
convenience now also!
The kernel has been recompiled with FUSE support built-in (not as a module)
and with 4K stacks disabled (using 8K stacks, same as the k2.4).
FUSE version
2.5.3 has been compiled and the library libfuse is now in puppy2. This is
required for ntfsmount, the program to mount NTFS partitions such that files
can be created.
The header files for libfuse have also been placed in devx_xxx.sfs, so the library can be used with other FUSE filesystems.
Puppy2 now has the utility applications mkntfs, ntfsmount and ntfsresize from ntfsprogs version
2.5.3. Ntfsmount requires libfuse from the FUSE package.
Ntfsmount enables us to mount an NTFS partition such that files can be created. According to the docs, it cannot always succeed, but if it fails to create a file no damage is done. In other words, we can't harm the NTFS partition by using it. I will incorporate ntfsmount into the rc.shutdown script to create a pup_save.3fs file.
Note, the kernel also has a NTFS driver, which I chose to be built-in.
This is somewhat less mature but can safely use a pre-existing pup_save.3fs
file. As it improves, it will eventually make ntfsmount unecessary.
Note also, the ntfsresize utility can be used to shrink a NTFS partition, for the purpose of creating Linux partitions. Apparently this utility is quite robust. I would like to incorporate this into the Puppy Universal Installer, but I don't know when this will happen, given the rather long to-do list!
Apr 30
USB mouse problem solved. I found a computer that exhibited the bug, and
found the solution.
The init script (first script that runs at bootup) loads the kernel driver modules 'usbcore' then either 'uhci-hcd' or 'ohci-hcd'. I found that a one second pause ('sleep 1') after 'modprobe usbcore' fixed the bug. Peculiar, never had this problem with k2.4, haven't read anything anywhere about this being needed -- but then, most online docs about usb are somewhat out-of-date (and kernel docs -- hah! -- out-of-date, incomplete).
Nor do I know why some computers have this problem and not others -- haven't been able to discern a common factor. I'm disturbed that this was never an issue before, with our "good ol" 2.4 kernel, now I have to do what amounts to a gross hack.
If you are testing the April28 alpha snapshot, you should be able to
verify by exiting from X then remove modules:
# rmmod usb-storage
# rmmod uhci-hcd (or ohci-hcd)
Then reload:
# modprobe uhci-hcd (or ohci-hcd)
# cat /proc/bus/usb/devices
That last line should show any USB mouse and keyboard. The mouse should
also work when X is started.
Apr 29
Well, it seems something has gone wrong with USB mouse detection in the
move to the 2.6 kernel. Heaps of bug reports for the 28th April snapshot "my
USB mouse doesn't work!".
So, until I track this bug down, you will need to use a PS/2 or serial mouse.
There also seem to be some cases of wider USB non-detection.
If you would like to provide feedback about this, here is a forum thread:
There also seems to be a problem with writing to NTFS partitions. It is
supposed to be enabled. It is enabled in the kernel, but it seems that just
using "mount -t ntfs /dev/hda1 /mnt/data" does not allow file creation. I
skimmed through the linux-nfts.org website too quickly, thought the driver
now supports file creation, however on closer examination, the ntfsmount
program is needed -- okay, it will be in the next snapshot.
Apr 28
http://www.kcore.org/?menumain=4&menusub=2 has this:
Hardware: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller - Winmodem.
This modem can be gotten to work using the Linuxant HSF Softmodem drivers.
Unfortunately, they are payware.
They also have a limited-speed test driver, you can see if that works for you before deciding to buy the driver.
NOTE: You have to compile your kernel without CONFIG_4KSTACKS! If you use this driver with
4K stacks enabled, it _will_ crash your system!
It seems to be another case where the kernel developers are trying to improve performance, like the 100Hz versus 1000Hz interrupt, but it causes compatibility problems.
The option CONFIG_4KSTACKS isn't even in the .config file, but I found that the "Kernel hacking" option has to be turned on, then it is offered as a sub-option. It's default is "y".
So, if you test ndiswrapper, it may crash the kernel, with symptoms like frozen keyboard and mouse.
Apr 28
I forgot to include the ndiswrapper kernel driver in the latest puppy2
alpha. So, I have compiled ndiswrapper version 1.15. The Unleashed package
with the executables and the kernel driver module are downloadable from
You will need to gunzip the module, install it to
/lib/modules/22.214.171.124/misc/, then execute depmod. The executables can be
installed using PupGet or manually.
Note that the ndiswrapper package warns that the kernel is compiled with
4K stacks, which may cause some Windows drivers to crash. I need to recompile
with 8K stacks, which will do for the next release of Puppy2.
Note also, I compiled ndiswrapper running Puppy live-CD, but I had to add
some extra files to devx_003.sfs, in /usr/src/linux-22.214.171.124/. An updated
devx_xxx.sfs file will be uploaded soon.
Apr 28
Ted Dog has kindly mirrored the latest Puppy2 alpha 28th April 2006 here
f11b3a3ea4b211b6a9c8a79a3383b54b puppy2alpha-28apr06.iso
Apr 28
Puppy2 alpha-28apr06 is released. This is not an official release, it is
for Puppy testers.
Release notes:
- Now there is full NTFS write support, but it is intested. Anyone prepared to sacrifice an NTFS partition, please test saving live-CD session to a pup_save.3fs file on the NTFS partition -- now, like for other partitions, Puppy will create the file.
- As Puppy has moved up to the 2.6 kernel, there could be new hardware-compatibility issues.
- CD: This can be burnt to CD-R or CD-RW using most Windows or Linux CD-burner programs. If you want to use it in multisession mode (sessions get saved back to CD-R), then be sure the CD-burner program supports multi-session burning (leaves CD "open" for further tracks to be burnt later).
- DVD: There is no known Windows burner program that will burn the DVD properly (?). You need a Linux DVD-burner program, such as Burniso2cd in Puppy -- this program burns the DVD "open", so that it can be used normally or as multisession.
- UPGRADING: If you have tested a
previous puppy2 alpha CD, please get rid of any pup_save.3fs file,
wherever it is on the hard drive or plugged-in device. Also delete a
underdog.lnx file if it exists. This is
Note, Puppy2 does have an upgrade mechanism, but it is not quite ready to be used.
- There is an applet in the taskbar that displays free memory, in
Megabytes. This is the free memory for your files. It needs work though
-- I'll post the source. Mouse-over with extra info-balloon would be
nice, if I knew how to do it!
- If your USB keyboard does not get detected, boot with a ps/2 keyboard (or, they will work simultaneously plugged in) and try a "sleep 1" in /etc/rc.d/rc.local0, just before the USB keyboard test. Let me know if that makes any difference. (save the session of course, so the change is there next time you boot)
- Mouse is autodetected. Serial modem also autodetected, and a "dialup"
icon will automatically appear on the desktop -- but only for external
serial modems.
- JWM 1.6 has a bug: the clock in the taskbar disappears and reappears --
Joe says he will fix this and v1.7 will be released soon.
Download the complete set of modules for the 184.108.40.206 kernel, also the pup_003.sfs compiler file: http://www.puppylinux.com/test/
There is a special forum for puppy2 development. Report here any bugs, I also want to know about success stories!
Forum URL: http://www.puppylinux.com/nfphpbb/
Puppy2 discussion also takes place on the regular forum: http://www.murga.org/~puppy
It is intended that the next release will be puppy2-beta, and this is the to-do shortlist:
- Improve the h.d. install of the Puppy Universal Installer. Pakt has done excellent work booting Puppy from floppy and other media, and this can be linked into the Installer script.
- I will write a program to import personal data from Puppy1.
- MUT needs to be updated for Puppy2. I will do this too.
- Map the mounted "home" partition to /mnt/home, using k2.6 relocation feature.
- Turn on the upgrade mechanism.
- Apparently there is a generic ac'97-compatible modem driver for the 2.6
kernel. Will check it out.
- Any required bug fixes.
Apr 27
JustGreg suggested a small improvement to wvdialshell script, that I have
Apr 27
The ALSA Sound Wizard, which is a
modified alsaconf script, runs at first bootup. I have modified the script so
that if executed with the parameter like this: "alsaconf --auto", then no
questions are asked. Previously, the script asked many questions, now at
first bootup it just runs and you get two barks if successful -- this is
great for users who often want to start Puppy running in ramdisk only, no
prior saved configuration.
The full ALSA Wizard with all the questions is still available from the "Setup" menu.
Apr 26
I had a bit of a play, created a little taskbar applet that displays free
memory. Regardless whether you have a pup_save.3fs persistent storage file,
have Puppy installed to hard drive, or running totally in ramdisk, this
applet displays a single value that tells you how many megabytes you have
left. It displays as white text on a dark-blue background, which changes to
dark red if memory drops below 20M, then flashes lightred-darkred if memory
falls below 5M.
The applet's name is wmpupmem, and I used a Window Maker dockapp named wmapmmon as the starting point.
There is a problem with it though -- if I choose "Shutdown --> JWM restart", then the original instance of wmpupmem is still in the taskbar, but another one is created top-left of screen. If I keep doing "JWM restart", I can get more instances of wmpupmem. Do I need to do something to my program to prevent this? -- as Blinky and Xload don't do it.
Apr 26
I was concerned about the new block of x_tables modules and some older ip modules missing, however it appears all
is well. One of the new modules is 'xt_state.ko', and the apparent old
equivalent that is missing is 'ipt_state.ko'. However, when I run "modinfo
xt_state" to get information about the module, it is reported to have the
alias name of 'ipt_state'.
So, I ran the Firewall Wizard, it appeared to load all reuired modules and passed its own sanity tests.
Note, it appears, that x_tables is new for the 2.6.16 kernel.
Apr 26
I have recompiled the 126.96.36.199 kernel with CONFIG_DVB=y, and all the
drivers for digital video broadcasting as modules.
Also, set the base interrupt frequency to 100Hz, same as the 2.4 kernel, down from 1000Hz. This is something we have discussed on the forum, and I decided it is safer to use 100Hz for older computers. Forum thread: http://www.murga.org/~puppy/viewtopic.php?t=7589
Apr 25
Lior Tubi's wonderful Blinky
network monitor is now upgraded to version 0.8.
As a temporary measure, I have restored the v6.8.2 i810 Xorg driver in
Puppy2, as the one in v6.8.1 does not work very well. The April 11th snapshot
has the v6.8.1 i810 driver, which I had gone back to as the v6.8.2 i810
driver has a resource leak.
So, when the next snapshot is released, your i810-based video should work, but you may find
that CPU usage of X climbs gradually -- run "Control Panel --> Top view running processes" to monitor this.
Note, I do plan to upgrade Xorg soon.
Upgraded Mark Ulrich's patched Dillo v0.8.5 to the April 24th release.
The iptables/netfilter kernel modules in 184.108.40.206 kernel have changed from
earlier 2.4 and 2.6 kernels. Some 'CONFIG_IP_NF_' configure options are
missing, but there are a whole new bunch starting with
'CONFIG_NETFILTER_XT_', which generate a new bunch of modules, all starting
with the name 'xt_', for example 'xt_conntrack.ko'. So, I've put many of the
old modules that still exist into Puppy, and added all of the 'xt_' modules.
Just guessing here, seems like what is needed.
For example, the configure option 'CONFIG_IP_MATCH_STATE' and its associated module is missing, but there is a new one, 'CONFIG_NETFILTER_XT_MATCH_STATE' with apparent matching module 'xt_match.ko', which seems to be the intended replacement.
Thing is, maybe I have to upgrade the iptables package to be able to use these changes.
I have updated dvw86's Trashcan
to version 2beta. Note for developers, the trashcan is located in the
rox_filer-1.2.2patched Unleashed package.
Joe's marvelous window manager JWM has been updated to version 1.6. The
whole thing is still a single 125K executable.
Apr 24
The Ethernet/Network Wizard has
been upgraded by rarsa to version 23.
I have compiled Transmission version
0.5, a small and very easy-to-use BitTorrent client. This is now an Unleashed
package and will be in the next snapshot of Puppy2.
Transmission homepage: http://transmission.m0k.org/
Forum thread discussing Transmission: http://www.murga.org/~puppy/viewtopic.php?t=7418
Script /etc/rc.d/rc.update has been fixed to work in Puppy2. At least I
think it has, not tested yet. This means that if you boot a new version of
Puppy2 and there is already an existing personal storage file (pup_save.3fs
or folders from a multisession-CD/DVD), then all critical system files are
ensured to be updated.
This update script ensures that any boot, shutdown and some vital configuration scripts that have been modified by the user or a package installation are restored to pristine condition. Note though, this only applies to vital system files, and all normal configuration files, (for example, desktop icons and background image settings) are not altered.
Apr 24
The 188.8.131.52 kernel supports safe writing to NTFS partitions (according to
the documentation on the Linux-ntfs website), so Puppy2 now has full NTFS
write-support enabled. This removes all the earlier restrictions, meaning
that a personal storage file (pup_save.3fs) can be created on an NTFS
partition just like any other. Also, Puppy can be installed to a NTFS
partition just like previously possible to a MSDOS or VFAT partition(by
option-1, also known as the "poor mans" install mode -- the Puppy Universal
Installer will explain that!).
The Puppy Universal Installer needs a bit more work due to the move to the
2.6 kernel. The problem is that 'tiny.exe' from the Gujin package is used to
create a boot floppy, and previously the Linux kernel 'vmlinuz' was also
placed on the floppy. However, the kernel is now 1618K, too big for the
floppy, meaning that it now has to be on some other FAT partition. The
restriction to FAT partition is because tiny.exe is a MSDOS application and
FreeDOS is used, which only recognises FAT partitions (msdos or vfat). The
same thing goes if use Syslinux.
So, the Puppy Universal Installer can create a boot floppy with this restriction -- tough if your PC doesn't have a FAT partition into which to place vmlinuz!
However, the 'grubconfig' script can create a boot floppy, which is something I have not yet tried -- can look into integrating that into the Universal Installer script. Probably need to offer boot-USB or boot-CD modes as well as the boot-floppy.
Apr 23
The following modules have been added to Puppy2:
net/tulip/uli526x.ko ULi M5261/M5263 fast ethernet driver
net/tulip/xircom_tulip_cb.ko Xircom CBE-100 ethernet driver
net/wireless/ipw2100.ko Intel(R) PRO/Wireless 2100 Network Driver
net/wireless/ipw2200.ko Intel(R) PRO/Wireless 2200/2915 Network Driver
net/wireless/orinoco_nortel.ko Driver for wireless LAN cards using the Nortel PCI bridge
net/wireless/spectrum_cs.ko Driver for Symbol Spectrum24 Trilogy cards with firmware downloader
netprotocol/ieee80211/ieee80211.ko 802.11 data/management/control stack
netprotocol/ieee80211/ieee80211_crypt.ko HostAP crypto
netprotocol/ieee80211/ieee80211_crypt_ccmp.ko Host AP crypt: CCMP
netprotocol/ieee80211/ieee80211_crypt_tkip.ko Host AP crypt: TKIP
netprotocol/ieee80211/ieee80211_crypt_wep.ko Host AP crypt: WEP
net/wireless/hostap/hostap.ko Host AP common routines
net/wireless/hostap/hostap_cs.ko Support for Intersil Prism2-based 802.11 wireless LAN cards (PC Card)
net/wireless/hostap/hostap_pci.ko Support for Intersil Prism2.5-based 802.11 wireless LAN PCI cards
net/wireless/hostap/hostap_plx.ko Support for Intersil Prism2-based 802.11 wireless LAN cards (PLX)
usb/host/sl811_cs.ko REX-CFU1U PCMCIA driver for 2.6
VPN developers/users, note that Puppy 1.0.8 has ppp_mppe_mppc.o driver,
but a MPPE driver is now in the 2.6 stock kernel, called mppe.ko. All of the
above are in the stock (original) kernel.
Bug update: I think that I have fixed the problem in Puppy2, when bootup
and it stops at the prompt, X doesn't start.
Apr 22
I've worked out a solution. Puppy needs to detect whether a PC has a USB
interface in the init script and also later in the rc.sysinit and rc.modules
scripts. This means that lspci and pci.ids have to to duplicated in both. The
lspci executable is very small (33K), however the latest pci.ids file is 380K
-- however, I was able to extract just the USB information, so in the initrd
the pci.ids file is only 5.5K. So, it's not much overhead for the initial
Apr 21
I did mention that there are some "issues" with the new 22.214.171.124 kernel.
One of those is that the file /proc/pci has different information about the
PCI interfaces, compared with the 2.4 kernel. It used to have the
description-string of each interface, which is now replaced by a line that
commences with "Class ..." followed by various numbers, including the
vendor:chip ids. It was the description-string that I have used for various
purposes, such as determining if the motherboard has usb capability.
For example, running 2.4 kernel:
USB Controller: Silicon Integrated Systems [SiS] USB 2.0 Controller (rev 0).
But, running the 188.8.131.52 kernel, the above line is replaced by:
Class 0c03: PCI device 1039:7002 (rev 0).
This change means that a vendor:chip id database is required to lookup
what each interface does.
The lspci utility does not help, as it only returns the same information.
It can be made to return more info if the pci.ids database file is present --
which it isn't. The problem also, even if Puppy has the pci.ids file, it is
always playing catchup. I found some information on the Internet, it seems
the kernel developers dropped the description information in favour of using
lspci -- but lspci does not read the descriptions directly and relies on the
database file.
What about the kernel log during bootup, as returned by dmesg? No, it
seems not, no interface descriptions until the USB drivers load.
What I have tested, and really I hate doing it this way, is try to load
each module in turn: usbcore, uhci-hcd, ohci-hcd and ehci-hcd, trusting that
it will fail if the appropriate hardware is not present. No, on my PC that
only has a USB1 interface, the USB2 ehci-hcd driver loads without
$%#@&*, Puppy also reads /proc/pci to determine if there is a cardbus interface. Need to figure out a workaround for that also.
Apr 20
Bashdiff is an
enhancement for Bash. Truly great additions, too good to resist! I've created
an Unleashed package, bash_bashdiff-3.0-1.33,
which is Bash with the Bashdiff patch. This installs 'bash' and 'bashbug'
into /bin and 'libwilliam.so' into /usr/lib, as well as a help file
'bashdiff.htm' into /usr/share/doc.
This will be in the next puppy2 snapshot, but note that I haven't changed the ~/.bashrc file -- the bashdiff help page has some suggestions for modifying it. Leaving that until we have it running in the snapshot.
To learn about the great features of Bashdiff:
Apr 20
These packages have been upgraded for the 2.6 kernel: module_init_tools-3.2.2, e2fsprogs-1.38, wireless_tools-28 and unionfs-20060417 (cvs snapshot). The PCMCIA package remains at the same version, but recompiled for the 2.6 kernel: pcmcia_cs-3.2.8 -- this package may be dropped sometime, due to equivalent functionality in the 2.6 kernel.
Note also, the 18.104.22.168 kernel was compiled from almost-pristine source,
with just one patch, squashfs-3.0.
Apr 20
I have created a Unleashed package of Mark Ulrich's brilliant new desktop
background setter, Puppybackground. This
will be in the next Puppy2 snapshot.
It is also available as a DotPup. See forum thread:
Apr 19
I'm typing this from the latest Puppy2 snapshot, running kernel version
22.214.171.124. Some small issues, should be solvable. What prompted me to do this
is the unionfs we have used up to now is version 1.0.4, as that is the last
version that runs with the 2.4 kernel. Development of unionfs has continued
for the 2.6 kernel only. The 1.0.4 version has a bug, in which files and
directories are sometimes invisible -- this bug affects both Puppy1 and
Puppy2. I went right to the bleeding edge, grabbed yesterdays cvs snapshot of
There's lots of good stuff in the 2.6 kernel. I shall be experimenting to
see if NTFS write support is now solid.
If I decide to keep using this kernel in Puppy2, then I'll post patched kernel source, the full set of modules, plus some upgraded Unleashed packages.
Apr 18
Puppy2 now has working automatic mouse detection, at least on my computer!
Plug in anything, USB, PS/2 or serial, boot Puppy, it works. When Puppy is
running you can still use the Mouse Wizard, which is handy if you have two
different types of mice connected -- the Mouse Wizard lets you choose which
one you want to use, whereas the autodetection will select in order of USB,
serial, or PS/2 (meaning that the USB mouse has highest preference).
Automatic serial modem detection is also working. Boot Puppy with a serial modem connected (and turned on) and a dialup icon automatically appears on the desktop. Connecting to the Internet is just a matter of clicking on the icon. However, the autodetection only works for true hardware modems -- for Smartlink and Lucent softmodems you still have to use the Modem Wizard.
Apr 17
I have made an Unleashed package, dillo-0.8.5patched, which is based on a
patched version of Dillo v0.8.5 from http://teki.jpn.ph/pc/software/index-e.shtml
and further adapted by Mark Ulrich to be compatible with his
PB-DebianInstaller program (still in alpha, not officially announced yet).
The package has an executable, dillowindow, which is a script called by PB-DebianInstaller to run Dillo.
Apr 16
Okay, here it is!!! puppyserialdetect, a
little program to detect serial mouse and serial modem. Download it from
here: http://www.puppylinux.com/test/
I need everyone to test this, as I plan to run it at every bootup. So, regardless of whether your computer has any serial mouse or serial modem, this little program will run. I need to know that it detects your serial mouse and modem correctly, but if you don't have serial devices the program should not cause any delay or hang your computer or whatever -- it should just return with no output, or perhaps something on stderr -- if you do get some kind of error message, can you try:
# ./puppyserialdetect 2>/dev/null
to make sure that stdout returns nothing.
For a serial modem, puppyserialdetect also returns the maximum speed -- let me know if that is wrong for your modem. If modem detection works, then we will also be able to eliminate the Modem Wizard ...which is a great step toward automating Puppy, and making Puppy more portable since the detection will take place at every boot.
There is a thread in the main forum discussing this, please read before
trying puppyserialdetect: http://www.murga.org/~puppy/viewtopic.php?t=7475
Apr 16
A clarification: I stated below that the detect library code cannot detect my USB
mouse due to a difference in /proc structure. Precifically,
/proc/bus/input/devices file is missing, as this is only available with the
2.6 kernel.
However, my own detection code reads /proc/bus/usb/devices to detect the USB mouse.
Apr 16
I seem to have basic detection of the serial mouse working. Despite
extremely rusty knowledge of C, I managed to extract what I needed from the
detect package, which is a hardware
detection library. From the copyright notices in the code, they in turn got
some of it from RedHat and Mandrake.
The detect code is not detecting USB or PS/2 mouse, due to differences in the /proc directory from what the code expects, but that's okay, as I can already detect a USB mouse. Now, if I can detect a serial mouse (and what port it is on), then if no USB or serial mouse detected then will assume PS/2 by logical elimination.
Need to work on it a bit more, but basic detection seems okay. It can recognise that a modem is not a mouse -- the lights on my modem flashed when it probed, and the modem still works afterward!
Apr 15
There is some discussion on the forum about the awkwardness when you want
to use different persistent save files (pupxxx in puppy1, pup_save.3fs in
So, for puppy2 I've solved the problem. I've generalised the name of the save file to 'pup_save*.3fs' where the '*' is a wildcard, meaning any characters or no characters.
So you can name the file pup_save9.3fs if you want.
Why do this? Well, if Puppy finds more than one of these in the same partition, Puppy displays a menu and asks you to choose. Simple, it works well. I booted the live-CD, saved the session at shutdown (it still only saves to the default name pup_save.3fs), rebooted, made a copy of the pup_save.3fs file: pup_save2.3fs. Then rebooted and hey, got a little menu, which also offers none of them as one choice.
Note that when you boot off a USB or hard drive partition, Puppy always
looks in that (boot) partition for the pup_save*.3fs file(s). Puppy will not
wander far and wide over your PC and discover some stray pup_save*.3fs
The live-CD is an exception, as a pup_save*.3fs file cannot be on the boot partition. But, the boot script does look on the CD/DVD for any saved folders (multisession), failing which there is a search over the drives of the PC to try and find a pre-existing save file. Each partition is checked in turn and the first save file found is used -- the only case where the choice-menu is offered is if two or more save files are found in the same partition.
Apr 15
I seem to have misunderstood how the isolinux.cfg file works. At the
Puppy2 boot menu, typing 'puppy acpi=on' does not work. The isolinux.cfg
default puppy
display boot.msg
prompt 1
label puppy
kernel vmlinuz
append root=/dev/ram0 initrd=initrd.gz acpi=off PMEDIA=idecd
timeout 50
The total effect is that we get this boot commandline:
root=/dev/ram0 initrd=initrd.gz acpi=off PMEDIA=idecd BOOT_IMAGE=vmlinuz acpi=on
...and it seems only the first occurrence of 'acpi=' takes effect.
I don't know how to setup isolinux.cfg to provide a true override of default parameters, so I will just remove 'acpi=off' from the 'append' line.
...okay, I've done that. Entering 'acpi=on' or 'acpi=off' at the boot prompt now works.
Apr 15
There has been a teensy bit of reorganising of the main menu.
I've expanded the live-CD boot menu. As well as the usual kernel options
like 'acpi=on' or 'ide=nodma', you will now be able to choose to ignore any
existing saved sessions and run totally in RAM, or in the case of
multisession CD/DVD you will be able to choose to ignore any number of
most-recent saved sessions.
The latter is particularly interesting, as it gives you the equivalent of Windows' roll-back. This will only work for multisession CD/DVD, which saves each session as a folder. This is being currently discussed on the forum: the question asked was what if the last session-save stuffed up the the CD somehow, how nice it would be to "go back" -- well, now you can, up to 9 sessions back (arbitrary choice, I thought that was enough).
But then I realised it is only half-done. What we really need is a
mechanism to mark folders permanently as "bad". So, I implemented that too.
If you roll back say by 2 folders, they are automatically marked as bad and
on future boots will be jumped over.
There is a file, /.badfolders, that has the list of bad folders, and this is saved with each session-save. This file could be manually edited if you wish.
Apr 14
In Puppy2 first boot, the session can be saved to floppy disk. However,
this causes trouble on PCs that do not have a internal floppy drive. The
floppy detection code at startup and shutdown has a long delay on such PCs,
and we have not come up with a reliable alternative. However, the bottom line
here is that you have to be desperate to save the session to floppy disk
anyway -- it only has room for the basic configuration files. So, the simple
solution is to restrict saving to floppy disk to non-USB computers. Older
non-USB computers will all have floppy drives, except for some rare ones. So,
on all USB-enabled PCs, the check-floppy delay is eliminated.
I've restored a default index.html page in /root/ghttpd/htdocs/.
Apr 14
A Puppy2 tester reported that dragging a file to pupzip, the desktop
drag-and-drop archiver, failed to create an archive. I tracked this down. One
of the scripts used by Xarchive, the archiver program called by pupzip, in
turn calls the utility program mktemp. Now, mktemp is a Busybox applet, and,
as so many times before, it lacks the required commandline option ( -t ). So,
I got the full mktemp out of Vector, and now pupzip works fine.
This bug exists in puppy1 too -- I don't know how nobody reported it before -- maybe nobody realised that you can just drag files to the pupzip archiver. Or maybe they somehow had the full mktemp installed.
In response to a request on the Forum, I have improved the man script. Previously, typing "man
something" did not always find the help file even if it existed. This was due
to some help files being named 'index.html' or something other than the name
of the program, and to a limitation in find itself -- it will not follow
paths with symbolic links, or rather can only be made to with some
jiggery-pokery code that I had to hack together. I have fixed this, also if
any Busybox applet is specified then the Busybox help page will open -- for
example, "man zcat".
Of course, if online, if the help is not found locally then the help
system could fall back to an online man pages site -- anyone know a good
ad-free site with all the man pages in html?
Apr 13
I was replying to a discussion on the Forum about saving the current
session to a new multisession CD/DVD, then realised something was not quite
right in the session-save code in Puppy2. They were discussing Puppy1, but I
responded that it is very easy in Puppy2, but then realised the problem. Now
What now happens properly is what you would intuitively expect to be able to do. Running a multisession CD/DVD, if you download and burn a new iso of Puppy, that is, a new version or flavour, once it is burnt all you have to do is hit the "Save" button on the desktop to save all of the personal files to the new CD/DVD. You can keep using the old CD/DVD if you want, but the new one also has the complete personal info on it.
Ditto when you shutdown, the personal files can be saved to the new CD/DVD if you wish.
A clarification here. A "session" refers to all the new and changed files
since you booted up. However, in the case of moving to a new CD/DVD, the
accumulated sessions have to be burnt to the new CD/DVD -- email, browser
history, application configurations, personal files, everything. So, hitting
the "Save" button puts all of that on the new CD/DVD (with the exception of
old, deleted and archived files, that are left behind on the previous
Technical note: the scripts involved are /etc/rc.d/rc.shutdown and
Apr 13
I still haven't properly resolved automatic mouse
detection. There is a possibility, for someone with C programming skills, who
is also interested in the hardware side of things.
SuSe Linux has a hardware detection package called "hwinfo", that, among other things, detects the mouse. The whole thing is very big, which is why I'm reluctant to put it into Puppy, but we can pick bits out of it.
Looking in the source, I see there is a "mouse.c", but I'm so rusty on C, would be struggling to figure out how to extract that file on its own as a standalone application (plus so much else to do).
It seems to have the right detection stuff in it, and I think there was some more relevant stuff in another file.
Anyone interested? ...it would be a very interesting little project I think.
I have uploaded the hwinfo source tarball to:
Apr 12
Ted Dog has a fast download site for the latest Puppy2:
2cc1b657dfe231fc9d441ae2af210d95 puppy2alpha-snapshot-11apr06.iso
Apr 11
A snapshot of Puppy2 alpha, dated April 11th, has been uploaded. This is
not an official release. It is for Puppy testers and developers.
Get it from here: http://www.pupweb.org/test/
The patched 2.4.31 kernel source is also available from here: http://www.puppylinux.com/test/.
Some notes:
- CD: This can be burnt to CD-R or CD-RW using most Windows or Linux CD-burner programs. If you want to use it in multisession mode (sessions get saved back to CD-R), then be sure the CD-burner program supports multi-session burning (leaves CD "open" for further tracks to be burnt later).
- DVD: There is no known Windows burner program that will burn the DVD properly (?). You need a Linux DVD-burner program, such as Burniso2cd in Puppy -- this program burns the DVD "open", so that it can be used normally or as multisession.
- UPGRADING: If you have tested a previous puppy2 alpha CD, please get rid of any pup_save.3fs file, wherever it is on the hard drive or plugged-in device. Also delete a underdog.lnx file if it exists. This is important!
Forum URL: http://www.puppylinux.com/nfphpbb/
Puppy2 discussion also takes place on the regular forum: http://www.murga.org/~puppy
Apr 11
The utility install has been placed
in Puppy2. This is from the fileutils-4.0 package. It is in usr_devx.sfs (or
devx_xxx.sfs in Puppy2) file, but it is needed in the standard live-CD.
Note that there is a Busybox install applet, but not using that as it lacks features.
Note also, the reason that I'm doing this is while testing MU's Debian package installer, found a .deb that uses install, probably others do too.
Apr 10
Xorg has a dozen or so hardware-specific drivers, but they do not always
work well. The Intel 'i810' driver for example. Or there may not even be a
driver to match the video hardware. But, Xorg has a generic driver called
'vesa', which works kind of like the Xvesa Kdrive X server (but do not
confuse the two!), and should work on most video hardware, but with some loss
of features and performance compared with a hardware-specific driver.
I have modified the Xorg Wizard so that if the hardware-specific driver fails, an option is offered to switch over to the vesa driver. The Wizard makes the appropriate change in xorg.conf automatically. My PC uses the 'sis' driver, but I'm running the vesa driver right now -- works okay, although startup is a bit slower.
Apr 9
Mark Ulrich (MU on the Forum) now has a PayPal button at http://dotpups.de/. I've donated US $62, just a
token to say thanks for his input (just redistributing some of what others
have donated to me!).
The Xorg Wizard had a problem, when the test X window is displayed there
is an "okay" button, but it was only selectable by the mouse. If the mouse
isn't working then the button could not be clicked. Now it can be selected by
the ENTER key also.
The Xorg Wizard now has a dialog to choose the mouse, in case the
autodetection at bootup got it wrong.
I have restored the correct i810_drv.o driver file in Xorg version 6.8.1.
This is the version currently used in Puppy. The i810 driver had some
problems, and we substituted the i810 driver from Xorg v6.8.2, however it
appears to cause a resource leak.
Xvidtune is a GUI utility to adjust the screen up/down/left/right and
width/height, in case the current Xorg mode is not rendering quite right on
the monitor. I have now incorporated Xvidtune into the Xorg Video Wizard, so
that changes created by Xvidtune can be automatically inserted into the Xorg
configuration file /etc/X11/xorg.conf.
A problem though with Xvidtune is that it does not work with all video hardware.
Apr 7
Program fc-cache is added to
Puppy2, from the Xorg v6.8.1 package.
Pakt has improved the xkb directory used in the Puppy2 snapshot of March
29, adding more languages and cutting the size down. This (improved directory
/etc/X11/xkb) is now in Puppy2.
Apr 7
Some more very good news. Something that I have never been happy with is
how images are rendered on the desktop. A few versions back, we only had the
"fillscreen" and "fullscreen" modes of xli (the program that writes an image
to the desktop) -- but these only work properly for screen resolutions that
have the same ratio as the image. We got effects like white bands top and
bottom, or a totally white background (image not displaying at all). MU came
to the rescue with his /usr/sbin/fitimage2root script, which uses some extra
options of xli to make the image fit for any screen resolution, but the
downside is that the result was blurred. I particularly notice this as I run
my screen at 800x600, and xli blurs the image considerably when it scales an
image down to fit (with or without the -smooth option).
Last night I decided finally to do something about it, and I rewrote
/usr/sbin/fitimage2root, using utility applications from the netpbm suite
(which have always been in Puppy). The programs jpegtopnm, pngtopnm and
giftopnm do what they suggest, output to stdout, and pnmscale scales the
image in any arbitrary fashion. The result is a file that is the exact size
for the screen, and xli can display it without having to process it any
The conversion process is a bit slow, and there is a noticeable delay, JWM and Rox appear and then there is a pregnant pause before the background appears. So what I have done is cache the converted image, so subsequently when X is started, the background image appears instantly.
I'm mighty pleased. I tried lots of images, and at 800x600 they all look crisp. Most of the background images in Puppy (that you can choose from the "Desktop background image" entry in the Control Panel menu) are 1024x768, and if you run a higher screen resolution, we could play with some smoothing -- easy enough to put a test into the script comparing screen and image resolutions and if need to scale up, then activate smoothing (either in xli or a netpbm application). When I release the next snapshot of puppy2, anyone interested is welcome to play with the script -- note, xli has a "-identify" option that returns the image size.
I also tweaked /usr/sbin/video-wizard, the Xvesa Video Wizard, to work
nicely with fitimage2root. You may have experienced when booting Puppy for
the first time, choose Xvesa, it initially comes up in 640x480 screen
resolution and a white background. Well now the background image displays for
all resolutions when the Xvesa Video Wizard is being used to test screen
Apr 6
Puppy now has automatic detection of mouse and keyboard. Or rather, I've
written the code, haven't tested it -- but quite confident, barring typos.
On first boot, Puppy will choose in this order of preference: USB, PS/2, serial. So, if you have both USB and PS/2 mice plugged in, the former will be chosen. Ditto for the keyboard. However, you can override by using the Mouse/Keyboard Wizard -- for example, choose the PS/2 mouse, so even if a USB mouse is plugged in, the PS/2 mouse will be used. On the other hand, if the Wizard has chosen a PS/2 mouse but at the next boot it isn't there, then Puppy will use what is there (the Wizard's info will also be updated).
The two scripts involved are /etc/rc.d/rc.local0 and /usr/X11R6/bin/xwin. The former now does all the detection and loading of modules.
One good thing about this is that the first time someone boots Puppy,
there is one less dialog window. You still have to choose keyboard
country-layout and whether your mouse has a scrollwheel.
Another good thing is the improved portability, taking a Puppy multisession CD/DVD or USB pen drive to other PCs.
Apr 5
It was reported that the Chooselocale program (selected from the Control
Panel menu) is broken in Puppy2. I've fixed it. The fault was that it
referenced /root/.packages/unleashedpackages.txt, but this file no longer
exists in Puppy2. I also updated /root/.packages/README.txt:
packages.txt is a list of all the packages in Puppy Unleashed, the buildIn Puppy1, not all packages in the Unleashed suite are suitable to become PupGet packages, due to the restriction that only top directories /etc, /root and /usr are persistent (can be saved permanently), hence unleashedpackages.txt is a list of all the packages in the Unleashed suite, while packages.txt is the same but those unsuitable to be PupGets are removed.
system from which this live-CD or Puppy installation was created.
Those packages already installed on the live-CD (in pup_xxx.sfs file) are
marked as "on", if not installed are marked as "off".
livepackages.txt is a subset of packages.txt and initially is a list of all
the "off" packages from packages.txt, that is, those that are not installed
in the live-CD.
The packages in livepackages.txt are available for download and installation
by the PupGet package manager, to the pup_save.3fs file (the personal persistent
storage file, like the pupxxx file in Puppy1) or if your persistent storage is
a drive partition they will get installed there.
Once installed by PupGet, the entry in livepackages.txt gets changed to "on".
Puppy1 has another file, unleashedpackages.txt, in addition to the above, but
this causes confusion and is now eliminated in puppy2.
This is a layer of confusion though, and as Puppy2 is able to permanently save everything under "/", all of the Unleashed packages can be PupGets, so now there is only the one file, packages.txt.
Apr 5
I'm working on mouse autodetection. See this forum thread:
Apr 4
Pakt reported a bug in Puppy2: he has both usb keyboard and usb mouse, but
the keyboard only worked after selecting the usb mouse (he never explained
how he did that, unless he was able to use a ps/2 keyboard). Anyway, I think
I've fixed it.
I have implemented autodetection of both usb mouse and usb keyboard, so the first time you boot puppy these will be autodetected. However, you will still be asked if you have a scrollwheel, and the country layout.
A question that has come up a few times on the forum is what about
hardware detection when a multisession-CD or USB installation of Puppy is
moved to a different PC? For now, the PCs will have to have the same type of
keyboard and mouse. For X, you would need to choose Xvesa for portability.
Anyway, I've made a step in the right direction, and hope to fully autodetect mouse and keyboard at every boot -- in the not too distant future.
Apr 4
Ah good, I have fixed the "read only filesystem" bug in Puppy2. Puppy
testers got this bug when they saved the first session to floppy or USB
drive, or installed Puppy to USB drive. This was the big bug in the March 29 snapshot.
I sifted through the init script and fixed a few other things as well.
Apr 3
The file initrd.gz is the initial ramdisk in Puppy2. I have reduced the
size of this file from 1,647K to 911K. This was achieved by recompiling all
the programs in it to use uClibc,
instead of the standard glibc C library.
Some technical notes about this. The site www.uclibc.org has a "Toolchains" webpage
and a product buildroot that can
build a complete ext2 root filesystem from source packages -- except that I
got too many compile errors, so instead downloaded their ready-to-go i386
root filesystem. The latter is a 22M file, root_fs_i386.ext2.gz, and the
version that I downloaded on April 1st uses uClibc version 0.9.27. After
expanding with gunzip, it is about 100M, but it needs to be increased to
# dd if=/dev/zero bs=1024 count=300000 >> root_fs_i386.ext2
# sync
# resize2fs root_fs_i386.ext2
It can then be mounted and chrooted into:
# losetup-FULL /dev/loop2 root_fs_i386.ext2
# mount -t ext2 /dev/loop2 mount-directory
# chroot `pwd`/mount-directory
I found though, that a few things are broken. It uses a program called
ccache, that confused about half the
packages that I tried to compile. Disable ccache by changing a couple of
# ln -sf /usr/bin/gcc /bin/cc
# ln -sf /usr/bin/gcc /bin/gcc
The installation of zlib is also broken. The files zlib.h and libz.a are
missing, the first is essential, the second required by some packages. Either
grab these from somewhere, or download the zlib source tarball from the
uclibc site and recompile it.
All of the source tarballs used to build the root filesystem can be
individually downloaded from the uClibc site. Some relevant versions, used in
my initrd: zlib 1.2.1, busybox 1.01 (later than version
inroot_fs_i386.ext2.gz), coreutils 5.2.1, findutils 4.1.20, e2fsprogs 1.35,
grep 2.5.1, sed 4.1.2.
The above technical information is for any Puppy developer wanting to
compile applications for initrd.gz. Note that the uClibc website has a
warning that the latest version 0.9.28 does not have binary compatibility
with 0.9.27, so when they upgrade their root_fs_i386.ext2.gz, you will have
to either ask them to provide the older one, or maybe I can upload it
somewhere. In fact, I could upload my "fixed" version.
Mar 30
There are reports that the md5sum is wrong for the 29th March Puppy2
snapshot. So, it is also uploaded here:
Mar 29
A snapshot of Puppy2 alpha, dated March 29th, has been uploaded. This is
not an official release. It is for Puppy testers and developers. Get it from
The patched 2.4.31 kernel source is also available. Some notes:
- CD: This can be burnt to CD-R or CD-RW using most Windows or Linux CD-burner programs. If you want to use it in multisession mode (sessions get saved back to CD-R), then be sure the CD-burner program supports multi-session burning (leaves CD "open" for further tracks to be burnt later).
- DVD: There is no known Windows burner program that will burn the DVD properly (?). You need a Linux DVD-burner program, such as Burniso2cd in Puppy -- this program burns the DVD "open", so that it can be used normally or as multisession.
- UPGRADING: If you have tested a previous puppy2 alpha CD, please get rid of any pup_save.3fs file, wherever it is on the hard drive. Also delete a underdog.lnx file if it exists. This is important!
Forum URL: http://www.puppylinux.com/nfphpbb/
Mar 29
Fixed some more bugs in init and rc.shutdown scripts.
I have decided to release the puppy2 alpha snapshot later today, as have
to do something else (non-Puppy) for the next few days.
I haven't completed chasing down one bug. The first time a CD/DVD is
shutdown, the session can be saved to floppy disk. That part works, but at
bootup there is a problem. The saved session, pup_save.2fs, is found on the
floppy and mounted, but then something goes wrong. I have to leave that one
for now, as have to do something else, but if the idea of saving the session
to floppy interests someone, feel free to investigate this bug!
Of course, you have to set the BIOS boot sequence to CD drive first, as the floppy will have to be in the drive on subsequent boots.
Note also, booting from live-CD, sessions can be saved to a USB pen drive, in theory anyway, as I haven't actually done it yet, have just put in the code to do it.
Mar 28
Okay, I fixed a bug in rc.shutdown, and the full hard drive installation
now shuts down properly.
I'm testing a serial mouse in Puppy2, it sure is "nervous". Single clicks
are too easily interpreted as double clicks. In ~/.jwmrc and
~/.jwm/jwmrc-personal, there is a setting for double-click speed -- I made
that a bit bigger, but not sure if it has improved. If this is a JWM problem,
then the same symptom will be in 1.0.8r1. Anyone with a serial mouse who has
this problem? Any thoughts on fixing it?
I'm thinking that the double-click-delta may have to be increased, as my old mouse has coarse movement (low dpi)? Here are the current settings:
<!-- Double click speed (in milliseconds) -->
<!-- Double click delta (in pixels) -->
Mar 27
In Puppy 1.0.8r1, xkb is somewhat broken. This is the keyboard layout
system for Xorg, and the directory in question is /etc/X11/xkb. Puppy2 alpha
snapshot of 12 March 2006 has the same xkb folder as 1.0.8r1.
Pakt, lior2b and Dougal have investigated and devised improved xkb folders.
For the next Puppy2 alpha snapshot due out at the end of March, I am experimenting with Dougal's xkb folder, due to it's small size -- let us know on the forum how it works.
JustGreg and I are chasing down the bugs in the "option 2" (full) hard
drive installation, using the Puppy Universal Installer in Puppy2. I found a
bug in the /usr/sbin/grubconfig script. After fixing that, I successfully
installed Puppy to a ext3 partition and created both a boot floppy and
installed Grub into the MBR.
There is however another bug: Puppy starts up fine, but at shutdown the /etc/rc.d/rc.shutdown script throws a fit and exits to the prompt. I have a good idea what the cause is, but have to eat now! Will fix it tonight.
Mar 26
My Pmount drive mounter program for puppy2 now handles Zip and LS120
internal ATAPI (IDE) drives.
The Puppy Universal Installer for puppy2 now installs to Zip and LS120/250
There was a recognition bug at bootup, in the init script, that I have fixed and will do what should be the final test tonight.
Mar 26
JustGreg did some incredible research into getting USB Flash drives to
boot puppy2. Forum thread:
Mar 25
I'm doing some more work on the Puppy Universal Installer for Puppy2. The
"option 1" (poor man's) hard drive install has been improved.
Mar 23
If you are testing the March 12th snapshot of Puppy2, multisession CD/DVD,
don't bother with testing what happens when the CD/DVD gets full. At
shutdown, or whenever a session is saved, you will be asked to insert a new
blank CD/DVD, but the old session wasn't properly saved to the new CD/DVD.
I've just fixed it.
The new CD remaster program for Puppy2, written from scratch, is now
working. Nice GUI interface, easy to use. The script is
Mar 22
I'm writing a remaster-CD script for Puppy2. Getting there!
Mar 21
JWM is fixed, plus Lior is adding more features! See thread: http://www.murga.org/~puppy/viewtopic.php?t=6907
Mar 19
Mitch Bradley has studied the startup and shutdown scripts for puppy2 in
detail, and made a suggestion how to better mount the pup_xxx.sfs file. For
certain PUPMODEs, if sufficient RAM, pup_xxx.sfs was copied from the boot
partition to pup_rw (the tmpfs ramdisk) then mounted by a loopback device
onto pup_ro2. Thus, pup_rw, the top unionfs layer, has a file that is mounted
as a lower layer, probably not the most healthy configuration. I cleaned this
up by copying pup_xxx.sfs to another tmpfs ramdisk, /mnt/tmpfs (path from the
point of view of the init script, prior to pivot_root). Thus pup_xxx.sfs is
in RAM but outside the unionfs layers.
Mar 19
Thanks to Lior Tubi (lior2b in Forum) who showed how to make the "Print
Screen" key work in the JWM window manager. I've added the appropriate line
into ~/.jwm/jwmrc-personal. Forum thread: http://www.murga.org/~puppy/viewtopic.php?t=6882
In the case of the multisession CD/DVD, the persistent storage is on the CD/DVD itself, so any extra .sfs files are left as-is and will be loaded at bootup ...but that is going to be slow when running Puppy. Can't help that though, as the whole idea of multisession is to be independent of the hard drive. I might add a bit more code to try and load them into RAM, if there's room.
In a nutshell, what the above paragraphs mean is that you can burn a puppy2 live-CD/DVD with the base iso file and any extra .sfs files that you want, and they will be automatically recognised and loaded.
Mar 18
I have setup a forum especially for developers and testers of Puppy2. This
is intended to be low-traffic and very focussed. Puppy2 is our experimental
next-generation Puppy, not yet for general usage. URL:
Mar 18
I had hoped to announce JWM upgraded to version 1.5, but the
taskbar-related bugs have got worse, not better. Here is a snapshot:
- The little glitch on the left side is still there.
- There is now a large gap between the application tabs (rxvt and beaver)
and the swallowed applications -- this appears to be due to the blinky
entry not having a width="" parameter (see below). The horizontal space
being automatically allocated to Blinky is not correct.
- The above image shows xload swallowed application (and blinky is running but nothing is showing as my network is down), but if I restart JWM (using <Restart> tag), the entire swallowed-apps area disappears, including xload, and the application tabs fill the entire space right to the clock display. Xload and Blinky are actually killed.
- Disaster: If my network comes up, or goes down, JWM crashes.
Blinky-related bug.
<!-- Additional tray attributes: autohide, width, border, layer, layout -->JWM 1.5 has lior2b's patch, and the horizontal space allocated for blinky should reduce to a very small space automatically? If I go back to width="39" for blinky, then behaviour is as the unpatched 1.4.
<Tray autohide="false" insert="right" x="0" y="-1" border="1" height="26" >
<!-- Additional TrayButton attribute: label -->
<TrayButton label="Start" icon="mini-dog.xpm"/>
<!-- Additional Pager attributes; width, height -->
<!-- Additional TaskList attribute: maxwidth -->
<!-- <Dock/> -->
<Swallow name="blinky">
blinky -bg "#BCBAB5"
<!-- Additional Swallow attribute: height -->
<Swallow name="xload" width="32">
xload -nolabel -bg "#BCBAB5" -fg red -hl black
Also the "--disable-fribidi" configure option does not work.
Anyway, I'll report these problems to Joe, the JWM developer. If anyone else (Lior?) has any thoughts on this, let me know.
Mar 17
Um, I realised that the wording of the copyright notice at the bottom of
this page needs to be changed. It had something like "This is the logo for PuppyOS". Now it states "This
is a logo for Puppy, also known as
Puppy Linux and PuppyOS".
Mar 17
I've been thinking about the ownership of the various logos designed for
Puppy. Each Puppy site, and Puppy-derivative sites, are using their own
distinctive logos. It has evolved that way. It is possible to, that each
version of Puppy will have a logo with some distinctive feature that differs
from other releases. Anyway, would we be happy if someone took one of the
logos and used it for something else, perhaps totally unrelated to Puppy
Linux, or, another unrelated Linux distro?
Prior usage does carry legal weight, at least in some parts of the world, however, I decided to explicitly state the copyright and conditions of use of the logos that I am using on my sites. See bottom of this page.
I thought that I should do something, rather than nothing, but perhaps you
have thoughts about a better way to claim ownership of our logos? Please
raise the topic for discussion on the Puppy Forum. A good starting point is
to read about earlier input regarding Puppy logos: http://www.murga.org/%7Epuppy/viewtopic.php?t=3543
I would like to acknowledge David May, who vectorised a photo of the
"real" Puppy (see puppy_experiment2.png in the above thread). My logo, that
you see at the very top of this page, is my own take on converting the photos, inspired by David's work.
Mar 16
Foxti has progressed with getting VPN (Virtual Private Networking) with
MPPE to work. See this thread:
Mar 16
Apologies to anyone who sent an email to bkaulerATgoosee.com and it
bounced. This was due to the changeover of hosts. Or, it may have simply
disappeared -- I sent a couple of test emails and they were sent okay but
then just vanished. Anyway, the transition has completed and the email
address is working again.
Mar 15
Thanks to Jonathan Marsden (forum name jmarsden), we now have the Mantis bug tracking
If you find a bug, or have a suggestion, probably the first stop is to see if it is being discussed on the Forum (www.murga.org/~puppy). The next step would be to go to the bug tracker and see if the bug/suggestion is already reported. Final step is to report it.
Jonathan's Mantis bug tracker is here: http://tracker.nfshost.com/mantis
Note, the bug tracker is currently only for the "official" Puppy, not for
derived distros such as Grafpup. However, Puppy-based distros do sync with
the official Puppy more-or-less, but you would need to confirm a bug is also
in the latest official Puppy release before reporting it.
Mar 14
Domains puppylinux.com and goosee.com now moved to new host. Waiting for
the updated DNS records to filter throughout the Internet.
Mar 14
I received a renewal notice from my goosee.com host. As the account
expires in less than a month, and as Servage.net, the host for puppylinux.org
and puppylinux.com, is near CPU-usage capacity, I decided to signup with
another host and move goosee.com and puppylinux.com to it.
So, there will be a momentary hiccup as the DNS's get updated. Will probably changeover tomorrow, busy uploading files and editing some webpages right now.
Mar 11
PupGet package manager is fixed to work in puppy2. There was a report on
the forum that it didn't uninstall properly, due to the absence of directory
/root/.usr -- that was easy to fix, but I had to rethink how files are
uninstalled if they are over-writing an original pristine file from
pup_xxx.sfs (equiv. to usr_cram.sfs). The way it was done in puppy1 could
actually corrupt the unionfs file management, but now it works fine. What
happens now, is if you install a package that has, say, library file xyz.so,
but puppy already has xyz.so in the pristine pup_xxx.sfs file, when the
package is uninstalled the original pristine file is restored. The exception
is a full hard drive installation -- you uninstall the package with xyz.so
it's gone, deleted. Well, that's how distros normally work anyway -- puppy's
restoration of the original pristine file is a special feature of Puppy.
The first dialog window that the Pupget package manager displays did not
look very professional. It used the xmessage program. I have reworked it to
use gtkdialog.
One more thing. I remembered someone reporting that when the PupGet
package manager uninstalls a package, any empty directories (after the files
of the package have been deleted) are not deleted. Now they are.
Mar 11
A clarification about VPN from rarsa: "IPsec VPN is
happily running in puppy. I have been using it for quite some time. It's just
the MPPE VPN people have had trouble with." More details on Forum:
Well, it looks like I will finally be getting
broadband. Here in Australia the government has a subsidy scheme to bring
broadband to rural areas, and my local town is getting wireless broadband,
via satellite. I'm not yet 100% sure that my place will be able to connect
up, as I'm out of town a bit and not quite line-of-sight. Anyway, fingers
crossed. It will solve my uploading problems. I'm not sure when they will be
installing, maybe one or two months away.
I'm in the process of setting up a blog. I have
sometimes referred to this Developer News page as my blog, but it's really
only a plain static HTML page. The blog I'm using, WordPress, looks real good
from the description. It's a bit like a wiki in that others will also be
allowed to contribute. Anyway, I don't really know much yet as I've only got
as far as installing it. I know my web pages are badly in need of an
overhaul, so I'll play with WordPress and see if it is what I need. If anyone
reading this has experience with WordPress and would like to comment, or
maybe give me a suggestion about some feature of WordPress that would be good
for my site, please post on the Forum and we'll have a chat.
Mar 9
The 2.4.31 kernel has been recompiled with the mppe-mppc patch version
1.3. So, the kernel now has three patches, ntfs, squashfs and mppe-mppc.
ppp has been upgraded to version
2.4.3 and patched with mppe-mppc patch version 1.1.
Mar 9
Ian's Xwget
GUI frontend for wget downloader is now in Puppy. Version 0.4 has a bug, so I
have named the bugfixed version 0.4.1 and made it into a Unleashed
I've been discussing how to implement VPN in Puppy, with Foxti on the
Forum. The kernel needs to be patched to provide MPPE support -- note, kernel
2.6.15 has MPPE support, but I'm using the 2.4.31 kernel for puppy2 (and
maybe for v1.0.9). Looking for patches, I found this site: http://mppe-mppc.alphacron.de/.
This seems to be what we need, so today I plan to recompile the kernel, and
patch and upgrade ppp.
Note, tempestuous has compiled MPPE kernel modules for the 2.4.29 kernel
currently used in Puppy. See Forum thread: http://www.murga.org/~puppy/viewtopic.php?t=6606
Thanks to jmarsden who pointed out how to enable the mouse for Xlock.
Previously, a keypress was required to unlock the screen. Now, a mouse motion
also will do it. (The password of course still has to be entered to complete
the unlock).
Mar 7
Thanks to some great detective work, the bug in Xlock is now fixed. Xlock
is a desktop icon on the top-right of the screen -- click on it to lock the
screen and display a pretty pattern (right-click to choose a pattern). Unlock
requires a password, which was the problem, as any password unlocked the
Read this thread in the Forum to find out how the guys solved it:
Puppy's little CD/DVD burner program, burniso2cd, could not handle USB CD
drives. That is now fixed. In fact it should now also handle SCSI CD/DVD
There is now a dialog window that displays all the CD/DVD drives in the PC and you choose which one you want to burn to.
If you would like to test this new version of burniso2cd, go here:
Mar 5
I'm fiddling around with the usb keyboard and mouse setup. There were
reports of trouble on the Forum. One thing that I have done is migrated from
the usbkbd.o and usbmouse.o kernel modules to the hid.o, mousedev.o and
keybdev.o modules. The first two use a simpler system known as HIDBP (Human
Interface Device Boot Protocol), whereas the latter use a more sophisticated
HID protocol. I'm using a usb keyboard and mouse right now, seems okay.
Also right now I'm running from a multisession-CD -- that seems to be very
solid now. Will keep testing it, make sure it stays that way.
Mar 4
Upgraded rarsa's improved Network Wizard script to version 21.
Note, having these drivers builtin, rather than having to download and install them, is good for dialup people, however of course these are not the only kind of software modems. If you have a HSF/HCF type of modem, you still have to install the driver separately -- see the Forum.
(As always though, we recommend you get a real hardware modem -- second-hand external serial modems are very cheap on eBay).
Mar 2
I rewrote the script for the desktop "Save" icon for puppy2. For
multisession-Puppy, the "Save" icon is a means to save the session to CD-R/RW
or DVD-R immediately, without having to wait until shutdown.
Why would you want a "Save" button? Previous Puppy users found that saving
at shutdown is iffy, so this gets around that problem -- although the latest
puppy2 saves very reliably at shutdown. It can also be useful if you are
writing the next Great American Novel and worry about a power outage causing
loss of the last three hours of typing.
There is yet another use, a really neat one: say you have downloaded the latest version of Puppy, and you have burned the iso to CD/DVD (in multisession mode of course). Then just click the "Save" button and hey presto your new CD/DVD is ready to go with the latest session on it.
Note, previous puppies didn't have a "Save" icon for multisession-CD,
however do have it now, but it needs to be used sparingly as CDs fill up very
fast. This is due to the considerably less storage on a CD, but also each
saved-session has about 12M (I think, from memory) wasted space (whereas a
saved-session to DVD is much more space-efficient).
Technical note: the actual script is /usr/sbin/savesession-dvd.
Mar 2
Major improvements to multisession shutdown. Reliability of session-saving
for both CD and DVD improved.
I found that the Joliet extension can sometimes cause session-saving to fail, so have removed it. A previous problem with some files and directories not getting saved has been fixed.
Detection of CD or DVD being full is now detected in a much more elegant manner. The new code is so much simpler than the previous kludge.
Note that all notes in this page from now on refer to puppy2, unless
specifically stated otherwise.
Feb 28
Good news. I found that the problem with ndiswrapper and the 2.4.31 kernel
is the lck patchset (from plumlocosoft). I took the vanilla 2.4.31 source and
only applied the ntfs 2.1.6b and squashfs 2.2 patches, and now ndiswrapper
works. So, we are back onto using the 2.4.31 kernel for puppy2.
Ndiswrapper is upgraded to version 1.10.
Feb 26
Pakt (forum name) has made further improvements to xkb, the keyboard layout component of Xorg. If you find that the layout is still wrong for your country, visit the Forum here:
also here, for a different solution from MU:
For developers, puppy-unleashed-core-1.0.8r1.tar.gz has been uploaded to ibiblio.org.
Feb 25
Puppy Linux
version 1.0.8r1 (revision 1) released. This is a few minor bugfixes.
Each of these bugs in 1.0.8 can be manually fixed (see notes below), however
for convenience here is a release with the fixes. The size is 61.7M. Release
- Clicking on the Gaim desktop icon now does automatic account creation for the #puppylinux IRC channel.
- The "Help" menu entry now works.
- The ide-floppy.o kernel module is back. This is required for an internal ide Zip drive.
- Xorg now has these applications: xkbcomp, xkbevd, xkbprint, xkbvleds and xkbwatch. At least one of these (xkbcomp) is needed for country keyboard layouts to work.
- UPGRADING: If
you have already run version 1.0.8beta or 1.0.8, edit /etc/puppyversion
text file and change the string "108" back to "107". Do this before you
bootup 1.0.8r1.
Feb 24
Peter Sieg has also mirrored Puppy 1.0.8:
The language on this site is german.
Another one snuck through, also easily fixed:
Please download the file xkbcomp.gz, to /usr/X11R6/bin/. You can uncompress it by opening a terminal (Running Rox file manager, with /usr/X11R6/bin as current window, right-click and choose "xterm here"):
# gunzip xkbcomp.gzThen restart X (look in Shutdown submenu).
If you find this still does not work for your country, there is another solution, that also works for Puppy 1.0.7:
Feb 23
Babbs has 1.0.8 files also:
Feb 23
Puppy 1.0.8 is mirrored here:
md5sum: c96b7e03a9aaa9bc4458efdca3e195ec puppy-1.0.8-mozilla.iso
md5sum: 13e5ea99585b3dac46874cd0eb3d74b3 puppy-multisession-1.0.8-mozilla.iso
http://puptrix.org/std/usr_devx.sfs (developer module)
Ted Dog has mirrored them here:
We will bring out a "service pack" to fix any minor bugs, but this one is easy to fix manually.
When you look at the menu in 1.0.8, near the bottom is the "Help" entry. This is not working.
Please start the Rox file manager, right-click the mouse to bring up a menu, choose "Display -> Show hidden". Then you will be able to see hidden files. Click on the file ".jwmrc". There is this line:
<Program label="Help" icon="help24.xpm">LD_PRELOAD=/usr/lib/libgdkxft.so dillo /usr/share/doc/index.html</Program>Change it to this:
<Program label="Help" icon="help24.xpm"> dillo /usr/share/doc/index.html</Program>Save the file, then choose "Shutdown -> JWM restart" from the menu. That should fix it.
CLARIFICATION: Using Gaim
If you want to start Gaim and be automatically connected to the #puppylinux IRC chat channel, please start Gaim from the menu the first time that you run Gaim. The desktop icon just starts Gaim without the automatic account creation -- but after having run Gaim once from the menu it will then be ok to run from the desktop icon as the account has been created. Slight inconsistency there!
Feb 22
Puppy Linux
version 1.0.8 is released. The live-CD iso file is named
puppy-1.0.8-mozilla.iso and the size is 61.5M. There is also a multisession
iso named puppy-multisession-1.0.8-mozilla.iso. Release notes:
- The biggest news item is the move from OSS to ALSA sound. A modified version of the alsaconf script is used to auto-configure the sound at bootup.
- Puppy 1.0.7 has the Xvesa and Xorg X servers, but the latter is stuck on "us" keyboard layout as the xkb component of Xorg is missing. Puppy 1.0.8 has a reduced xkb component that will now give correct keyboard layout and characters for the major countries.
- Lior Tubi has greatly improved the original Blinky taskbar network monitor, and we now have Lior's version 0.6 of Blinky.
- Jonathan Marsden has developed a script, gaim-autosetup.sh,
to automatically login to the #puppylinux IRC channel on
irc.freenode.net. Select Gaim from the menu and an account is
automatically created for you -- immediately start chatting with other
Puppy enthusiasts!
- Rarsa's Ethernet/Network Wizard version 20, a big improvement on my original effort, is also included.
- The window manager JWM is upgraded to version 1.4. Among the many improvements is the ability to swallow applications into the taskbar (Blinky is an example).
- Remembers sound volume between boots.
- tune2fs, badblocks, sudo, sudoedit utilities added.
- mtPaint upgraded to v2.20, gFTP upgraded to v2.0.18.
- Proper support for the serial mouse in Xorg -- scripts /usr/sbin/xorgwizard and /usr/sbin/input-wizard edited.
- Multisession saving at shutdown should now be more reliable.
Previously, sessions sometimes did not save.
- Full versions of cut, chmod and touch to replace Busybox versions.
- I've hacked thoughtjourney's jwmconfig JWM configuration GUI, to work with JWM 1.4. The new Unleashed package is jwmconfig-0.1patched.
- UPGRADING: If you previously tested Puppy 1.0.8beta, please wind the version number back before booting 1.0.8 final. That is, change the content of file /etc/puppyversion from "108" back to "107". This will ensure that the menu is correct.
- UPGRADING: Unlike Puppy2, has retained the "file cleanup" at an upgrade, which will wipe out unrecognised files in /usr. Take care, if upgrading.
problem with Xorg in 1.0.7 is the keyboard layout is "us" only. Fixed for
1.0.8 -- if you use a keyboard layout other than "us", run the Xorg
Wizard again. This will cause the keyboard layout that you chose
originally (and in the Keyboard/Mouse Wizard) to also be applied to xkb,
the layout module of Xorg. Note, if you have the "xmodmap" DotPup
installed, you should be able to remove it. (see notes below)
- The kernel is still version 2.4.29, exactly the same as used from Puppy 1.0.4 - 1.0.7, except the default ramdisk size has been increased to 13824K. Puppy 1.0.8beta uses 2.4.31, however ndiswrapper does not work with it and we are forced to go back to 2.4.29 (see notes below).
Puppy Linux Torrent Tracker:
To discuss Puppy, please go to the Forum, at:
Feb 21
Lior has been busy! He has fixed the bugs in Blinky and released version
0.6. This will be in the final Puppy 1.0.8.
Feb 21
An urgent problem has come up at the 12th hour. I had Blinky v0.5 in Puppy
1.0.8, and there are two bugs. One, when an interface goes down, the Blinky
icon disappears from the taskbar, which is what it is supposed to do, but it
also takes the clock down. Two, and this is the serious one, Blinky gradually
chews up more memory, until the system becomes degraded. You have to be
running for some hours for this to happen, but it's unacceptable.
I have just tested an older version, that we labelled version 0.2patched,
that Lior had improved a little from the original. It still uses the original
rectangular LEDs. Those two bugs are gone. So, v0.2patched will be in
Feb 20
Country keyboard layout selection has been improved somewhat. Some more
countries have been added to the console keyboard layout -- this is the
dialog window you see when you run Puppy for the very first time, also in the
Mouse/Keyboard Wizard. The console layout refers to the keyboard layout in
effect before X is started. The Xvesa Kdrive X server uses the same console
layout, however Xorg has its own totally independent layout system called
Unfortunately, Puppy 1.0.7 has Xorg without the xkb component, meaning
that it is stuck on the default, "us" layout -- except, there is a xmodmap DotPup package available developed
by Mark Ulrich that provides country layouts for Xorg.
The xkb component is a folder, /etc/X11/xkb, and I left it out due to it's
size, about 1.7M, plus it really grated on my nerves that we need to have
duplicate layout systems. However, I have hacked the xkb folder down to 0.5M
and now included it in Puppy.
My cutdown xkb It will be in 1.0.8, however I have not incorporated it into the Keyboard Wizard, so that currently still only affects the console layout. However, the chosen console layout can be made to automatically "flow through" to Xorg by running the Xorg Video Wizard.
New users will do that anyway -- they get the console keyboard layout dialog, followed by mouse dialog, followed by Xorg Wizard.
If you are updating to 1.0.8, I recommend run the Xorg Wizard again, by dropping out of X, run "xorgwizard", and when you restart X, you should find the correct keyboard layout in /etc/X11/xorg.conf -- a line like this:
Option "XkbLayout" "de"
As I only have a US layout keyboard, plus don't know much about other
keyboards, testing is limited. I did verify that selecting "de" gave my a
"qwertz" layout and "fr" gave me "azerty". Users will need to verify the
others and report to the forum (after 1.0.8 is released).
Feb 20
Rarsa (forum name) has been working on a major rewrite of the Network
Wizard. The latest is version 20, and I have put this into Puppy 1.0.8 and
puppy2. When 1.0.8 is released, we invite feedback on this Wizard. Rarsa has
put a lot of effort into this project, and others such as work on a unified
menu system, and I wish to acknowledge here his incredible level of input and
Feb 19
Jonathan Marsden has developed a script, gaim-autosetup.sh, to
automatically login to the #puppylinux IRC channel on irc.freenode.net. I've
put this in both Puppy 1.0.8 and puppy2. When a new user selects "Gaim" entry
in the "Internet" submenu, Jonathan's script is first invoked then Gaim
The script is /usr/sbin/gaim-autosetup.sh, launched from /usr/sbin/gaimshell, which in turn is launched from the menu.
I've decided to put "acpi=off" in isolinux.cfg in the live-CD. The
reasoning is that Puppy will boot on a wider range of hardware. The kernel
was compiled with a year cutoff, I think 2001, such that if the kernel sees
the BIOS creation date is older than 2001 then it won't use acpi. However,
there still seem to be BIOSes 2001 and later that give trouble. When a user
installs Puppy to some media, such as USB or HD, then the current install
scripts default to having acpi enabled, but that is easy to configure. Also,
the live-CD can be remastered if acpi is required to be on. Oh yes, 1.0.8 has
a boot menu, so the default will be acpi off, but option 2 will be acpi
Feb 19
Lobster reported a bug with pmount, my partition mounter. Clicking the
window close box did not cause the program to exit. Fixed.
In 1.0.8beta, the install and CD-remaster entries were missing from the
menu (Setup submenu). Fixed.
There's a bug with Blinky and JWM -- when the network interface goes down,
the Blinky icon disappears from the JWM taskbar, which is what is supposed to
happen. Except that it takes the clock with it. The clock is still running in
the taskbar, hovering the mouse pointer over it brings up the date, however
the time display is no longer visible.
Oh, this is really sad... it was reported that ndiswrapper does not work
with the 2.4.31 kernel. I was also told that Damn Small Linux went back to
the 2.4.26 kernel because of that. Well, I tested for myself. Running the
2.4.31 kernel as used in Puppy 1.0.8beta and 2alpha, tried "modprobe
ndiswrapper" ...and my computer froze. Totally froze. I had to press the rest
button. Oh sad, sad. How on earth could the developers release a kernel with
such an important requirement disfunctional?
The ndiswrapper "Tips" page has this advice:
- You may have used a driver/card that is not supported. Make sure that you are using the driver corresponding to the chipset listed on the Supported Chipsets page.
- Make sure the card is not powered off either by BIOS or by Windows. You should check if the card is in 'Always enabled' mode or something similar in BIOS. You may also be able to enable the card by pressing Fn-F2 or some other key designed to enable the card.
Puppy is using ndiswrapper version 1.1, so I upgraded to the latest, 1.10. But no go, same crash as above. So, looks like I have to go back to the 2.4.29 kernel.
Okay, it's done. Puppy 1.0.8 will use the 2.4.29 kernel, same one as used from Puppy 1.0.4. The only difference is I have recompiled it with a 13824K default ramdisk size instead of 12288K (because of the ALSA modules). I recompiled the ALSA 1.0.8 drivers for the 2.4.29 kernel. Also, I have left ndiswrapper at version 1.1.
Feb 18
The ALSA Wizard is fixed. There were various bugs, such as the Wizard
re-executing everytime X starts (puppy2 bug, occurred if the Wizard failed to
find a driver for the sound hardware), and the last dialog in the Wizard to
play a test sound did not play anything (now you get two barks!).
Feb 18
Fixed the problem of Seamonkey Mail&News window being too big for an
800x600 screen. In the ~/.mozilla folder there's a file, localstore.rdf, that
sets the window sizes.
Looks like I'll stay with Mail&News for puppy2. Feedback on the Forum,
regarding Mail&News versus Sylpheed, is somewhat divided. Despite being a
bit slow, newcomers will probably feel more at ease with Mail&News (er, I
mean Seamonkey is slow, not the newcomers!). Also the powerful spam filtering
is a definite plus.
Feb 18
I've hacked thoughtjourney's jwmconfig JWM configuration GUI, to work
with JWM 1.4. The new Unleashed package is jwmconfig-0.1patched.
Everybody is tired of seeing that seagull! For 1.0.8-final there will be a
new default desktop image.
Feb 15
Ted Dog has mirrored Puppy 1.0.8beta here:
Md5Sum:603aad31658d072ce00df909e268f73c puppy-1.0.8beta-mozilla.iso
Also Mark Ulrich's mirror: http://dotpups.de/puppy-releases/1.0.8-beta/
There are some small bugs discovered. Read about
them, and contribute your own discoveries to the following Forum threads:
One important bug: the JWM Setup submenu is missing the install and CD remaster scripts. The Puppy Universal Installer is only in puppy2. You can run all these scripts from the commandline. This is what is supposed to be in /root/.jwmrc:
<Program label="Create custom Puppy live-CD" icon="mini-ray.xpm">exec /usr/sbin/createpuppyonline</Program>
<Program label="Alienx simple remaster-CD" icon="mini-ray.xpm">exec /usr/sbin/alienx-shell</Program>
<Program label="Install Puppy USB drive" icon="mini-ray.xpm">rxvt -bg "#ffffc0" -e /usr/sbin/install-usb.sh</Program>
<Program label="Install Puppy Zip disk" icon="mini-ray.xpm">rxvt -bg "#ffffc0" -e /usr/sbin/install-zip.sh</Program>
<Program label="Install Puppy hard drive" icon="mini-ray.xpm">rxvt -bg "#ffffc0" -e /usr/sbin/install-hd.sh</Program>
For example, at the commandline, you type:
# install-usb.sh
to run the the USB installer script.
Feb 15
Puppy version 1.0.8beta is available. This is for Puppy-testers, not quite
ready for general release. The file is puppy-1.0.8beta-mozilla.iso (61.9M)
and is avilable at:
Release notes:
- Remembers sound volume between boots.
- tune2fs, badblocks, sudo, sudoedit utilities added.
- mtPaint upgraded to v2.20, gFTP upgraded to v2.0.18.
- Blinky 0.5,
These may be further upgraded for the 1.0.8 final.
- Proper support for the serial mouse in Xorg -- scripts /usr/sbin/xorgwizard and /usr/sbin/input-wizard edited.
- ALSA sound support, replaces OSS. Currently sound is not automatically detected on first boot, the ALSA Wizard must be run.
- Multisession saving at shutdown should now be more reliable.
- Full versions of cut, chmod and touch to replace Busybox versions.
- Unlike Puppy2, Xorg currently does not have Xkb support, and the Lucent
and Smartlink modem drivers are separate PupGet packages. But Xkb may
make it into the 1.0.8 final.
- Unlike Puppy2, has retained the "file cleanup" at an upgrade, which
will wipe out unrecognised files in /usr. Take care, if upgrading.
- Due to inclusion of ALSA kernel modules, the boot parameter
"ramdisk_size=13824" is required, until the kernel can be recompiled. For
now, this parameter will be required also if you install to USB Flash
- The kernel is upgraded to 2.4.31, with SATA support compiled-in.
With the 1.0.x series, I normally release two iso's, a normal one and a multisession iso. The normal iso can be used for multisession, as there is a special boot option (option 5) to be used at first boot. However, this iso is okay for CD, not so good for DVD -- according to very limited earlier testing. Consequently, I usually release a iso file optimised for multisession DVD. Will do so this time when the final 1.0.8 is released.
Just getting started with SATA. Let us know if your drive is recognised, or not.
Kindly evaluate and report any bugs to our Puppy Forum.
Feb 14
Ted Dog has mirrored the puppy2alpha experimental release on his fast
2cd84372b892fa230395413c1cca9ca7 puppy2alpha-seamonkey.iso
Feb 13
In preparation for testing puppy2alpha, it is helpful to understand something about the inner workings of the new puppy2 architecture. The "How Puppy Works" page has been updated:
And here is the download site for puppy2alpha: http://www.pupweb.org/test/
The live-CD iso file is pupp2alpha-seamonkey.iso and is 66.2M. Release notes:
- This is not an official release. It has bugs, is not quite complete. After this, it is planned there will be a beta, followed by the final official release, version 2.0.0.
- There is currently no upgrade mechanism for an existing "pup001" file.
Puppy2 creates a file with a different name, pup_save.3fs, so there
should be no clash. If you have already tested puppy2 pre-alpha and for
any reason have a pup_save.3fs file, delete it.
- This release has Seamonkey 1.0 full suite. I don't know if I like the Mail&News module. Let me know what you think. Any way to get it to fit in a 800x600 screen? We could go back to Sylpheed.
- The PupGet package management script has not been tested at all in puppy2. There is currently no CD-remaster script.
- The basic scripts for the multisession-DVD seem to be working ok, except that when I chose Xorg, at shutdown the /usr/X11R6/bin/X symlink didn't get saved and at next boot Puppy went back to Xvesa -- glancing through the shutdown code in /etc/rc.d/rc.shutdown, can't see why it didn't get saved.
- There is a report that the 2.4.31 kernel has problems with ndiswrapper. This needs to be tested!
- The above link has the patched 2.4.31 source.
- There is a new Puppy Universal Installer, located at /usr/sbin/puppyinstaller. Needs testing! Do not test on a mission-critical PC though.
- MUT has not been upgraded for puppy2. I sent a forum personal message to Jesse about a week ago, no response. Maybe I should find his direct email address. Anyway, my own Pmount works.
- Lior2b has developed Blinky, but I have only got v0.5 in this release. Lior also patched JWM 1.4, however I found some bugs in 1.4 and I need to communicate with Joe the author of JWM and get him to fix them plus include Lior's patch. Lior's latest Blinky is 0.5.2 that also needs to be put into Puppy.
- SATA support is compiled into the kernel, but I haven't been able to test yet. Testers needed!
- Rarsa and others have been working on wireless networking. I'm a bit behind, but want to catch up and target the puppy2beta to have improved wireless support.
- Lucent and Smartlink software modem kernel drivers included in iso.
- The iso is a bit big. I plan to get it down to 65M by the final
Feb 12
I've reduced the size of Xkb somewhat. For now, there is no configuration
tool for setting up the type of keyboard and country layout, but when
puppy2-alpha is released, you can manually edit /etc/X11/xorg.conf -- insert
the following into the keyboard section:
Option "XkbModel" "pc102"In this example "de" is the German layout.
Option "XkbLayout" "de"
Note that the keyboard layout currently selected when Puppy is first booted is for the console. It appears that the Xvesa Kdrive server uses the console layout, which is great. Unfortunately it appears that Xorg cannot be made to use the pre-X console layout (or can it?), so we have to have a a whole lot of stuff that more-or-less is a duplicate of the console keyboard layout files.
If you need to edit /etc/X11/xorg.conf and the layout is wrong when running X (making typing awkward), exit to the prompt (commandline) then run the mp text editor:
# mp /etc/X11/xorg.conf
Feb 12
sudo and sudoedit are moved from
usr_devx development module to the main iso. Also some other changes as
recommended in this thread: http://www.murga.org/~puppy/viewtopic.php?t=5991
-- well, no a couple of things I didn't do as wasn't sure about them. Flavour
and GuestToo, have a look at this again when puppy2-alpha is released.
I'm experimenting with xkb in Xorg. Previously it was removed to save
Feb 11
Today's test of puppy2 multisession DVD is working. For the last couple of
days I have accumulated a small stack of burnt CD-Rs and DVD-Rs, getting the
bugs out. I'm giving up on CDs, it's just too buggy -- the Linux kernel CD
driver just can't handle multisession CDs and it seems to have got worse with
the 2.4.31 kernel. The multisession DVD on the other hand is working
Note, I have completely rewritten the multisession bootup and shutdown
scripts. Now using a simpler technique. Previously, maintained lists of saved
and deleted files, plus a weird system of using symbolic links for deleted
files. Now, I'm leveraging off unionfs's own layer management mechanisms.
The new multisession scripts are currently fairly basic, missing the
ability to import data from a previous DVD, and missing ability to export
personal data to a new DVD when the current one is full. Hope to add that
sometime. Oh yes, have to bring back that desktop "save now" button also --
it's probably less important now though, as session saving at shutdown should
be more reliable.
Feb 10
I plan to release a test iso, puppy2-alpha soon, probably about 14th-15th.
I had planned to release it about now, but still testing a few things. Also,
I won't be going to perth until Monday -- I'm on very slow dialup in a rural
region, and have to drive four hours to the big city to use my friend's ADSL
connection for uploading Puppy.
Feb 9
Busybox cut has been replaced
with the full version from the coreutils 5.2.1 package (taken from Vector).
It was reported on the forum that the Busybox cut breaks the Linux Firewall
Lior's Blinky version 0.5 is now
in Puppy. I have been chatting with Joe about some problems with JWM version 1.3, and he has now released
version 1.4, and I have upgraded Puppy.
So, what's with "puppy+"? Nothing much. I want to differentiate my own
Puppy creations from the official Puppy release. For now, whatever I release
is the official Puppy, but in the future there may be a community-managed
official, or reference Puppy, and my own development version will be separate
but will feed into the official release. Rather like the relationship between
Sylpheed and Sylpheed-Claws perhaps.
Feb 5
The Puppy universal installer is
nearing completion. Previously it only installed Puppy to USB or IDE-CF
drives, have now added install to hard drive. In puppy1 there are different
scripts for each installation target, now there is one integrated script. It
has a nice GUI too.
A big thanks to Lior Tubi, known
as lior2b on the Forum, who came to the rescue and fixed Blinky (see News for
Feb 3). I've got Blinky running in the taskbar right now, it's great!
Feb 3
As requested on the Forum, the sound volume is now remembered between
boots. At shutdown, in the rc.shutdown script, the setvol program is used to
read and save the left and right speaker volumes to file /etc/.mixervolume.
At bootup, the rc.local0 script reads /etc/.mixervolume and uses setvol to
set the volume.
Note, Joe's Window Manager (JWM) forum has moved to here:
Feb 3
Okay, there's a problem with Blinky, the taskbar network monitor. It
worked fine when I was on dialup, but now that I'm at my friend's place who
has adsl, Blinky is not detecting the active eth0 interface. From my
exceedingly quick scan through the source code, Blinky should do so
automatically. Blinky reads /proc/net/dev and sees which line has activity
(file usage-proc.c). So, it looks like we will have to hack the code a
little. The code could call ifconfig, but that shouldn't be necessary, as
/proc/net/dev has the required info.
Note, Blinky is launched when JWM starts, and the code to do that is in the /root/.jwmrc file. It is executed as just "blinky", however it is allowed to specify an interface, like "blinky eth0" -- however we really want the auto-detection to work.
Blinky can be launched standalone.
Would anyone with a smattering of C knowledge be interested in helping out
You can get my patched source here: http://www.pupweb.org/test/
The package has a precompiled executable in it.
Here is the config I used:
# ./configure --prefix=/usr --build=i486-pc-linux-gnu
I've started this forum thread so that we can discuss and coordinate
fixing Blinky:
Another thing that would be nice is little bar graphs instead of flashing
Feb 2
Gaim v1.5.0 has been recompiled to use the Seamonkey 1.0 nss and nspr
libraries. These security libraries are required to access MSN.
The tune2fs
and badblocks
utilities from the e2fsprogs v1.34 package have been added to Puppy.
The script for increasing the size of the personal persistent storage file
(previously called pupxxx, now called pup_save.3fs) has been upgraded for
Regarding a schedule for puppy2, the current plan is to release
puppy2-alpha iso file around Friday-Sat 10-11 Feb. This is intended to be
almost-feature-complete. Soon after that the beta release will be final
except for chasing down bugs.
Feb 2
I attempted to upgrade the Snack sound library from version 2.2.9 to
2.2.10, but it was a disaster. I compiled the older one for OSS, the newer
for ALSA. The tone generator application (generator.tcl), which can play
various waveforms at selectable frequency and amplitude, played a sine wave
with a weird burbling distortion in the new version, whereas the old Snack,
running with ALSA (through ALSA's OSS compatibility mode), plays the sine
wave perfectly.
The mixer application (mixer.tcl), has a totally scrambled layout in the new version.
Looking at the changelog, there don't seem to be many changes, but they have done something to "improve" canvas renering. Also it seems need to play through ALSA's OSS compatibility layer to get undistorted sound.
So, I'm staying with 2.2.9.
Feb 1
Mark Tyler's mtPaint is upgraded
to version 2.20. gFTP has been
upgraded to version 2.0.18. Mozilla 1.8b1.5 has been upgraded to Seamonkey version
A couple of small things in Xorg Video Wizard and Mouse Wizard have been
fixed. In particular, a serial mouse is now detected correctly.
Jan 31
This will please some people... rc.update script has been updated for
puppy2, and I have done away with the "files cleanout". This was a part of
the version update that deleted all files that did not seem to be part of
officially installed packages. It was controversial.
Jan 31
Okay, it's done already. As mentioned immediately below, the new JWM can
swallow applications into the taskbar. So, I've added a network monitor, by
name of Blinky.
I hacked the source code slightly to get it to fit. Blinky automatically finds the active interface, be it ppp0 (dialup), eth0, eth1, or wlan0, and has two LEDs that flash green if traffic is going out or in. If no active interface is found, the LEDs display with colour dark-red. Hovering the mouse pointer over the LEDs shows accumulated bytes transferred in and out, and right-click brings up a menu to adjust the colours.
Blinky was developed by Benjamin Miller, project home is http://www.sourceforge.net/projects/blinky.
Jan 31
The JWM window manager has been
upgraded from version 0.24 to 1.3. Much thanks to Rarsa (Forum name) who
pioneered this, in particular working out the changes in the configuration
file. Rarsa has also worked on the XDG menu format, but I haven't got into
that yet.
There are some issues with version 1.3, particularly with regard to the
appearance of the main menu. The menu draws from the very bottom of the
screen, the submenu icons are distorted, and the default vertical item
spacing is too large. I'll get onto Joe, the author, about this. Also, JWM
repeatedly spits out this warning message:
JWM: warning: XError: [request_code=153][7]: 183
Thoughtjourney (Forum name) will have to look at this:
JWM: warning: /root/.jwm/jwmrc-personal[9]: invalid tag in JWM: DesktopCount
With this new JWM we can have applications swallowed into the taskbar.
I'll checkout putting a network monitor in the taskbar.
Jan 30
I've just done something very interesting, astounding even. I've dreamed
about doing this for a long time, and it is finally a reality. In a nutshell,
puppy2 can "piggy back" on another distro and use all of it's
I've got Mandrake 9.2 installed on a PC. I booted up puppy2 from CD, and I
created a file, named "underdog.lnx" on a hard drive partition. At shutdown,
I chose that same partition for the personal persistent storage file,
Okay, underdog.lnx is just a text file, and in it I placed the text "hda1", which is where Mandrake is installed.
When I rebooted Puppy, Puppy read the underdog.lnx file, and then used unionfs to add the Mandrake partition as the bottom layer. Here is a diagram (created with Sodipodi) to visualise how it all goes together:
The top layer is a tmpfs filesystem in RAM, next down is the pup_save.3fs file, which is the persistent storage. Third down the the pup_xxx.sfs file, which is a squashfs filesystem with all the Puppy files. On the bottom layer is Mandrake.
You have to visualise each of these layers as a complete filesystem, each
with the complete directory structure. A layer overrides the one below. Thus,
/usr/lib/libz.so on say the pup_xxx.sfs layer overrides the same file on the
Mandrake layer.
The end result is fascinating. It's our normal Puppy, but all the Mandrake
applications are available. In a terminal, I tried kwrite, drakconf, rpmdrak,
kmail, konqueror, many more, they all worked. Of course, they aren't in the
Puppy menu. OpenOffice didn't work though, it complained that libXrender.so.1
is missing, although it is there.
If you don't want the "underdog Linux" anymore, just get rid of the
underdog.lnx file and reboot.
What particularly fascinates me is the Mandrake package manager. I haven't
tried it yet, but if you install a package, where do you think it goes? The
Mandrake partition is mounted read-only, and any new or changed files go onto
the top layer, which gets saved periodically to the pup_save.3fs file. So, if
the underdog distro was initially installed fairly barebones, and you use its
package manager, you are actually installing the packages to Puppy.
Any bugs? Apart from the OpenOffice problem, unionfs has bugs. Rox and
Konqueror both do not show all the files in some directories -- they miss the
bottom layer. For example /usr/bin/kwrite is in the bottom layer (in
Mandrake), and I can see it with commandline tools, but Rox and Konqueror
can't. The notes for Jan 29 describe more unionfs bugs.
Jan 29
Unionfs has bugs. Most users of Puppy 1.0.7 and earlier probably do not encounter any trouble, however there is a problem if files are renamed and/or deleted in a certain combination or certain number of times. This bug is known to the developers of other distros such as Knoppix.
Another Unionfs bug has emerged in puppy2, that does not occur in puppy1.
If you do something like this:
# mkdir /tmp/mntpt
# losetup /dev/loop2 myfile
# mount -t ext2 /dev/loop2 /tmp/mntpt
Unionfs goes into an endless loop, using up a lot of the CPU time. The
reason has something to do with /tmp/mydir being inside a tmpfs filesystem
that appears to be mounted on "/" by the union, but is actually directory
/initrd/pup_rw, which before the pivot_root is actually directory /pup_rw.
Maybe that's confusing, the unionfs handler obviously thinks so.
So what to do? Puppy may use loop0 and loop1, and if squashfs application
extensions are added, such as the devx_xxx.sfs (formerly named usr_devx.sfs),
these use loop3 onwards. So, loop2 is kept available for user scripts. We
need a workaround so that a user script can use loop2.
The solution to the above bug is to use a mount point that is outside the union. For example, mount another partition:
# mount -t ext3 /dev/hda1 /mnt/hda1
# mkdir /mnt/hda1/tmp/mntpt
...then use losetup etc.
Another solution is to create a tmpfs (temporary filesystem). The example
here is using file "initrd", which has a ext2 f.s. inside it:
# mkdir /tmp/tmpfs
# mount tmpfs /tmp/tmpfs -t tmpfs -o size=30m
# mkdir /tmp/tmpfs/mntpt
initrd must be copied into the tmpfs...
# cp initrd /tmp/tmpfs/
# losetup /dev/loop2 /tmp/tmpfs/initrd
# mount -t ext2 /dev/loop2 /tmp/tmpfs/mntpt
do stuff
# umount /tmp/tmpfs/mntpt
# umount /tmp/tmpfs
Jan 28
First test of ALSA in puppy2 is successful. I downloaded the source of
version 1.0.8, for version synchronisation with Vector 5.0STD, 5.1STD and
Slackware 10.1.
I compiled alsa-driver, alsa-lib and alsa-utils packages, then ran the alsaconf setup utility. At first it failed, but I replaced lspci with the one from Vector.
The lspci in Puppy was patched long ago, I can't recall what for. Anyway, it's output is incompatible with alsaconf. Incidentally, lspci is from the pciutils-2.1.11 package.
Alsaconf also needs /var/tmp/alsaconf.cards, which I also got out of Vector.
I've been scratching my head wondering why I patched, or rather hacked,
the source of lspci. Just in case the patched version is needed, it is
retained as lspci-PATCHED.
I also got the start/stop script, /etc/rc.d/rc.alsa, out of Vector.
ALSA home page is here: http://www.alsa-project.org/
Source packages are here: ftp://ftp.alsa-project.org/pub/
After the event, I am now reading the main forum thread that discusses
ALSA: http://www.murga.org/%7Epuppy/viewtopic.php?t=1559
I would like to acknowledge forum member "tempestuous", who was the original effort behind this thread. Various questions are raised... I didn't install alsa-oss package, don't seem to need it? ...the xtmix mixer, which I thought was for OSS only, still works.
Tempestuous raises the question about conflict if both OSS and ALSA
modules get loaded. The solution is to delete all the OSS modules. Actually,
in Puppy Unleashed, the "createpuppy" build script that creates the live-CD
iso file from the Unleashed packages, now makes deletion of the OSS modules
optional. But, it's either that or disable the loading of a OSS module.
Jcoder24 wrote that he edited alsaconf to find modinfo at /usr/sbin, as
that's where it is in Puppy. Ah, so that's why I couldn't get alsaconf to
work using modinfo! -- and needed the alsaconf.cards file instead. Anyway, I
have moved modinfo to /sbin.
Ah ha, jcoder24 has solved more problems! He edited alsaconf to work with
the existing hacked version of lspci. He also fixed a problem with the script
not finding "rcalsasound" -- yes, I will put that in right now. Thanks
Regarding the setup steps, I just ran alsaconf, and when it asked if I
wanted to save to /etc/modules.conf, I replied yes. Sound worked. I then
unloaded all the sound modules, then ran "/etc/rc.d/rc.alsa start" and it
worked. So I have placed some code into /etc/rc.d/rc.local0, that detects if
the required info has been appended to modules.conf, and if so executes
Jcoder24 has pointed out a problem with a lock file, /var/lock/subsys/alsasound. This needs to be deleted at
shutdown or bootup. I've done it in rc.local0.
So, it looks like I have finally committed to ALSA.
It should be in the next pre-alpha test release.
Jan 27
The Puppy Universal
Installer initially displays a dialog window to choose a destination,
and I have added "USB CF Flash, move to CF IDE adaptor". I have a CF-USB
adaptor, so I can install Puppy to that, then unplug the CF card and plug it
into the CF-IDE adaptor on my NTAVO PC.
Jan 26
This is information about the patents on the LZW compression used in GIF
files is interesting (extract from
Apparently both Unisys and IBM took out patents on the same LZW
compression algorithm, a bungle by the US Patent Office.
Puppy2 has moved over to using Bash completely, well almost. The initial
ramdisk (prior to pivot_root) uses Busybox Ash, but when Puppy is running it
is Bash all the way. /bin/sh is now a link to /bin/bash. Note, previously,
bash was located in /usr/bin, due to space restrictions that no longer
Partview, the utility that graphically displays the size and free space in
mounted partitions, has been upgraded for puppy2.
Using a floppy disk for personal persistent storage is a challenge, as it
is such a small space (1.4M). Puppy2 now has special handling to minimize
what gets saved to the floppy. For example, the first time you run Mozilla
(or any of the derivatives), a couple of megabytes of config files are
generated -- there goes your floppy right away. By not saving those Mozilla
config files to the floppy, Mozilla still works on next bootup, it just has
to regenerate them, and you lose customisations. The relevant files are
/etc/rc.d/rc.shutdown and /usr/sbin/snapmergepuppy.
Jan 25
First test of puppy2 booting from live-CD is successful.
It boots up running totally in RAM, then at shutdown a dialog box offers a selection of partitions to create a pup_save.3fs file to save the personal data to -- even a floppy disk is now an option! The dialog even shows free space on each of the candidate partitions. So, I chose a partition, rebooted, and voila, the new pup_save.3fs was found at bootup and loaded.
Running it right now as I type this.
The isolinux.cfg file only has one Puppy-specific boot parameter,
"PMEDIA=idecd", to help Puppy locate the boot media. However, the next step
is I plan to make even that parameter optional. So, I've eliminated all those
others, PSLEEP, PROOTFS, PKEYS, PHOME, PFILE ...um, what were they all again?
...anyway, they've all gone, and soon even PMEDIA will be optional.
The reason this can be done, is Puppy has got clever enough to explore the PC and discover everything automatically.
Note however, PKEYS is still recognised by puppy2, but is optional.
Jan 24
Just a brief note to let everyone know that something is happening! I've
got my nose down, working on the bootup and shutdown scripts for puppy2.
They are the key to the whole thing, so have to get them right. They are shaping up as very small, simple, flexible and elegant.
Jan 21
Ok, I've built dnotify into PupSafe. Dnotify monitors the persistent
storage for illegal file modifications -- this does not affect installing
PupGet or DotPup or any other packages or files, as these are all flushed
from tmpfs to persistent storage by the legal mechanism.
This is still not perfect security, as using a daemon to monitor
directories has its own security issues. The next step up is maybe to use
dazuko, a kernel module, that also
performs file and directory monitoring.
A point of clarification. Pupsafe has nothing to do with whether we login
as root or not-root. It is an extra security layer on top. Login as a
non-root user is still something that we can look at.
Jan 20
Found it! As mentioned in Jan 19 notes, I recalled a certain directory
monitor tool. Here is an overview of Dnotify:
dnotify is written entirely in C, and uses the linux kernel directory notification feature to monitor directories. Because of this, dnotify does not need to poll files every few seconds (like `tail -f' does). All time is spent sleeping until an event occurs. This also means that dnotify only works with recent versions linux (2.4.19 or later is required).
Dnotify is developed by Oskar Liljeblad, url http://oskarsapps.mine.nu/dnotify.html.
Jan 19
Initial test of PupSafe is successful.
PupSafe is a security mechanism to offset the perceived dangers of running as
root. I'm too addicted to running as root, so I've applied some lateral
Running Puppy, the first line of defense is an effective firewall. Also
system files are in compressed read-only file(s) -- for puppy2, there is a
single squashfs file named pup_xxx.sfs, which is read-only and is mounted on
"/". File pup_xxx.sfs has all the Puppy files, all the applications,
everything, and this will remain pristine. However, your personal persistent
storage partition can overwrite any of these files, by the unionfs overlay
system -- the pristine files are still there, just overlaid by your
The unionfs overlay system, which means that all of "/" is writable, is also a security weakness.
Puppy2 has a daemon (background application) (/usr/sbin/savepuppyd) that
periodically saves the contents of the tmpfs ramdisk (which is all your
"working files", meaning new and changed files) to persistent storage. This
also happens at shutdown, when the /etc/rc.d/rc.shutdown script executes. The
actual script that merges files in tmpfs to the persistent storage is
/usr/sbin/snapmergepuppy, and this is what has PupSafe.
In a nutshell, PupSafe will warn you if any system files are going to be modified. However, legitimate exercises, like a package installation, will go through unhindered.
Currently this is a fairly light-weight defense mechanism, relying on an
intruder's ignorance of the unusual architecture of Puppy. In future we could
consider protecting the scripts savepuppyd and smapmergepuppy from being
modified or killed even by the root user. There are other possible
enhancements, but I just wanted to get the basic thing working for now.
Note also, that unlike normal distros, as a last resort you can always
revert to the pristine Puppy, as the pristine files and the modified system
files in your persistent storage partition are always separate. So you are
never going to have a crippled or unrecoverable system. Even a "full" hard
drive installation can maintain this separation.
There is something that I would like to incorporate into PupSafe: sometime
ago I came across a program that was able to monitor any directory and report
if any file anywhere in that directory was modified. It did this in a very
efficient manner (very low CPU overhead while running as a daemon), making
use of a kernel feature that notifies of any file or directory changes. I've
forgotten where I found this program, so if anyone knows, kindly let me
In the future, if anyone says you shouldn't be running as root, you can
reply, "Ah, but Puppy has PupSafe!".
Jan 18
The Puppy drive/partition mounting program Pmount has been upgraded for Puppy2.
What this means is that it recognises the different mount points used in Puppy2, and can now handle the "superfloppy" type of drive. In theory anyway, as I haven't got one to test right now. Some USB Flash drives and some ZIP drives are formatted without a MBR nor partitions, and these are referred to as "superfloppy" drives. The "partition" is effectively the entire drive, so the "partition" is accessed as /dev/sda (for example), in contrast with normal drives that have partitions /dev/sda1, /dev/sda2, etc.
Jan 17
Ah good, test successfull. Puppy users will know about a problem, a "catch
22" situation. The very first time that you boot the Puppy live-CD on a
computer, a personal storage file named "pup001" is created automatically.
This is a problem if it gets created on, say, /dev/hda1, the "C: drive", but
you want to install Puppy to that partition. Our workaround was a menu with
boot option to not create pup001 and just run in ramdisk.
I'm trying to get Puppy2 away from needing any menu (and subsequent pause) at bootup. Puppy2 tackles the problem the other way round, by booting up in ramdisk-only the first time you boot on a PC, then at shutdown you are asked if you want to create a personal storage file. If you anser yes, it will get created and automatically used next time you boot Puppy.
Yeah, simple, and it's working. Right now I'm running Puppy2 booted from USB Flash, with a personal storage file, named "pup_save.3fs" that I chose to create at the first shutdown. The principle works regardless whether booting from CD, USB or whatever.
Note, some people considered that Puppy should boot up only in ramdisk by
default, for "ethical" reasons. Or maybe, "stealth" or "non-invasive"
reasons. Whatever, your wish is now reality.
Note, I have decided to have a fixed name for the personal storage file:
pup_save.3fs. Also, have made it a ext3 filesystem rather than ext2, as the
former gives more reliable storage, particularly in the case of a crash or
power outage.
Note, I'm writing a "universal installer", a sneak preview will be
available with the next pre-alpha release.
Jan 17
Phew, I've had a very frustrated few days, chasing down that problem of
dialog "crashing".
Thanks to the current maintainer of dialog, Thomas Dickey, for prompt replies to my questions. I quickly realised that the problem is not with dialog, but appears to be inside Busybox.
What is happening is when I type "poweroff" at the prompt, the shutdown
script /etc/rc.d/rc.shutdown executes, but any user input requires two
duplicate key presses. The first press causes a "#" prompt to appear on the
screen, the second key press is then read by the shutdown script and it
continues to execute. Running ps during shutdown does not show any spurious
process running, but something seems to be wanting console input at the same
time as the shutdown script ...or so it seems.
Anyway, I eventually devised a workaround. Not a solution, just a
workaround. For the record, here it is:
/etc/inittab has this:
tty1::respawn:/sbin/getty -n -l /bin/autologinroot 38400 tty1
tty2::respawn:/sbin/getty 38400 tty2
Note for those unfamiliar with Busybox: the runlevel field is empty as
Busybox does not use runlevels.
I deleted the "shutdown" line in inittab, and replaced the Busybox
poweroff and reboot with my own scripts. For example, poweroff:
exec /bin/busybox poweroff
In a nutshell, by running rc.shutdown script before Busybox goes into its
init-based shutdown sequence, I avoid the duplicate-keys problem.
Another problem we have had with Busybox is that sometimes, for no
discernable reason, shutdown did not execute the rc.shutdown (previously
called rc.reboot) script and just bypassed it and powered down. For the
multisession CD/DVD, this meant that a session was not saved. A mystery, but
the above fix should also fix that.
While I'm at it, documenting my grumbles about Busybox, another note for
the unwary. When configuring prior to compiling, make sure that
CONFIG_FEATURE_INITRD is disabled. Although this seems like it should be
enabled from its description, and I do have a initrd, enabling it causes
poweroff and reboot to simply not work, returning "No process killed".
One more grumble: That accursed Busybox fdisk applet caught me again...
the darn thing, according to its own "fdisk --help" supports the "-s" option,
except that it doesn't (yes, I did compile Busybox with all extra features of
fdisk enabled).
Jan 15
We have a peculiar bug during shutdown of multisession Puppy. The dialog program displays a text-mode
dialog, end pressing the ENTER key to accept the default sometimes causes a
drop down out of the script to a commandline prompt. Yet, "ps" shows that
dialog is still running. In an attempt to fix this, I have upgraded dialog
from version 0.9b-20031207 (the same as used in Vector 5.0STD) to the latest,
Note, the bug could be in the ncurses library rather than dialog itself.
Testing dialog: nup, the bug is still there. Press ENTER key, crashes to a
prompt, but ps shows dialog still running. Note, there is a workaround for
this bug, in both versions: press ENTER again terminates dialog and then the
shutdown script continues. A bit pathetic though.
The new dialog 1.0 does not do automatic sizing of the dialog boxes
properly, so I'm going back to the old version.
Puppy2 has this error message during bootup:
"kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, errno = 2"
...but, there is no such module. Googling revealed this (May 2002):
Actually, it happens because of the standard initrd. In the initrd we
load scsi_mod first, and on initialization scsi_mod attempt to
request_module the host adapter, but there is no /sbin/modprobe (and no
/etc/modules.conf for modprobe to read either) so you get the error above.
Then, the initrd continues on to load the specific scsi modules. So, in
actuallity, it makes sense to *disable* this entire code section if scsi
is a module because it will *always* be loaded before the host adapter (it
has to for dependancy's sake) and will always be a failure. When compiled
into the kernel I'm not sure it makes any sense either since if the scsi
driver isn't loaded yet, then where would we be getting modprobe and
/etc/modules.conf from? It would either have to be an initrd (in which
case the linuxrc script can load the module manually) or / is on ide (or
something like that) which doesn't depend on our host adapter, in which
case it makes no sense to go around loading things without them being
specifically requested. Personally, I think this code should just die,
So, it's a spurious error message that doesn't do any harm. Annoying
Note, I compiled the 2.4.31 kernel with scsi_mod built-in, previously it
was a module, but still always got loaded in the initird. The Puppy2 initrd
(initial ramdisk) does have the modprobe program (it's just a link to insmod)
although it isn't used, and there isn't /etc/modules.conf nor any of the
dependency files in /lib/modules that modprobe requires. The Puppy1 initrd
has all the modules, /etc/modules.conf. module dependency files, in fact
everything. The reason for the difference is that I want the Puppy2 initrd to
be as small as possible, for booting up on old hardware with limited RAM.
Currently, Puppy2's initrd.gz is 1375K and Puppy1's image.gz is 6626K.
Though, I am toying with the idea of putting all the modules into initrd.gz,
which would bump it up about 2M, and after pivot_root, /lib/modules would be
a link to /initrd/lib/modules (as the initrd) remains in memory while Puppy2
is running.
Jan 14
David May has designed a great new logo:
Jan 9
Puppy2 pre-pre-alpha is being discussed on the Puppy Forum in this
Ted Dog has provided an alternative download:
http://www.puptrix.org/pre/pre/alpha/puppy2-001.tar.gz (63M)
Jan 9
Announcement for Puppy-testers only! Okay, here is a test kit for Puppy2
pre-pre-alpha, specifically and only for testing on a usb Flash drive. What
should happen, if all goes well, is it will just work. To itemise the good
- No pup100 file (but a pup_save.3fs equivalent is optional).
- Works with any size usb Flash drive (minimum 128M), even very large and all of it is immediately available for personal data.
- Works on PCs with very little RAM, probably as little as 32M.
- Boots very fast.
- Runs very fast (if there's enough RAM).
- Shuts down very fast.
- Saves ramdisk (your working files) to Flash drive every 30 minutes, so extending lifetime of flash media (by restricting the number of writes).
- The entire filesystem, that is, "/", is writable and is saved.
- Files written to /etc and /usr are no longer inside /root. It's now
closer to a normal Linux filesystem.
- Up to four extra .sfs files can be mounted on "/".
- Simplified boot params. Ex: "PMEDIA=usbflash" is all that is needed to
boot from usb.
I'm experimenting with a new way of installing to usb Flash, using the "superfloppy" method, in which there is no MBR and no partitions. My reasoning is that any quirky BIOS with USB-FDD or USB-ZIP boot options should be able to boot from this.
Installation is very easy. Follow these steps:
# tar -zxf puppy2-001.tar.gzThat's it, reboot computer.
# cd puppy2-001
Plug in your usb flash drive, let's assume it's going to be "sda"
(if a usb drive is/was already plugged in, then new one will likely be sdb)
# modprobe usb-storage
For usb1, wait up to 25 seconds for drive to initialise.
Run probedisk just to confirm it's there...
# probedisk
Save image, cos we are going to mess up the drive...
# dd if=/dev/sda of=oldimage
# sync
# dd if=/dev/zero of=/dev/sda
# echo "y" | mke2fs -m 0 /dev/sda
# mount -t ext2 /dev/sda /mnt/data
# ./extlinux -z /mnt/data
# cp vmlinuz /mnt/data/
# cp extlinux.conf /mnt/data/
# cp initrd.gz /mnt/data/
# cp pup_001.sfs /mnt/data/
# sync
# umount /mnt/data
Note, you could use ext3 above, if you wish.
Note, do not use MUT or Pmount to mount /dev/sda, as they can't handle it.
Go here to download puppy2-001.tar.gz: www.pupweb.org/test/
Some possible trouble-spots:
- Saving of the tmpfs ramdisk to Flash drive occurs periodically in the background. I do not know yet if there are any reliability or performance issues with this. May have to tweak process priority.
- The tmpfs ramdisk is kept small, as it only contains new and changed files. The periodic save to persistent storage does not actually flush the files from the ramdisk though, due to a technical difficulty with unionfs -- the ramdisk is top layer, persistent storage next down, so in theory unionfscould use the saved files. This limitation does mean that if you download big files, the ramdisk can fill up, but a daemon will warn of this and ask you to reboot Puppy -- which will flush the ramdisk.
- The reliability of creating, renaming, deleting files and directories
in the new multi-layer unionfs environment has yet to be determined.
The basic idea is a small initial ramdisk (initrd.gz), and all of Puppy (everything under /) (pup_001.sfs) is then loaded, but the initial ramdisk is kept in memory. I developed the concept myself, then after finding that it actually worked, I googled around and found that it is not new, though I may have a unique variation on the basic idea. One system fairly close is Noppenlinux. Note, this new architecture works because Unionfs is absolutely brilliant.
The utilities chmod and touch, from the
fileutils-4.0 package, have been copied from Vector, replacing the BusyBox
versions. The usual reason, the BusyBox versions lack required commandline
When the kernel is booted with boot-parameter vga=791 (for 1024x768 for
example), the Puppy commandline (prior to starting X) is a VESA graphics
mode, meaning that you get more lines on the screen and more characters per
line. You also get a penguin logo while booting.
Except, I have changed the penguin logo to a Puppy logo. The penguin logo
is in the kernel source at /usr/src/2.4.31/include/linux/linux_logo.h. I
found a little program, png2linuxlogo (http://freshmeat.net/projects/png2linuxlogo/)
that will convert a PNG file to linux_logo.h. However, this is an
unmaintained project, and I found the format of the generated linux_logo.h
file will not compile for the 2.4.31 kernel. However, I managed to hack
linux_logo.h so it does compile.
I have compiled the 2.4.31 kernel, patched with part of the "lck" patch
set. This backports the "preemptive kernel" feature of the 2.6 kernel, to
give a slightly improved responsiveness to user interaction on the desktop.
Two other patches are NTFS v2.1.6b support and Squashfs v2.2-r2 support.
I configured libata (SATA) support built-in to the kernel (not as modules).
Some modules, namely scsi_mod.o, sd_mod.o, reiserfs.o and ntfs.o, are now built-in.
The Puppy1 series will probably have a 1.0.8 release, which will be mostly bugfixes and minor improvements. The official release after that will probably be 2.0.0.
I'm working on "Puppy2".... it's revolutionary, but I'll maintain the
mystery until something is released. Probably quite soon...

subset: commoncrawl