define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS', true);{"id":207,"date":"2015-10-04T20:57:12","date_gmt":"2015-10-04T19:57:12","guid":{"rendered":"http:\/\/www.monovarlinux.org\/?p=207"},"modified":"2015-10-04T22:36:49","modified_gmt":"2015-10-04T21:36:49","slug":"equipo-con-dos-tarjetas-graficas-en-gentoo-optimus-machine","status":"publish","type":"post","link":"http:\/\/www.monovarlinux.org\/?p=207","title":{"rendered":"Equipo con dos tarjetas gr\u00e1ficas en gentoo. Optimus Machine."},"content":{"rendered":"<p>\u00bfQue es un pc <strong>optimus machine<\/strong>? <\/p>\n<p>Un PC <strong>Optimus Machine<\/strong> son aquellos equipos portatiles que tienen <strong>2 tarjetas gr\u00e1ficas.<\/strong> Una de ellas de baja calidad de procesamiento y la otra bastante mayor. La que se encarga de procesar los gr\u00e1ficos es la tarjeta de mayores prestaci\u00f3nes y una vez procesados, los envia a la tarjeta m\u00e1s peque\u00f1a para que los muestre por pantalla. La tarjeta superior no tiene conectada a ella una pantalla, simplemente se usa para el procesamiento g\u0155afico.<\/p>\n<p>Dicho esto, os facilito los pasos necesarios para hacer funcionar una m\u00e1quina optimus machine en Gentoo. Empezamos:<\/p>\n<p>En el kernel, seleccionar la opci\u00f3n de modesetting para el modulo de intel:<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n<code><br \/>\nDeviceDrivers ---><br \/>\n    Graphics Support ---><br \/>\n      Direct Rendering Manager ---><br \/>\n        Direct Rendering Manager (Xfree86 4.1.0 and higher DRI support)  ---><br \/>\n          <*> Intel 8xx\/9xx\/G3x\/G4x\/Hd Graphics<br \/>\n          [*]  Enable modesetting on intel by default<br \/>\n<\/code><br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p>A\u00f1adir el modulo del kernel &#8216;nouveau&#8217; y &#8216;nvidia&#8217; a la lista de blacklist para que systemd o openrc evite cargarlo al inicio:<\/p>\n<p># Para sytemd:<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n<code><br \/>\necho \"blacklist nouveau\" >> \/etc\/modules-load.d\/blacklist.conf<br \/>\necho \"blacklist nouveaufb\" >> \/etc\/modules-load.d\/blacklist.conf<br \/>\necho \"blacklist rivafb\" >> \/etc\/modules-load.d\/blacklist.conf<br \/>\necho \"blacklist nvidiafb\" >> \/etc\/modules-load.d\/blacklist.conf<br \/>\necho \"blacklist nvidia\" >> \/etc\/modules-load.d\/blacklist.conf<br \/>\n<\/code><br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p># Para Openrc:<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n<code><br \/>\necho \"blacklist nouveau\" >> \/etc\/modprobe.d\/blacklist.conf<br \/>\necho \"blacklist nouveaufb\" >> \/etc\/modprobe.d\/blacklist.conf<br \/>\necho \"blacklist rivafb\" >> \/etc\/modprobe.d\/blacklist.conf<br \/>\necho \"blacklist nvidiafb\" >> \/etc\/modprobe.d\/blacklist.conf<br \/>\necho \"blacklist nvidia\" >> \/etc\/modprobe.d\/blacklist.conf<br \/>\n<\/code><br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p>Habilitamos la versi\u00f3n testing para los paquetes que se encargan de los gr\u00e1ficos:<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n<code><br \/>\necho \"x11-apps\/xrandr ~amd64\" >> \/etc\/portage\/package.keywords<br \/>\necho \"x11-base\/xorg-server ~amd64\" >> \/etc\/portage\/package.keywords<br \/>\necho \"x11-proto\/inputproto ~amd64\" >> \/etc\/portage\/package.keywords<br \/>\necho \"x11-drivers\/nvidia-drivers ~amd64\" >> \/etc\/portage\/package.keywords<br \/>\necho \"x11-drivers\/xf86-input-evdev ~amd64\" >> \/etc\/portage\/package.keywords<br \/>\necho \"x11-drivers\/xf86-input-synaptics ~amd64\" >> \/etc\/portage\/package.keywords<br \/>\necho \"x11-drivers\/xf86-video-modesetting ~amd64\" >> \/etc\/portage\/package.keywords<br \/>\n<\/code><br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p>Hacemos emerge de todos esos paquetes<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n<code><br \/>\nemerge x11-apps\/xrandr && emerge -1 xf86-video-modesetting && emerge -1 $(qlist -IC x11-drivers)<br \/>\n<\/code><br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p>Colocar, el siguiente contenido en \/etc\/gdm\/Init\/Default:<br \/>\n<code><br \/>\nxrandr --setprovideroutputsource modesetting NVIDIA-0<br \/>\nxrandr --auto<br \/>\n<\/code><\/p>\n<p>Seleccionamos con eselect opengl la opci\u00f3n de nvidia:<\/p>\n<p><code><br \/>\neselect opengl list:<br \/>\n<\/code><br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nAvailable OpenGL implementations:<br \/>\n  [1]   nvidia<br \/>\n  [2]   xorg-x11 *<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n<code><br \/>\neselect opengl set 1<br \/>\n<\/code><\/p>\n<p>Switching to nvidia OpenGL interface&#8230; done<\/p>\n<p>En \/etc\/X11\/xorg.conf insertamos todo esto:<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n<code><br \/>\nSection \"ServerLayout\"<br \/>\n    Identifier \"layout\"<br \/>\n    Screen 0 \"nvidia\"<br \/>\n    Inactive \"intel\"<br \/>\nEndSection <\/p>\n<p>Section \"Device\"<br \/>\n    Identifier \"nvidia\"<br \/>\n    Driver \"nvidia\"<br \/>\n    BusID \"<BUS_ID_NVIDIA_CARD>\"<br \/>\nEndSection <\/p>\n<p>Section \"Screen\"<br \/>\n    Identifier \"nvidia\"<br \/>\n    Device \"nvidia\"<br \/>\n    # Uncomment this line if your computer has no display devices connected to<br \/>\n    # the NVIDIA GPU.  Leave it commented if you have display devices<br \/>\n    # connected to the NVIDIA GPU that you would like to use. <\/p>\n<p>EndSection <\/p>\n<p>Section \"Device\"<br \/>\n    Identifier \"intel\"<br \/>\n    Driver \"modesetting\"<br \/>\n    BusID \"<BUS_ID_INTEL_CARD>\"<br \/>\nEndSection <\/p>\n<p>Section \"Screen\"<br \/>\n    Identifier \"intel\"<br \/>\n    Device \"intel\"<br \/>\nEndSection <\/p>\n<p><\/code><br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p>Sustituimos BUS_ID_INTEL_CARD por el ID de la tarjeta gr\u00e1fica INTEL. Para averiguar el PCI ID podemos hacerlo con:<\/p>\n<p><code><br \/>\nlspci | grep VGA<br \/>\n<\/code><\/p>\n<p>El comando en mi caso, devuelve:<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p>Quedaria:<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\nSection \u00abDevice\u00bb<br \/>\n    Identifier \u00abintel\u00bb<br \/>\n    Driver \u00abmodesetting\u00bb<br \/>\n    BusID \u00abPCI:0:2:0\u00bb<br \/>\nEndSection<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>Y para la tarjeta gr\u00e1fica NVIDIA, podemos ver cual es el PCI ID, con:<br \/>\n<code><br \/>\nlspci | grep NVIDIA<br \/>\n<\/code><\/p>\n<p>Devolveria:<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n04:00.0 3D controller: NVIDIA Corporation GF117M [GeForce 610M\/710M\/820M \/ GT 620M\/625M\/630M\/720M] (rev a1)<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p>Quedaria en el xorg.conf:<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n<code><br \/>\nSection \"Device\"<br \/>\n    Identifier \"nvidia\"<br \/>\n    Driver \"nvidia\"<br \/>\n    BusID \"PCI:4:0:0\"<br \/>\nEndSection<br \/>\n<\/code><br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p>Una vez realizado todo lo anterior, solamente quedaria instalar el software que realizar\u00e1 el proceso de intercambio de gr\u00e1ficos entre las 2 tarjetas, se llama &#8216;bumblebee&#8217;.<\/p>\n<p>Lo instalamos con:<\/p>\n<p><code><br \/>\nemerge bumblebee<br \/>\n<\/code><\/p>\n<p>A\u00f1adimos nuestro usuario al grupo bumblebee:<\/p>\n<p><code><br \/>\nusermod -a -G bumblebee <USUARIO><br \/>\n<\/code><\/p>\n<p>Arrancamos el servicio &#8216;bumblebeed&#8217; al inicio:<br \/>\n<code><br \/>\n# Para SystemD<br \/>\nsystemctl enable bumblebeed<br \/>\n<\/code><\/p>\n<p><code><br \/>\n# Para openRC<br \/>\nrc-update add bumblebeed default<br \/>\n<\/code><\/p>\n<p>Una vez realizados estos pasos, para ejecutar software y que bumblebeed ponga a trabajar las 2 tarjetas se hace con:<br \/>\n<code><br \/>\noptirun aplicacion<br \/>\n<\/code><\/p>\n<p>Por ejemplo:<br \/>\n<code><br \/>\noptirun glxgears<br \/>\n<\/code><\/p>\n<p>Llegados a este punto ya tendriamos nuestra m\u00e1quina funcionando con las dos tarjetas gr\u00e1ficas.<\/p>\n<div class=\"be-social\" data-url=\"http:\/\/www.monovarlinux.org\/?p=207\" data-base=\"\" data-title=\"Equipo con dos tarjetas gr\u00e1ficas en gentoo. Optimus Machine.\" data-track=\"true\" data-via=\"\" data-show=\"{&quot;facebook&quot;:true,&quot;twitter&quot;:true,&quot;google&quot;:true,&quot;reddit&quot;:true,&quot;linkedin&quot;:true,&quot;meneame&quot;:true}\" ><h2 class=\"be-social-title\">Share<\/h2><\/div>","protected":false},"excerpt":{"rendered":"<p>\u00bfQue es un pc optimus machine? Un PC Optimus Machine son aquellos equipos portatiles que tienen 2 tarjetas gr\u00e1ficas. Una de ellas de baja calidad de procesamiento y la otra bastante mayor. La que se encarga de procesar los gr\u00e1ficos &hellip; <a href=\"http:\/\/www.monovarlinux.org\/?p=207\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[26],"tags":[],"_links":{"self":[{"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=\/wp\/v2\/posts\/207"}],"collection":[{"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=207"}],"version-history":[{"count":6,"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=\/wp\/v2\/posts\/207\/revisions"}],"predecessor-version":[{"id":213,"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=\/wp\/v2\/posts\/207\/revisions\/213"}],"wp:attachment":[{"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=207"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}