June 10, 2008

Puppy Linux 4.00 is barking up the right tree

Author: Dennis L. Ericson

With the recent release of Puppy Linux 4.00, developer Barry Kauler and his team have provided a lightweight but functional Linux operating system. To help reduce size and include more functionality over the previous binary-package-based Puppy 3.01, Puppy 4.00 has been compiled from a Slackware 12-based source. Yet despite its small size -- the ISO file is a meager 87.1MB -- Puppy has an abundance of applications, with more than enough for an average user.

To maintain a consistent user interface, Puppy 4.00 has abandoned GTK+ 1 and Tcl/Tk, and is now a totally GTK+ 2 based system. As such, the developers have been able to migrate and upgrade Puppy to a host of new GTK+ 2 replacement applications, such as Osmo personal organiser, ePDFView PDF Viewer, Homebank personal finance manager, Pidgin chat client, Fotox image viewer (now renamed Fotoxx), and mhWaveEdit audio editor, among others. New features for Puppy 4.00 include scanner and digital camera support via SANE and Gtkam, respectively.

Puppy Linux has always been a live CD, which means you can boot and run Puppy from any computer, even if you already have another operating system installed. When running live, Puppy won't disturb anything on the hard drive, and all your files are still accessible. And you can save all your work (including files and configuration and desktop settings) to a pup_save file (see below for more information).

On my Dell Latitude C600 laptop, which is equipped with an 850MHz Pentium III and 384MB RAM, booting live from the CD took about two minutes. The process included answering a few questions about keyboard and video, after which the desktop showed a nice ocean/mountain scene wallpaper. Puppy uses Joe's Window Manager (JWM), configured with clock, sound, battery level indication (for laptops), memory available, and a CPU utilization graph. JWM is a simple window manager compared to GNOME or KDE, but it seems to have everything users need, and is in line with Puppy's minimal approach. On the desktop are icons for all the major applications, named by functional description, with many more applications available under the 'Menu' in the lower left corner. After clicking the top banner for Getting Started Information, the traditional Puppy "woof woof" bark played, telling me that sound was configured correctly.


My laptop pointer pad and keys worked correctly, except that I could not select by tapping the pointer pad. Scrolling up and down using the pointer pad right side seemed to work fine, while scrolling with the pointer pad horizontally seemed to scroll pages in the Web browser -- which I did not like.

My laptop has both an Atheros-based wireless ath0 port and a wired eth0 port, and Puppy's Network Wizard showed both interfaces available. With eth0 disconnected, configuring the wireless network was a breeze, including scanning for the available networks. It took two scans to find my network, but after selecting it and configuring the WEP key and Auto DHCP, Puppy connected to my wireless network. Puppy has done a good job of making wireless work well and intuitively.

My file server resides on another (wired) subnet, so I decided to remove my wireless ath0 card to be sure that the network could connect via the eth0 port. But after configuring the eth0 port for DHCP, I lost network connectivity. A little investigation revealed that /etc/resolv.conf was incorrect, which led me to think this might have something to do with the ath0 port still being active. Back on the Network Wizard screens, there was no obvious way to disconnect ath0. So to disable ath0, I manually typed ifconfig ath0 down in a console. Then I configured the eth0 port to use DHCP, and Puppy was back on the network. After that, Pnethood Samba client easily connected to my Samba share on the server.

Puppy has built in CUPS support for printing, so next up was connecting my Hewlett-Packard LaserJet 5L printer to the parallel printer port. I had no difficulty in configuring the printer, and printing worked well in all applications that provided a printer pop-up window, including SeaMonkey Web suite, Gnumeric spreadsheet, AbiWord word processor, and Leafpad text editor. But some programs that print via an external command, such as the Geany IDE/editor, would probably need to be reconfigured for most printers to work correctly.

Unfortunately CUPS was not able to print on a shared printer on my print server. It seemed there were either error messages during configuration or the URL for the IPP protocol did not appear correct. Having CUPS communicate with another server to print is probably pushing CUPS to the maximum, but sharing printers on a network is a common practice, and it would be nice if Puppy supported network printing as easily as a local printer. Overall I give Puppy fair marks for the CUPS implementation.

