История изменений
Исправление u5er, (текущая версия) :
Покажу на примере сетёвки. С юсб всё аналогично.
Сначала с помощью lspci -nnk
узнаёшь подробности об устройстве.
00:19.0 Ethernet controller [0200]: Intel Corporation Ethernet Connection (2) I218-V [8086:15a1] (rev 05)
DeviceName: Onboard LAN
Subsystem: Gigabyte Technology Co., Ltd Device [1458:e000]
Kernel driver in use: e1000e
Сначала отвязываешь устройство, используя цифры в самом начале и имя драйвера.
echo 0000:00:19.0 > /sys/bus/pci/drivers/e1000e/unbind
Далее привязываешь его к драйверу vfio-pci
используя значения из квадратных скобок
echo "8086 15a1" > /sys/bus/pci/drivers/vfio-pci/new_id
После этого можно использовать это устройство в команде запуска виртуалки следующим образом:
qemu-system-x86_64 \
-name "Win10-min" \
-smp 12,cores=6,threads=2,sockets=1 -cpu host,kvm=off \
-machine accel=kvm \
-boot menu=on \
-rtc base=localtime \
-nic none \
-device virtio-gpu-pci \
-device vfio-pci,host=00:19.0 \
-device vfio-pci,host=00:1f.2 \
$*
-device vfio-pci,host=00:19.0
- это вот как раз проброс.
Но учитывать надо вот что. В выхлопе dmesg
хоста должен быть похожий участок:
[ 6.535634] pci 0000:ff:0b.0: Adding to iommu group 0
[ 6.535707] pci 0000:ff:0b.1: Adding to iommu group 0
[ 6.535780] pci 0000:ff:0b.2: Adding to iommu group 0
[ 6.535930] pci 0000:ff:0c.0: Adding to iommu group 1
[ 6.536002] pci 0000:ff:0c.1: Adding to iommu group 1
[ 6.536074] pci 0000:ff:0c.2: Adding to iommu group 1
[ 6.536151] pci 0000:ff:0c.3: Adding to iommu group 1
[ 6.536224] pci 0000:ff:0c.4: Adding to iommu group 1
[ 6.536297] pci 0000:ff:0c.5: Adding to iommu group 1
[ 6.536432] pci 0000:ff:0f.0: Adding to iommu group 2
[ 6.536505] pci 0000:ff:0f.1: Adding to iommu group 2
[ 6.536577] pci 0000:ff:0f.4: Adding to iommu group 2
[ 6.536650] pci 0000:ff:0f.5: Adding to iommu group 2
[ 6.536723] pci 0000:ff:0f.6: Adding to iommu group 2
[ 6.536860] pci 0000:ff:10.0: Adding to iommu group 3
[ 6.536933] pci 0000:ff:10.1: Adding to iommu group 3
[ 6.537006] pci 0000:ff:10.5: Adding to iommu group 3
[ 6.537079] pci 0000:ff:10.6: Adding to iommu group 3
[ 6.537155] pci 0000:ff:10.7: Adding to iommu group 3
[ 6.537252] pci 0000:ff:12.0: Adding to iommu group 4
[ 6.537328] pci 0000:ff:12.1: Adding to iommu group 4
[ 6.537502] pci 0000:ff:13.0: Adding to iommu group 5
[ 6.537577] pci 0000:ff:13.1: Adding to iommu group 5
[ 6.537650] pci 0000:ff:13.2: Adding to iommu group 5
[ 6.537724] pci 0000:ff:13.3: Adding to iommu group 5
[ 6.537798] pci 0000:ff:13.4: Adding to iommu group 5
[ 6.537871] pci 0000:ff:13.5: Adding to iommu group 5
[ 6.537946] pci 0000:ff:13.6: Adding to iommu group 5
[ 6.538021] pci 0000:ff:13.7: Adding to iommu group 5
[ 6.538198] pci 0000:ff:14.0: Adding to iommu group 6
[ 6.538276] pci 0000:ff:14.1: Adding to iommu group 6
[ 6.538351] pci 0000:ff:14.2: Adding to iommu group 6
[ 6.538425] pci 0000:ff:14.3: Adding to iommu group 6
[ 6.538501] pci 0000:ff:14.4: Adding to iommu group 6
[ 6.538576] pci 0000:ff:14.5: Adding to iommu group 6
[ 6.538651] pci 0000:ff:14.6: Adding to iommu group 6
[ 6.538726] pci 0000:ff:14.7: Adding to iommu group 6
[ 6.538847] pci 0000:ff:15.0: Adding to iommu group 7
[ 6.538923] pci 0000:ff:15.1: Adding to iommu group 7
[ 6.538999] pci 0000:ff:15.2: Adding to iommu group 7
[ 6.539075] pci 0000:ff:15.3: Adding to iommu group 7
[ 6.539190] pci 0000:ff:16.0: Adding to iommu group 8
[ 6.539268] pci 0000:ff:16.6: Adding to iommu group 8
[ 6.539345] pci 0000:ff:16.7: Adding to iommu group 8
[ 6.539477] pci 0000:ff:17.0: Adding to iommu group 9
[ 6.539556] pci 0000:ff:17.4: Adding to iommu group 9
[ 6.539633] pci 0000:ff:17.5: Adding to iommu group 9
[ 6.539710] pci 0000:ff:17.6: Adding to iommu group 9
[ 6.539787] pci 0000:ff:17.7: Adding to iommu group 9
[ 6.539920] pci 0000:ff:1e.0: Adding to iommu group 10
[ 6.539999] pci 0000:ff:1e.1: Adding to iommu group 10
[ 6.540077] pci 0000:ff:1e.2: Adding to iommu group 10
[ 6.540159] pci 0000:ff:1e.3: Adding to iommu group 10
[ 6.540236] pci 0000:ff:1e.4: Adding to iommu group 10
[ 6.540332] pci 0000:ff:1f.0: Adding to iommu group 11
[ 6.540412] pci 0000:ff:1f.2: Adding to iommu group 11
[ 6.540485] pci 0000:00:00.0: Adding to iommu group 12
[ 6.540560] pci 0000:00:01.0: Adding to iommu group 13
[ 6.540634] pci 0000:00:01.1: Adding to iommu group 14
[ 6.540707] pci 0000:00:02.0: Adding to iommu group 15
[ 6.540781] pci 0000:00:02.3: Adding to iommu group 16
[ 6.540854] pci 0000:00:03.0: Adding to iommu group 17
[ 6.540928] pci 0000:00:05.0: Adding to iommu group 18
[ 6.541000] pci 0000:00:05.1: Adding to iommu group 19
[ 6.541089] pci 0000:00:05.2: Adding to iommu group 20
[ 6.541166] pci 0000:00:11.0: Adding to iommu group 21
[ 6.541252] pci 0000:00:11.4: Adding to iommu group 22
[ 6.541324] pci 0000:00:14.0: Adding to iommu group 23
[ 6.541409] pci 0000:00:16.0: Adding to iommu group 24
[ 6.541481] pci 0000:00:19.0: Adding to iommu group 25
[ 6.541554] pci 0000:00:1c.0: Adding to iommu group 26
[ 6.541627] pci 0000:00:1c.3: Adding to iommu group 27
[ 6.541700] pci 0000:00:1c.4: Adding to iommu group 28
[ 6.541776] pci 0000:00:1c.7: Adding to iommu group 29
[ 6.541886] pci 0000:00:1f.0: Adding to iommu group 30
[ 6.541968] pci 0000:00:1f.2: Adding to iommu group 30
[ 6.542049] pci 0000:00:1f.3: Adding to iommu group 30
[ 6.542137] pci 0000:02:00.0: Adding to iommu group 31
[ 6.542210] pci 0000:05:00.0: Adding to iommu group 32
[ 6.542283] pci 0000:06:00.0: Adding to iommu group 33
[ 6.542360] pci 0000:07:00.0: Adding to iommu group 34
[ 6.543201] pci 0000:07:00.1: Adding to iommu group 35
[ 6.543273] pci 0000:09:00.0: Adding to iommu group 36
[ 6.543346] pci 0000:0a:00.0: Adding to iommu group 37
[ 6.543420] pci 0000:0b:00.0: Adding to iommu group 38
[ 6.543477] pci 0000:0c:00.0: Adding to iommu group 38
Обрати внимание, что в одну группу может попасть несколько устройств. Фишка в том, что их все следует как минимум отвязать от их хостовых драйверов перед пробросом, иначе проброс не заработает.
Исходная версия u5er, :
Покажу на примере сетёвки. С юсб всё аналогично.
Сначала с помощью lspci -nnk
узнаёшь подробности об устройстве.
00:19.0 Ethernet controller [0200]: Intel Corporation Ethernet Connection (2) I218-V [8086:15a1] (rev 05)
DeviceName: Onboard LAN
Subsystem: Gigabyte Technology Co., Ltd Device [1458:e000]
Kernel driver in use: e1000e
Сначала отвязываешь устройство, используя цифры в самом начале и имя драйвера.
echo 0000:00:19.0 > /sys/bus/pci/drivers/e1000e/unbind
Далее привязываешь его к драйверу vfio-pci
используя значения из квадратных скобок
echo "8086 15a1" > /sys/bus/pci/drivers/vfio-pci/new_id
После этого можно использовать это устройство в команде запуска виртуалки следующим образом:
qemu-system-x86_64 \
-name "Win10-min" \
-smp 12,cores=6,threads=2,sockets=1 -cpu host,kvm=off \
-machine accel=kvm \
-boot menu=on \
-rtc base=localtime \
-nic none \
-device virtio-gpu-pci \
-device vfio-pci,host=00:19.0 \
-device vfio-pci,host=00:1f.2 \
$*
-device vfio-pci,host=00:19.0
- это вот как раз проброс.
Но учитывать надо вот что. В выхлопе dmesg
хоста должен быть похожий участок:
[ 6.535634] pci 0000:ff:0b.0: Adding to iommu group 0
[ 6.535707] pci 0000:ff:0b.1: Adding to iommu group 0
[ 6.535780] pci 0000:ff:0b.2: Adding to iommu group 0
[ 6.535930] pci 0000:ff:0c.0: Adding to iommu group 1
[ 6.536002] pci 0000:ff:0c.1: Adding to iommu group 1
[ 6.536074] pci 0000:ff:0c.2: Adding to iommu group 1
[ 6.536151] pci 0000:ff:0c.3: Adding to iommu group 1
[ 6.536224] pci 0000:ff:0c.4: Adding to iommu group 1
[ 6.536297] pci 0000:ff:0c.5: Adding to iommu group 1
[ 6.536432] pci 0000:ff:0f.0: Adding to iommu group 2
[ 6.536505] pci 0000:ff:0f.1: Adding to iommu group 2
[ 6.536577] pci 0000:ff:0f.4: Adding to iommu group 2
[ 6.536650] pci 0000:ff:0f.5: Adding to iommu group 2
[ 6.536723] pci 0000:ff:0f.6: Adding to iommu group 2
[ 6.536860] pci 0000:ff:10.0: Adding to iommu group 3
[ 6.536933] pci 0000:ff:10.1: Adding to iommu group 3
[ 6.537006] pci 0000:ff:10.5: Adding to iommu group 3
[ 6.537079] pci 0000:ff:10.6: Adding to iommu group 3
[ 6.537155] pci 0000:ff:10.7: Adding to iommu group 3
[ 6.537252] pci 0000:ff:12.0: Adding to iommu group 4
[ 6.537328] pci 0000:ff:12.1: Adding to iommu group 4
[ 6.537502] pci 0000:ff:13.0: Adding to iommu group 5
[ 6.537577] pci 0000:ff:13.1: Adding to iommu group 5
[ 6.537650] pci 0000:ff:13.2: Adding to iommu group 5
[ 6.537724] pci 0000:ff:13.3: Adding to iommu group 5
[ 6.537798] pci 0000:ff:13.4: Adding to iommu group 5
[ 6.537871] pci 0000:ff:13.5: Adding to iommu group 5
[ 6.537946] pci 0000:ff:13.6: Adding to iommu group 5
[ 6.538021] pci 0000:ff:13.7: Adding to iommu group 5
[ 6.538198] pci 0000:ff:14.0: Adding to iommu group 6
[ 6.538276] pci 0000:ff:14.1: Adding to iommu group 6
[ 6.538351] pci 0000:ff:14.2: Adding to iommu group 6
[ 6.538425] pci 0000:ff:14.3: Adding to iommu group 6
[ 6.538501] pci 0000:ff:14.4: Adding to iommu group 6
[ 6.538576] pci 0000:ff:14.5: Adding to iommu group 6
[ 6.538651] pci 0000:ff:14.6: Adding to iommu group 6
[ 6.538726] pci 0000:ff:14.7: Adding to iommu group 6
[ 6.538847] pci 0000:ff:15.0: Adding to iommu group 7
[ 6.538923] pci 0000:ff:15.1: Adding to iommu group 7
[ 6.538999] pci 0000:ff:15.2: Adding to iommu group 7
[ 6.539075] pci 0000:ff:15.3: Adding to iommu group 7
[ 6.539190] pci 0000:ff:16.0: Adding to iommu group 8
[ 6.539268] pci 0000:ff:16.6: Adding to iommu group 8
[ 6.539345] pci 0000:ff:16.7: Adding to iommu group 8
[ 6.539477] pci 0000:ff:17.0: Adding to iommu group 9
[ 6.539556] pci 0000:ff:17.4: Adding to iommu group 9
[ 6.539633] pci 0000:ff:17.5: Adding to iommu group 9
[ 6.539710] pci 0000:ff:17.6: Adding to iommu group 9
[ 6.539787] pci 0000:ff:17.7: Adding to iommu group 9
[ 6.539920] pci 0000:ff:1e.0: Adding to iommu group 10
[ 6.539999] pci 0000:ff:1e.1: Adding to iommu group 10
[ 6.540077] pci 0000:ff:1e.2: Adding to iommu group 10
[ 6.540159] pci 0000:ff:1e.3: Adding to iommu group 10
[ 6.540236] pci 0000:ff:1e.4: Adding to iommu group 10
[ 6.540332] pci 0000:ff:1f.0: Adding to iommu group 11
[ 6.540412] pci 0000:ff:1f.2: Adding to iommu group 11
[ 6.540485] pci 0000:00:00.0: Adding to iommu group 12
[ 6.540560] pci 0000:00:01.0: Adding to iommu group 13
[ 6.540634] pci 0000:00:01.1: Adding to iommu group 14
[ 6.540707] pci 0000:00:02.0: Adding to iommu group 15
[ 6.540781] pci 0000:00:02.3: Adding to iommu group 16
[ 6.540854] pci 0000:00:03.0: Adding to iommu group 17
[ 6.540928] pci 0000:00:05.0: Adding to iommu group 18
[ 6.541000] pci 0000:00:05.1: Adding to iommu group 19
[ 6.541089] pci 0000:00:05.2: Adding to iommu group 20
[ 6.541166] pci 0000:00:11.0: Adding to iommu group 21
[ 6.541252] pci 0000:00:11.4: Adding to iommu group 22
[ 6.541324] pci 0000:00:14.0: Adding to iommu group 23
[ 6.541409] pci 0000:00:16.0: Adding to iommu group 24
[ 6.541481] pci 0000:00:19.0: Adding to iommu group 25
[ 6.541554] pci 0000:00:1c.0: Adding to iommu group 26
[ 6.541627] pci 0000:00:1c.3: Adding to iommu group 27
[ 6.541700] pci 0000:00:1c.4: Adding to iommu group 28
[ 6.541776] pci 0000:00:1c.7: Adding to iommu group 29
[ 6.541886] pci 0000:00:1f.0: Adding to iommu group 30
[ 6.541968] pci 0000:00:1f.2: Adding to iommu group 30
[ 6.542049] pci 0000:00:1f.3: Adding to iommu group 30
[ 6.542137] pci 0000:02:00.0: Adding to iommu group 31
[ 6.542210] pci 0000:05:00.0: Adding to iommu group 32
[ 6.542283] pci 0000:06:00.0: Adding to iommu group 33
[ 6.542360] pci 0000:07:00.0: Adding to iommu group 34
[ 6.543201] pci 0000:07:00.1: Adding to iommu group 35
[ 6.543273] pci 0000:09:00.0: Adding to iommu group 36
[ 6.543346] pci 0000:0a:00.0: Adding to iommu group 37
[ 6.543420] pci 0000:0b:00.0: Adding to iommu group 38
[ 6.543477] pci 0000:0c:00.0: Adding to iommu group 38
Обрати внимание, что в одну группу может попасть несколько устройств. Фишка в том, что их все нажно как минимум отвязать от их хостовых драйверов перед пробросом, иначе проброс не заработает.