Mostrando entradas con la etiqueta sistemas virtuales. Mostrar todas las entradas
Mostrando entradas con la etiqueta sistemas virtuales. Mostrar todas las entradas

jueves, 11 de abril de 2013

Sistemas Virtuales #6: Mejorar el rendimiento en VirtualBox


Creo que definitivamente a esta serie por fin le está llegando el momento de echar el cierre. No es que no haya disfrutado haciéndola, al contrario: Conforme voy utilizando más VirtualBox (sobre todo gracias a las Vídeo-Distros) me voy dando cada vez más cuenta de lo bien que viene la posibilidad de tener varios sistemas en uno. Pero lo cierto es que con este y los cinco capítulos anteriores creo que ya hay una buena base para empezar a manejarse con este programa, y ese era el objetivo del vídeo-manual.



Como vengo haciendo habitualmente, este último episodio lo he dedicado a un popurrí de asuntos varios que por sí solos no habrían dado para un vídeo independiente. Eso sí, todos los trucos que menciono en el vídeo están relacionados de una manera u otra con el asunto del rendimiento de los sistemas invitados, de modo que tiene justificación la mezcolanza.
La mayoría de los procedimientos que describo tienen un impacto bastante significativo en el comportamiento de los sistemas virtualizados, aunque unos menos que otros. En ese sentido, los que tienen que ver con la aceleración 3D no tendrán mucho sentido si no utilizáis software que lo necesite, o si el entorno de escritorio de turno no está acelerado. En cuanto a la aceleración 2D, se nota en la reproducción de vídeo, aunque dudo que necesitéis virtualizar un sistema para ver pelis... de todo hay en la viña del Señor, pero me parecería raro.
Sí que os recomiendo probar a darle un tamaño fijo al disco duro virtual cuando creéis un nuevo sistema. Esto se nota bastante, sobre todo en uso de disco duro. En ese sentido, si sois de los que vais a usar bastante un sistema operativo virtual, os aconsejo vivamente que elijáis esta opción.


Quedan cosas en el tintero relacionadas con VirtualBox que se podrían "tutorializar": los tipos de formato de disco duro virtual, la conexión en red entre sistemas, etc. Pero creo que son ya demasiado avanzadas y van más allá de lo que pretendo hacer en mi canal; no obstante, ya sabéis que los vídeo-manuales tienen cierta vida propia y en cualquier momento quizá me decida a grabar alguna cosa nueva. También quedan pendientes otros programas de virtualización, y eso es algo que sí que estoy preparando de aquí a unas semanas. Pero bueno, la dosis de sistemas virtuales es suficiente (creo) por el momento. Espero de verdad que os haya gustado.

viernes, 29 de marzo de 2013

Sistemas Virtuales #4: Cómo activar la pantalla a 16:9 fullscreen (2 de 2)



Este segundo capítulo sobre el formato 16:9 HD en VirtualBox constituye un paso que creo definitivo para conseguir altas resoluciones en sistemas virtualizados. Debo indicar que posiblemente no necesitéis conocerlo, pues a veces no es necesario aplicar esta serie de comandos y sólo con la instalación de los Guest Additions será suficiente para poner nuestros sistema invitado a pantalla completa auténtica.
En el caso de que esto no ocurra, resultará necesario este contenido, que en realidad no es más que una forma bastante simple de acceder a la configuración de resoluciones de cualquier sistema con servidor gráfico X, esté virtualizado o no. La estrella en todo esto es el programa xrandr, que a continuación os presentaré para que os vayáis conociendo.

Xrandr, ese desconocido

Xrandr es un acrónimo derivado de la frase inglesa X's Resize AND Rotate, algo así como "redimensión y rotación de X", entendiendo X como el venerable servidor gráfico del kernel Linux. Se trata por lo tanto de una aplicación que nos permite jugar con algunas de las propiedades de las imágenes que dicho servidor gráfico envía a nuestros monitores, algunas de ellas verdaderamente complejas. En el vídeo sólo me ocupo de una de ellas, que es la de forzar una resolución que por alguna razón no esté listada entre las disponibles. El problema en VirtualBox es algún tipo de bug que impide a X sobreescribir las resoluciones permitidas aun siendo resoluciones posibles por el controlador. Así, los diferentes comandos son un proceso necesario para enseñarle a X una nueva resolución y que la aplique al sistema inmediatamente.



