BLFS OVMF
Open Virtual Machine Firmware (OVMF)是在虚拟机内部提供正常UEFI的开源项目,从EDK II代码为基础构建
编译OVMF
获取 EDK II 主仓库代码 EDK II Main Repository 进行编译
获取edk2代码并编译X64架构的OVMF
cd /sources
git clone https://github.com/tianocore/edk2.git
# 参考 https://github.com/tianocore/tianocore.github.io/wiki/How-to-build-OVMF
cat > Conf/target.txt << EOF
ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc
TARGET_ARCH = X64
TOOL_CHAIN_TAG = GCC14
EOF
build
使用OVMF
警告
我暂时使用从 Ubuntu Linux 发行版提供的 OVMF_CODE.fd
( /usr/share/OVMF/OVMF_CODE.fd
)
运行UEFI虚拟机(使用VNC)
name=d2l
qemu-system-x86_64 \
-nodefaults \
-enable-kvm \
-cpu host,kvm=off \
-bios /usr/share/OVMF/OVMF_CODE.fd \
-m 32G \
-smp cores=4 \
-device vfio-pci,host=82:00.0 \
-drive file=/sources/images/${name}.qcow,if=virtio \
-net nic,model=virtio,macaddr=52:54:00:00:00:01 -net bridge,br=br0 \
-vga std \
-vnc :0 \
-serial mon:stdio \
-name "${name}"
# 默认终端提示
# VNC server running on 127.0.0.1:5900
# 如果需要VNC监听所有网络接口,则添加参数 -vnc :0 ,此时终端就看不到提示,但是使用VNC客户端可以连接
# lspci -nnk -d 10de:1e37
# 输出显示设备:
82:00.0 3D controller [0302]: NVIDIA Corporation TU102GL [Tesla T10 16GB / GRID RTX T10-2/T10-4/T10-8] [10de:1e37] (rev a1)
Subsystem: NVIDIA Corporation Tesla T10 16GB [10de:1370]
Kernel driver in use: vfio-pci
# 则在 qemu 运行参数中添加设备使用VFIO group id "82:00.0"
# 即 -device vfio-pci,host=82:00.0 \