qemu源码编译环境

Qemu环境

Dockerfile

# 基于 Ubuntu 20.04
FROM m.daocloud.io/docker.io/ubuntu:20.04


# 设置非交互模式
ENV DEBIAN_FRONTEND=noninteractive

# 删除原有的官方源,添加阿里云镜像源
RUN rm -f /etc/apt/sources.list && \
    echo "deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse" >> /etc/apt/sources.list && \
    echo "deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse" >> /etc/apt/sources.list && \
    echo "deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse" >> /etc/apt/sources.list && \
    echo "deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse" >> /etc/apt/sources.list

# 更新软件源并安装 QEMU 构建依赖
RUN apt-get update && \
    apt-get install -y \
    git \
    build-essential \
    ninja-build \
    pkg-config \
    libglib2.0-dev \
    libpixman-1-dev \
    libaio-dev \
    libbluetooth-dev \
    libbrlapi-dev \
    libbz2-dev \
    libcap-ng-dev \
    libcurl4-gnutls-dev \
    libgtk-3-dev \
    libibverbs-dev \
    libjpeg8-dev \
    libncurses5-dev \
    libnuma-dev \
    librbd-dev \
    librdmacm-dev \
    libsasl2-dev \
    libsdl2-dev \
    libseccomp-dev \
    libsnappy-dev \
    libssh-dev \
    libusb-1.0-0-dev \
    libvde-dev \
    libvdeplug-dev \
    libvte-2.91-dev \
    libxen-dev \
    liblzo2-dev \
    valgrind \
    xfslibs-dev \
    zlib1g-dev \
    python3 \
    python3-pip \
    python3-setuptools \
    wget && \
    apt-get clean && rm -rf /var/lib/apt/lists/*
    
# 指定 QEMU 版本(可改为你需要的)
ARG QEMU_VERSION=v9.0.2

# 下载 QEMU 源码
RUN git clone --depth 1 --branch ${QEMU_VERSION} https://gitlab.com/qemu-project/qemu.git /qemu

WORKDIR /qemu

# 配置与编译
RUN ./configure --enable-kvm --enable-debug --enable-sdl --enable-gtk --target-list=x86_64-softmmu,aarch64-softmmu && \
    make -j$(nproc) && \
    make install

# 清理源码目录
RUN rm -rf /qemu

# 默认命令
CMD ["qemu-system-x86_64", "--version"]

构建镜像

docker build -t ubuntu22.04-image:1.0 .

运行容器

docker run -itd --network host -- ubuntu22.04-image:1.0