Комментарии 64
а на деле сейчас 3D виртуализация невозможна, точне vmare и vbox не предосталяют полную виртуализацию видеоядра. поправьте если не права
Но при этом её не будет в хосте. А хотелось бы, чтобы видеокарта шарилась между хостом и виртуалкой. Например, в WSL имеются подвижки в эту сторону.
Это немного не то. Что AMD Multiuser GPU, что NVIDIA vGPU — это разделение одной видеокарты на несколько более маленьких, причём одинаковых по характеристикам.
То есть сценарий сначала полностью задействовать всю видеокарту в одной системе, а потом в другой, это не решает. Можно на 50% задействовать в каждой из систем.
Выгрузите драйвер, заблокируйте его загрузку/привязку на уровне udev или ядра, отдайте карту в виртуалку, выполните сброс PCIe-устройства, запустите виртуалку.
Более прямых методов пока нет.
На словах выглядит красиво. На деле у людей пляски с бубнами даже при статической конфигурации. И эта… винда-то позволит такое делать с видеокартой?
Если требуется прокинуть загрузочную видеокарту, то да. И не всегда срабатывает сброс, например — надежнее сразу загрузиться в headless. Плюс загрузочной видюхе надо как-то подкинуть ROM.
Надежнее и проще прокидывать вторую видеокарту, причем другого производителя, чем у загрузочной. Отдать ее сразу vfio, запретить загрузку модулей ядру, и можно жить — выключения гостевой ОС переживаются нормально.
винда-то позволит такое делать с видеокартой?
Про винду лучше спросить у виндоюзеров.
Майки вроде что-то мутили, чтобы можно было пользовать видюху из WSL2, но оно как-то не слишком интересно каджиту.
2. Ну можно же всё же использовать две карты, затычка типа гт710 для хоста и мощная для виртуалки. Причём и хост и виртуалку можно использовать параллельно, эдакая рабочая станция 2в1.
Такую схему уже не первый год используют энтузиасты
А если в системе две видеокарты? Например встроенная в процессор и NVidia. Можно одну из них отдать виртуалке ?
Kvm предоставлял давно уже. Похоже что hyperv уже тоже.
вообще то и VMware Workstation/Fusion и Parallels как раз предоставляют виртуальный 3D адаптер если на хосте есть. И игры работают. Вот только гость — Win/Linux (у Paralles в 16-й версии заявили поддержку Metal для macOS гостя (https://www.parallels.com/ru/news/press-releases/show/pd16-for-mac-launches/ — гостевая macOS должна быть Big Sur).
Parallels вот даже для рекламы использует тот факт что «теперь» у них используется Metal а не OpenGL на маках. www.parallels.com/blogs/parallels-desktop-15-directx-11-and-metal
Быстродействие — вопрос отдельный но работает.
У VirtualBox тоже и давно (вроде даже что-то открытое было).
Да, нужен гостевой драйвер который в это умеет. Да, драйвер может поддерживать именно конкретные версии DirectX и OpenGL.
У VMware ESXi разумеется тоже все поддерживается но там уже есть варианты с эмуляцией (но карточки не любые далеко нужны)/отдачей карточки (тут списки побольше)
Однако, немного производительность подтянули и даже добавили полгода назад поддержку DX11:
https://www.youtube.com/watch?v=-i3ruvRn3B4
Но bare metal performance, понятное дело, достичь таким образом невозможно.
Похоже, рано хоронили Parallels Desktop.
Из текста мне показалось что Rosetta неплохо поддерживает Wine, что конечно нравится авторам платного Crossover.
Можете объяснить для чего упомянут bootcamp?
Не все понимают, что М1 это arm, а вот сказать что bootcamp работать не будет — для многих пользователей Apple понятней.
Больше печалит отсутствие возможно запуска Linux. Проблема не в M1, конечно, а в Т2.
думаю ARM-версии windows и linux запустят в обозримом будущем. Вопрос в том, кому вообще сдался ARM-windows...
Но я имел в виду, именно трансляцию x86 команд бинарных файлов на ARM. Где эта куча девайсов?
Например с АРМом есть
surface pro x, Galaxy Book S,Lenovo Yoga, Asus NovaGo
Невнимательно прочитал, ок
64-bit (x64) apps. With 64-bit emulation coming soon in Preview via the Windows Insider program, you'll be able to run 64-bit (x64) apps on Surface Pro X. Without 64-bit emulation support, you can run 64-bit (ARM64) apps, 32-bit (ARM32) apps, or 32-bit (x86) apps (using the x86 emulator). You can usually find 32-bit (x86) versions of apps, but some app developers only offer 64-bit (x64) apps.
May 13, 2017 Windows 10 Pro нативно работает на ARM
June 13, 2017 Intel грозится подать против Microsoft патентный иск за эмуляцию x86 на ARM
и вдруг опять
October 1, 2020 Microsoft добавит эмуляцию 64-битных приложений на Windows 10 для ARM-систем
Snapdragon 835, минуточку, обещали еще в 2017 году продавать.
Microsoft три раза кидала всех на windows mobile, еще когда пыталась влезть на рынок телефонов. И вдруг опять обещания, но вместо телефонов уже планшеты.
х86 планшеты в той же неудобной позиции, либо экран никакой, либо встроенная флешка меньше 64Гб, либо цена такая, что уже можно ноутбук брать.
Crossover — opensource под LGPL, скачать тут https://www.codeweavers.com/crossover/source
Инструкция по сборке https://gist.github.com/Alex4386/4cce275760367e9f5e90e2553d655309
Thanks very much, with using both of yours suggestions, it compiled.
Unfortunately I can't make it work.
Ржу. Дальше не читал, наверное там написано, как это исправить, но мне почему то вспомнилось, что «Линукс бесплатен, если вы не цените свое время».
В данном конкретном случае мне было проще закинуть копеечку в CodeWeavers и получить годовую подписку на обновления CrossOver.
PS: А вот жесткий баг с CrossOver CD Helper они при переходе c 19-й версии на 20-ю так и не исправили. Наверное, это не так интересно, как запустить Team Fortress на М1.
CrossOver эмулирует среду Windows
WINE Is Not Emulator ©
Не эмулятор процессора или операционной системы. Емулирует (почти) минимальную среду, нужную для запуска Windows-приложений.
Он Not Emulator не потому, что не эмулятор процессора/ОС/whatever, а потому что альтернативная реализация API, что никак не эмуляция. Иначе какой-нибудь musl можно было бы назвать эмулятором glibc :-)
Не эмулирует, а скорее имитирует среду для запуска windows приложений, а дальше транслирует команды
“32-битные приложения Windows заработали на Apple M1 через эмуляцию в CrossOver, запущенном в эмуляции x86”
Как в детстве:
« в сундуке — заяц, в зайце — утка, в утке — яйцо, в яйце — игла»
Санитары подскажут.
habr.com/ru/post/520448/#comment_22111756
Это старкон2, запущенный в DosBox, под иксами в Дебиане, который запущен в VMWare, которая в WinXP
Куда мне вопрос о неработающем звуке задавать? )))))
gregory_777: Санитарам.
bash.org.ru/quote/59325
То есть разработчику под винду (.net core, но иногда нужен WPF) можно забыть про этот новый M1?
Скорее всего, все таки при запуске и то с кешем. Также, она может переводить код, генерируемый в процессе работы программы (двойной JIT выходит).
Source: https://developer.apple.com/documentation/apple_silicon/about_the_rosetta_translation_environment
32-битные приложения Windows заработали на Apple M1 через эмуляцию в CrossOver, запущенном в эмуляции x86