Pero sin duda se trata de una situación demasiado específica y poco representativa del verdadero potencial de este programita (que por cierto, no es necesario instalar, lo tenéis todos en vuestras distros, de serie, ahí escondido en el terminal), que puede salvarnos de más de un apuro relacionado con el aspecto gráfico de nuestros sistemas.
Como de costumbre,  mi sentido de la vergüenza me impide hacer cosas como copiar y pegar sin piedad, así que si queréis profundizar en el conocimiento de esta herramienta lo mejor es que os paséis por la página de documentación del programa.
De todas formas, algún comando que puede ser interesante o útil en algunos casos sí que os puedo dejar (y que están mucho más completas y mejor explicadas aquí):
xrandr -q
Muestra la resolución de la pantalla
xrandr -s (ancho)x(alto) 
Cambiando "(ancho)" por la anchura y "(alto) por la altura (por ejemplo: 1920x1080) cambiamos automáticamente la resolución.
xrandr --dpi 96 -s (ancho)x(alto)
Este comando sirve para cambiar los píxeles por pulgada de nuestro monitor, que pueden variar aunque generalmente serán  96 o 72, dependiendo del modelo y la marca de vuestro monitor. Sobre el tema de la resolución o los píxeles por pulgada hay bastante que decir, y puede ser fuente de problemas ocasionalmente, de modo que me extenderé otro día con su correspondiente tuto.
Sobre el propio Xrandr podría seguir contándoos cosas, pero resultaría prolijo y de nuevo me remito a la documentación. Es importante, eso sí, señalar que también tiene bastante utilidad para solucionar problemas en configuraciones duales de monitores (en román paladino: cuando tenemos dos pantallas conectadas al ordenador). Mediante sencillos comandos podemos hacer prácticamente de todo (cambiar el orden, invertirlos, rotarlos, poner uno encima del otro o uno al lado del otro... lo que imaginemos). Eso, cómo no, también merecerá su espacio en Youtube. Por si a alguno le quedaban dudas, ya veis que al final terminaré hablando de Linux entero... da un poco de miedo, ¿no?

jueves, 21 de marzo de 2013

Sistemas Virtuales #4: Cómo activar la pantalla a 16:9 fullscreen (1 de 2)


El capítulo de hoy es de obligada lectura (y visionado) si queremos sacar el máximo partido a nuestros sistemas virtuales. En realidad, la instalación "básica" de un sistema operativo en VirtualBox provee de características igual de básicas. De hecho, aunque el enfoque que le doy al vídeo está orientado a conseguir una mayor resolución de pantalla para el sistema invitado, los "guest additions" nos proporcionan un montón más de cosas. Veamos qué es eso de las guest additions y para qué sirven.

Guest Additions

Los "añadidos para invitado", que así se podría traducir el nombre, son un conjunto de controladores que proporcionan funcionalidades avanzadas a nuestros sistemas, orientados prácticamente todos ellos a la mejor comunicación entre el sistema virtualizado y el real, y a la comunicación de aquel con el hardware de nuestro equipo. Entre las funcionalidades más destacadas de los guest additions están las siguientes (la información completa podéis encontrarla en el manual de VirtualBox, eso sí, en inglés):
  • Integración del ratón: Teóricamente, debemos instalar las guest additions para que el ratón funcione en ambos sistemas operativos sin necesidad de atajos de teclado que lo permitan. No obstante, es probable que en vuestras virtualizaciones no necesitéis instalar nada para que esta característica funcione.
  • Mejor soporte de vídeo: Además de permitirnos aumentar las capacidades de resolución de los sistemas invitados, nos ayudará a obtener aceleración 3D para el software del sistema virtual y su entorno de escritorio. De todas formas no echéis las campanas al vuelo, la aceleración gráfica está bastante limitada.
  • Sincronización horaria: Sincroniza el reloj del sistema principal con el del sistema virtual, en el caso de que no estén sincronizados por cualquier motivo.
  • Ventanas, carpetas y portapapeles compartido: Esto dependerá de cada sistema que virtualicéis y del sistema anfitrión, pero en general podemos disponer de un sistema de comunicación entre ambos sistemas con el que poder compartir información entre ambos. Esto es especialmente práctico si le vamos a dar un uso intensivo a nuestro sistema virtual.
