Появилась интересная задачка - организация рабочего места на съемном носителе (ssd). Ну интересное тут другое, там используется виртуализация на базе QEMU. Установка и настройка производились на Hyper-V (виртуализация в виртуализации) на внешний ssd (проброшен в VM).
Установка QEMU выглядела так:
sudo apt-get install --no-install-recommends qemu-system-ppc libvirt-daemon-system libvirt-clients virt-manager gir1.2-spiceclientgtk-3.0
Вот я сделал, а заказчик спрашивает, а как мне работать на двух мониторах?
Поясню, на носителе базовая операционная система, а в ней есть гипервизор QEMU KVM. Человек запускает виртуальную машину и работает через консоль. А у него два монитора и растянуть окно нельзя.
В поисках решений перепробовал много вариантов, в итоге решение нашлось.
Ставим virt-viewer:
apt-get install virt-viewer
В настройках vm модель видео ставим virtio и добавляем head в режиме редактирования XML
для редактирования XML требуется добавить разрешение:
Пример XML, слот может быть другой, будьте внимательны
<video>
<model type="virtio" heads="2" primary="yes">
<acceleration accel3d="no"/>
</model>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0"/>
</video>
Далее в разделе Server Spice проверяем настройки
Для доступа снаружи в Адрес выбираем "Все интерфейсы". Для локальной работы достаточно localhost. Записываем какой порт использовать (5900). Запускаем VM. Открываем приложение virt-viewer
Указываем адрес и порт, нажимаем подключиться. Вот тут должно появится два окна. Обычно второе окно имеет разрешение 640*480, что не удобно, так как каждый раз нужно перенастраивать. Настройка осуществляется в менеджере дисплея, даже сохранение профиля не помогает.
Указание разрешение в grub:
GRUB_GFXMODE=1920x1080
Решает проблему только на перезагрузку. При выключении машины настройки не применяются для мониторов типа Virtual.
Методом научного тыка была подобрана такая комбинация:
xrandr --output Virtual-1 --mode 1920x1080 --pos 0x0 --output Virtual-2 --mode 1920x1080 --pos 1920x0
При таких вводных:
[workstation user ~]% xrandr --listactivemonitors
Monitors: 2
0: +*Virtual-1 1920/609x1080/342+0+0 Virtual-1
1: +Virtual-2 1920/609x1080/342+1920+0 Virtual-2
Попытался записать скрипт в /etc/lightdm/lightdm.conf в разделе Seat
Поэтому данный "скрипт" был записан в файл на рабочем столе, пользователь после входа в учетку запускает его и получает два окна FullHD.
Потом было принято решение довести этот вопрос до автоматизма, скрипт переместил в /opt и добавил его в автозапуск. Для этого нужно создать файл /etc/xdg/autostart/xrandr-settings.desktop с таким содержимым:
[Desktop Entry]
Type=Application
Version=1.0
Name=Custom randr settings
Exec=/opt/monitor.sh
Icon=
Comment=
Path=
Terminal=false
StartupNotify=false
Скрипт я переписал так:
#!/bin/sh
(
date
res="1920x1080"
xrandr --output Virtual-1 --mode $res --pos 0x0
xrandr --output Virtual-2 --mode $res --pos 1920x0
) >>/home/user/monitor.log 2>&1
Для теста. Проверить без перезагрузки можно кликнув два раза в файловом менеджере по файлу
Не выходит каменный цветок (@)
ОтветитьУдалитьпоявляется второе окно 640*480 с надписью Display output is not active
основная ОС AltLinux в виртуалке windows крутится
дополню, в лог файле
ОтветитьУдалитьwarning: output Virtual-1 not found; ignoring
warning: output Virtual-2 not found; ignoring
Как минимум нужно проверить вывод команды xrandr --listactivemonitors, она покажет и мониторы и их названия. Далее надо использовать "названия мониторов" из вывода команды.
Удалить$ xrandr --listactivemonitors
ОтветитьУдалитьMonitors: 2
0: +*HDMI-1 1920/509x1080/286+0+0 HDMI-1
1: +DP-2 1920/160x1080/90+1920+0 DP-2
так?
xrandr --output HDMI-1 --mode $res --pos 0x0
xrandr --output DP-2 --mode $res --pos 1920x0
Да, похоже
Удалить