EDKII代码下载和编译很多文章讲过了。本文记录下在Ubuntu 22.04 (内核版本5.15.0-78-generic)下通过qemu加载EDKII编译后生成的镜像所遇到的问题和解决方法。
问题:运行qemu之后只能启动虚拟video,不能进入Boot Manager并加载UEFI Shell,如下:
加 -d guest_errors打印错误信息:
Invalid write at addr 0x0, size 4, region 'acpi-cpu-hotplug', reason: invalid size (min:1 max:1)
Invalid write at addr 0x0, size 4, region 'acpi-cpu-hotplug', reason: invalid size (min:1 max:1)
应该是属于Ubuntu系统中运行qemu发生的问题。检查qemu相关组件是否安装:
apt install qemu
apt install qemu-kvm
apt install virt-manager
apt install virt-viewer
apt install libvirt-daemon-system
apt install libvirt-clients
apt install bridge-utils
查询所安装的qemu版本
qemu-system-x86_64 --version
添加libvert用户
useradd -g $USER libvirt
useradd -g $USER libvirt-kvm
启动libvirtd.service
systemctl enable libvirtd.service
systemctl start libvirtd.service
systemctl restart libvirtd.service
改用一下命令执行:
qemu-system-x86_64 -cpu host -bios OVMF.fd -net none --enable-kvm
成功通过Qemu加载了EDKII镜像。