Modified version of QEMU that allows to run PenPoint OS (SDK) using graphics tablet
This is a step-by-step instruction how to create running PenPoint OS environment.
It will use a modified version of QEMU, a libvirt client (virt-manager in my case but any should do), and FreeDOS.
In the guide I will be using Arch Linux and be linking to ArchWiki but it should work similarily for other distributions.
Download FreeDOS 1.3 LiveCD and unzip it.
$ unzip FD13-LiveCD.zip
Archive: FD13-LiveCD.zip
inflating: FD13BOOT.img
inflating: FD13LIVE.iso
inflating: readme.txt
Install QEMU and libvirt client
$ sudo pacman -S qemu-desktop libvirt virt-manager
and start the libvirtd service.
$ systemctl start libvirtd.service
Start virt-manager. If ‘QEMU/KVM’ is grayed out double click to connect.
Installation of FreeDOS is now complete, you can use shutdown
command to power off.
PATH=C:\PENPOINT\SDK\UTIL\DOS;%PATH%
SET INCLUDE=.;C:\PENPOINT\SDK\INC
SET LIB=C:\PENPOINT\SDK\LIB
SET PENPOINT_PATH=C:\PENPOINT
Adding ‘;%PATH’ at the end of ‘PATH=…’ makes so that programs included with FreeDOS can still be used normally.
del autoexec.new config.sys
.reboot
.cd penpoint\boot
You now have running PenPoint OS (SDK). To exit PenPoint click ‘Settings -> Power -> Manual shutdown’.
To build QEMU you will probably need to install some packages. One way to find out what packages you need is to look how QEMU in your distribution’s repositories is being built. As I am using Arch Linux I looked what the AUR (Arch User Repository) package for building QEMU from master - qemu-git - especially its PKGBUILD
$ git clone 'https://github.com/khnsky/qemu-penpointos.git'
$ cd qemu-penpoint
$ mkdir build
$ cd build
$ ../configure --target-list=x86_64-softmmu --enable-modules --disable-werror
If configure script fails you might have some environmental variables like $CFLAGS
set that interfere with it.
$ ninja
$ sudo EDITOR=nvim virsh edit --domain QEMU-PenPoint
Use any editor you like by setting the $EDITOR
environmental variable. The argument to --domain
is the name of the virtual machine.
<emulator>
element and change its value to the path of the new binary.
<emulator>/home/khnsky/code/penpoint/qemu-penpointos/build/qemu-system-x86_64</emulator>
‘virsh’ performs some error cheking so that it will tell you if you made syntax errors in the configuration xml or if the QEMU binary lacks necessary features.
You now have a virtual machine with PenPoint OS (SDK) installed in FreeDOS that uses a modified QEMU binary that allows to use a graphics tablet in PenPoint.