Qemu build: Qemu doesn't start if there is no iommu
Created by: genodeftest
Reproduction:
On a system without hardware iommu, run make all
followed by make qemu
Expected behavior: open qemu and boot redox
Actual behavior: starting qemu fails with these lines at the end:
SDL_VIDEO_X11_DGAMOUSE=0 qemu-system-x86_64 -serial mon:stdio -d cpu_reset -d guest_errors -smp 4 -m 1024 -machine q35,iommu=on -net nic,model=e1000 -net user -net dump,file=build/kernel/network.pcap -drive file=build/kernel/harddrive.bin,format=raw -enable-kvm -cpu host
qemu-system-x86_64: Property '.iommu' not found
Makefile:177: recipe for target 'qemu' failed
make: *** [qemu] Error 1
Build information:
$ rustc -V
rustc 1.14.0-nightly (5665bdf3e 2016-11-02)
$ git rev-parse HEAD
e81b1d33ee2971d181abd497f6bb179f93f098de
$ qemu-i386 -version
qemu-i386 version 2.7.0(qemu-2.7.0-7.fc25), Copyright (c) 2003-2016 Fabrice Bellard and the QEMU Project developers
Blocking/related: There probably is a need to update redox-os/book/getting_started/compiling_redox.html section "Running Redox" when this issue is closed.
Misc: According to ark.intel.com, my CPU has VT-x, VT-x with EPT, VT-d. The chipset doesn't support VT-d though.
Running make qemu iommu=no
instead of make qemu
boots fine but stops after showing the line starting with DHCP: Ack IP: [
in qemu and
BSP: Ok(3) 4
AP 2: Ok(4)
AP 1: Ok(1)
AP 3: Ok(2)
orbital: found display 1024x768
orbital: mapped display to 10000000000
in the terminal I started ran the make command in.
I don't know whether this is related or not, so I don't know whether iommu=on
is a workaround or just delaying the bug to somewhere later in the boot process.