История изменений
Исправление NeverLoved, (текущая версия) :
https://bbs.archlinux.org/viewtopic.php?id=162768
It works! (комментарий)
Итоговый конфиг:
#!/bin/bash
MISC="
-name games
-machine q35,accel=kvm
-cpu host
-m 6050
-realtime mlock=off
-smp 8,sockets=1,cores=8,threads=1
-no-user-config
-nodefaults
-rtc base=localtime
-boot menu=on,strict=on
"
MONITOR="
-monitor stdio
-vga std
"
STORAGE="
-device virtio-serial-pci,id=virtio-serial0
-drive file=/home/neverloved/qemu_windows/windows7amd64.img,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,aio=native
-device virtio-blk-pci,scsi=off,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
-drive file=/home/neverloved/qemu_windows/windows_games.img,if=none,id=drive-virtio-disk1,format=qcow2,cache=none,aio=native
-device virtio-blk-pci,scsi=off,drive=drive-virtio-disk1,id=virtio-disk1
"
DEVICES="
-device intel-hda,id=sound0
-device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0
-device vfio-pci,host=03:00.1,id=hostdev0
-device vfio-pci,host=03:00.0,id=hostdev1
-device vfio-pci,host=00:12.0,id=hostdev2
-device vfio-pci,host=00:12.2,id=hostdev3
-device virtio-balloon-pci,id=balloon0
"
NET="
-netdev tap,helper=/usr/libexec/qemu-bridge-helper,id=hostnet0
-device virtio-net-pci,netdev=hostnet0,id=nic1
"
echo "$MISC $MONITOR $STORAGE $DEVICES $NET"
/usr/bin/qemu-system-x86_64 $MISC $MONITOR $STORAGE $DEVICES $NET
-device vfio-pci — железки, отвязанные недоинитом для openrc.
Недоинит для openrc:
#!/sbin/runscript
start() {
ebegin "Assigning pci devices to vfio-pci"
modprobe vfio-pci
for dev in ${DEVICES//" "/ }; do
vendor=$(cat /sys/bus/pci/devices/$dev/vendor)
device=$(cat /sys/bus/pci/devices/$dev/device)
if [ -e /sys/bus/pci/devices/$dev/driver ]; then
echo $dev > /sys/bus/pci/devices/$dev/driver/unbind
fi
echo "Binding $dev"
echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id
done
}
Список устройств в /etc/conf.d/vfio-assign:
DEVICES="0000:03:00.0 0000:03:00.1 0000:00:12.0 0000:00:12.2"
Пользуюсь год, брат жив, игорь плывёт.
У меня в cmdline ещё дописан iommu=1
, но я его туда добавил когда бодался с виртуализацией на прошлой материнке.
Исправление NeverLoved, :
It works! (комментарий)
Итоговый конфиг:
#!/bin/bash
MISC="
-name games
-machine q35,accel=kvm
-cpu host
-m 6050
-realtime mlock=off
-smp 8,sockets=1,cores=8,threads=1
-no-user-config
-nodefaults
-rtc base=localtime
-boot menu=on,strict=on
"
MONITOR="
-monitor stdio
-vga std
"
STORAGE="
-device virtio-serial-pci,id=virtio-serial0
-drive file=/home/neverloved/qemu_windows/windows7amd64.img,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,aio=native
-device virtio-blk-pci,scsi=off,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
-drive file=/home/neverloved/qemu_windows/windows_games.img,if=none,id=drive-virtio-disk1,format=qcow2,cache=none,aio=native
-device virtio-blk-pci,scsi=off,drive=drive-virtio-disk1,id=virtio-disk1
"
DEVICES="
-device intel-hda,id=sound0
-device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0
-device vfio-pci,host=03:00.1,id=hostdev0
-device vfio-pci,host=03:00.0,id=hostdev1
-device vfio-pci,host=00:12.0,id=hostdev2
-device vfio-pci,host=00:12.2,id=hostdev3
-device virtio-balloon-pci,id=balloon0
"
NET="
-netdev tap,helper=/usr/libexec/qemu-bridge-helper,id=hostnet0
-device virtio-net-pci,netdev=hostnet0,id=nic1
"
echo "$MISC $MONITOR $STORAGE $DEVICES $NET"
/usr/bin/qemu-system-x86_64 $MISC $MONITOR $STORAGE $DEVICES $NET
-device vfio-pci — железки, отвязанные недоинитом для openrc.
Недоинит для openrc:
#!/sbin/runscript
start() {
ebegin "Assigning pci devices to vfio-pci"
modprobe vfio-pci
for dev in ${DEVICES//" "/ }; do
vendor=$(cat /sys/bus/pci/devices/$dev/vendor)
device=$(cat /sys/bus/pci/devices/$dev/device)
if [ -e /sys/bus/pci/devices/$dev/driver ]; then
echo $dev > /sys/bus/pci/devices/$dev/driver/unbind
fi
echo "Binding $dev"
echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id
done
}
Список устройств в /etc/conf.d/vfio-assign:
DEVICES="0000:03:00.0 0000:03:00.1 0000:00:12.0 0000:00:12.2"
Пользуюсь год, брат жив, игорь плывёт.
У меня в cmdline ещё дописан iommu=1
, но я его туда добавил когда бодался с виртуализацией на прошлой материнке.
Исходная версия NeverLoved, :
It works! (комментарий)
Итоговый конфиг:
#!/bin/bash
MISC="
-name games
-machine q35,accel=kvm
-cpu host
-m 6050
-realtime mlock=off
-smp 8,sockets=1,cores=8,threads=1
-no-user-config
-nodefaults
-rtc base=localtime
-boot menu=on,strict=on
"
MONITOR="
-monitor stdio
-vga std
"
STORAGE="
-device virtio-serial-pci,id=virtio-serial0
-drive file=/home/neverloved/qemu_windows/windows7amd64.img,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,aio=native
-device virtio-blk-pci,scsi=off,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
-drive file=/home/neverloved/qemu_windows/windows_games.img,if=none,id=drive-virtio-disk1,format=qcow2,cache=none,aio=native
-device virtio-blk-pci,scsi=off,drive=drive-virtio-disk1,id=virtio-disk1
"
DEVICES="
-device intel-hda,id=sound0
-device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0
-device vfio-pci,host=03:00.1,id=hostdev0
-device vfio-pci,host=03:00.0,id=hostdev1
-device vfio-pci,host=00:12.0,id=hostdev2
-device vfio-pci,host=00:12.2,id=hostdev3
-device virtio-balloon-pci,id=balloon0
"
NET="
-netdev tap,helper=/usr/libexec/qemu-bridge-helper,id=hostnet0
-device virtio-net-pci,netdev=hostnet0,id=nic1
"
echo "$MISC $MONITOR $STORAGE $DEVICES $NET"
/usr/bin/qemu-system-x86_64 $MISC $MONITOR $STORAGE $DEVICES $NET
-device vfio-pci — железки, отвязанные недоинитом для openrc.
Недоинит для openrc:
#!/sbin/runscript
start() {
ebegin "Assigning pci devices to vfio-pci"
modprobe vfio-pci
for dev in ${DEVICES//" "/ }; do
vendor=$(cat /sys/bus/pci/devices/$dev/vendor)
device=$(cat /sys/bus/pci/devices/$dev/device)
if [ -e /sys/bus/pci/devices/$dev/driver ]; then
echo $dev > /sys/bus/pci/devices/$dev/driver/unbind
fi
echo "Binding $dev"
echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id
done
}
Список устройств в /etc/conf.d/vfio-assign:
DEVICES="0000:03:00.0 0000:03:00.1 0000:00:12.0 0000:00:12.2"
Пользуюсь год, брат жив, игорь плывёт.