If you don't know, Colinux is a way of running Linux at the same time as running Windows, without an emulator, so it should be a lot faster than something like QEMU (although I haven't tried kQEMU).
There are other distributions using Colinux, so this is hardly cutting edge, but the last report I saw of someone running Puppy/Colinux was a couple of years back (using a QEMU image), and people ask about it every now and then.
-----------------------
Installing Colinux:
This is what I did to run Puppy 4.1.1/Colinux:
1. Installed Cygwin and Cygwin/X (you could use Xming, which is supposed to be easier), so that I can run graphical applications.
2. Used the latest Colinux installer to get a Colinux kernel etc and network applications.
3. Made a file (512MB in this case) on C:\ drive to install Puppy in, kind of like a save file (If you have a puppy install on an ext2/ext3 partition you should be able to boot that instead, which would be better as you can install an ext2 filesystem driver to access it read/write from Windows (2000 or newer I think)). I can't figure out how to mount ext2 save files with the current version of Virtual Volumes, but you can use explore2fs for read-only access.
You should be able to make this from Puppy or Cygwin, or I think also with native Windows tools:
Code: Select all
dd if=/dev/zero of=puppy.2fs bs=1M count=512
mke2fs puppy.2fs
5. Ran:
6. Chose ps/2 keyboard and the right locale, chose Xorg server, and any monitor, then exited instead of testing or starting X.colinux-daemon kernel=vmlinux cobd0="c:\coLinux\puppy.2fs" root=/dev/cobd0 eth0=slirp initrd=initrd.gz
7. EDIT - just worked out how to setup the network and display automatically at each boot:
- found my Windows IP address by running
Code: Select all
ipconfig
Code: Select all
export DISPLAY=192.168.1.51:0
Code: Select all
dhcpcd eth0
Booting Puppy:
Now I can boot puppy by running this batch script:
Code: Select all
colinux-daemon kernel=vmlinux cobd0="c:\coLinux\puppy.2fs" root=/dev/cobd0 eth0=slirp -t nt
Code: Select all
poweroff
I don't recommend the fltk console, as it seems to be fairly useless... I wish I could use my Cygwin rxvt for the Colinux console
It is possible to mount your local hard drives using cofs, but I've found that it doesn't work properly (e.g. if I rename a file in rox, it disappears, until I restart Colinux), so I think in the future I'll connect to my C: drive using Samba instead.
[EDIT - SOLVED - SEE ABOVE]
I can start X either before or after booting Puppy, but every time I boot Puppy I have to run*
Code: Select all
dhcpcd eth0
export DISPLAY=192.168.1.51:0
[/SOLVED]
Colinux connects to the X server over a fake ethernet connection, and Slirp (which I'm using) is just slow enough to be annoying. We have internet connection sharing disabled here, so I can't use a faster TAP connection in the normal way . It is possible to use Slirp for your internet/network connection but a TAP connection to your X server, but I can't figure out how to do it in Puppy... if I set the DISPLAY variable to use my TAP server it doesn't seem any faster, so I presume it is still connecting through the SLIRP server.
Starting my Cygwin/X server:
I like to run in multiwindow mode, so instead of having a virtual cygwin desktop, programs are all in normal Windows windows... so they just look like a normal program. The downside of this is that I can't run a window manager to get the puppy menu - if anyone can suggest something that will use Puppy's .desktop menu files to provide a graphical way to start applications, that would be great... although personally I know the command to start most things EDIT - you can use something like Lxpanel, although it requires a bit of configuration to make useful without being in the way.
(The other downside is that it means I'm using the inferior Windows window manager - I guess I could always try the "party trick" of using an X wm to manage the windows windows as well )
The ac option allows my Puppy (and I guess anyone else on my network) to send windows to my X server without having to explicitly give it permission using xhost.
Code: Select all
XWin -multiwindow -emulate3buttons 200 -clipboard -ac
What else?:
If somebody is keen, it would be great to make an easy way for someone to install Puppy/Colinux. Apart from issues I've already mentioned, you'd probably also want to figure out:
- sound (It looks to me like esd is the best way to go).
- how to use a more normal Puppy "frugal" install i.e. without extracting pup_xxx.sfs into the "save file", so that you can upgrade simply by replacing pup_411.sfs with a newer version. (yes, the Colinux kernel comes with a unionfs module now).[/code]