Это моя первая попытка заставить несколько мониторов работать с виртуальной машиной. Пока еще не добился успеха.
Я работаю на хост-компьютере Linux Mint 20.2, в основе которого лежит Ubuntu 20.04. Ядро 5.4.0-100-универсальное.
Я использую virt-manager (2.2.1) и смог успешно создавать и запускать гостевые машины PopOS, Mint (20.3) и Arch Linux (2022.02.01). Я не могу заставить ни один из них отображать несколько мониторов.
Значительная часть проблем, связанных с этим, в конечном итоге указывает мне на это демонстрация ютуба. Основной метод, описанный здесь, не работает для меня.
XML моего раздела Display Spice гласит:
<graphics type="spice" autoport="yes">
<listen type="address"/>
<image compression="off"/>
</graphics>
Я установил количество головок в разделе Video QXL на 2, 3 или 4.
<video>
<model type="qxl" ram="65536" vram="65536" vgamem="16384" heads="2" primary="yes"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/>
</video>
Доступ к работающей машине с помощью virt-viewer или remote-viewer выполнен успешно, но доступен только один дисплей. Для значений головок >=2 соответствующие записи дисплея в меню присутствуют, но жадны и недоступны. В виртуальной машине (любого варианта) xrandr дает мне:
Screen0: минимальный 320x200, текущий 1024x768, максимальный 8192x8192
Первичный подключенный Virtual-1 1024x768+0+0 0 мм x 0 мм
1024x768 60,00*+
{...несколько строк}
Виртуал-2 отключен
Виртуал-3 отключен
Как лучшее, что я могу сказать, это рекомендуемый способ сделать это для гостей Linux, теоретически поддерживающих до 4 экранов. Для развлечения я попытался добавить дополнительные устройства qxl в соответствии с рекомендациями для гостей Windows, что действительно открывает дополнительные экраны, ни один из которых не получает сигнал от гостя (постоянное «ожидание отображения 2»)
Я увеличил требования к памяти, как описано в пространство специй иметь возможность работать с четырьмя мониторами без изменения результатов.
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='2' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
Не могу вспомнить, как я туда попал, но эта страница упоминает сопоставление мониторов в конфигурационном файле virt-viewer. Я могу отображать мониторы:
[a2459703-ffc5-45a1-849e-b21c67186aa6]
отображение монитора = 1: 2; 2: 3
Затем с помощью
virt-viewer --полноэкранный vm1
он странно открывает одно окно на моем втором и третьем мониторах, а не окно отображения для каждого монитора, как я и ожидал. Возможно, я что-то упустил или совершенно неправильно понял, как это должно работать.
Я думал, что это может быть из-за старой версии virt-manager/virt-viewer.Мне удалось запустить virt-manager 3.2.0 после загрузки с репозиторий virt-manager, безрезультатно.
Последняя доступная версия virt-viewer в репозиториях Mint — 7.0.
судо подходящее обновление
sudo apt установить virt-manager
получается только версия 7.0. Версия 11, по-видимому, доступна в вирт-просмотрщик репо, но я не могу понять, как установить это без каких-либо идентифицируемых инструкций по установке - все инструкции, которые я могу найти, отсылают меня к использованию apt для его установки.
Ближе всего я могу найти сообщение об ошибке при запуске virt-viewer с флагом отладки:
virt-viewer:23920): virt-viewer-DEBUG: 14:32:11.467: подключение...
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:11.467: открытие подключения к libvirt с URI <null>
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:11.469: начальное подключение
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:11.469: блокнот показывает статус 0x555ddc8a82b0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.326: virt_viewer_app_set_uuid_string: UUID изменен на a2459703-ffc5-45a1-849e-b21c67186aa6
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.326: блокнот показывает статус 0x555ddc8a82b0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.327: гость vm1 работает, определение отображения
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.328: Установить информацию о подключении: (null), (null), -1, -1, (null), (null), (null), 0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.330: Гость vm1 имеет дисплей специй
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.363: адрес гостевой графики 127.0.0.1:5900
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.364: Установить информацию о подключении: localhost,127.0.0.1,5900,-1,(null),(null),(null),-1
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.364: ошибка операции запрещена: доступ только для чтения предотвращает virDomainOpenGraphicsFD
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.364: после обратного вызова при открытии соединения fd=-1
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.364: открытие прямого TCP-соединения для отображения по адресу 127.0.0.1:5900:-1
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.370: новый канал spice 0x555ddc97a200 SpiceMainChannel 0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.370: блокнот показывает статус 0x555ddc8a82b0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.371: reconnect_poll: 0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.482: основной канал: открыт
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.482: блокнот показывает статус 0x555ddc8a82b0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.483: приложение не в полноэкранном режиме
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.483: приложение не в полноэкранном режиме
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.483: новый канал специй 0x555ddc950890 SpiceUsbredirChannel 1
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.483: новый канал usbredir
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.483: новый канал специй 0x555ddc941090 SpiceUsbredirChannel 0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.483: новый канал usbredir
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.483: новый канал spice 0x555ddc95aa70 SpiceRecordChannel 0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.483: новый канал spice 0x555ddc941b30 SpicePlaybackChannel 0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.483: новый аудиоканал
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.509: новый канал spice 0x555ddc933960 SpiceDisplayChannel 0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.509: новый канал spice 0x555ddcc0d990 SpiceCursorChannel 0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.512: новый канал spice 0x555ddcc0cdc0 SpiceInputsChannel 0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.512: новый входной канал
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.661: создание дисплея специй (#:0)
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.661: Вставить дисплей 0 0x555ddc8c6f20
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.709: создание дисплея специй (#:1)
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.709: Вставить дисплей 1 0x555ddc8c6d70
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.709: найдено окно без дисплея, повторное использование для дисплея #0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.710: блокнот показывает дисплей 0x555ddc8a82b0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.713: выделено 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.713: дочернее выделение 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.736: выделено 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.736: дочернее выделение 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:24.945: выделено 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:24.946: дочернее выделение 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:24.964: выделено 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:24.964: дочернее выделение 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:25.055: выделено 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:25.056: дочернее выделение 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:25.587: выделено 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:25.587: дочернее выделение 1024x768
«Операция с ошибкой запрещена: доступ только для чтения предотвращает virDomainOpenGraphicsFD» привела меня к дискуссиям по поводу попытки использовать virt-viewer от имени другого пользователя с правами, отличными от root. Просто для проверки я запустил virt-manager и virt-viewer от имени того же пользователя, который находится в группе sudo. Опять без изменений.
Любые указания относительно того, где я должен искать дальше или что может быть полезно для отладки, будут оценены.