Hay unas cuantas características más que nos proporcionan las guest additions, aunque de un carácter más técnico y que iremos viendo cuando yo mismo haya terminado de entenderlas. Con este rápido vistazo, eso sí, creo que queda claro que instalar estos añadidos es particularmente importante si queremos que nuestros invitados se encuentren "a gusto" y den su máximo rendimiento.

Instalación

El problema viene a la hora de la instalación. Teóricamente es tan sencillo como seleccionar el menú "dispositivos" en la ventana del sistema virtualizado, y en el hacer clic en "instalar guest additions":


Desgraciadamente, mi experiencia en este sentido es clara: este método funciona bastante bien en sistemas operativos de Microsoft, pero no tan bien en los del pingüino. No entiendo muy bien la razón; el caso es que generalmente tendremos que hacer más cosas, las cuales dependerán de los paquetes de compilación que tengamos instalados en nuestro sistema invitado.
Debo admitir que he visitado decenas de páginas buscando información consistente sobre este asunto. Al final lo que me he encontrado es una abigarrada colección de trucos y combinaciones de paquetes que los diferentes usuarios han tenido a bien compartir con la comunidad. En general el paquete que todo el mundo dice que hay que instalar es dkms, que es un programa que sirve para compilar módulos en el kernel. pero en muchas ocasiones con este paquete no es suficiente. Al final mi decisión ante cada nueva instalación (una por semana, como mínimo) es intentar instalar todos los paquetes que van diciendo por ahí; el resultado es el que indico en el vídeo:

linux-source linux-headers-generic dkms build-essential module-assistant
No pongo el típico "sudo apt-get update" porque se sobreentiende y porque en cada distro hay un gestor de paquetes propio, así que podríais necesitar yum, pacman, o cualquier otro. Otro paquete que necesitáis, pero que prácticamente viene de serie en todas las distros y por eso no incluyo en la lista es el compilador básico de GNU:
gcc
Que por supuesto tendréis que instalar si encontráis algún error. El siguiente paso que indico en el vídeo es una orden cuyo funcionamiento he comprobado en sistemas basados en Debian/Ubuntu y en otras no suele ser necesaria:
sudo m-a prepare
Tras todas estas tareas previas, deberíamos estar preparados por fin para la instalación propiamente dicha, que podemos hacer directamente al hacer clic sobre el menú señalado con anterioridad:


O también desde el navegador de archivos, si dispone de botón de autoejecución (no todos los navegadores lo tienen):


