Puppy

From Wsms

Jump to: navigation, search

Puppy linux is a bootable CD linux distribution designed for older systems with slower processors and limited memory. One attractive feature is that Puppy loads itself into RAM and you can eject the CD. If your computer has a DVD player, you can even play DVDs using Puppy.

I have used version 2.13 on systems with as little at 96MB RAM and processors as slow as a 233MHz Pentium II. Once Puppy loads into memory it is very responsive. I have also installed Puppy on several different computers and virtual machines.--Ggeller 07:43, 28 March 2007 (PDT)

Contents

download

tips

xwin

If you install Puppy to your hard disk and Ctrl-Alt-Backspace to kill X or otherwise leave X abnormally, you will be in text mode when you reboot. In this case you need to run xwin:

# xwin

e3em

Puppy doen't have emacs, but it has a console-based editor called e3 that has emacs key bindings. Invoked it with e3em. There is also an e3vi if you taste runs in that direction.

checking the boot media

If your computer boots from your puppy CD, the cd is probably OK. As of puppy 4.1.2, you can check the medium with something like this:

# dd if=/dev/sr1 | md5sum
193240+0 records in
193240+0 records out
d1d44d120d5622cde1b7c6a6bc5fd838  -
98938880 bytes (99 MB) copied, 34.9885 s, 2.8 MB/s

Compare the md5sum with the master stored in: http://distro.ibiblio.org/pub/linux/distributions/puppylinux/puppy-4.1.2-k2.6.25.16-seamonkey.iso.md5.txt

20070226

Adapted the instructions from: http://www.puppyos.com/hard-puppy.htm

sh-3.00# losetup /dev/loop2 devx_214.sfs
sh-3.00# mkdir mntpt
sh-3.00# mount -t squashfs /dev/loop2 mntpt
sh-3.00# cp -a --remove-destination mntpt/* /
sh-3.00# sync
sh-3.00# umount mntpt
sh-3.00# rmdir mntpt
sh-3.00# which cpp
/usr/bin/cpp

Note: this sort of thing doesn't work if you are running from a CD, you have to actually install puppy to a hard disk.

The source rpm for vnc is http://download.fedora.redhat.com/pub/fedora/linux/core/updates/5/SRPMS/vnc-4.1.1-39.fc5.src.rpm

I copied the source for vnc from arthur:/usr/src/redhat/BUILD to puppy. Then I did ./configure and make in the /vnc-4_1_1-unixsrc/common directory. The build fails with:

make[1]: Entering directory `/root/build/vnc/BUILD/vnc-4_1_1-unixsrc/common/zlib'
gcc -O3 -DHAVE_UNISTD_H -DUSE_MMAP -o example example.o -L. -lz
example.o(.text+0x28): In function `test_compress':
example.c: undefined reference to `compress'
example.o(.text+0xf5): In function `test_gzio':
example.c: undefined reference to `gzopen'
example.o(.text+0x10d):example.c: undefined reference to `gzputc'
...

I think that means the puppy needs zlib-devel. But, I wonder why it found a .h file that it liked and was able to get to the linking step. The source rpm for zlib-devel is http://download.fedora.redhat.com/pub/fedora/linux/core/5/source/SRPMS/zlib-1.2.3-1.2.1.src.rpm

Now it see that puppy has /usr/lib/libz.a. I think that means it has some sort of zlib, maybe not a good enough one. Or maybe compress and stuff come from another library? Fedora has:

libz.a  libz.so  libz.so.1  libz.so.1.2.3

Puppy has only:

/usr/lib/libz.a

Do I need to run ranlib or something to generate the .so files?

I think i fixed it. The problem was /usr/lib/libz.a. I deleted it, then built a new one in /root/build/vnc/BUILD/vnc-4_1_1-unixsrc/common/zlib, then copied the new one to /usr/lib/libz.a. Then I did make clean and make for the whole /root/build/vnc/BUILD/vnc-4_1_1-unixsrc/common. The problem is one of the FAQs in vnc-4_1_1-unixsrc/common/zlib/FAQ.

Success! I built vncviewer on Puppy 2.14. The trick is to change the link instruction to: EXTRA_LIBS = $(COMMON)/zlib/libz.a /usr/X11R7/lib/libXext.a /usr/X11R7/lib/libX11.a /usr/X11R7/lib/libXau.a /usr/X11R7/lib/libXdmcp.a -ldl in /root/build/vnc/BUILD/vnc-4_1_1-unixsrc/unix/vncviewer/Makefile.

VNC and puppy

To run puppy as a VNC server, install tightvncserver-repacked_by_EdB.pup. Then set the desktop to 1026x768x16. Start tight vnc server with:

sh-3.00# vncserver -geomery=1024x768 :96

Run the VNC client on another machine:

[ggeller@arthur ~]$ vncviewer -geometry 1024x768 192.168.2.96:5996

20070223

Installed puppy 2.14 under VMWare on arthur.

Format with fdisk:

sh-3.00# fdisk -l /dev/hda

Disk /dev/hda: 8589 MB, 8589934592 bytes
15 heads, 63 sectors/track, 17753 cylinders
Units = cylinders of 945 * 512 = 483840 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1               1       14577     6887601   83  Linux
/dev/hda2           14578       15636      500377+  83  Linux
/dev/hda3           15637       17753     1000282+  83  Linux
# mke2fs -j /dev/hda1
# mkswap /dev/hda2
# mke2fs -j /dev/hda3

20070201

Puppy initscripts according to Gus Wirth: rc.sysinit -> load some modules + PCMCIA

rc.modules -> load modules + listed
rc.local0 -> keyboard, mouse
 rc.network - allows only 2 extra modules
 rc.alsa

20070128

Set up puppy linux 2.13 under VMWare Server on arthur.

Formatted hard disk with fdisk.

I think you can install with the universal install from the main menu.

See also

Knoppix
The #puppylinux channel on IRC at Freenode.net

Personal tools