разрешение экрана в VirtualBox

Виртуальные машины и среды исполнения

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

разрешение экрана в VirtualBox

Непрочитанное сообщение Olej » 02 фев 2024, 19:39

Речь идёт, точнее, о динамическом изменении разрешения экрана виртуальной машины под изменяемый размер окна.
Обычно я всегда добивался этого через гостевые дополнения VirtualBox. Но это требует сборки модулей ядра Linux (при запуске скрипта из CD гостевых дополнений) и требует:
- установки пакета binutils: всех инструментов сборки: gcc, make etc.
- установки хэдер-файлов ядра, пакета linux-headers-* соответствующего ядру.
Это довольно трудоёмко, требует умения ... но в некоторых сборках, ISO, (редко) это не работает.

Код: Выделить всё

$ xrandr
Screen 0: minimum 1 x 1, current 1514 x 749, maximum 8192 x 8192
Virtual1 connected primary 1514x749+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1514x749      60.00*+
   2560x1600     59.99  
   1920x1440     60.00  
   1856x1392     60.00  
   1792x1344     60.00  
   1920x1200     59.88  
   1600x1200     60.00  
   1680x1050     59.95  
   1400x1050     59.98  
   1280x1024     60.02  
   1440x900      59.89  
   1280x960      60.00  
   1360x768      60.02  
   1280x800      59.81  
   1152x864      75.00  
   1280x768      59.87  
   1024x768      60.00  
   800x600       60.32  
   640x480       59.94  
Virtual2 disconnected (normal left inverted right x axis y axis)
Virtual3 disconnected (normal left inverted right x axis y axis)
Virtual4 disconnected (normal left inverted right x axis y axis)
Virtual5 disconnected (normal left inverted right x axis y axis)
Virtual6 disconnected (normal left inverted right x axis y axis)
Virtual7 disconnected (normal left inverted right x axis y axis)
Virtual8 disconnected (normal left inverted right x axis y axis)
Как видно, в качестве текущего разрешения (с +) стоит совершенно дикое 1514x749 - соответствующее "растянутому" мышкой окну машины.

Ещё можно кое-как менять разрешение за счёт VirtualBox: режим масштабирования. Но при заметном изменении разрешения это нарушает чёткость и плохо читается.
Зато это очень просто :!:

Но в последних сборках дистрибутивов масштабирование разрешения происходит без дополнительных телодвижений, см. Kali Linux, antiX и др.
Вот тут и вопрос: за счёт чего это происходит? каким образом они этого добиваются?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

разрешение экрана в VirtualBox

Непрочитанное сообщение Olej » 02 фев 2024, 19:42

Разрешение экрана Ubuntu в VirtualBox
Виртуальная машина VirtualBox устанавливает для новых виртуальных машин расширение экрана по умолчанию 800x600 пикселей если сама гостевая операционная система не запрашивает другое расширение. Для консольных дистрибутивов это не критично, так как консоли и этого расширения вполне достаточно, но для дистрибутивов с графическим окружением этого очень мало.
Действительно, если есть намерение работать с виртуальной машиной, то работать с этим совершенно невозможно :!:
Содержание статьи
Как увеличить разрешение экрана VirtualBox в Linux
1. Дополнения гостевой ОС
2. Настройка расширения по умолчанию
3. Настройка расширения в системе
4. Настройка расширения с помощью xrandr
5. Настройка расширения с помощью Grub
6. Настройка разрешения параметром ядра
Но все здесь способы, кроме 1 (о котором уже говорили ранее) - статические, т.е. они позволяют (в лучшем случае, если сработает) определить разрешение 1 раз при запуске виртуальной машины ... а не динамически изменять его по-ходу под своё удобство.
Это всё хорошо годится для LiveCD/USB, но плохо для долговременно используемых инсталляций.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

разрешение экрана в VirtualBox

Непрочитанное сообщение Olej » 02 фев 2024, 20:55

