Вопрос или проблема
Я только что виртуализировал Open Indiana в bhyve (гипервизор FreeBSD), используя следующие параметры:
bhyve-win -S -c sockets=2,cores=2,threads=2 -m 4G -w -H -A \
-s 0,hostbridge \
-s 1,ahci-hd,/mnt/zroot2/zroot2/bhyve/img/Open-Indiana/efi/Minimal/openindiana-1.img \
-s 8:0,passthru,2/0/0 \
-s 8:1,passthru,2/0/1 \
-s 8:2,passthru,2/0/2 \
-s 8:3,passthru,2/0/3 \
-s 13,virtio-net,tap5 \
-s 29,fbuf,tcp=0.0.0.0:5905,w=1600,h=950,wait \
-s 31,lpc \
-l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI_CODE.fd \
vm0:5 < /dev/null & sleep 2 && vncviewer 0:5 &
Вы можете видеть, что между параметрами bhyve я передаю 4 слота моей видеокарты, nvidia geforce 2080 ti, которые следующие:
02:00.0 VGA совместимый контроллер: NVIDIA Corporation TU102
[GeForce RTX 2080 Ti]
02:00.1 Аудиоустройство: NVIDIA Corporation TU102 High Definition
Audio Controller
02:00.2 Контроллер USB: NVIDIA Corporation TU102 USB 3.1 Host
Controller
02:00.3 Контроллер последовательной шины: NVIDIA Corporation TU102 USB
Type-C UCSI Controller
Что я сделал в виртуальной машине OI? Я установил xorg; mate и драйверы nvidia, а затем выдал команду: "startx". Я ожидал, что мой внешний монитор (подключенный к HDMI порту видеокарты Geforce 2080 ti) сможет включиться, но этого не произошло. Вместо этого я вижу какую-то ошибку, которая мешает этому произойти:
Вот файл xorg.conf, который я создал:
Section "Device"
Identifier "Card0"
Driver "nvidia"
BusID "PCI:0:0:8"
EndSection
Я надеюсь, что адрес 0:0:8 правильный, согласно PCI адресу, присвоенному видеокарте:
Я не понимаю, почему он хочет использовать устройство 0:0:29 вместо 0:0:8, когда я использовал 0:0:8, а 0:0:29 нельзя использовать, потому что это фреймбуфер....
Ответ или решение
Установка и настройка Xorg и драйверов NVIDIA в виртуализированной среде OpenIndiana с использованием bhyve на FreeBSD 14.1 может быть сложной задачей. Ваша текущая настройка уже включает в себя проброс графического процессора и настройку некоторых параметров bhyve. Рассмотрим, как правильно настроить систему, чтобы избежать возникших проблем.
1. Проверка конфигурации bhyve
Параметры, с которыми вы запускаете виртуальную машину, в целом выглядят логично. Однако следует убедиться, что параметры проброса графических устройств корректны. Для вашего GeForce RTX 2080 Ti, вы должны использовать правильные идентификаторы PCI для каждого устройства.
Обратите внимание, что в вашем случае вы пробрасываете три устройства, и убедитесь, что они корректно представлены в операционной системе OpenIndiana:
-s 8:0,passthru,2/0/0 # VGA
-s 8:1,passthru,2/0/1 # Audio
-s 8:2,passthru,2/0/2 # USB
-s 8:3,passthru,2/0/3 # USB Type-C
Проверьте, правильно ли указаны идентификаторы 2/0/X
для вашего графического устройства.
2. Настройка xorg.conf
Ваш файл конфигурации Xorg (xorg.conf) вызывает некоторые вопросы. Для начала, убедитесь, что вы правильно настроили запись для драйвера NVIDIA. В частности, строка должна выглядеть следующим образом:
Section "Device"
Identifier "Card0"
Driver "nvidia"
BusID "PCI:2:0:0" # Уточните BusID согласно вашей системе
EndSection
Здесь BusID
должен отражать актуальный идентификатор вашего GPU. Важно правильно указать номер шины, устройства и функции.
3. Установка и конфигурация драйверов NVIDIA
Убедитесь, что вы используете правильную версию драйвера NVIDIA для вашей конфигурации. Для этого выполните следующие команды в OpenIndiana:
pkg install nvidia-driver
После установки драйвера необходимо создать модуль конфигурации nvidia
, например, добавив его в /etc/modload.conf
:
nvidia
4. Проверка логов
Обязательно просмотрите логи Xorg, которые находятся в /var/log/Xorg.0.log
. Это важно для диагностики, так как ошибки в логах могут дать подсказку о том, почему графическая настройка не загружается. Ищите строки с "EE" (ошибки) и "WW" (предупреждения).
5. Проверка подключения монитора
Убедитесь, что монитор действительно подключен к HDMI и работает на штатных настройках. Попробуйте подключить монитор к другому устройству или использовать другой кабель HDMI, чтобы исключить проблемы со сторонними компонентами.
6. Запуск X сервер
После всех вышеперечисленных настроек попробуйте снова запустить X сервер с помощью команды:
startx
Если он не запускается, снова проверьте логи и конфигурацию.
Заключение
Работа с виртуальными машинами и графическими драйверами может быть деликатным процессом, особенно при использовании проброса устройств. Следуя рекомендациям выше и убедившись, что все параметры настроены правильно, вы сможете запустить Xorg с драйверами NVIDIA на OpenIndiana. Если проблемы сохраняются, возможно, стоит рассмотреть возможность использования других драйверов или обновление программного обеспечения виртуализации.