Puppy 4.00 now supports digital cameras. Unfortunately, Gtkam did not support my older Samsung digital camera, and auto detect was not able to detect it, but I was able to use Pmount and mount the USB device, and then open a ROX-filer file manager window to see and download the images. So using a digital camera with Puppy may be a little more difficult than just using Gtkam, but it still seems doable for an average Linux user.

Also new in Puppy 4.00 is scanner support via the excellent XSane software. Most scanners need to preview first, and clicking "Acquire preview" in short order scanned an image in the preview window using my Epson scanner. When I clicked Scan in the main menu I acquired the full-size image, which you can save in a number of formats. Opening Fotox verified that the image had successfully been downloaded and saved. Xsane works well and is a great addition to Puppy.

Using the SeaMonkey Web browser, I could play Flash-based video on sites like YouTube and Yahoo! with no issue, with no additional Flash download required. The default Gxine media player handled MP3 audio and MPG and WMV movie files with no problem. I rate Puppy very good with multimedia codec support.

On my laptop, running Puppy in RAM from the live CD, all the applications loaded and ran within a second or two. For comparison, I did a frugal install of Puppy Linux 4.00 on an older IBM 300 GL desktop, which has a 167MHz Pentium CPU and 128MB RAM. It took about two minutes to boot from the GRUB boot screen, and AbiWord, Gnumeric, and SeaMonkey took 30, 15, and 40 seconds to load, respectively. The mouse and keys worked well on the desktop install.

There are two ways to install Puppy on your hard drive: the full (normal) install, and the frugal install. Both can be done using the Puppy Universal Installer, a prompt-based utility that makes installing Puppy easy. The full install is like any other OS install, using the entire partition, installing directories and files, and so on. But the more useful method is the frugal install, where only the four main Puppy files (vmlinuz, initrd.gz, pup_400.sfs and zdrv_400.sfs) are placed on the drive, along with a boot loader entry. You can frugal install Puppy on a drive by itself, or add it to a drive that already has an operating system on it, or even frugal install on a USB flash drive. Puppy was designed and optimized to be run this way, and in fact, the CD is set up just like a frugal install.

To me, the best part of installing Puppy is that all work you do can be stored in one separate file, called the pup_save file. Puppy creates a filesystem within that file, and stores in it all configuration and user files. The setup for this occurs on your first shutdown, when Puppy asks you what you want to do with user data and configurations. The options include storing to hard drive, USB flash drive, or even a multisession CD. Using this one file for storage means you can run live from a CD or USB flash drive or via the frugal install and still have all your work saved, available each time you run. Puppy has earned its keep in my house, where I regularly install Puppy as a rescue CD/OS on computers where I anticipate making potentially (non-intended) destructive changes to another OS.

Puppy seems to have an application for just about every need already included. There are also hundreds of additional programs available for download via the Petget utility, as well as Squash File System (SFS) files available that add completely packaged functionality to Puppy and are loaded during bootup. For example, devx_400.sfs will add complete C/C++ compiling, and openoffice-2.2.0.sfs will add the complete OpenOffice.org Suite (version 2.2.0) to Puppy. Just place these SFS files in the directory you placed the frugal install files and run BootManager, which is a utility that configures which SFS modules to load during bootup.

In summary, the new Puppy 4.00 release is the cat's meow. Puppy Linux 4.00 is fast, reliable (on my systems it ran for days with no issue), has good wireless support, new scanner tools that work well, all the necessary multimedia codecs, and has a minimalistic yet usable approach that allows older computers to be functional machines again. Puppy also excels as a rescue CD or OS. Puppy also has good documentation already built in for new users and has active online forums.

On the not so positive side, Puppy seems to lack networked printer support, has minor laptop pointer pad issues (at least for me), no port shutdown in the Network Wizard, and digital camera support may require manual operation. But none of these are showstoppers, and Puppy 4.00 remains one of the best minimalistic Linux distributions around.


  • Puppy Linux
  • Reviews
  • Linux
  • Distributions