En el caso de que no aparezca en vuestra distro ninguna de estas opciones, tendremos que tirar de terminal, navegando a la carpeta correspondiente del directorio /media/cdrom (lo de "cdrom" puede cambiar, haced un dir para comprobar cuál es la correcta y siguiendo las instrucciones del vídeo. El proceso de instalación se hace en el terminal elijamos la opción que elijamos, así que podremos comprobar si ha ido todo bien. Si no sabéis inglés, al menos verificad que al final de cada línea pone "Done" (hecho) y no "fail" (fallo). Si nos sale lo segundo, es que ha habido algún error y tendremos que revisar todos los pasos anteriores.


Hasta aquí la primera parte de este repaso a los guest additions. En el siguiente tendremos que continuar con el mismo tema, pues aun instalando los controladores virtuales es posible que sigamos sin tener la resolución nativa de nuestro monitor disponible. De modo que en el próximo vídeo veremos cómo conseguirla, mediante una jugosa colección de comandos.

jueves, 7 de marzo de 2013

Sistemas Virtuales #2: Solución al error "subsistema USB"



Esta es una de las cosas que menos me gustan de Linux. Cuando aparece un error con una explicación que pone en evidencia tu desconocimiento. El caso que nos ocupa es un buen ejemplo de ello. Lo único que ocurre es que VirtualBox crea un grupo de usuarios al que no está admitido el usuario desde el que queremos acceder. Y si no habéis entendido nada de lo que estoy diciendo, entonces entenderéis lo que quería decir al principio, porque en realidad el problema es bien simple de solucionar.


Para entender qué es lo que está pasando, necesitamos comprender qué es eso de los usuarios y los grupos de usuarios. Linux es un sistema "multiusuario", es decir, múltiples "personas" pueden acceder a el. Pongo "personas" entre comillas para no repetir la palabra usuario, pues en realidad los usuarios no tienen por qué ser personas físicas. Un usuario es una forma de proteger el sistema, porque cada usuario tiene unos permisos diferentes para acceder a según qué tipo de archivos. Qué archivos pueden ser modificados por qué usuarios es algo que queda definido con los grupos. Un grupo es un conjunto de archivos que pueden ser modificados por los usuarios que tienen acceso a dicho grupo. O dicho desde otra perspectiva, un grupo define a un conjunto de usuarios con los mismos permisos. Tanto monta.
Por poner un ejemplo, simplemente tenéis que abrir un terminal, y ver lo que está antes de la arroba. Ese es el usuario que estáis utilizando, que tiene los permisos que le hayáis dado. Por ejemplo, si escribimos "sudo" y una orden, estamos pidiéndole al sistema que nos conceda temporalmente permisos especiales para ejecutar tal orden. Otra orden interesante, pero que tenéis que manejar con cuidado, es "sudo su", mediante la cual accedemos al usuario "raíz", una especie de usuario todopoderoso con permisos para hacer casi lo que le dé la gana.


Otra cosa que conviene saber es que los sistemas Linux tienen un montón de grupos por defecto. Para saber qué grupos tenemos en nuestro sistema podemos abrir el archivo "groups" que se encuentra alojado en la carpeta de sistema "/etc":


En ese archivo de texto tan sencillo está almacenada información sobre los grupos, las contraseñas cifradas, los usuarios que pertenecen a los grupos... todo de una forma muy simple, como podéis comprobar. En Linux todo trata de ser sencillo, tanto que se vuelve oscuro, curiosamente.
Si queréis conocer más cosas que se pueden hacer con los grupos y usuarios, hay un montón de páginas que abordan el tema de una forma mucho mejor que yo. En cualquier caso, hay algunos comandos interesantes por si queréis investigar con el asunto de los usuarios, crear nuevos, modificarlos, etc.:

useradd: Añade un usuario al sistema. La información sobre los usuarios se almacena en /etc/adduser.conf.
adduser: Añade un usuario a un grupo determinado.
usermod: Con este podemos modificar la mayoría de los campos de los ficheros /etc/passwd y /etc/shadow (relativos a contraseñas de usuarios y grupos, cuidadito). Este es el comando que uso en el vídeo, con la opción -G que le indica que incluya a un usuario en un grupo.
chfn: Cambia la información personal del usuario.
chsh: Cambia el shell (intérprete de comandos) del usuario.
userdel: Elimina un usuario del sistema, borrando o guardando todos sus ficheros, según los parámetros que le pasemos.
passwd: Para cambiar la contraseña del usuario, la información de expiración de la misma, o para bloquear o desbloquear una determinada cuenta.
groupadd: Permite añadir un grupo al sistema.
groupmod: Permite modificar la información de un determinado grupo.
groupdel: Elimina un determinado grupo.
gpasswd: Para cambiar la contraseña del grupo.
Como veis, Linux funciona como una cebolla: cuanto más escarbas, más capas encuentras y más te hace llorar. Pero cuando me encuentro con un error en Linux, de esos que te informa de lo que ha pasado dándote una explicación que suena fácil pero no se entiende ni la mitad, mi procedimiento es siempre el mismo: intentar enterarme de cuál es el problema, a qué conceptos alude, y qué es lo que hace realmente la solución que estoy aplicando. Esto es más recomendable de lo que parece; si nos limitamos a copiar y pegar comandos no vamos a aprender nada con la reparación, y en realidad arreglar cosas es la mejor manera de aprender. Si no fuese así no existirían los problemas de matemáticas... Quizá no sea el mejor ejemplo, pero ya me entendéis.