EDIT: added also the kqemu Windows's driver
Code: Select all
This file contains a "proof of concept" about making a portable Puppy 4 distro, that is:
- an USB key bootable Puppy installation, which also is
- capable of running inside another Linux or Windows operating system, thanks to QEMU
This work (distributed with a GPL license) is in no way original and of course I don't claim any right :). It is based on:
- Erik Veenstra's "QEMU-Puppy"
- see http://www.erikveen.dds.nl/qemupuppy/index.html
- in detail, I'm including his:
- "allinoneqemu.exe" binary
- "allinoneqemu_linux" binary
- Linux script implementation
- mderemick's "QEMU_Launcher"
- see http://www.murga-linux.com/puppy/viewtopic.php?t=29107&start=15
- I implemented his idea of using UNetbootin for installing Puppy and then use QEMU with it
Follow these steps:
1. peek an USB key (I used an 8 Gb key)
2. with UNetbootin install Puppy in the USB key:
2.1 download an ISO (I installed Puppy 4.3.1 - see http://distro.ibiblio.org/pub/linux/distributions/puppylinux/puppy-4.3.1/pup-431.iso)
2.2 download and run UNetbootin (from http://unetbootin.sourceforge.net)
2.3 on UNetbootin, click on "Disk Image", choose the ISO just downloaded, choose the USB drive and click OK
3. in the same key copy (in the root directory):
- allinoneqemu.exe
- allinoneqemu_linux
- winqemu.bat
- this try also to start the kqemu service for best performances. If you want install it on Windows, right-click on kqemu.inf, then click "Install"
- linqemu.sh
- if in the PATH there is already a preinstalled qemu command, it uses that, appending the "-kernel-kqemu" option
- kqemu.inf and kqemu.sys
- (Windows's driver for kqemu)
That is it, you have a portable Puppy.
My further steps were:
4. the first run was in Windows (winqemu.bat), when I saved the Puppy personal file (this step created also the swap file)
5. restart, booting directly from the key
6. restart and launching linqemu.sh from another Linux
Just as a test, I used also a QEMU tunnel port: 8000 guest's port can be accessed from the 5555 host's port. Then I started DidiWiki (which do run in port 8000) in the guest, and accessed it from the host, for example:
wget http://localhost:5555
As you can see, both the scripts are just a hint, they can be improved in many ways (configurability, logging). And I'm not a QEMU hacker, as you can see. Feel free to enhance them in any way - and, to really feel free, share them :)