qemu with hax to log dma reads & writes
jcs.org/2018/11/12/vfio
1#
2# Docker x86_64 target
3#
4# This docker target builds on the debian Stretch base image. Further
5# libraries which are not widely available are installed by hand.
6#
7FROM qemu:debian10
8MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
9
10RUN apt update && \
11 DEBIAN_FRONTEND=noninteractive eatmydata \
12 apt build-dep -yy qemu
13
14RUN apt update && \
15 DEBIAN_FRONTEND=noninteractive eatmydata \
16 apt install -y --no-install-recommends \
17 libbz2-dev \
18 liblzo2-dev \
19 libgcrypt20-dev \
20 librdmacm-dev \
21 libsasl2-dev \
22 libsnappy-dev \
23 libvte-dev
24
25# virgl
26RUN apt update && \
27 DEBIAN_FRONTEND=noninteractive eatmydata \
28 apt install -y --no-install-recommends \
29 libegl1-mesa-dev \
30 libepoxy-dev \
31 libgbm-dev
32RUN git clone https://gitlab.freedesktop.org/virgl/virglrenderer.git /usr/src/virglrenderer && \
33 cd /usr/src/virglrenderer && git checkout virglrenderer-0.8.0
34RUN cd /usr/src/virglrenderer && ./autogen.sh && ./configure --disable-tests && make install
35
36# netmap
37RUN apt update && \
38 DEBIAN_FRONTEND=noninteractive eatmydata \
39 apt install -y --no-install-recommends \
40 linux-headers-amd64
41RUN git clone https://github.com/luigirizzo/netmap.git /usr/src/netmap
42RUN cd /usr/src/netmap && git checkout v11.3
43RUN cd /usr/src/netmap/LINUX && ./configure --no-drivers --no-apps --kernel-dir=$(ls -d /usr/src/linux-headers-*-amd64) && make install
44ENV QEMU_CONFIGURE_OPTS --enable-netmap
45
46RUN ldconfig
47
48# gcrypt
49ENV QEMU_CONFIGURE_OPTS $QEMU_CONFIGURE_OPTS --enable-gcrypt