Сейчас я запускаю сервер без видеокарты, но при этом могу использовать lightdm/xfce4. Я обращусь к вики Proxmox, чтобы показать, насколько бесполезны эти объяснения:
**Дисплей**
QEMU может виртуализировать несколько типов VGA оборудования. Вот некоторые примеры:
* `std`: по умолчанию, эмулирует карту с расширениями Bochs VBE.
* `cirrus`: ранее это было значение по умолчанию, оно эмулирует очень старый модуль оборудования со всеми его проблемами. Этот тип дисплея следует использовать только в случае крайней необходимости [ 10 ], например, при использовании Windows XP или более ранних версий.
* `vmware`: адаптер, совместимый с VMWare SVGA-II.
* `qxl`: виртуальная графическая карта QXL с паравиртуализацией. Выбор этого параметра также включает SPICE (протокол удаленного просмотра) для VM.
* `virtio-gl`: часто называется VirGL - это виртуальный 3D GPU для использования внутри VM, который может перекладывать рабочие нагрузки на GPU хоста без необходимости в специальных (дорогих) моделях и драйверов, а также не привязывая GPU хоста полностью, позволяя использовать его между несколькими гостевыми системами или хостом. Для поддержки VirGL требуются некоторые дополнительные библиотеки, которые не установлены по умолчанию, так как они относительно большие и недоступны как открытый код для всех моделей/производителей GPU. В большинстве случаев вам нужно будет сделать следующее:
`apt install libgl1 libegl1`
Вы можете изменить объем памяти, выделенной виртуальному GPU, установив опцию памяти. Это может повысить разрешение внутри VM, особенно при использовании SPICE/QXL. Поскольку память зарезервирована дисплейным устройством, выбор режима Multi-Monitor для SPICE (например, qxl2 для двух мониторов) имеет определенные последствия: Windows нуждается в устройстве для каждого монитора, поэтому, если ваша OSTYPE — какая-либо версия Windows, Proxmox VE предоставляет VM дополнительное устройство на каждый монитор. Каждое устройство получает указанный объем памяти. Linux VM могут всегда включать больше виртуальных мониторов, но выбор режима Multi-Monitor увеличивает объем памяти, выделенной устройству, в соответствии с количеством мониторов.
Выбор типа дисплея `serialX` отключает VGA вывод и перенаправляет Web Console в выбранный последовательный порт. В этом случае настроенная настройка памяти дисплея будет проигнорирована.
> Linux VM могут всегда включать больше виртуальных мониторов, но выбор режима Multi-Monitor увеличивает объем памяти, выделенной устройству, в соответствии с количеством мониторов.
А теперь давайте посмотрим на разницу в выводе между qxl4 и настройкой по умолчанию, которую я использую (virtio-gpu).
![Изображение]()
`qxl4`:
```
lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Red Hat, Inc. QXL paravirtual graphic card (rev 05)
00:03.0 Unclassified device [00ff]: Red Hat, Inc. Virtio memory balloon
00:05.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
00:08.0 Communication controller: Red Hat, Inc. Virtio console
00:09.0 Communication controller: Red Hat, Inc. Virtio console
00:12.0 Ethernet controller: Red Hat, Inc. Virtio network device
00:1e.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
00:1f.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
01:01.0 SCSI storage controller: Red Hat, Inc. Virtio SCSI
03:0c.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)
root@debian:~/Desktop# xrandr --listmonitors
Monitors: 1 0: +Virtual-1 1920/508x1080/286+0+0 Virtual-1
```
и virtio
```
lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Red Hat, Inc. Virtio 1.0 GPU (rev 01)
00:03.0 Unclassified device [00ff]: Red Hat, Inc. Virtio memory balloon
00:05.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
00:08.0 Communication controller: Red Hat, Inc. Virtio console
00:09.0 Communication controller: Red Hat, Inc. Virtio console
00:12.0 Ethernet controller: Red Hat, Inc. Virtio network device
00:1e.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
00:1f.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
01:01.0 SCSI storage controller: Red Hat, Inc. Virtio SCSI
03:0c.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)
root@debian:~/Desktop# xrandr --listmonitors
Monitors: 1 0: +Virtual-1 1920/325x1080/203+0+0 Virtual-1
```
так что вопрос, как добавить дополнительные виртуальные мониторы/экраны в Linux-окружении, если доступен только один VGA интерфейс? Этот вопрос никогда не был отвечен на этом форуме, я проверил каждую тему, которая упоминает виртуальные экраны для Linux, и не нашел ответа. Мне не нужно сразу подключаться к VM, мне нужно, чтобы он хотя бы отображался в xrandr.
**Дисплей**
QEMU может виртуализировать несколько типов VGA оборудования. Вот некоторые примеры:
* `std`: по умолчанию, эмулирует карту с расширениями Bochs VBE.
* `cirrus`: ранее это было значение по умолчанию, оно эмулирует очень старый модуль оборудования со всеми его проблемами. Этот тип дисплея следует использовать только в случае крайней необходимости [ 10 ], например, при использовании Windows XP или более ранних версий.
* `vmware`: адаптер, совместимый с VMWare SVGA-II.
* `qxl`: виртуальная графическая карта QXL с паравиртуализацией. Выбор этого параметра также включает SPICE (протокол удаленного просмотра) для VM.
* `virtio-gl`: часто называется VirGL - это виртуальный 3D GPU для использования внутри VM, который может перекладывать рабочие нагрузки на GPU хоста без необходимости в специальных (дорогих) моделях и драйверов, а также не привязывая GPU хоста полностью, позволяя использовать его между несколькими гостевыми системами или хостом. Для поддержки VirGL требуются некоторые дополнительные библиотеки, которые не установлены по умолчанию, так как они относительно большие и недоступны как открытый код для всех моделей/производителей GPU. В большинстве случаев вам нужно будет сделать следующее:
`apt install libgl1 libegl1`
Вы можете изменить объем памяти, выделенной виртуальному GPU, установив опцию памяти. Это может повысить разрешение внутри VM, особенно при использовании SPICE/QXL. Поскольку память зарезервирована дисплейным устройством, выбор режима Multi-Monitor для SPICE (например, qxl2 для двух мониторов) имеет определенные последствия: Windows нуждается в устройстве для каждого монитора, поэтому, если ваша OSTYPE — какая-либо версия Windows, Proxmox VE предоставляет VM дополнительное устройство на каждый монитор. Каждое устройство получает указанный объем памяти. Linux VM могут всегда включать больше виртуальных мониторов, но выбор режима Multi-Monitor увеличивает объем памяти, выделенной устройству, в соответствии с количеством мониторов.
Выбор типа дисплея `serialX` отключает VGA вывод и перенаправляет Web Console в выбранный последовательный порт. В этом случае настроенная настройка памяти дисплея будет проигнорирована.
> Linux VM могут всегда включать больше виртуальных мониторов, но выбор режима Multi-Monitor увеличивает объем памяти, выделенной устройству, в соответствии с количеством мониторов.
А теперь давайте посмотрим на разницу в выводе между qxl4 и настройкой по умолчанию, которую я использую (virtio-gpu).
![Изображение]()
`qxl4`:
```
lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Red Hat, Inc. QXL paravirtual graphic card (rev 05)
00:03.0 Unclassified device [00ff]: Red Hat, Inc. Virtio memory balloon
00:05.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
00:08.0 Communication controller: Red Hat, Inc. Virtio console
00:09.0 Communication controller: Red Hat, Inc. Virtio console
00:12.0 Ethernet controller: Red Hat, Inc. Virtio network device
00:1e.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
00:1f.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
01:01.0 SCSI storage controller: Red Hat, Inc. Virtio SCSI
03:0c.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)
root@debian:~/Desktop# xrandr --listmonitors
Monitors: 1 0: +Virtual-1 1920/508x1080/286+0+0 Virtual-1
```
и virtio
```
lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Red Hat, Inc. Virtio 1.0 GPU (rev 01)
00:03.0 Unclassified device [00ff]: Red Hat, Inc. Virtio memory balloon
00:05.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
00:08.0 Communication controller: Red Hat, Inc. Virtio console
00:09.0 Communication controller: Red Hat, Inc. Virtio console
00:12.0 Ethernet controller: Red Hat, Inc. Virtio network device
00:1e.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
00:1f.0 PCI bridge: Red Hat, Inc. QEMU PCI-PCI bridge
01:01.0 SCSI storage controller: Red Hat, Inc. Virtio SCSI
03:0c.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)
root@debian:~/Desktop# xrandr --listmonitors
Monitors: 1 0: +Virtual-1 1920/325x1080/203+0+0 Virtual-1
```
так что вопрос, как добавить дополнительные виртуальные мониторы/экраны в Linux-окружении, если доступен только один VGA интерфейс? Этот вопрос никогда не был отвечен на этом форуме, я проверил каждую тему, которая упоминает виртуальные экраны для Linux, и не нашел ответа. Мне не нужно сразу подключаться к VM, мне нужно, чтобы он хотя бы отображался в xrandr.
