Puppy Linux

Exploring everyone's pet Linux.
Get Up and Barking

Not just making a “puppy” quip here—if PL was able to configure your audio device during the boot process, you'll hear the sound of a gentle dog bark, “woof, woof”. If not, a sound wizard can be launched from Menu→Setup→Wizard Wizard to attempt a manual sound card setup.

The two most impressive things I discovered about PL was how quickly I able to have a functioning PL desktop and how well it performed. GUI applications launched instantaneously and seemingly without stepping on each other. For now, let's concentrate on getting PL running on the closest laptop or workstation.

Obtain a PL ISO image by downloading it from the Web or purchasing CD media. As it's smaller than 100MB, you can download it quickly over a broadband Internet connection. Or, you can purchase bootable media for a few dollars at www.linuxonline.biz/index.php?cPath=137_149.

Downloading the ISO Image

The complete set of live ISOs and other PL artifacts are available at ibiblio.org/pub/linux/distributions/puppylinux. Higher-level information about PL offerings is available at puppylinux.net/download/downpage.htm. I strongly suggest using the latest release—3.0.1, at the time of this writing. It's a stable, much-improved release compared to 2.x: ibiblio.org/pub/linux/distributions/puppylinux/puppy-3.01-seamonkey.iso.

Creating Bootable Media

Now, write the ISO to a CD/DVD disk using an application that can deal with ISO images, such as K3b on Linux or Roxio on Windows. The primary files on the ISO needed to boot and host PL are the following:

  • vmlinuz—the kernel.

  • initrd.gz—a compressed RAM disk image used during the boot process.

  • pup_300.sfs—contains other system files packaged outside the RAM disk image (the largest file by far).

  • zdrv_300.sfs—contains a complete set of drivers and firmware.

The First Boot

I attempted to boot the PL media from every PC I could access—five laptops and three workstations. I didn't need to do anything special in any of these instances. Assuming the ISO image is burned correctly and your system is set up to boot from CD, you're ready to start your PL experience. If not, check the contents of the ISO through an explorer, and make sure the system's BIOS boot sequence includes the CD/DVD drive before other bootable drives. A desired BIOS boot sequence will be something like this:

  • USB—if available. An older system with USB interfaces may still not offer USB as a boot option. In that case, if you're interested in configuring a USB resident PL boot image, you might be able to resolve this by updating the BIOS.

  • CD/DVD.

  • Floppy.

  • Internal disk.

  • Network boot.

PL Boot Cycles

During the first boot process, PL automatically determines a lot about the underlying hardware, but it prompts the user for additional guidance. Once the X server and window manager are functioning, you'll see an initial desktop that looks something like what's shown in Figure 1.

Figure 1. The Initial Puppy Boot Desktop—Complete with Coaching Text

PL now is ready to be used. Some devices need to be configured manually (through GUI utilities), and users likely will want to apply customizations, create data files and perhaps install additional packages. At the first graceful reboot or power cycle, users are asked where such data should be persisted between sessions, so subsequent reboots are typically non-interactive.

First Boot Life Cycle—Details

During the first PL boot, users are prompted as follows:

Screen 1: select keyboard layout locale (US is generally the default).

Screen 2: the Puppy Video Wizard prompts for two preferences:

  • Step 1: X Window System server choice, select X server. X.org is heavier-weight but more capable, and may not work well with older, more obscure video devices. This is usually the better choice. Xvesa is lighter-weight, has a fixed refresh rate and supports a narrower set of input devices. If X.org proves problematic, try Xversa.

  • Step 2: select screen resolution. Driven by the perceived capabilities of the discovered graphics card/monitor, a set of resolution choices will be presented, usually between 860 and 1,400+.

What's on the desktop? By default, the desktop launch icons for the commonly accessed applications are organized as follows:

  • Row 1: system setup and administration utilities.

  • Row 2: office-related applications, such as a word processor.

  • Row 3: network client applications, such as a browser and chat tool.

  • Row 4 (and below): personal tools, such as a calendar, contact organizers and multimedia tools.

