A Virtual Puppy Named Slacko

I first played around with Puppy Linux about eight years ago to extend the useful life of an old PC for relatives. With Puppy’s low PC resource requirements and my previous experience it was a natural choice for my second distro to run in WVPC. In addition to getting Slacko Puppy running in WVPC I also wanted to have it on a USB thumb drive to use for rescue operations on other PCs. Since most PCs I deal with currently are fairly new I chose to use the PAE version of Slacko. Before I dig into the WVPC implementation a quick note on the standard usage of Slacko Puppy. Read the release notes before you start! I did not do this and it cost me about a half hour of head scratching trying to get my main workstation to boot on the CD (it needed the radeon.modeset=0 boot option).

If you don’t want to roll your own virtual machine you can can download an archive containing the virtual disk and settings files. Simply extract the files to your virtual machines folder (usually C:UsersxxxxxxAppDataLocalMicrosoftWindows Virtual PCVirtual Machines where xxxxxx is your user name) and then run the VM. The archive, Slacko_Puppy_5_6_0_PAE.7z, contains Slacko_Puppy_5_6_0_PAE.7z.vmc (settings) and Slacko_Puppy_5_6_0_PAE.7z.vhd (virtual disk).

  1. Open Windows Virtual PC, click Create virtual machine, give it a name and click Next.
  2. Set the memory to 1024MB (1GB) and be sure that Use computer network connections is checked then click Next.
  3. While you could simply use the default dynamic virtual disk settings, it makes the maximum disk size 130GiB. This would be very wasteful since Puppy is meant to operate well with less than 1GiB of disk space. So instead Select Create a virtual hard disk using advanced options then click Next.
    SlackoPup01
  4. Click Dynamically expanding.
    SlackoPup02
  5. Click Next.
    SlackoPup03
  6. For my VM I chose to make the virtual disk maximum size equal to the size of the thumb drive I use for Slacko. Enter the Size:, 4096 for my install, and click Create.
    SlackoPup04
  7. Select the virtual machine and click Settings.
  8. Select DVD Drive and Open an ISO image, click Browse and select the Slacko Puppy ISO.
  9. Select Networking and verify that your NIC is selected then click OK.
  10. With the virtual machine selected click Open to run the VM. It takes about 3 minutes for the Slacko Puppy live CD to start on my system.
  11. Set your time zone and optionally enable Keyboard numlock and click OK then click OK to close the Welcome! screen.
    Do not change the hostname here, it causes a restart of X that makes the rest of install fail with a broken mouse!
    SlackoPup05
  12. Now we’re ready to install to the virtual disk, select Menu->Setup->Puppy universal installer. Select Internal (IDE or SATA) hard drive and Click OK.
    SlackoPup07
  13. The virtual disk will be the only option so just click OK.SlackoPup08
  14. The virtual drive needs to be prepared so click GParted.
    SlackoPup09
  15. Select Device->Create Partition Table.
    SlackoPup10
  16. Click Apply.
    SlackoPup11
  17. Select the unallocated partition and click the New button.
    SlackoPup12
  18. Select ext3 for the File system: and click the Add button.
    SlackoPup13
  19. Click the Apply button and in the next dialog click the Apply button. When the All operations successfully completed message appears click Close
    SlackoPup14
  20. Right click the partition and choose Manage Flags from the menu.
    SlackoPup15
  21. Check the boot option and click Close. The flags column now shows boot, close GParted.
  22. Now the installation is ready to run, click the OK button.
    SlackoPup16
  23. Click the Install Puppy to sda1: button and in the next dialog click the OK button.
    SlackoPup17
  24. Click the CD button and in the next dialog click the OK button.
    SlackoPup18
  25. Click the Full button and in the next dialog click the WIPE button.
    SlackoPup19
    There are not a lot of progress indications however you can see by the CPU load gauge next to the clock that the installer is running. On my system the installation takes about 12 minutes.
    SlackoPup24
  26. The main installation is complete, click the OK button.
    SlackoPup20
  27. Select Menu->System->Legacy GRUB Config 2013.
    SlackoPup21
  28. Select the Quick Mode->Full radio button and click the Quick Install button. In the next dialog click the Yes button. When the third dialog opens click OK then close the NEWGRUBTEXT window.
    SlackoPup22
  29. Select Menu->Shutdown->Reboot computer.
  30. Since we don’t need to save the setting we made to the live CD run, click the DO NOT SAVE button.
    SlackoPup23
  31. This is a repeat of step 11, the new hard disk installation does not have the settings we made for the live CD run. Set your time zone and optionally enable Keyboard numlock and click OK then click OK to close the Welcome! screen..
  32. This completes the initial installation and first run settings. The next steps will involve manual changes so select Menu->Shutdown->Power-off computer.
  33. Go to the VM settings and turn on the Undo Disk feature then restart the VM.
  34. Now we need to add some kernel parameters. One feature of Puppy Linux is that the normal user has root permissions so when editing system files no sudo, gksudo or su is needed. Also note that Puppy uses a single click to open items. In addition to the three parameters for stability that I used for the Lubuntu VM, Slacko Puppy has the mouse driver in the kernel so I needed to add the middle button/scroll wheel option here. Using the File browser (top left icon) navigate to /boot/grub and click menu.lst to edit the file.
    Change:
    kernel /boot/vmlinuz root=/dev/sda1 ro vga=normal
    To:
    kernel /boot/vmlinuz root=/dev/sda1 ro vga=normal noreplace-paravirt i8042.noloop clocksource=pit psmouse.proto=imps
    Save the file and shutdown Puppy.
  35. Open the VM and shutdown Puppy again then open the VM settings Undo Disks option.
    If the new configuration worked: Click Apply changes then OK.
    If the new configuration did not work: Click Discard changes then OK and try editing the menu.lst file again.
  36. It’s time to increase the screen resolution to 1024×768. The only thing holding back Slacko from doing this is the default 24 bit color depth. Restart the VM and open /etc/X11/xorg.conf for editing, scroll down to the bottom (mouse wheel works now) and change DefaultDepth & Depth from 24 to 16
    Section "Screen"
        Identifier "Screen0"
    #    Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth 16
        #Option         "metamodes" "1280x800_60 +0+0" #METAMODES_0
        Subsection "Display"
            Depth       16
            Modes       "1024x768x16" #screen0modes
        EndSubsection
    EndSection

    Save the file and shutdown Puppy. Re-open the VM and now the screen size should be 1024×768. Shutdown Puppy then open the VM settings Undo Disks option.
    If the new configuration worked: Click Apply changes then OK.
    If the new configuration did not work: Click Discard changes then OK and try again.

  37. The final change to make is disabling screen blanking. Open the VM and select Menu->Desktop->pupX set properties of X then the Screensaver tab and uncheck the Enable screen saver box. Click Apply and in the three dialogs that open click OK, then click OK to close pupX. Notice that the three dialogs say (for this session only). Normally this would be true but because we installed to a hard disk this setting will be permanent.
    SlackoPup26
  38. Shutdown Puppy, re-open the VM and wait for more than 10 minutes to make sure the screen no longer goes blank. Shutdown Puppy again and open the VM settings Undo Disks option.
    If the new configuration worked: Click Apply changes then OK.
    If the new configuration did not work: Click Discard changes then OK and try again.

This completes the installation just like in the pre-made VHD file.

Steps I used to prepare the virtual machine for distribution:

  1. Turn off the Undo Disks feature.
  2. Modify the VHD selecting the Compact virtual hard disk option.
  3. Retest the VM by booting and shutting down a few times.
  4. Put Slacko_Puppy_5_6_0_PAE.vhd and Slacko_Puppy_5_6_0_PAE.vmc into a 7zip archive (Slacko_Puppy_5_6_0_PAE.7z).

References

Linux on Windows Virtual PC

Puppy Linux

Kernel boot options