Olej писал(а):
02 фев 2024, 19:42
но плохо для долговременно используемых инсталляций
Я много работаю с VirtuakBox, разными инсталляциями (в сравнении) - поэтому эта тема очень актуальна :!:
Вот этот способ более-менее актуальный для использования:
Olej писал(а):
02 фев 2024, 19:42
4. Настройка расширения с помощью xrandr
Это antiX 23:

Код: Выделить всё

$ cat /etc/antix-version 
antiX-23_386-base Arditi del Popolo 27 August 2023

Код: Выделить всё

$ xrandr
Screen 0: minimum 1 x 1, current 800 x 600, maximum 8192 x 8192
Virtual1 connected primary 800x600+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   800x600       60.00*+  60.32  
   2560x1600     59.99  
   1920x1440     60.00  
   1856x1392     60.00  
   1792x1344     60.00  
   1920x1200     59.88  
   1600x1200     60.00  
   1680x1050     59.95  
   1400x1050     59.98  
   1280x1024     60.02  
   1440x900      59.89  
   1280x960      60.00  
   1360x768      60.02  
   1280x800      59.81  
   1152x864      75.00  
   1280x768      59.87  
   1024x768      60.00  
   640x480       59.94  
Virtual2 disconnected (normal left inverted right x axis y axis)
Virtual3 disconnected (normal left inverted right x axis y axis)
Virtual4 disconnected (normal left inverted right x axis y axis)
Virtual5 disconnected (normal left inverted right x axis y axis)
Virtual6 disconnected (normal left inverted right x axis y axis)
Virtual7 disconnected (normal left inverted right x axis y axis)
Virtual8 disconnected (normal left inverted right x axis y axis)
Текущее разрешение - это то что отмечено звездой (*)
Меняем:

Код: Выделить всё

$ xrandr --output Virtual1 --mode 1024x768

Код: Выделить всё

$ xrandr
Screen 0: minimum 1 x 1, current 1024 x 768, maximum 8192 x 8192
Virtual1 connected primary 1024x768+0+0 (normal left inverted right x axis y axis) 0mm
   800x600       60.00 +  60.32..
   2560x1600     59.99..
   1920x1440     60.00..
   1856x1392     60.00..
   1792x1344     60.00..
   1920x1200     59.88..
   1600x1200     60.00..
   1680x1050     59.95..
   1400x1050     59.98..
   1280x1024     60.02..
   1440x900      59.89..
   1280x960      60.00..
   1360x768      60.02..
   1280x800      59.81..
   1152x864      75.00..
   1280x768      59.87..
   1024x768      60.00*.
   640x480       59.94..
Virtual2 disconnected (normal left inverted right x axis y axis)
Virtual3 disconnected (normal left inverted right x axis y axis)
Virtual4 disconnected (normal left inverted right x axis y axis)
Virtual5 disconnected (normal left inverted right x axis y axis)
Virtual6 disconnected (normal left inverted right x axis y axis)
Virtual7 disconnected (normal left inverted right x axis y axis)
Virtual8 disconnected (normal left inverted right x axis y axis)

Код: Выделить всё

$ xrandr | grep \*
   1024x768      60.00*.
Снимок экрана от 2024-02-02 19-45-02.png
Снимок экрана от 2024-02-02 19-45-02.png (460.86 КБ) 144 просмотра
Как хорошо видно как меняется разрешение (исходные 800x600 отражены прямоугольником слева-вверху - обои по настройкам здесь не расширяются).
Ещё раз меняем:

Код: Выделить всё

$ xrandr --output Virtual1 --mode 1152x864

Код: Выделить всё

$ xrandr | grep \*
   1152x864      75.00*.
Снимок экрана от 2024-02-02 19-45-39.png
Снимок экрана от 2024-02-02 19-45-39.png (618.42 КБ) 144 просмотра

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

разрешение экрана в VirtualBox

Непрочитанное сообщение Olej » 03 фев 2024, 00:54