Access to the complete set of applications is provided through the lower-left menu button. Here's an overview of its organization:

  • Desktop: basic desktop settings, window manager control, set time/date.

  • System: printer management, system monitoring, boot manager configuration.

  • Setup: application installation, network tools, remaster live PL media.

  • Utility: shell prompt, backup.

  • FileSystem: file browsing/searching, disk mounter.

  • Graphic: paint, graphics editing, screen capture.

  • Document: dictionary, word processor, Web authoring.

  • Calculate: calculators, personal finance.

  • Personal: Wiki, address book, password setting.

  • Network: firewall and other network services.

  • Internet: browser and all other network clients.

  • Multimedia: CD creation, photo, video and sound view and editing.

  • Fun: games.

  • Help: help topics and system documentation.

  • Shutdown: session control and restarting fundamental desktop services like the X Window System and the window manager.

The first thing you'll likely want to do after booting is launch the Puppy Disk Mounter. Refer to the upper-right section of Figure 1. It can be launched through the top-row drives icon. Notice that drive partitions hda1 and hda2 are mounted under the /mnt directory. The output of the df -h command shows the following:

Filesystem      Size      Used Available Use% Mounted on
tmpfs         219.9M      6.9M    213.0M   3% /initrd/pup_rw
tmpfs          77.9M     77.0M    916.0k  99% /initrd/mnt/tmpfs
/dev/loop0     77.0M     77.0M         0 100% /initrd/pup_ro2
unionfs       219.9M      6.9M    213.0M   3% /
shmfs          87.0M         0     87.0M   0% /dev/shm
/dev/hda1       5.0G      3.3G      1.7G  66% /mnt/hda1
/dev/hda2      50.9G     32.3G     18.5G  64% /mnt/hda2

Apart from the RAM Disk and shared memory entries, notice the two drive partitions under /mnt. The very next thing you'll want to launch is the Internet Connection Wizard through the Connect Globe desktop icon (lower-left section of Figure 1) or the Menu→Setup→Network Wizard. This lets you configure and set up a cabled or wireless network interface. For example, you'll probably configure the eth0 interface to obtain an address automatically through a DHCP server. You need to do this only once—network settings can persist across sessions (Figure 2).

Figure 2. Network configuration made easy.

If you select a wireless interface (such as ath0), use the Scan button in the next dialog box to locate your network. Again, you'll probably want to select Auto DHCP. Once a network interface has been configured, you can test basic network access by launching the browser, chat client or other network application. Then, you can choose to install any additional packages to suit your needs. The launched PETget Package Manager is shown in Figure 3.

Figure 3. Managing Applications with PETget

Figure 4. Puppy Linux at Work

PETget is very straightforward to work with. Typically, it's used to download updates and additions from the network (using wget), and it finds and resolves dependencies fairly seamlessly. The PETget operations can be very interactive, and the dialogs present a lot of information. Be sure you understand what's being installed or updated, and that you'll need to restart the window manager (Menu→Shutdown→restart-JWM) before new applications are added to the Menu button structure. Also, depending on what's been installed, because so much of the runtime is maintained on the RAM disk for efficiency, the system may need to be rebooted. So, take time to read the PETget dialogs.

Just as noteworthy as the first boot is the first terminated session. Here's some detail on a sample interaction the first time the system is rebooted or powered down:

  • Screen 1: save changes to file: Yes/No. Specify yes if you want the changes you've applied to be carried to subsequent sessions.

  • Screen 2: if you've decided to save your changes, you'll be asked for a target—what mounted filesystem or removable media?

  • Screen 3: by default, your working session data is saved to a standalone ext2 filesystem file called pup_save.2fs. You'll be given an opportunity to override this name.

  • Screen 4: apply encryption—choices are none, weak or strong. If you're saving data you care about on removable media, it might make sense to select an encryption level, allowing you to assign a password, which you'll need to provide at subsequent boots.

  • Screen 5: specify an initial size for the standalone ext2 filesystem file that will contain PL customization data; 512MB is the default and recommended size, but larger is better.

  • Screen 6: if you're saving the session data on faster media than the boot CD/DVD (such as an internal IDE drive), you will be given the option of saving some PL runtime files to speed up the boot process going forward.

  • Screen 7: review/confirmation—opportunity to change details or cancel.