system/kqemu: Initial import

This commit is contained in:
hollywoodb 2010-05-11 15:18:40 +02:00 committed by Eric Hameleers
parent 09185668b0
commit c80246572d
7 changed files with 156 additions and 0 deletions

24
system/kqemu/README Normal file
View file

@ -0,0 +1,24 @@
The QEMU Accelerator Module increases the speed of QEMU when a PC is emulated on a PC. It runs most of the target application code directly on the host processor to achieve near native performance. It is very useful when you want to run another Operating System (for example Windows) on a Linux desktop.
With the QEMU Accelerator Module, QEMU can be compared to other commercial or free PC Virtualizers. It has the advantage of being free and to achieve good performances while necessitating no specific guest Operating System modifications.
The QEMU Accelerator used to be a closed source (albeit free to use) product, but starting with the release of 1.3.0pre11 it's license changed to the GPL.
By default the script will build the kqemu kernel module for the currently
running kernel. If you would like to build the kqemu driver for a different
kernel version, two things are required:
1) kernel source
2) run the script as: KERNELVERSION=<version> sh kqemu.SlackBuild
In place of <version> use only the version, not the full path
Examples: KERNELVERSION=2.4.33.3 or KERNELVERSION=2.6.18
The kernel module will then be installed to /lib/modules/<version>/....
You may use this SlackBuild to build the kqemu module for as many *different*
kernels as you like and they can be installed alongside each other without
conflict.
This SlackBuild also comes with a file called "rc.kqemu". This script will load the kernel module and create the /dev/kqemu node so that you can actually use kqemu with QEMU. This script isn't installed by default. To install it so it is run every boot you can either copy its contents to /etc/rc.d/rc.local, or use the script as-is by copying it to /etc/rc.d/, making sure ownership and permissions are correct, and manage it as any other 3rd-party initscript. If you would just like to use it once in a while, you can run it with `sh rc.kqemu`.
Requires:
2.4 or 2.6 series Linux kernel
qemu >= 0.8.1

11
system/kqemu/doinst.sh Normal file
View file

@ -0,0 +1,11 @@
#!/bin/sh
if [ -x sbin/depmod ]; then
chroot . /sbin/depmod -a 1> /dev/null 2> /dev/null
fi
# Create the kqemu device. No special priviledge is needed to use kqemu.
device="dev/kqemu"
rm -f $device
mknod $device c 250 0
chmod 666 $device

View file

@ -0,0 +1,17 @@
--- install.sh.orig 2007-02-25 15:03:06.000000000 -0600
+++ install.sh 2007-02-25 15:05:54.000000000 -0600
@@ -10,9 +10,10 @@
fi
# Find kernel install path
-kernel_path="/lib/modules/`uname -r`"
+kernel_path="/lib/modules/$KERNELVERSION"
-mkdir -p "$kernel_path/misc"
-cp "$module" "$kernel_path/misc"
+mkdir -p "$DESTDIR/$kernel_path/misc"
+cp "$module" "$DESTDIR/$kernel_path/misc"
+
+# /sbin/depmod -a # Done in doinst.sh
-/sbin/depmod -a

View file

@ -0,0 +1,78 @@
#!/bin/sh
## Written by hollywoodb (hollywoodb@fastmail.fm)
## Feel free to use, modify, redistribute this script.
## If you make changes please modify the "Written by"
## so that I don't recieve emails about a script I
## did not write. Thanks.
## Modified by the SlackBuilds.org project
set -k
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root!"
exit
fi
KERNELVERSION=${KERNELVERSION:-`uname -r`}
KERNELPATH=${KERNELPATH:-/lib/modules/${KERNELVERSION}/build}
PATCHLEVEL=`echo $KERNELVERSION | cut -f 2 -d '.'`
NAME=kqemu
VERSION=1.3.0pre11
ARCHIVE=tar.gz
PKG_VERS=$VERSION\_$KERNELVERSION
ARCH=${ARCH:-i486}
CWD=`pwd`
TMP=${TMP:-/tmp/SBo}
PKG=${PKG:-$TMP/package-$NAME}
OUTPUT=${OUTPUT:-/tmp}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
rm -rf $PKG $TMP/$NAME-$VERSION
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
tar zxvf $CWD/$NAME-$VERSION.$ARCHIVE || exit 1
cd $NAME-$VERSION
chown -R root:root .
chmod -R u+w,go+r-w,a-s .
# `make install` calls install.sh
# Let's make install.sh respect DESTDIR, and move /dev node
# creation and /sbin/depmod to doinst.sh
patch -p0 < $CWD/install.sh-install.patch || exit 1
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
fi
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--kernel-path=$KERNELPATH \
|| exit 1
make || exit 1
make install KERNELVERSION=$KERNELVERSION DESTDIR=$PKG || exit 1
# Compress 2.4.x kernel modules like Slackware does by default:
[ $PATCHLEVEL -eq 4 ] && find $PKG/lib/modules -name "*.?" -type f -exec gzip -9f {} \;
mkdir -p $PKG/usr/doc/$NAME-$PKG_VERS
cp -a {Changelog,LICENSE,README} $PKG/usr/doc/$NAME-$PKG_VERS
cat $CWD/$NAME.SlackBuild > $PKG/usr/doc/$NAME-$PKG_VERS/$NAME.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
chmod +x $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n -p $OUTPUT/$NAME-$PKG_VERS-$ARCH-$BUILD$TAG.tgz

8
system/kqemu/kqemu.info Normal file
View file

@ -0,0 +1,8 @@
PRGNAM="kqemu"
VERSION="1.3.0pre11"
HOMEPAGE="http://qemu.org/"
DOWNLOAD="http://qemu.org/kqemu-1.3.0pre11.tar.gz"
MD5SUM="970521874ef8b1ba4598925ace5936c3"
MAINTAINER="hollywoodb"
EMAIL="hollywoodb@fastmail.fm"
APPROVED="alien"

9
system/kqemu/rc.kqemu Normal file
View file

@ -0,0 +1,9 @@
#!/bin/sh
/sbin/modprobe kqemu
# Create the kqemu device. No special priviledge is needed to use kqemu.
device="/dev/kqemu"
rm -f $device
mknod $device c 250 0
chmod 666 $device

9
system/kqemu/slack-desc Normal file
View file

@ -0,0 +1,9 @@
|-----handy-ruler--------------------------------------------------------|
kqemu: kqemu (QEMU accelerator module for 2.4/2.6 series kernels)
kqemu:
kqemu: The QEMU Accelerator Module increases the speed of QEMU when a PC is
kqemu: emulated on a PC. It runs most of the target application code directly
kqemu: on the host processor to achieve near native performance. It is very
kqemu: useful when you want to run another Operating System (for example
kqemu: Windows) on a Linux desktop.
kqemu: