Release notes for Puppy Linux version 2.12
This is a radical new version of Puppy ...but then, every release
is! The greatest news for 2.12 is the support for a huge range of
kernel modules, using a new "fetch on demand" system. There are also
exciting new mini-applications developed by Puppy-enthusiasts. Release
- A brand new kernel! We have upgraded to Linux kernel version 18.104.22.168,
plain-vanilla except for a Squashfs 3.1r2 patch, a tiny patch to alter
the default console loglevel and a fix for shutdown with certain Via
- "Fetch on demand" module loading. The 'pup_212.sfs' file familiar to Puppy users (it is a single file with all of the Puppy filesystem and applications) now has only a skeleton set of kernel modules, just enough to get the graphical desktop up and running. The complete set of modules compiled with the kernel plus heaps of extra modules, is a separate 15MB file 'zdrv_212.sfs', that is accessed whenever a module is needed -- it is a read-once system, as once a module is fetched it is then saved locally. The 'zdrv_212.sfs' file can be on the live-CD or anywhere else on the PC.
- Smaller and bigger at the same time! As the full set of drivers is separate, the run-time part of Puppy has a smaller footprint when loaded into RAM, which is good news for older PCs with 128MB RAM or less. For the live-CD, Puppy loads totally into RAM for blazing speed and frees up the CD drive for other uses. Note that we can still create 50MB live-CDs without the "zdrv" file and with a basic selection of drivers.
- Gorgeous new fonts! I have completely overhauled the selection of fonts, reducing the number of Type1 fonts and adding Bitstream Vera
fonts. The appearance is dramatically improved, yet the total size of
scalable fonts is reduced from 5MB to only 2MB (uncompressed).
- PupScan hardware and kernel-modules information. PupScan
is a great little GUI-app that I knocked together to display
information about the PCI interfaces and the kernel drivers (modules).
This makes it very easy for those less familiar with the commandline to
examine the hardware of the PC and to find out what each module is for
and what module is required for each hardware interface. I put it into
the "Control Panel" menu.
- New CD song ripper. Jason Pline has created PBcdripper,
a nifty audio CD song ripper GUI-app written in PuppyBasic. The guys
reckon this is better than ripperX! You will find this in the
- New batch file renamer. Jason has also created PBrename, a batch file renamer, also written in PuppyBasic and also a GUI-app. This is a good substitute for GPRename, a Perl application that has the overhead of the Perl-GTK1 module (which is why it is a PupGet package only, not chosen for the live-CD -- Jason's app however is very small). You will find this in the "File managers" menu.
- Network Wizard improved.
Puppy-enthusiast 'rarsa' (forum name) has upgraded the Network Wizard
2.12.2. There is improved integration with wireless configuration. The
list of network drivers and descriptions, /etc/networkmodules, is now
autogenerated in Puppy Unleashed -- this file is read by the Network
- Modem Wizard improved.
The "zdrv" file has kernel drivers for Lucent, Smartlink, ESS 2898,
PCTEL pct789 and Lucent Martian soft-modems (soft-modems are most internal
modems in modern PCs). I upgraded the Modem Wizard accordingly, however
not for the Martian driver. It is still very much pot-luck and there is
a 80% chance that your modem will not work with any of these drivers
(maybe I'm too pessimistic). An external serial modem is still the
recommended choice for dialup.
- Pmount improved. Pmount, my alternative to MUT, was previously
designed for mounting USB pen drives with only one or no partitions
(Superfloppy). I have improved it so it properly handles multiple
partitions. This limitation also applied to SATA drives, now also fixed. Jason has also contributed improvements to Pmount.
- ISOMaster updated. ISOMaster
is a tool developed by Andrew Smith to extract and insert files and
rebuild an ISO file. Many improvements, updated from version 0.1 to 0.5.
- Compressed files in initial-ramdisk. The executables and kernel modules in the initial-ramdisk are now compressed, to make the initial-ramdisk memory-footprint less. However, I found that when a version-upgrade is being performed by the 'init' script, it is considerably slower -- I fixed this by uncompressing the busybox, grep and cp executables that are in one time-critical loop.
- Extra modem and wireless modules. As introduced above, Puppy now has the "zdrv" file with the full set of modules compiled with the Linux kernel 22.214.171.124 source. I also compiled the following extra modules and placed them in the "zdrv" file. Sound: sis7019. Modems: ESS 2898, Martian Lucent, Lucent, Smartlink, PCTEL pct789. Wireless: acx, adm8211, at76_usb, Linux-wlan-ng (USB only), Madwifi, rt2400, rt2500, rt2570, rt61, rt73, rtl8180-sa2400, ipw3945, zd1211, ndiswrapper. Note: the documentation with a couple of these (the Intel ipw modules) state that they require udev or hotplug to access the firmware -- Bill St Clair helped me to put in basic hotplug support for firmware (tested on the ipw2200 only).
- ALSA Wizard updated. The script /usr/sbin/alsaconf has been updated to work with the external "zdrv" file. But, you shouldn't need it as Puppy will autodetect sound in the vast majority of cases -- but not if it is an old ISA card.
- Plugins are back. The 'standard' v2.11 live-CD was made smaller by removing Gnumeric and Abiword plugins and the Xorg drivers as PupGet packages. For v2.12 the Gnumeric plugins and Xorg drivers are back in the live-CD. It was reported on the Forum that Gnumeric is too restricted without the plugins, and Xorg is nicer with the proper hardware driver rather than the generic 'vesa' driver.
- Window manager updated. The default window manager in Puppy is JWM
and is now v1.8rc4. As always, Joe, the author, is responsive to our
feedback and has fixed a problem with the mouse clicks being too
"sensitive". There was also a problem with Gxine playing videos
full-screen. There are some new issues though.
- Gxmessage dialog window. Gxmessage is a GTK2 clone of xmessage, a simple dialog window for use by scripts. Many of our scripts use this and can now have improved appearance, more features and better internationalisation.
- New FTP server. Kirk has developed a frontend for PureFTPd and this is now in Puppy, replacing BetaFTPD.
- Enhanced CD-remastering. Dougal's enhanced CD-remaster script has been updated for 2.12 and now included in the live-CD.
- Widescreen support for Intel video. This still needs work, but a start has been made with widescreen support for the Intel 845G,
855GM, 865G, 915G, 915GM, 945G, and 945GM chips. So far I have only
tested 1280x800 on my new Acer laptop. This support is automatic in the
Xorg Video Wizard. Wider support will follow as we test more hardware.
- Upgrading from earlier version of Puppy.
No problem. If you run Puppy from live-CD, just boot the new CD and
Puppy will automatically perform any required upgrading of your
personal storage file/partition (usually pup_save.3fs file). If you
have already tested an earlier beta of v2.12,
/etc/puppyversion and set it back to "211" prior to booting v2.12, so
that a proper upgrade of the latest version will occur -- also, look
where the pup_save.3fs file is and delete zrdv_212.sfs if it exists
(Puppy may have copied it there from the CD). If you want to be extra
cautious, make a backup of the pup_save.3fs file before upgrading! For
frugal-hd installations, just copy the latest files (vmlinuz,
initrd.gz, pup_212.sfs and zdrv_212.sfs) to the USB or hd boot media.
- Many bugfixes and improvements.
Thanks to (in random order)
Dougal, pakt, rarsa, GuestToo, MU, Bill St Clair, plinej, kirk for
all the development input, and Lobster, raffy, Sage, Nathan, Paulbx1,
Flash, klh, marksouth2000, Pizzasgood, rerwin, Leon for deployment help and advice. Lots of others
helping of course -- thanks for your input!
I have been booting the new Puppy on all the old PCs I can find, so far with 100% success.
Fetch-on-demand module loading.
To understand how this works, examine the 'modprobe' executable. I have
renamed the original executable to 'modprobe.bin' and /sbin/modprobe is
now a script. The files 'modules.dep.126.96.36.199',
'modules.isapnpmap.188.8.131.52' and 'modules.pcimap.184.108.40.206' in
/lib/modules/ are copies of those generated by 'depmod -a' when I
compiled the kernel and all of the modules -- so, these files have
information about the complete set of modules contained in
'zdrv_212.sfs'. The 'modprobe' script will look to see if a module is
local and if not will read these dependency files to see if the module
and its dependencies are in the "zdrv" file and if so will fetch them.
The "zdrv" file also has firmware, executables, documentation and post-install script optionally associated with each module. This information is in 'firmware.deps.220.127.116.11' in /lib/modules. You can see how this information is used by reading the 'modprobe' script, however to find out how the "zdrv" file is constructed you need to have Puppy Unleashed.
Bitstream Vera fonts. I've recently been educating myself about international language support in fonts. I'm still very ignorant, but the situation is improving. This release of Puppy has Bitstream Vera fonts, however I have come to know of derivatives such as 'Hunky' and 'DejaVu' that have improved international support -- so one of these may be in 2.13.
My Developer News Blog. If
you want more details about all of the above, and learn day by day how
it all unfolded, at a very personal level, then please go here:
Download. If you want to
obtain the latest Puppy live-CD, or the "devx" module, that turns Puppy
into a complete C/C++ compiler environment, or the patched 18.104.22.168
kernel source, please go to the Puppy download page for links:
The next Puppy
As always, there are heaps of things still to do. Lots of projects underway and some quite mature. I am deferring improved PCMCIA support yet again, hopefully arriving for v2.13. We very much need to upgrade Gimp-Print to the latest Gutenprint, however I want to investigate printing fairly thoroughly and to do it justice I didn't want to rush it into v2.12 -- again, targetting this for v2.13. MU has improved package installers. Some excellent collaborative work has been done on the Forum to support an encrypted pup_save.3fs file, but I got the impression the guys would like to work on it a bit more, so have held that over to further consideration for v2.13. I will probably extract the Xorg drivers to the "zdrv" file, leaving just the vesa and i810 drivers in the pup_213.sfs file -- and have automatic fetch-on-demand. Jason and Dougal have got the GTK2 version of Xdialog to work properly, and that's a definite goer for 2.13. Probably many more things to do that I can't think of right now.
Note that v2.12 has established a new base system that we will stick with for sometime. That is, we will stay with the same kernel version and we will keep refining the "zdrv" meachanism. So look toward the next few releases of Puppy as being consolidation of the status-quo and focussed on refinement and improvement of the user experience.
If you examine the release history, you will see we are on a pretty
tight schedule, a new Puppy every 4 - 6 weeks. These releases are all
major improvements too, not little piddly changes. Hopefully I can keep
steamrolling ahead with this intense activity, though I do want another
holiday in January-February, this time heading North into the arid
inland of Western Australia -- but look what happened last time I took
a holiday, kept working on Puppy!
Barry Kauler, November 2006
Package list for v2.12:
0rootfs_skeleton-2.1.2 915resolution-0.5.2 abiword-2.4.5 afpl_ghostscript-8.54 agenda-2.0 alsa_lib-1.0.11 alsa_utils-1.0.11 atk-1.11.4 audiofile-0.2.6 autocutsel-0.7.1 autologin-1 axel-1.0a bash-3.0.16 bbc_provided-2003 bc-1.06 bcrypt-1.1 blinky-0.8 boehm_gc-6.6 bubbles-1.0.2a busybox-1.01 bwidget-1.3.1 bzip2-1.0.3 cairo-1.0.4 cdp-0.33.13 cdparanoia-3.a9.8 cdrtools-2.01.01a10 cgtkcalc-2.1.6 combobox-2.3 coreutils-5.2.1 countdown-2003.10.27 cpio-2.6 curl-7.15.3 db1-1.85 dhcpcd-1.3.22 dialog-0.9b dict-1.4.9 didiwiki-0.5 diffutils-2.8.1 dillo-0.8.6teki-mu disktype-8 dnotify-0.18.0 dosfstools-2.11 dotpup_downloader-mu05 dotpuphandler-3.1 dvdauthor-0.6.12patched dvd+rwtools-5.21 e2fsprogs-1.38 e3-2.7.0 ed-0.2 edid-1.4.1 eject-2.1.0 elspci-0.1 expat-2.0.0 eznet-1 ffmpeg-2005-11-20 file-4.17 findutils-4.2.22 fragger-0.0.5 freememapplet-1.2.1 freetype-2.1.10 fribidi-0.10.7 ftp-1.2 fuse-2.5.3 gaim-1.5.0 gawk-3.1.5 gbase-0.5 gcc-3.4.4 gcombust-0.1.55.pup1 gcrontab-0.8.0 gdbm-1.8.3 gdk_pixbuf10-0.22.0 gdkxft-1.5 gdmap-0.7.5 geany-0.8 gemgame-2003 getdir-2006 gettext-0.14.5 gftp-2.0.18 gifsicle-1.40 gimp_print-4.2.7 gkdial-1.5.14patched glib12-1.2.10 glib-2.10.2 glibc-2.3.5 gnumeric-1.6.3 gnumeric_PLUGINS-1.6.3 goffice-0.2.1 gparted-0.2.4_STATIC_GTKMM gpasman-1.3.1 grabc-1.1 grep-2.5.1 grub-0.97 gsview-4.7 gtail-0.5a gtimer-1.1.6 gtk+12-1.2.10 gtk+-2.8.17 gtkcat-0.1patched gtkdialog-0.58.8 gtkdialog-0.59.8 gtkdiff-0.7.0 gtkfind-1.0.1 gtkfish-1.0.1 gtksee-0.6.0b-1 gtk_shell-1.03 gxine-0.5.7 gxmessage-2.6.2 gxset-0.3 gzip-1.3.5 hdparm-6.6 hotplug-1.4 ical-2.3.1patched ifplugd-0.18 ifplugd-0.28 img-1.2.4 imlib-1.9.15 inkscapelite-0.36.2 iptables-1.3.5 isomaster-0.5 jwm-1.8rc4 jwmconfig-0.2.1.3 kbd-1.12 kp-1.0 lame-3.96.1 lcms-1.14 leafpad-0.8.1 less-382 libao-0.8.6 libart_lgpl23-2.3.17 libdaemon-0.8 libdvdcss-1.2.9 libdvdplay-1.0.1 libdvdread-0.9.6 libexif-0.6.13 libexif_gtk-0.3.5 libghttp10-1.0.9 libgif-4.1.4 libglade-2.5.1 libgnomecanvas-2.14.0 libgnomeprint-2.12.1 libgnomeprintui-2.12.1 libgsf-1.14.1 libhardware-20060723 libid3tag-0.15.1b libidl-0.8.6 libidn-0.6.2 libieee1284-0.2.8 libjpeg-6b libmad-0.15.1b libmng-1.0.9 libogg-1.1.3 libpng-1.2.8 libsamplerate-0.1.2 libsigc++-2.0.17 libsndfile-1.0.16 libstdc++-5.0.6 libtiff-3.7.4 libusb-0.1.11 libvorbis-1.1.2 libxaw95-1.1.4 libxml-2.6.26 libxslt-1.1.15 libzvt-2.0.1 linneighborhood-0.6.5patched linux_firewall-2.0rc9 madplay-0.15.2b memtester-2.93.1 metamail-2.7 mimencode-2.7 mini_volume-0.3 minixcal-1.1 mktemp-1.5 ml-2000 modem_stats-1.0.1 module_init_tools-3.2.2 mp-3.3.7 mtools-3.9.10 mtoolsfm-1.9 mtpaint-3.01 mut-0.1.1 ncurses-5.4 ndiswrapper-1.26 nenscript-1.13.3 netpbm-1.0.33 net_setup-2.12.2 net_tools-1.60 ntfs_3g-20060920beta ntfsprogs-1.13.0 nullhttpd-0.5.1 openssh-4.3p2 openssl-0.9.8b orbit2-2.14.0 pango-1.12.2 parted-22.214.171.124 pbcdripper-1.5 pbrename-0.3 pciutils-2.1.11 pcmcia_cs-3.2.8 pcmciautils-012 pcre-6.6 pdq-2.2.1 perl-5.8.8tiny perl_digest_sha1-2.10 perl_html_parser-3.51 picocom-1.2 popt-1.7 ppp-2.4.3 pptp_linux-1.5.0 psmisc-22.2 pstoedit-3.44 pupdvdtool-0.3 puppybackground-2.1.1 puppybasic-2.5 puppyserialdetect-1.0 pureftpd-1.0.22 qiv-2.0 rdesktop-1.4.1 readline-5.1 regexpviewer-0.1 reiserfsprogs-3.6.19 remotedesktopclient-0.1 rexgrep-1.2 ripperx-2.6.0 rox_puppy-126.96.36.199 rp_pppoe-3.7patched rubix-1.03 rutilt-0.12 rxvt-2.6.4 samba-3.0.22 scale2x-2.0 seamonkey-1.0.4_SVG sed-4.1.4 setserial-2.17 setvol-1.1 sockspy-2.5 sox-12.18.1 sqlite-3.3.5 squashfs_tools-3.1r2 ssh_gui-0.7.1 stat-5.0 sudo-1.6.8p12 superscan-0.8 sweep-0.9.1 sysfsutils-2.0.0 syslinux-3.11 tar-1.15.1 tcl-8.5a4nothreads test-1 tightvnc-1.2.9 time-1.7 tinylogin-1.4 tk-8.5a4nothreads tkconvert-1.3 tkdvd-4.0.3.pup1 tkfont-1.1patched tkgamma-1.0 tkmines-1999 transmission-0.5 turma-0.1 unclutter-0.8-11 unionfs-20060916 unrar-3.4.3 unzip-552 uri-1.1.3 usbview-1.0 util_linux-2.12q uxplor-0.26patched vamps-0.99.2 vobcopy-1.0.0 wag-0.3.2 wavemon-2002 wavplay-1.4 wget-1.10.2 wireless_tools-28 wmpower-0.3.1 wmsm-0.2.0 wvdial-1.42 xarchive-0.2.8-6 xcut-0.2 xdialog-2.1.1 xfinans-5.9y2k xfreecd-0.9.0.1 xine_lib-1.1.1 xlockmore-5.20.1patched xnetload-1.11.3 xnetstrength-0.4.2 xorg_BASIC-7.0 xorg_VIDEO_DRVRS-7.0 xproc-1.2 xrun-0.2.3 xtmix-0.4 xvesa-4.3.0v2-xkbd xwconfig-0 xwget-0.4.1 xwhois-0.4.2 xwifibar-0 ycalc-1.09.1 zip-231 zlib-1.2.3