feat: Set GIC version (#6)
This commit is contained in:
parent
9f3f74c4de
commit
1ae241040e
4 changed files with 25 additions and 11 deletions
|
@ -1,4 +1,4 @@
|
||||||
<h1 align="center">QEMU<br />
|
<h1 align="center">Qemu ARM<br />
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<img src="https://github.com/qemus/qemu-arm/raw/master/.github/logo.png" title="Logo" style="max-width:100%;" width="128" />
|
<img src="https://github.com/qemus/qemu-arm/raw/master/.github/logo.png" title="Logo" style="max-width:100%;" width="128" />
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -40,12 +40,14 @@ DEST="$STORAGE/${BOOT_MODE,,}"
|
||||||
|
|
||||||
if [ ! -f "$DEST.rom" ]; then
|
if [ ! -f "$DEST.rom" ]; then
|
||||||
[ ! -f "$AAVMF/$ROM" ] && error "UEFI boot file ($AAVMF/$ROM) not found!" && exit 44
|
[ ! -f "$AAVMF/$ROM" ] && error "UEFI boot file ($AAVMF/$ROM) not found!" && exit 44
|
||||||
cp "$AAVMF/$ROM" "$DEST.rom"
|
dd if=/dev/zero "of=$DEST.rom" bs=1M count=64 status=none
|
||||||
|
dd "if=$AAVMF/$ROM" "of=$DEST.rom" conv=notrunc status=none
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f "$DEST.vars" ]; then
|
if [ ! -f "$DEST.vars" ]; then
|
||||||
[ ! -f "$AAVMF/$VARS" ] && error "UEFI vars file ($AAVMF/$VARS) not found!" && exit 45
|
[ ! -f "$AAVMF/$VARS" ] && error "UEFI vars file ($AAVMF/$VARS) not found!" && exit 45
|
||||||
cp "$AAVMF/$VARS" "$DEST.vars"
|
dd if=/dev/zero "of=$DEST.vars" bs=1M count=64 status=none
|
||||||
|
dd "if=$AAVMF/$VARS" "of=$DEST.vars" conv=notrunc status=none
|
||||||
fi
|
fi
|
||||||
|
|
||||||
BOOT_OPTS="$BOOT_OPTS -drive file=$DEST.rom,if=pflash,unit=0,format=raw,readonly=on"
|
BOOT_OPTS="$BOOT_OPTS -drive file=$DEST.rom,if=pflash,unit=0,format=raw,readonly=on"
|
||||||
|
|
|
@ -11,7 +11,7 @@ MON_OPTS="-monitor $MONITOR"
|
||||||
USB_OPTS="-device $USB -device usb-kbd -device usb-tablet"
|
USB_OPTS="-device $USB -device usb-kbd -device usb-tablet"
|
||||||
RAM_OPTS=$(echo "-m $RAM_SIZE" | sed 's/MB/M/g;s/GB/G/g;s/TB/T/g')
|
RAM_OPTS=$(echo "-m $RAM_SIZE" | sed 's/MB/M/g;s/GB/G/g;s/TB/T/g')
|
||||||
CPU_OPTS="-cpu $CPU_FLAGS -smp $CPU_CORES,sockets=1,dies=1,cores=$CPU_CORES,threads=1"
|
CPU_OPTS="-cpu $CPU_FLAGS -smp $CPU_CORES,sockets=1,dies=1,cores=$CPU_CORES,threads=1"
|
||||||
MAC_OPTS="-machine type=${MACHINE},dump-guest-core=off${KVM_OPTS}"
|
MAC_OPTS="-machine type=${MACHINE},secure=off,gic-version=3,dump-guest-core=off${KVM_OPTS}"
|
||||||
DEV_OPTS="-device virtio-balloon-pci,id=balloon0,bus=pcie.0,addr=0x4"
|
DEV_OPTS="-device virtio-balloon-pci,id=balloon0,bus=pcie.0,addr=0x4"
|
||||||
DEV_OPTS="$DEV_OPTS -object rng-random,id=objrng0,filename=/dev/urandom"
|
DEV_OPTS="$DEV_OPTS -object rng-random,id=objrng0,filename=/dev/urandom"
|
||||||
DEV_OPTS="$DEV_OPTS -device virtio-rng-pci,rng=objrng0,id=rng0,bus=pcie.0,addr=0x1c"
|
DEV_OPTS="$DEV_OPTS -device virtio-rng-pci,rng=objrng0,id=rng0,bus=pcie.0,addr=0x1c"
|
||||||
|
|
18
src/proc.sh
18
src/proc.sh
|
@ -7,7 +7,7 @@ set -Eeuo pipefail
|
||||||
: "${CPU_FLAGS:=""}"
|
: "${CPU_FLAGS:=""}"
|
||||||
: "${CPU_MODEL:="host"}"
|
: "${CPU_MODEL:="host"}"
|
||||||
|
|
||||||
[[ "$ARCH" != "arm64" ]] && KVM="N"
|
[[ "$ARCH" != "arm"* ]] && KVM="N"
|
||||||
|
|
||||||
if [[ "$KVM" != [Nn]* ]]; then
|
if [[ "$KVM" != [Nn]* ]]; then
|
||||||
|
|
||||||
|
@ -37,7 +37,8 @@ if [[ "$KVM" != [Nn]* ]]; then
|
||||||
|
|
||||||
if [[ "${BOOT_MODE,,}" == "windows" ]]; then
|
if [[ "${BOOT_MODE,,}" == "windows" ]]; then
|
||||||
|
|
||||||
CPU_FEATURES="kvm=on,+hypervisor,+invtsc,l3-cache=on,migratable=no,hv_passthrough"
|
[ -n "$CPU_FEATURES" ] && CPU_FEATURES="$CPU_FEATURES,"
|
||||||
|
CPU_FEATURES="$CPU_FEATURES+hypervisor,+invtsc,l3-cache=on,migratable=no,hv_passthrough"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -45,23 +46,34 @@ else
|
||||||
|
|
||||||
KVM_OPTS=""
|
KVM_OPTS=""
|
||||||
CPU_FEATURES=""
|
CPU_FEATURES=""
|
||||||
|
|
||||||
|
if [[ "${BOOT_MODE,,}" == "windows" ]]; then
|
||||||
MACHINE="$MACHINE,virtualization=on"
|
MACHINE="$MACHINE,virtualization=on"
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "${CPU_MODEL,,}" == "host"* ]]; then
|
if [[ "${CPU_MODEL,,}" == "host"* ]]; then
|
||||||
|
|
||||||
if [[ "$ARCH" == "arm"* ]]; then
|
if [[ "$ARCH" == "arm"* ]]; then
|
||||||
CPU_MODEL="max"
|
CPU_MODEL="max"
|
||||||
else
|
else
|
||||||
CPU_MODEL="cortex-a57"
|
CPU_MODEL="cortex-a53"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$CPU_FLAGS" ]; then
|
if [ -z "$CPU_FLAGS" ]; then
|
||||||
|
if [ -z "$CPU_FEATURES" ]; then
|
||||||
|
CPU_FLAGS="$CPU_MODEL"
|
||||||
|
else
|
||||||
CPU_FLAGS="$CPU_MODEL,$CPU_FEATURES"
|
CPU_FLAGS="$CPU_MODEL,$CPU_FEATURES"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
|
if [ -z "$CPU_FEATURES" ]; then
|
||||||
|
CPU_FLAGS="$CPU_MODEL,$CPU_FLAGS"
|
||||||
|
else
|
||||||
CPU_FLAGS="$CPU_MODEL,$CPU_FEATURES,$CPU_FLAGS"
|
CPU_FLAGS="$CPU_MODEL,$CPU_FEATURES,$CPU_FLAGS"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|
Loading…
Reference in a new issue