Ejecutando aplicaciones x86/x86-64 en Fedora Asahi Remix
Hay muchas de muchas herencias de aplicaciones x86/x86-64 que los usuarios quieren ejecutar en plataformas arm64, incluyendo aplicaciones de Windows y juegos. Para soportar esto en Fedora Asahi Remix, hemos integrado una pila de existentes y componentes bestroke para hacerlo posible para ejecutar transparentemente apps x86/x86-64 directamente en Linux arm64.
Desde plataformas Apple utiliza una página de tamaño 16K nativamente y procesadores de x86/x86-64 utilizan un tamaño de página de 4K, esto es especialmente complicado, como aplicaciones x86/x86-64 generalmente no funcionan cuando son presentados con un kernel host que requiere alineamiento de página de 16K. Para evitar este hueco, estamos utilizando un microMV para ejecutar un kernel Linux invitado separado completamente en modo de tamaño de página de 4K. Para mantenerlo continuo como sea posible, el entorno de invitado está designado a ser tan cerrado como sea posible para que el entorno del host, y utilizamos contexto nativo de paso GPU para tener gráficas de alto rendimiento dentro del invitado.
La pila consiste en estos componentes:
-
muvm (paquete:
muvm
), nuestro ejecutor microVM hecho a medida basado en libkrun. Este además incluye componentes para reenvío de X11 y proxy de dispositivo de entrada HID. -
FEX-emu (paquete:
fex-emu
), un emulador de espacio de usuario rápido x86/x86-64 centrado en correcciones. -
El Fedora FEX RootFS (paquete:
fex-emu-rootfs-fedora
), el cual proporciona dependencias comunes de biblioteca x86/x86-64 a ser utilizada por aplicaciones emuladas. -
El mesa (paquetes:
mesa-fex-emu-overlay-i386
ymesa-fex-emu-overlay-x86-64
), compilados para las arquitecturas x86/x86-64 y empaquetado como una sobrecarga FEX RootFS. Esto proporciona la capacidad OpenGL/OpenCL/Vulkan para las GPU de Apple.
Además tenemos su propia cobertura de Steam eso automatiza el proceso de instalación y lanzar Steam dentro de la pila de microMV. Cuando ejecuta juegos de Windows® utilizando Steam®, estos componentes de fuente abierta son utilizados tras las escenas:
-
Proton, una distribución Wine dirigida a juegos.
-
dxvk, una capa de traslación que convierte el DirectX 8 de Windows® - las API DirectX 11 a Vulkan®.
-
vkd3d-proton, una capa de transición que convierte la API DirectX 12 de Windows® a Vulkan®.
Alcance
Esta pila tecnológica es primariamente deseada en ejecución y juegos x86-64, pero puede además ser utilizado para ejecutar aplicaciones de productividad distinta de los juegos. Cuando posible, preferiría alternativas nativas sobre emulación. Lea este apunte de P+F para más información.
El ámbito de esta solución está limitada a aplicaciones x86 y x86-64 portables que son intentadas ser ejecutadas desde su directorio inicial (o, como mucho, manualmente desempaquetados a /opt
por el usuario), incluyendo AppImages. No es intentado ejecutar aplicaciones x86-64 que deben ser instaladas como paquetes del sistema, los cuales son compilados para una distribución específica de Linux o requiere una instalación de dependencias del sistema compleja, o requiere cual instalador como root está dedicado.
En particular, el entorno x86-64 no es un sistema de archivos raíz auto-contenido, sino una capa minimal, inmutable encima de su raíz del sistema de archivos arm64 existente. Eso significa que no puede hacer cambios a ello, instalar paquetes adicionales, etc. No hay disponible acceso raíz en todo dentro del entorno x86-64.
Modo de empleo
Steam
Tan solo utilice dhf install steam
para instalar muestra cobertura Steam, y después ejecute Steam desde su lanzador del escritorio (o la instrucción steam
) para descargar e instalar Steam. Esto instalará todas las dependencias necesarios automáticamente.
Otras aplicaciones
Para instalar la pila de emulación por sí misma, utilice dnf install fex-emu
. Esto incorporará automáticamente las dependencias requeridas.
No se puede ejecutar aplicaciones x86-64 directamente desde el hospedador (aún), como deben ser lanzado desde el microMV. Para hacerlo, ejecute muvm -- /ruta/a/ejecutable
. Debes utilizar una ruta absoluta, como muvm
no preserva actualmente el directorio actual de trabajo. En este entorno, el soporte binfmt del kernel ya está configurado para utilizar FEX para ejecutar aplicaciones x86/x86-64, tal que sería capaz de ejecutarlos.
Si su aplicación utiliza un lanzador por medio de shell script en vez de ejecutar directamente su binario principal, lo ejecutaría a través de FEXBash
. Por ejemplo, utilice muvm -- FEXBash /ruta/a/lanzador,sh
. Haciendo tal asegura que el shell ejecuta en el entorno emulado y unos pocos comandos de shell críticos convierte como haría para aplicaciones x86-64, las cuales lo hacen más similar que el script shell funcionará como se intentaba.
Además puede utilizar muvm -- bash
para lanzar un shell arm64 dentro del MicroMV de 4K, o muvm -- FEXBash`para lanzar un shell x86-64. El shell x86-64 se comportará similarmente al intérprete arm64 y muchos comandos ejecutarán como binarios arm64, pero unos pocps (tales como `ls
) ejecutarán bajo emulación, lo cual permite "ver" el mundo como lo hacen las apps x86-64.
Como funciona
muvm
crea una máquina virtual que comparte tanto como el SO hospedante como posible. Con la MV, el sistema de archivos raíz es el mismo que el sistema de archivos raíz del host, con las siguientes excepciones:
-
/dev
,/sys
, and/proc
son invitados privados excepto para/dev/shm
el cual está compartido con el host, permitiendo apps host y apps invitadas para memoria compartida coherentemente. -
/run
es también privado para el invitado -
El sistema de archivos raíz del emulador FEX e imágenes cubiertas son montados bajo
/run/fex-emu/`con la sobrecarga combinada rootfs disponible en `/run/fex-emu/rootfs
. -
/usr/share/fex-emu
y/usr/local/share/fex-emu
están sobremontados con un tmpfs para inyectar un FEXConfig.json
adaptable a usar con la MV -
Un tmpfs también está montado en
/tmp/.X11-unix
, por tanto los zócalos del servidor X11 son privados para la MV -
La vista del completo sistema de archivos host está disponible en
/run/muvm-host
, incluyendo una sobrecarga de montados. Por ejemplo, puede acceder al/run
del hospedador en/run/muvm-host/run
. (Nota:/run/muvm-host/dev
existe pero no hará que quiere esperarlo hace. Los dispositivos hospedados no están disponibles en el invitado.)
Esto quiere decir que /ust
, /home
, /etc
, /opt
, /var
, /tmp
, y cualquier otros directorios en su sistema de archivos raíz están compartidos entre el invitado y el hospedado. El SO invitado aarch64 no lo ejecuta su propio sistema de archivo raíz propio, pero en su lugar ejecuta exactamente los mismos binarios que su SO hospedado lo hace.
Además, FEX utiliza el sistema de archivos montado en /run/fex-emu/rootfs
como su sistema de archivos raíz virtual. Esto significa que las aplicaciones x86/x86-64 (y solo ellas) verán el contenido de ese directorio superpuesto al sistema de archivos raíz. Así es como ponemos las bibliotecas x86/x86-64 a disposición de dichas aplicaciones, a la vez que compartimos la mayor parte del contenido del sistema de archivos.
Cuando comience muvm, registra FEX como un proveedor binfmt, tal que las aplicaciones x86/x86-64 serán ejecutadas transparentemente a través de ello. Al inicio, FEX detectará que mantenimiento TSO está disponible en la plataforma Apple Silicon (incluso con la MV), y lo activa automáticamente para emulación precisas rápidas.
Los puntos de montaje del host se propagan al invitado al acceder a ellos por primera vez, de forma automática. Esto permite que las aplicaciones invitadas distingan entre diferentes sistemas de archivos, lo que mantiene la semántica correcta de dispositivo/inode. Si tiene una partición montada en el host en /mnt/steam y ejecuta mount dentro del invitado, no la verá inicialmente. Si ejecuta ls /mnt/steam y luego vuelve a ejecutar mount , el montaje se añadirá automáticamente a la lista de montajes. ¡Esto es normal y funciona correctamente!
|
Problemas conocidos
El rendimiento no es muy bueno
Como este proyecto aún está dentro de su estados previos, intentamos corregir para la liberación inicial. Realizar optimizaciones sucederá a lo largo del tiempo. Estamos advertidos de varios cambios que traerían rendimientos significantes de mejora, y estamos trabajando activamente en eso.
Para juegos de Windows DX8-DX11 con Proton, en particular, te recomendamos probar WineD3D en lugar de DXVK. WineD3D usa OpenGL en lugar de Vulkan como backend, y podría tener un mejor rendimiento gracias a optimizaciones en nuestro controlador OpenGL que no están disponibles en Vulkan. Para habilitarlo, cambia las opciones de inicio de Steam a PROTON_USE_WINED3D=1 %command%
. Ten en cuenta que DXVK suele tener mejor compatibilidad, así que esto es un punto a favor. ¡Cuéntanos qué juegos funcionan mejor con cualquiera de los dos backends!
Los juegos más antiguos de 32-bit pueden ejecutarse muy lentamente si hacen un uso intensivo de la unidad de punto flotante x87 de 80-bit, ya que estas operaciones deben emularse en el software para lograr una compatibilidad total (el mismo problema existe en Rosetta en macOS). Puedes ejecutar estos juegos con emulación de punto flotante de 64 bits basada en hardware, que es menos precisa, pero mucho más rápida. Para ello, cambia las opciones de inicio de Steam a FEX_X87REDUCEDPRECISION=1 %command%
. Este modo puede causar problemas sutiles en algunos juegos debido a la precisión reducida, pero la mayoría de los juegos deberían funcionar bien (y mucho más rápido).
La MV utiliza mucha RAM
Para permitir apps invitadas a utiliza en cantidad de RAM grande (como algunos juegos modernos requieren), por defecto muvm
permite el invitado utilizar hasta el 80% de la memoria RAM del sistema. Esto además significa que alguna de que seŕan tomada por caché de paginado invitado, apareciendo al hospedado como si la MV está tomando cmo mucho la RAM del sistema. muvm
tiene la habilidad de reducir el caché de página del invitado utilizando como memoria hospedada presume incremento, tal que si incrementa el uso de memoria hospedada, la MV reduciría su empleo coordinadamente (tan largo como sea capaz de descartar caché de RAM no utilizada).
En maquinas cuyo tamaño más bajo de la RAM (16Gb o inferior), recomendamos no ejecutar ningúna de las aplicaciones host pesadas mientras la MV esté en uso. No recomendamos ejecutar juegos complejos en máquinas de 8GB.
Para inspeccionar el empleo de memoria de MV que está ejecutando, utilice muvm -ti -- free
. Además puede ejecutar muvm -ti -- htop
(si tiene instalado hyop
) para obtener más información detallada, o sustituya su herramienta de información del sistema a su elección.
Si desea limitar el empleo máximo de memoria de MicroVM, puede configurar la asignación de RAM invitada con los parámetros muvm --mem=TAMAÑO
.
P+F
¿Es esto como Rossetta en macOS?
¡Esto es lo más parecido a Rosetta que podemos conseguir! La principal diferencia es que Rosetta evita el problema del tamaño de página al basarse en la compatibilidad con múltiples tamaños de página del kernel XNU para los procesos de usuario, por lo que no necesita una máquina virtual. Si bien lograr que Linux admita tamaños de página mixtos no sería completamente imposible en teoría, sería un proyecto enorme que probablemente tardaría años en completarse, y no está del todo claro si dicho cambio sería aceptado por los desarrolladores (¡Linux ni siquiera permite seleccionar el tamaño de página al arrancar dentro de un solo kernel todavía!).
Salvo por el problema del tamaño de página, FEX y Rosetta son tecnologías comparables (ambas son emuladores, a pesar de lo que el marketing de Apple pueda hacer creer). Tanto FEX como Rosetta utilizan la característica única de la CPU de Apple Silicon, fundamental para el rendimiento de la emulación x86/x86-64: el modo TSO. Gracias a esta característica, FEX puede ofrecer una emulación x86/x86-64 rápida y precisa en sistemas Apple Silicon.
¿Por qué tan solo utiliza un kernel de 5K de host?
Si bien los sistemas Apple Silicon admiten páginas de CPU de 4K, el resto del hardware (IOMMU, GPU) solo funciona con páginas de 16K. El kernel de Linux no funciona bien en este entorno, ya que generalmente asume que el tamaño de página de la CPU es al menos igual o mayor que el de la IOMMU. Anteriormente, implementamos algunos parches de kernel para que esto funcionara parcialmente, pero presentaban errores y estaban incompletos, por lo que abandonamos el enfoque. Incluso si funcionara correctamente, ejecutar todo el sistema con páginas de 4K tiene un impacto medible en el rendimiento, por lo que nunca incluiríamos kernels de 4K por defecto. Por lo tanto, ejecutar aplicaciones x86/x86-64 requeriría que los usuarios cambiaran manualmente el kernel y reiniciaran, lo cual resulta bastante engorroso.
¿Por qué no box64?
box64 y FEX-Emu tienen enfoques de emulación diferentes. FEX-Emu busca una mayor precisión por defecto (pero requiere una configuración más compleja), mientras que Box64 busca cubrir casos de uso más predefinidos (como ejecutar un subconjunto de aplicaciones directamente en un kernel de 16K sin una máquina virtual, usando algunos trucos). Hemos elegido FEX-Emu para nuestra pila porque creemos que tendrá mayor compatibilidad con su enfoque, pero ambos tienen sus usos. Box64 está disponible en https://src.fedoraproject.org/rpms/box64 [empaquetado en Fedora], así que animamos a los usuarios a probarlo (tanto de forma nativa como con muvm) y a compartir sus resultados.
Mi aplicación x86-64 o x86 falta alguna biblioteca del sistema, ¿que tengo que hacer?
Nuestro RootFS inmutable contiene un conjunto grande de bibliotecas comunes x86-64 y x86 que son utilizadas comúnmente como dependencias, pero no pueden enviar cada biblioteca posible. Puede ver el listado de paquetes aquí.
Si la biblioteca faltante es relativamente simple y común, sin dependencias o con dependencias muy simples, y no añadiría mucho espacio a nuestras imágenes de RootFS, envíe una solicitud de solicitud (PR) al repositorio enlazado arriba para que podamos incluirla en futuras versiones de RootFS. Asegúrese de indicar qué aplicación requiere la biblioteca y por qué cree que deberíamos incluirla.
Si su aplicación requiere un framework complejo (como Qt) o una biblioteca de nicho poco común, no está diseñada como una aplicación "portátil" y no se espera que funcione de inmediato en la mayoría de los sistemas. Para solucionar este problema, puede descargar manualmente las bibliotecas faltantes, extraerlas a su directorio personal y usar LD_LIBRARY_PATH
para que su aplicación las encuentre. Puede usar el siguiente comando para descargar RPM x86-64 desde su instalación arm64 de Fedora:
Entonces puede utilizar `romdev-extract` para extraer el contenido del RPM, y entonces configure `LD_LIBRARY_PATH` como sea apropiado.
También es posible sobrecargar los RPM en el existente RootFS, a través de esto estaría considerada funcionalidad avanzada. Una vez que tenga un RPM, puede convertirlo a una imagen erofs utilizando estos comandos:
``` rpm2archive -n mipaquete.rpm mkfs.erofs --tar=f mipaquete.rpm.erofs mipaquete.rpm.tar ```
Entonces, puede lanzar manualmente `muvm` con las imágenes base erois y su imagen personal erofs encima, como esto:
muvm \ -f /usr/share/fex-emu/RootFS/default.erofs \ -f /usr/share/fex-emu/overlays/mesa-x86_64.erofs \ -f /usr/share/fex-emu/overlays/mesa-i386.erofs \ -f mypackage.rpm.erofs \ <sus argumentos muvm aquí>
Esto cubrirá el paquete adjunto en el RootFS utilizado para FEX. Conserve en mente que esto puede o no funcionar como intentaba, y no sería considerado una solución mantenida.
=== Steam dice que stamwebhelper se ha estrellado, ¿qué hago?
Tan solo deje reiniciar, y funcionaría en el segundo intente. Steam tiene un tiempo de espera para steamwebhelper, y cuando ejecute bajo emulación, inicio es lento suficiente que el tiempo de espera caduca. Esto usualmente solo sucede en un arranque frío.
=== No soy capaz de descargar/ejecutar ciertos juegos en Steam
Asegure que Steam Play está activado para todos los juegos. Estaría bajo Menú > Opciones > Compatibilidad > Activar Steam Play para todos los otros títulos. Reinicie Steam una vez activado.
=== Presionando teclas hace que el touchpad detenga la respuesta
Esto es causado por la característica del touchpad "Desactivar cuando tecleo". Puede apagarlo en las opciones touchpad/input para su entorno de escritorio.
=== ¿Puedo ejecutar aplicaciones Windows® fuera de Steam?
En este punto, no mantenemos ejecutar apps Windows® fuera de Steam como Wine no proton aún no funciona en Fedora. Estamos trabajando en resolver subyacentes https://github.com/FEX-Emu/FEX/pull/4225[problema FEX], por tanto esperamos mantener esto relativamente pronto.
En el tiempo medio, puede utilizar Proton Steam para ejecutar aplicaciones de Windows® no Steam directamente desde Steam.
=== ¿Puedo ejecutar aplicaciones x86-64/x86 de Linux?
Los juegos Native Linux generalmente funcionarían bajo muvm, tan largo como sean auto-contenidos y no hace dependencia en bibliotecas de sistema host compleja (llevaría una selección grande de dependencias comunes, pero no todo bajo el sol).
=== ¿Está admitido Wayland?
Wayland no está mantenido dentro de la MV en este momento. Como muchas de las aplicaciones heredadas de x86/x86-64 la gente desea ejecutar son aplicaciones X11, estamos enfocando primero en soporte de X11. Esto significa que no puede ejecutar apps nativas Wayland dentro de la MV en este momento. Por supuesto, el escritorio host aún es un escritorio Wayland, y el soporte X11 está proporcionado por XWayland.
=== ¿Puedo acceder al hardware desde aplicaciones ejecutando dentro de la microMV?
Como la MV no aprueba a través de cualquier hardware host distinto que el GPU y el sistema de archivo virtual, no será capaz de utilizar aplicaciones que requieren acceso por hardware directo. Utilizamos pase por software para los siguientes interfaces:
- Protocolo X11 (pantalla, teclado, ratón)
- Gamepads traspaso vía traspaso hid/uinput
- E/S de sonido por medio de protocolo de zócalo PulseAudio footnote:[Esto funciona con PipeWire ejecutando en el host con pipewire-pulse, como instalado por defecto. *No* necesita y no instalaría el propio PulseAudio, ya que romperá su soporte al amplificador!]
Estamos investigando la posibilidad de traspasar por medio de PipeWire, lo cual permitirá cámaras web que sean usadas dentro de la MV.
=== ¿Puedo utilizar métodos de entrada (IME) en aplicaciones con el microMV?
Puede usar el sistema clásico de métodos de entrada _xim_ de X11. muvm ya debería configurar las variables de entorno correctamente para que funcione con aplicaciones Qt y GTK (cargando el complemento "xim"), siempre que el marco de métodos de entrada que utilice en su sistema host lo admita. Hemos probado esto con _fcitx5_ y Steam ejecutándose en KDE Plasma.
En el futuro, una vez que se admita el paso a través de Wayland, el mecanismo de protocolo de entrada nativo de Wayland debería funcionar con cualquier marco de método de entrada de host (a través de un complemento generalmente llamado "wayland"). No hay planes para soportar métodos de entrada que no estén basados en sistemas de ventanas (como los complementos directos "ibus" y "fcitx"), ya que requerirían que enviemos bibliotecas compartidas x86-64 para todos los métodos de entrada posibles en el sistema virtual x86-64 inmutable, y también requerirían la representación de sus protocolos personalizados, lo cual no es factible.
=== ¿Es esto como una MV Qemu/libvirt/UTM/Parallels/VMWare/VirtualBox/etc.?
No, muvm no funciona como una máquina virtual tradicional de todo el sistema. Si bien también utiliza KVM como back-end para una virtualización eficiente, el concepto es muy diferente al de las máquinas virtuales tradicionales que ejecutan sistemas operativos invitados completamente separados. El kernel invitado es un https://github.com/containers/libkrunfw[kernel especial] optimizado para iniciarse en una fracción de segundo, y el monitor de VM pasa por el sistema de archivos del host prácticamente tal como está. No existe una conexión directa de hardware de bajo nivel (USB, etc.), sino que nos centramos en la conexión directa de protocolos de software de alto nivel, como X11/Wayland. Esto significa que el entorno dentro de la máquina virtual debería "sentirse" igual que el sistema operativo host desde el punto de vista de las aplicaciones, solo que con un tamaño de página de 4K en lugar de un tamaño de página de 16K.
=== ¿Haz que los exploradores funcionen con el invitado MV?
Sí, pero ejecutará en modo X11. Sin embargo, hay uno ausencia: *las instancias del explorador dentro del invitado no puede comunicarse con instancias de explorador fuera del invitado, y es peligroso ejecutar el mismo perfil de explorador en ambos el invitado y el anfitrión*.
Para evitar estos problemas, muvm configura una variable de entorno para forzar Firefox para utilizar un perfil dedicado cuando lanzó con la MV. Esto significa que las aplicaciones que lanzan un explorador (tal como para acceder o propósitos de documentación) funcionará como se intenta, pero Firefox lanzará utilizando un perfil dedicado son acceso a sus galletas, historial, etc.
CAUTION: Si inicia el mismo perfil de navegador en el invitado y el host simultáneamente, los datos de su perfil podrían corromperse. Si su navegador predeterminado no es Firefox y utiliza aplicaciones emuladas que podrían iniciarlo accidentalmente, le recomendamos encarecidamente cerrar todas las ventanas del navegador antes de usar muvm o configurar manualmente perfiles separados.
=== ¿Puedo hacer sudo dentro de la MV?
Dado que el monitor de la máquina virtual se ejecuta con su propia identidad de usuario, no puede obtener privilegios de root. "root" dentro de la máquina virtual solo tiene los privilegios de su propio usuario, por lo que usar sudo no tiene mucho sentido (y de hecho no funciona). Recomendamos instalar el software que desee usar con muvm+FEX en su directorio personal. Para el software diseñado para instalarse en /opt o similar, recomendamos realizar los pasos de instalación manualmente en el sistema operativo host y luego ejecutar la aplicación en muvm.
Si necesita acceder a un shell raíz dentro de la máquina virtual para depurar, puede ejecutar `muvm -tip 3335 +++--+++ bash`. Tenga en cuenta que, a pesar de ser "root", no podrá modificar la mayoría de los archivos del sistema que le pertenecen, y cualquier archivo que cree pertenecerá a su usuario no root. Un shell raíz es principalmente útil para realizar acciones como rastrear otros procesos o cambiar la configuración del kernel del invitado o de la red (pero estos cambios no persistirán tras reiniciar la MV)).
=== ¿Pueden las aplicaciones con la MV comunicarse con aplicaciones fuera de la MV?
La comunicación está limitada mayormente al sistema de archivos del host. La MV comparte su directorio inicial (y de hecho muchos de los sistemas de archivos) con el host, tal que cualquier archivo que cree en un lado será visible en el otro.
Gracias a virtiofs-DAX, la comunicación de memoria compartida (`/dev/shm`) también está disponible entre apps invitadas y apps hospedadas. Esto es utilizado, por ejemplo, por el código de reenvío (forwarding) de X11.
Además es posible compartir sonido entre app hospedajes (host) e invitados (guest) utilizando el soporte de re-envío PulseAudio. Por ejemplo, puede registrar sonido de invitado utilizando una apps de grabación en el hospedado (host) y grabando desde el sistema dispositivo «Monitor». Además puede configurar vaciados/fuentes virtuales en el hospedado (host) utilizando los mecanismos usuales de PipeWire, y apps invitadas directas para utilizar aquellos para E/S de sonido para tener enrutado y preprocesamiento de sonido personalizado. Note que el protocolo PipeWire nativo no está atravesado, solo el protocolo PulseAudio el cual es más limitado (pero más comúnmente utilizado por aplicaciones). Las aplicaciones ALSA están mantenidas por medio del plug-in `pulse`.
Si está utilizando un compositor host que admite el puente de video XWayland (tal como KDE Plasma / KWin), podrás compartir/capturar pantalla desde la MV, incluidas pantallas completas del host y ventanas de Wayland. Asegúrate de que la aplicación que estás ejecutando sea compatible con la captura de pantalla/ventana XComposite clásica. Al compartir la pantalla, podrás seleccionar directamente las ventanas de la aplicación X11 o elegir la ventana virtual «Xwayland Video Bridge». Cuando lo haga, KDE le solicitará automáticamente la ventana o pantalla que desea compartir.
=== ¿Por qué tengo menos cores de CPU dentro de la MV?
Por defecto, `muvm` aprueba a través de muchas CPU como ha realizadas cores en su máquina hospedada, y pines aquellos vCPU para el rendimiendo físico de cores. Desde el planificador de CPU host no tiene visibilidad en la planificación de CPU invitada, esto mejora que el rendimiento es consistente. Puede moficiar este comportamiento con la opción `muvm --cpu-list=CPU_LIST`.
=== ¿Como utilizo una unidad externa como una carpeta de biblioteca Steam?
Siga estos pasos para obtener una unidad externa configurada para Steam:
. Formatea sus unidades externas utilizando un sistema de archivos nativo de Linux como ext4.
+
NOTE: FAT32, exFAT, y otros sistemas de archivos sin soporte para permisos de Linux no funcionarán.
. Monte sus unidades manualmente bajo un directorio accesible a muvm, tales como `/mnt/steam`.
+
NOTE: Recomendamos montar la unidad manualmente (p.ej. `sudo mount /dev/sdX1 /mnt/steam`, donde `sdX1` es su archivo de dispositivo de unidad). So configura la unidad para montar automáticamente usando `/etc/fstab`, entonces su sistema no arrancará si esa unidad no está conectada.
+
NOTE: El punto de montaje para unidades montadas por medio del entorno de escritorio (udisks) no funcionarán en este momento.
. Asegure que el sistema de archivos raíz es accesible a su usuario usual:
+
`sudo chown $\{USER}: /mnt/steam`
. Cree una carpeta vacía nombrada `steamapps` en la raíz del montaje:
+
`mkdir /mnt/steam/steamapps`
. Arrancar Steam normalmente
. Pulse en la lengüeta Biblioteca, después pulse el icono (parámetros) del engranage
. Seleccione *Storage* en el menú izquierdo, pulse sobre la caja combo en la cima del panel, y seleccione *Añadir Unidad*.
. Explore su unidad montada (`/mnt/steam`), tal como esa la carpeta solo visible en el listado selector de archivo para ventana es la carpeta vacía `steamapps`, después (sin hacer ninguna más selecciones) pulse sobre el botón *Seleccionar*.
Ahora sería capaz de seleccionar el lugar de la descarga nueva, haciéndola la predeterminada, y descarga juegos en ella.
Want to help? Learn how to contribute to Fedora Docs ›