Easy solution: Dual boot with older 10MByte version of GeeXboX
---------------------------------
First a disclaimer. For those wanting quantitative statistics, this howto is not for you. Most of the results are provided in qualitative form since I was in a hurry and just wanted to find what worked best for me.
---------------------------------
With a full install even the later versions of Puppy can run the JWM desktop reasonably smoothly (albeit slowly) on even a 486 DX class machine with as little as 32 MByte of RAM and a small swap partition.
In practice, I used Puppy 2.17.1 (the last of the 2.x.x series) in the tests for this howto (because I like it!) and the machine used was a Pentium-II class machine rather than something older (since that's what I had at my disposal); more specifically: an old Dell Latitude CPt laptop, which has an Intel Celeron (Medicini) 400 MHz CPU (which only has 128 kB of internal cache). The LCD display is 800x600 on this machine and I'm running Xorg (not Xvesa) in the hope of getting graphics acceleration with the xv video driver.
For the tests, the machine was kitted with:
64 MBytes RAM
An 80 Mbyte swap partition.
DMA was enabled for the DVD drive (/dev/hdc on my computer) as verified by running: cat /proc/ide/hdc/settings
(Just to be sure I also entered: hdparm -d1 /dev/hdc in a successful attempt to force the matter. On some machines you may need to add combined_mode=libata to the kernel line of menu.lst in grub bootloader - as suggested by user kirk here: http://www.murga-linux.com/puppy/viewto ... 389#125983).
I've long used Puppy 2.17.1 on this machine (the last of the Puppy 2.x.x series).
With 64 MByte RAM, it boots up and works okay as a frugal installation, but starting up applications, such as gxine, is very very slow, because Puppy loads a lot of itself into precious RAM, leaving too little for really running gxine. On initial boot it already uses some of the provided swap partition in a frugal-based configuration.
However, a full install gets round some of that problem. On initial boot with a full install of Puppy, no swap is used at all, and gxine loads reasonably quickly because there is "plenty" free RAM still available.
In gxine, File->Preferences->Configure, I chose experience_level Expert: video->driver xv
Result: DVD's then play okay, but there remains some noticeable (and seriously annoying) choppiness. Note that adding a further 64 MByte of RAM did not remove that choppiness effect. In gxine, I did try configuring: engine->video_num_buffers (by doubling their number) but that didn't cure the problem.
Looked like I would have to live with it, and just use the machine for simple browsing and general Puppy use without multimedia. I did try mplayer at one stage, but with similar results. Perhaps if I knew better how to tune them, but it felt rather like slogging a dead horse...
However... it dawned on me that since I always watch DVDs fullscreen anyway, I don't need Puppy itself whilst the DVD is running. I decided to therefore try the special purpose multimedia OS distribution, GeeXboX version 1.1 (using that version rather than the latest GeeXboX version 1.21 because the image size of the 1.21 version is almost double that of version 1.1). GeeXboX is a diminutive (less than 10 MBytes in version 1.1) special purpose multimedia-only operating system, which uses Linux and mplayer underneath to provide its functionality. This version requires a Pentium class machine for operation and no less than 64 Mbytes of RAM (which, as it turns out, is in fact plenty enough...). In use, GeeXboX is also great for grannies and grandads (and any other sensible person) who simply wants to play any kind of multimedia without necessarily needing to know how to generally otherwise use a computer per se... Note that the older GeeXboX 0.97 version might be useful for even older machines since it was the last version to use the older Linux 2.4 kernel series (version 1.1 uses kernel 2.6.21.3).
To cut a long story short, Geexbox 1.1 plays DVDs perfectly on the above machine, with only 64 MByte RAM installed, and with no noticeable choppiness at all (it won't run with only 32 MBytes RAM though).
Installation Details: Dual-booting GeeXboX with Puppy Linux.
To complete the installation I did the following:
1. Using Puppy, I downloaded the GeeXboX 1.1 iso (geexbox-1.1-en.i386.iso) from one of the available Old Releases archives at http://www.geexbox.org/downloads
[you can also generate your own custom version of the iso (from within Linux, Windows or a Mac) with the GeeXboX 1.1 generator version as an alternative].
2. In ROX filemanager, I then clicked on the geexbox-1.1-en.i386.iso icon (which mounts the iso automatically under Puppy, and reveals its contents). I then copied the folder (inside that iso) named GEEXBOX onto the root of the partition where I had my Puppy Linux full install (though you are free to copy the GEEXBOX folder to some other partition if you wish as long as you set up grub configuration menu.lst accordingly). However, DON'T confuse the root of the partition with the root directory '/' since they are not always the same thing (in a Puppy frugal install they are not the same thing at all since the root directory is inside the puppy save file). i.e. GEEXBOX should be copied to /mnt/hda1 if Puppy is installed on that partition or /mnt/hda2 if it is on that partition instead. Perhaps the easiest way to do the folder copying is to use Pmount Puppy Drive Mounter, or similar, to check which partitions are available and to make sure the required partition is mounted.
3. I then modified my grub (actually grub4dos in my case) menu.lst config file by adding the following entry
[Refer: http://jeffreyantony.wordpress.com/2008 ... ox-part-1/] (use capital letters where shown):
Code: Select all
title GeeXboX
rootnoverify (hd0,6)
kernel /GEEXBOX/boot/vmlinuz root=/dev/ram0 rw init=linuxrc boot=hda7 lang=en splash=0 vga=789 keymap=qwerty remote=LG receiver=homemade video=vesafb:ywrap,mtrr
initrd /GEEXBOX/boot/initrd.gz
boot
a. The above assumes Puppy (and the folder /GEEXBOX resides on /dev/hda7; you need to modify your entry according to which partition you are actually using. For example, if everything is on /dev/hda1, then you would use rootnoverify (hd0,0) and (on the "kernel" line) boot=hda1 (with no spaces). In normal grub, I think you might have to use root (hd...,...) rather than rootnoverify (hd...,...), but it's a long time since I've done any work with grub (or grub4dos) so I'm can't remember any details. However, the above works for me.
b. The default resolution provided by GeeXboX was 800x600, which fitted my machine perfectly. However, when I tried GeeXboX on my other laptop, whose screen size is 1024x768, I needed to change vga=789 to vga=792 in the menu.lst "kernel" line above (use vga=786 if you want 640x480). You'd have to find out for yourself what vga value to use for screens of other resolutions. Alternatively, if you boot GeeXboX from a live iso I imagine it might adjust its screen display resolution automatically, but I haven't tried that.
4. Re-boot and GeeXboX should simply work (and work well and smoothly even on an old lo-RAM machine such as that described), and automatically play any DVD you insert. GeeXboX can handle most multimedia formats and even DVB TV etc. The 1.21 version handles more multimedia formats but (being almost double the download size) no doubt takes up much more precious RAM.
5. The keyboard can be used to control GeeXboX. The keys to use are clearly documented here: http://www.geexbox.org/en/controls.html so that even a non-technical person should confidently be able to play and control DVDs and other multimedia files.
Final Notes:
a. You can also easily dual-boot GeeXboX with a frugal Puppy installation. Just place the GEEXBOX folder on the partition alongside your Puppy files and it will be found by the above grub stanza (indeed you can position the GEEXBOX folder anywhere, even on a Windows partition as far as I know; just modify grub menu.lst accordingly and it will present itself in grub's boot menu).
b. GeeXboX could also prove useful to those with a fast machine. Rather than waste time trying to get gxine or mplayer working under your main desktop OS, use GeeXboX running inside a virtual machine such as virtual box, qemu, or vmware, instead. The principal advantage of using a specialist multimedia distribution for your multimedia needs, rather than a mediaplayer in a general-purpose OS, should be obvious: the developers are focusing on any problems related to such needs, so GeeXboX is likely to usually provide an optimal solution to multimedia requirements, and keep up to date via new releases.