Ответы пользователя по тегу KVM
  • Как правильно организовать VGA-passthrought в qemu-kvm?

    @zombig Автор вопроса
    Sr. System/Network Administrator
    После обновления ядра до:
    uname -r
    4.1.0-040100rc2-generic


    Моя ситуация не изменилась: drm все так же подгружал radeon, который инициализировал видео устройство и не давал pci-stub/vfio-pci подключить устройство.
    Ручное отключение устройства:
    echo $DEV > /sys/bus/pci/drivers/radeon/unbind
    Приводило к "падению" системы (kernel BUG).

    В попытке решить проблему я сделал следующее:
    1. Прописал ID устройств для vfio-pci
    cat /etc/modprobe.d/vfio-pci.conf 
    options vfio-pci ids=1002:6613,1002:aab0

    2. Добавил опции softdep и install для модулей drm и radeon
    cat /etc/modprobe.d/radeon.conf 
    softdep radeon pre: vfio vfio_pci
    install radeon /sbin/modprobe vfio; /sbin/modprobe vfio_pci
    cat /etc/modprobe.d/drm.conf 
    softdep drm pre: vfio vfio_pci post: radeon
    softdep drm_kms_helper pre: vfio vfio_pci post: radeon
    install drm /sbin/modprobe vfio; /sbin/modprobe vfio_pci


    Однако, и это не помогло. Мои скудные знания относительно процесса загрузки linux оказались бессильны, но могу предположить, что это связанно с тем, что drm/radeon грузятся на прямую ядром (не через modprobe), а по тому загружаются раньше, чем отрабатывают опции softdep и install.

    Решение (костыль): ещё раз напомню, что у меня в наличии 2 карты - HD 6770 (Juniper) и R7 240 (Oland). Т.к. я не рассчитываю использовать R7 240 (Oland) в host-системе, то я принял решение "выпилить" её полностью. По этому, я удалил все firmware OLAND*.bin из /lib/firmware/radeon/.
    rm -f /lib/firmware/radeon/OLAND*.bin
    update-initramfs -u
    init 6


    При обновлении initramfs я получил кучу предупреждений, что прошивки под OLAND не найдено. После перезагрузки я увидел долгожданное:
    06:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Oland PRO [Radeon R7 240] [1002:6613] (prog-if 00 [VGA controller])
    	Subsystem: ASUSTeK Computer Inc. Device [1043:04c5]
    	Flags: bus master, fast devsel, latency 0, IRQ 46
    	Memory at b0000000 (64-bit, prefetchable) [size=256M]
    	Memory at fe700000 (64-bit, non-prefetchable) [size=256K]
    	I/O ports at c000 [size=256]
    	Expansion ROM at fe740000 [disabled] [size=128K]
    	Capabilities: <access denied>
    	Kernel driver in use: vfio-pci
    
    06:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Cape Verde/Pitcairn HDMI Audio [Radeon HD 7700/7800 Series] [1002:aab0]
    	Subsystem: ASUSTeK Computer Inc. Device [1043:aab0]
    	Flags: bus master, fast devsel, latency 0, IRQ 21
    	Memory at fe760000 (64-bit, non-prefetchable) [size=16K]
    	Capabilities: <access denied>
    	Kernel driver in use: vfio-pci


    Гостевая Windows 7 прогрузилась замечательно и проставила рейтинг графического адаптера 6.8 (для HD 6770 - 7.3)

    Я понимаю, что это "костыль" и так делать наверное не стоит. Если у Вас есть более элегантное решение - пожалуйста сообщите мне.
    Ответ написан
    Комментировать