Difference between revisions of "Bumblebee (Español)"

From ArchWiki
Jump to: navigation, search
(Traducción al Español:2012-09-02)
 
(Instalar Bumblebee con Intel / nouveau)
Line 54: Line 54:
 
Ahora instale {{AUR|bumblebee }} o {{AUR|bumblebee-systemd}} desde [[Arch User Repository|AUR]]:
 
Ahora instale {{AUR|bumblebee }} o {{AUR|bumblebee-systemd}} desde [[Arch User Repository|AUR]]:
  
{{Nota|Si se quiere que bumblebee apague automáticamente la tarjeta NVIDIA después de su uso, instala el paquete {{AUR|bbswitch}} desde AUR. Véase el [[#Gestionar la energía|apartado.]] correspondiente a continuación.}}
+
{{Nota|Si se quiere que bumblebee apague automáticamente la tarjeta NVIDIA después de su uso, instala el paquete {{AUR|bbswitch}} desde AUR. Véase el [[#Gestionar la energía|apartado]] correspondiente a continuación.}}
  
 
==Iniciar Bumblebee==
 
==Iniciar Bumblebee==

Revision as of 08:33, 2 September 2012

Sobre Bumblebee's FAQ:

Bumblebee es una solución para aprovechar la tecnología Nvidia Optimus, presente en los ordenadores portátiles habilitados, disponible para los sistemas GNU/Linux. Esta tecnología compromete el uso de dos tarjetas gráficas con dos perfiles diferentes de consumo de energía, que están conectadas de una manera estratificada compartiendo un solo framebuffer.

Bumblebee: Tecnología Optimus para Linux

La Tecnología Optimus es una implementación gráfica híbrida sin un hardware multiplexor. La GPU integrada controla la pantalla, mientras que el GPU dedicada gestiona la prestación más exigente y envía el resultado a la GPU integrada para la visualización. Cuando el ordenador está funcionando con alimentación de la batería, la GPU dedicada se apaga para ahorrar energía y prolongar la autonomía de la batería.

Bumblebee es una aplicación de software basada en VirtualGL y un controlador del kernel capaz de utilizar la GPU dedicada, que no está físicamente conectada a la pantalla.

Bumblebee trata de imitar el comportamiento de la tecnología Optimus, utilizando la GPU dedicada para aprovechar sus prestaciones cuando sea necesario y apagarla cuando no está en uso. Las versiones actuales sólo soportan las prestaciones a petición, mientras que la administración de energía está un fase de desarrollo.

La tarjeta dedicada NVIDIA se gestiona como un servidor X independiente conectada a una pantalla "falsa" (la pantalla está configurada pero no se utiliza). El segundo servidor se llama utilizando VirtualGL como si fuera un servidor remoto. Dicho ésto, será necesario una serie de pasos para configurar el controlador del kernel, el servidor X y un demonio.

Advertencia: ¡Bumblebee está todavía en fase de desarrollo! Sin embargo, su ayuda es muy bienvenida.

Instalación

Antes de proceder a la instalación de Bunblebee compruebe si su BIOS tiene activada la opción Optimus (shareable graphics), si es posible (no todas las BIOS proporcionan esta opción), y asegúrese de instalar el controlador intel para la tarjeta gráfica secundaria.

Nota: Si desea ejecutar aplicaciones de 32 bits en un sistema de 64-bits es necesario instalar el paquete lib32-virtualglAUR así como cualquier otra biblioteca específica para la aplicación de 32-bit (lib32-* libraries)

Instalar Bumblebee con Intel / nvidia

Instale bumblebeeAUR (o bien bumblebee-systemdAUR si está usando systemd) de AUR y, a continuación, instale el paquete especial nvidia-utils-bumblebeeAUR para bumblebee.

Si desea ejecutar aplicaciones de 32 bits (como los juegos con wine) en un sistema de 64-bit es necesario el paquete adicional lib32-nvidia-utils-bumblebeeAUR desde AUR.

Advertencia: No instale el paquete original nvidia-utils con Bumblebee - ¡se romperá el sistema!

Con el fin de evitar la instalación del paquete nvidia-utils como una dependencia cuando se instala el driver nvidia, puede instalar el paquete nvidia-bumblebeeAUR de AUR en su lugar (que es el mismo controlador empaquetado para ser utilizado por bumblebee).

Nota: Se puede instalar dkms-nvidiaAUR desde AUR como alternativa al paquete nvidia, si lo necesita
Nota: Si se quiere que bumblebee apague automáticamente la tarjeta NVIDIA después de su uso, instala el paquete bbswitchAUR desde AUR. Véase el apartado correspondiente.

Instalar Bumblebee con Intel / nouveau

Instalar el driver nouveau y los paquetes requeridos, en primer lugar:

# pacman -S xf86-video-nouveau nouveau-dri mesa

Ahora instale bumblebee AUR o bumblebee-systemdAUR desde AUR:

Nota: Si se quiere que bumblebee apague automáticamente la tarjeta NVIDIA después de su uso, instala el paquete bbswitchAUR desde AUR. Véase el apartado correspondiente a continuación.

Iniciar Bumblebee

Para poder utilizar Bumblebee es necesario añadir el propio usuario (y otros eventuales usuarios) al grupo Bumblebee:

# usermod -a -G bumblebee $USER

donde $USER es el nombre de inicio de sesión del usuario. A continuación, cierre la sesión para que surtan efectos los cambios de grupo.

Para iniciar bumblebee automáticamente al arranque, añádalo a la matriz DAEMONS en el archivo /etc/rc.conf

DAEMONS=(... @bumblebeed)

Para los usuarios que utilicen systemd:

# systemctl start bumblebeed.service

Para habilitar el inicio automático al arranque (método preferido):

# systemctl enable bumblebeed.service

Terminado, reinicie el sistema y utilice el programa optirun desde un terminal para disfrutar de la tecnología NVIDIA Optimus para el rendering.

Uso

La línea de comandos del programa optirun equipado con bumblebee es su mejor aliado para ejecutar aplicaciones corriendo en su tarjeta NVIDIA Optimus.

Es posible comprobar si Bumblebee funciona con el sistema Optimus mediante el siquiente comando:

$ optirun glxgears

Si tiene éxito y el terminal donde se está ejecutando muestra algo acerca de su tarjeta NVIDIA significa que ¡Optimus está funcionando con Bumblebee !

Como regla general, para iniciar una aplicación utilizando la tarjeta gráfica dedicada, se aplica el siguiente formato:

$ optirun [opciones] <aplicación> [parámetros-de-la-aplicación]

Algunos ejemplos:

Iniciar Firefox con la aceleración proporcionada por Optimus:

$ optirun firefox

Iniciar aplicaciones de Windows con Optimus:

$ optirun wine <aplicación de windows>.exe

Utilizar NVIDIA Settings con Optimus:

$ optirun nvidia-settings -c :8 

Para obtener una lista de opciones para optirun, ejecute:

$ optirun --help

Configuración

Puede configurar el comportamiento de Bumblebee para satisfacer sus necesidades. Afinar ajustes como la optimización de la velocidad, administración de energía y otros recursos se pueden configurar en /etc/bumblebee/bumblebee.conf

Optimizar la velocidad

Bumblebee gestiona la presentación de los fotogramas para la tarjeta NVIDIA Optimus en un servidor X con VirtualGL invisible y lo transporta de vuelta al servidor X visible.

Los Frames se comprimen antes de ser transportados - esto ahorra ancho de banda y se puede utilizar para la optimización de la velocidad de Bumblebee:

Para utilizar un método de compresión para una sola aplicación, la sintaxis del comando es:

$ optirun -c <método-de-comprensión> aplicación

El método de compresión afectará al rendimiento del uso de la CPU/GPU. Los métodos que comprimen (como jpeg) cargan la máximo la CPU y al mínimo posible la GPU; los métodos que no comprimen cargan más la GPU mientras la CPU tendrá la carga mínima posible.

Métodos comprimidos son: jpeg, rgb, yuv

Métodos sin comprimir son: proxy, xv

Para utilizar un estándar de compresión para todas las aplicaciones habrá que establecer el valor VGLTransport con el <método-de-compresión> preferido en /etc/bumblebee/bumblebee.conf

/etc/bumblebee/bumblebee.conf
...
[optirun]
VGLTransport=proxy
...
Nota: El escalado de frecuencia de la CPU afectará directamente a las prestaciones del renderizado

Gestionar la energía

El objetivo de gestionar la energía consiste en apagar la tarjeta NVIDIA cuando no se utiliza más por bumblebee.

Para habilitar la administración de energía asegurese de tener instalado bbswitchAUR desde AUR.

Advertencia: Asegúrese de que el servidor Xorg secundario se detiene cuando no esté en uso

Ajuste la opción PMMethod a bbswitch en la sección del driver del archivo /etc/bumblebee/bumblebee.conf:

/etc/bumblebee/bumblebee.conf
[bumblebeed]
KeepUnusedXServer=false
...
[driver-nvidia]
PMMethod=bbswitch
...
[driver-nouveau]
PMMethod=bbswitch
...

Estado de energía predeterminado de la tarjeta NVIDIA

Configure la opción de los módulos load_state y unload_state de acuerdo a sus necesidades (consultando la documentación de bbswitch).

/etc/modprobe.d/bbswitch.conf
options bbswitch load_state=0 unload_state=0

Reinicie el demonio bumblebee para activar el ahorro de energía:

# rc.d restart bumblebeed

Habilitar la tarjeta NVIDIA durante el apagado

La tarjeta NVIDIA no puede inicializarse correctamente durante la fase de arranque si la tarjeta se apaga cuando el sistema se cerró por última vez. Una solución es configurar la opción TurnCardOffAtExit=false en /etc/bumblebee/bumblebee.conf, sin embargo, ésto todavía permitirá a la tarjeta detenerse cada vez que lo haga el daemon de Bumblebee, aunque se haga manualmente. Para asegurarse de que la tarjeta NVIDIA esté siempre accecible, es decir, activa, durante el apagado, añada el siguiente hook personalizado (si está utilizando bbswitchAUR):

/etc/rc.d/functions.d/nvidia-card-enable
nvidia_card_enable() {
  BBSWITCH=/proc/acpi/bbswitch

  stat_busy "Enabling NVIDIA GPU"

  if [ -w ${BBSWITCH} ]; then
    echo ON > ${BBSWITCH}
    stat_done
  else
    stat_fail
  fi
}

add_hook shutdown_poweroff nvidia_card_enable

Varios monitores

Nota: Esta configuración sólo es válida para los ordenadores portátiles, donde se conecta la salida adicional para la tarjeta intel. Desafortunadamente este no es el caso de algunos (¿o más?) ordenadores portátiles, donde, la salida HDMI está conectada físicamente a la tarjeta de NVIDIA. En ese caso no existe una solución ideal, como se muestra aquí. Pero puede configurar su salida adicional, por lo menos, para ser utilizable con las instrucciones Bumblebee de la página wiki.

Es posible configurar varios monitores con xorg.conf. Se puede ajustar para utilizar la tarjeta Intel, pero con Bumblebee todavía es posible usar la tarjeta NVIDIA. Un ejemplo de configuración, que sigue abajo, muestra el uso de dos tarjetas idénticas con una resolución de 1080p y con conexión HDMI.

/etc/X11/xorg.conf
Section "Screen"
    Identifier     "Screen0"
    Device         "intelgpu0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView"   "0"
    SubSection "Display"
        Depth          24
        Modes          "1980x1080_60.00"
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "intelgpu1"
    Monitor        "Monitor1"
    DefaultDepth   24
    Option         "TwinView"    "0"
    SubSection "Display"
        Depth          24
        Modes          "1980x1080_60.00"
    EndSubSection
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    Option         "Enable"      "true"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    Option         "Enable"      "true"
EndSection

Section "Device"
    Identifier     "intelgpu0"
    Driver         "intel"
    Option         "XvMC"        "true"
    Option         "UseEvents"   "true"
    Option         "AccelMethod" "UXA"
    BusID          "PCI:0:2:0"
EndSection

Section "Device"
    Identifier     "intelgpu1"
    Driver         "intel"
    Option         "XvMC"        "true"
    Option         "UseEvents"   "true"
    Option         "AccelMethod" "UXA"
    BusID          "PCI:0:2:0"
EndSection

Probablemente será necesario cambiar el BusID en base a sus necesidades:

$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)

En este ejemplo el BusID es 0:2:0

CUDA sin Bumblebee

Esto no está bien documentado, pero no es necesario que Bumblebee utilice CUDA y pueda funcionar incluso en máquinas donde optirun falla. Para una guía sobre cómo conseguir que funcione con el Lenovo IdeaPad Y580 (que utiliza la GeForce 660m), consulte: https://wiki.archlinux.org/index.php/Lenovo_IdeaPad_Y580#NVIDIA_Card. Estas instrucciones son muy probable que se adapten a otras máquinas (excepto para la parte acpi-handle-hack, que puede no ser necesario).

Solución de problemas

Nota: Por favor, reporte los bugs al Proyecto-Bumblebee, el trazador GitHub como se describe en su Wiki.

[VGL] ERROR: Could not open display :8

Hay un problema conocido con algunas aplicaciones que vienen lanzadas con wine que se bifurcan y matan el proceso padre sin hacer el seguimiento del problema (por ejemplo, la sesión libre del juego en línea "Runes of Magic")

Una solución para este problema puede ser:

$ optirun bash
$ optirun wine <windows program>.exe

Si está utilizando el controlador de NVIDIA, una solución para este problema es editar /etc/bumblebee/xorg.conf.nvidia y cambiar la opción ConnectedMonitor en CRT-0.

[ERROR]Cannot access secondary GPU

En algunos casos, la ejecución de optirun devuelve el siguiente error:

[ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected.
[ERROR]Aborting because fallback start is disabled.

En este caso, será necesario mover el archivo /etc/X11/xorg.conf.d/20-intel.conf a otro lugar. Reinicie el demonio bumblebeed y el error no debería presentarse más.

Podría ser también necesario comentar la línea referente al driver intel en el archivo /etc/X11/xorg.conf.d/10-monitor.conf.


Si la salida de la consola es:

[ERROR]Cannot access secondary GPU - error: [XORG] (EE) NVIDIA(0): Failed to assign any connected display devices to X screen 0
[ERROR]Aborting because fallback start is disabled.

Puede cambiar esta línea en /etc/bumblebee/xorg.conf.nvidia:

Option "ConnectedMonitor" "DFP"

a

Option "ConnectedMonitor" "CRT"

Fatal IO error 11 (Recurso temporalmente no disponible) en el servidor X

Cambie KeepUnusedXServer en /etc/bumblebee/bumblebee.conf de false a true. Bumblebee no será capaz de reconocer los programas ejecutados en segundo plano.

Vídeo tearing

El problema del lagrimeo en el vídeo es poco común utilizando Bumblebee. Para solucionarlo, necesita habilitar vsync. Debe venir activado por defecto en la tarjeta Intel, pero verifíquelo a partir de los registros de Xorg. Para comprobar si está o no habilitado para nvidia, ejecute:

$ optirun nvidia-settings -c :8 

Las entradas X Server XVideo Settings -> Sync to VBlank y OpenGL Settings -> Sync to VBlank deben estar también habilitadas. La tarjeta Intel tiene, en general, menos problemas de tearing, de modo que puede ser buena idea utilizarla para la reproducción de vídeo. En particular utilizando VA-API para la decodificación de vídeo (por ejemplo, mplayer-vaapi y con el parámetro -vsync).

Consulte el artículo Intel sobre cómo resolver el problema de tearing en la tarjeta Intel.

Si todavía no está resuelto, trate de desactivar la compositing de su entorno de escritorio. Como última solución, pruebe también deshabilitar el triple buffering.

Enlaces importantes

Únase a nosotros en el canal #bumblebee en freenode.net