Userspace helper for uvesafb.
Branch: master
Clone or download
Latest commit 45e0d48 May 29, 2014


v86d -- A x86 Emulation Daemon

1. Purpose
v86d provides a backend for kernel drivers that need to execute
x86 BIOS code.  The code is executed in a controlled environment
and the results are passed back to the kernel via the netlink

2. Suported architectures
This version of v86d supports the following architectures:
x86, x86-64 (amd64).

3. Configuration

3.1. The C library
v86d can be compiled against two different C libraries: glibc
and klibc, glibc being the default.

Compiling against glibc will result in a dynamically linked
executable that is not suitable for inclusion in initrds.

Compiling against klibc will result in a relatively small,
statically linked binary, which can be included in an initrd.

To compile v86d against klibc, run ./configure --with-klibc
after making sure that a recent (1.4 or newer) version of
klibc is installed on your system.

3.2. The emulator backend
On x86, the code executed by v86d can be run either in a fully
software-emulated environment (x86emu) or a virtualized
environment (vm86) supported by the CPU.  On other arches
or 64-bit systems, the code is always run by x86emu.

To choose the x86emu backend on a x86 system, run ./configure

4. Installation & Usage
To configure, build and install v86d with the default settings,

 # ./configure --default
 # make
 # make install

If the kernel that you're currently running doesn't provide
uvesafb, you can use the KDIR variable to point make to a
different kernel tree (e.g. `make KDIR=/usr/src/linux`).

v86d isn't meant to be used in an interactive way. It should
be started and called by the kernel. If you want to see it in
action, build and load the uvesafb kernel module.

If you want to include v86d into an initramfs image,
misc/initramfs provides a minimal config file parsable by

5. Licensing
v86d is licensed under GPL v2.

 Michal Januszewski <>