Olej писал(а):
02 фев 2024, 19:39
Kali Linux,
К примеру...

Код: Выделить всё

┌──(olej㉿osboxes)-[~]                                                                                             
└─$ lsb_release -a                                                                                                 
No LSB modules are available.                                                                                      
Distributor ID: Kali                                                                                               
Description:    Kali GNU/Linux Rolling                                                                             
Release:        2023.4                                                                                             
Codename:       kali-rolling                                                                                       
Установлено при инсталляции системы:

Код: Выделить всё

┌──(olej㉿osboxes)-[~]                                                                                             
└─$ aptitude search virtual | grep ^i                                                                              
i A python3-virtualenv - Python virtual environment creator                                                        
i A virtualbox-guest-utils - x86 virtualization solution - non-X11 guest utilities                                 
i  virtualbox-guest-x11 - x86 virtualization solution - X11 guest utilities            
Но ничего из области VirtualBox не устанавливалось вручную, не говоря уже об ISO гостевых дополнений, который просто не смонтирован.
Из модулей ядра:

Код: Выделить всё

┌──(olej㉿osboxes)-[~]                                                                                             
└─$ lsb_release -a                                                                                                 
vboxsf                 49152  0                                                                                    
vboxguest              53248  6 vboxsf                                                                             
Но нет vbvideo, который обычно устанавливается со сборкой гостевых дополнений.
Непонятно откуда и как инсталлировался:

Код: Выделить всё

┌──(olej㉿osboxes)-[~]                                                                                             
└─$ modinfo vboxguest                                                                                              
filename:       /lib/modules/6.5.0-kali3-amd64/kernel/drivers/virt/vboxguest/vboxguest.ko                          
license:        GPL                                                                                                
description:    Oracle VM VirtualBox Guest Additions for Linux Module                                              
author:         Oracle Corporation                                                                                 
alias:          pci:v000080EEd0000CAFEsv00000000sd00000000bc*sc*i*                                                 
depends:........                                                                                                   
retpoline:      Y                                                                                                  
intree:         Y                                                                                                  
name:           vboxguest                                                                                          
vermagic:       6.5.0-kali3-amd64 SMP preempt mod_unload modversions.                                              

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

разрешение экрана в VirtualBox

Непрочитанное сообщение Olej » 03 фев 2024, 01:16

Olej писал(а):
02 фев 2024, 19:39
antiX
Olej писал(а):
03 фев 2024, 00:54
К примеру...
В antiX ещё страньше :-o

Код: Выделить всё

$ uname -a
Linux antix23upd 5.10.197-antix.1-486-smp #2 SMP Wed Sep 27 08:12:27 EDT 2023 i686 GNU/Linux
Как-будто ничего из VirtualBox не устанавливалось:

Код: Выделить всё

$ aptitude search virtual | grep ^i
olej@antix23upd:~

Но модуль:

Код: Выделить всё

$ lsmod | grep vb
vboxguest             237568  3
И он один...
И окно виртуальной машины масштабируется... :shock:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

разрешение экрана в VirtualBox

Непрочитанное сообщение Olej » 03 фев 2024, 22:04

Olej писал(а):
02 фев 2024, 20:55
4. Настройка расширения с помощью xrandr
Olej писал(а):
02 фев 2024, 20:55
Вот этот способ более-менее актуальный для использования:
Можно, в конце-концов, создать скрипт установки комфортного разрешения:

Код: Выделить всё

$ cat ~/1360x768
xrandr --output Virtual1 --mode 1360x768
И затем прописать его в конец стартового скрипта DE/WM (для этого логина) ... в antiX / IceWM это:

Код: Выделить всё

$ tail -n2 ~/.desktop-session/startup 
## Установить разрешение экрана
~/1360x768
В других дистрибутивах он отличается, но везде он есть :!:
Здесь разрешение будет всё-равно статическим ... но всё-же это годится для работы.

Ответить

Вернуться в «Виртуализация»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей