martes, 15 de diciembre de 2015

Emular Raspbian en Windows

Voy a empezar instalando el SO Raspbian en una máquina virtual/emulada ejecutada sobre Windows.


Lo primero que hay que pensar es que los PCs funcionan sobre una arquitectura x86 (sí, la del 486 y sus primos lejanos) mientras que la Raspberry Pi funciona sobre una arquitectura ARM... si se sigue sin entender es como ver un motor gasolina y diesel por fuera, son lo mismo, pero a la hora de verlos por dentro son totalmente diferentes.

Googleando encontré este tutorial, pero después de algún error extraño que provocaba un reinicio (lo pregunté al blogger)... al final encontré una versión descargable en sourceforce.

He descargado ese último archivo y lo descomprimo, viene un directorio y otro dentro, me quedo con el último que se llama qemu.

Inicialmente, nuestra imagen viene con algo más de 330 MB de memoria secundaria disponible, estaría bien poder utilizar el comando: qemu-img.exe resize 2012-07-15-wheezy-raspbian.img +512M para aumentar la memoria disponible, pero tendríamos que hacer mucho lío para ampliar el tamaño de la partición, o crear una nueva y añadirla al sistema... lo dejaré ya que pronto pasaré a una RP real.

Dando el siguiente resultado:

Ahora lanzo el emulador con el comando: run.bat

Después de muchas lineas de log de linux, se arranca esta aplicación:

Las opciones son fáciles de comprender con un inglés básico, vamos a elegir primero la opción update, con esta vamos a decirle que se actualice a una versión más moderna, obteniendo el siguiente configurador (si no saliera escribimos sudo raspi-config)...

Explicaré las opciones que conozco para luego recomendaros cual usar:
 1 Expand Filesystemcon esta vamos a decirle que aproveche todo el espacio de la SD, muy interesante aunque inútil en QEMU,
 2 Change User Password: se utiliza para cambiar la contraseña por defecto (raspberry) al usuario pi (útil si queréis evitar intrusiones).
 3 Enable Boot to Desktop/Scratch:
  Console Text...: Al arrancar mostrará el modo consola y el login, modo clásico (es el que usaré para ahorrar CPU o RAM en la salida HDMI que estará sin usar porque accederé por escritorio remoto).
  Desktop Log in as user 'pi'...: Para iniciar gráficamente y automáticamente con el usuario pi (muy recomendable para muchos usuarios).
  Scratch Start...: Un modo gráfico para programar que me recuerda mucho al AppInventor.
 4 Internacionalisation Options:
  I1 Change Locate: Para cambiar el idioma base, después te pedirá un idioma alternativo por si no está tu selección en aplicaciones que utilices.
  I2 Change Timezone: Para cambiar la localización y uso horario.
  I3 Change Keyboard Layout: Para elegir el teclado y la distribución de las teclas, yo usé el genérico de 105 teclas en español con todas las opciones por defecto (y no tengo la posibilidad de hacer teclas con combinaciones como la @, # o ~).
 5 Enable Camera: Activa el módulo para utilizar la cámara,
 6 Add to Rastrack: Añade la Raspberry Pi a una web (Rastrack) que muestra una localización de todas las Raspberry Pi del mundo,
 7 Overclock: Os muestra 6 opciones para acelerar el rendimiento de vuestra placa (cuidado eso aumenta la energía consumida, el calor generado y acorta la vida de vuestra RP).
 8 Advanced Options
  A1 Overscan: Permite configurar los bordes que se comen las TV antiguas.
  A2 Hostname: Se utiliza para añadirle un nombre a la máquina.
  A3 Memory Split: Para elegir cuanta memoria RAM se dedica al video , es decir, a la VRAM (en mi caso, la mínima).
  A4 SSH: Habilita las conexiones por consola segura.
  A5 Device Tree: Es una mejora que han incluido para el kernel del sistema use un formato que permita la conexión de más dispositivos simultáneamente de forma mejorada.
  A6 SPI: Interfaz de Periféricos Serie, si vais a utilizar este puerto... activarlo (físicamente están en los conectores que tiene en la parte superior, al lado contrario del HDMI).
  A7 I2C: Interfaz Integrada de Circuitos, otro puerto como el SPI (los SPI y los I2C están mezclados en los mismos conectores).
  A8 Serial: Permite el uso de mensajes de consola y del kernel en conexiones serie (no lo he probado ni lo termino de entender muy bien, pero diría que se trata de hacer que las conexiones serie sean más importantes a nivel de consola o del kernel).
  A9 Audio: Te permite elegir por donde saldrá el audio (automático, HDMI o jack de 3.5mm)
  A0 Update: Para actualizar esta herramienta
 9 About raspi-config: Muestra información sobre esta herramienta.


Las opciones son fáciles de comprender con un inglés básico, vamos a ejecutarlas y configurarlas en el siguiente orden:
  1. Expand Filesystem: Esta opción es para la microSD real,
  2. I1 Change Locate: Para que use el idioma español de forma predeterminada,
  3. I1 Change Timezone: Con el uso horario de Madrid,
  4. I1 Change keyboard Layout: Para que use el teclado español,
  5. A2 Hostname: Le pondremos un nombre,
  6. A4 SSH: Activaremos la consola segura para poder conectarnos a ella,
  7. A5 Device Tree: Lo activamos por si mejora el uso,
  8. A6 SPIA7 I2C y A8 Serial: Usaremos estos puertos de expansión,
  9. Console Text...: Quiero que se inicie en modo consola.
  10. Change User Password: Un equipo donde cualquiera sepa mi clave... ¡que horror!.
  11. Si se desea añadir alguna opción más...
  12. Finish: Para indicar que hemos acabado.
Si antes decidimos actualizar, tendremos una versión más moderna del configurador.

En este enlace podéis encontrar más información sobre la configuración inicial, siempre podemos volver a ejecutar la configuración escribiendo: sudo raspi-config

Al reiniciar obtenemos nuestro linux en modo consola...

Ya tenemos nuestra máquina virtualizada, no he dicho nada pero también vale para configurar una Raspberry Pi real

Por último, dejo un enlace al post inicial desde el cual se puede acceder a los demás post creados... bye!

No hay comentarios:

Publicar un comentario