Trebuie să NIC dispozitivele pe gazdă:
lspci -nn | grep Ethernet
lspci -n -s 0000:04:00.0
Și vreau să trec prin dispozitivul 0000:04:00.0 la KVM
mașină virtuală ubuntu 20.04. Este posibil ca gazda să nu vadă acest dispozitiv când VM rulează. Pentru a lega PCI NIC la oaspete, am urmat cu succes instrucțiunile VFIO - „I/O funcție virtuală”. Dar dezlegarea de la oaspete la gazdă a fost mai dificilă.
Leagă manual dispozitivul NIC de la gazdă la oaspete, în felul următor:
ls -l /sys/class/net/ | grep pci
lspci -nn | grep Ethernet
pentru un în /sys/kernel/iommu_groups/*; găsiți $a -tip l; terminat | sortare --versiune-sortare | grep '04:00\|05:00'
pentru eth în enp4s0 enp5s0; face ifconfig $eth | grep eter | echo "MAC" "$eth:" $(awk '{print $2}'); Terminat
modprobe vfio_pci
echo 0000:04:00.0 | sudo tee /sys/bus/pci/devices/0000:04:00.0/driver/unbind
echo 10ec 8168 | sudo tee /sys/bus/pci/drivers/vfio-pci/new_id
sudo usermod -aG sudo libvirt-qemu
sudo chown libvirt-qemu:libvirt-qemu /dev/vfio/12
ls -l /sys/bus/pci/devices/0000:04:00.0/iommu_group/devices | awk „{printează $9 $10 $11}”
ls -l /sys/class/net/ | grep enp4s0
Apoi am creat un nou Ubuntu 20.04 VM folosind Virtual Machine Manager (virt-manager) a alerga mai departe KVM.
Am adăugat un dispozitiv nou la VM editând configurația xml în virt-manager
în timpul creaţiei. În special, <devices>
secțiunea conține următoarea etichetă
<hostdev mode="subsystem" type="pci" managed="yes">
<driver name="vfio"/>
<source>
<address domain="0x0000" bus="0x04" slot="0x00" function="0x0"/>
</source>
<mac address='50:...'/>
<address type="pci">
<zpci uid="0x0001" fid="0x00000000"/>
</address>
</hostdev>
Apoi am instalat Ubuntu 20.04 în mod obișnuit. Sistemul repornește corect, fără blocaje (ecran negru).
Când opresc VM-ul, vreau să returnez PCI NIC la gazdă. Am făcut o cercetare pe forumuri, dar nu există instrucțiuni clare despre cum să fac asta.
Dacă repornesc gazda, toate dispozitivele revin la gazdă, astfel încât legarea vfio este eliberată. Dar cum pot face asta fără repornirea gazdei.