Descargamos el kernel y la imagen de inicio de la instalación por red. Y los movemos a una carpeta llamada netboot.

Creamos una imagen de disco que será usada por Qemu: qemu-img create -f qcow hda.img 20G, el tamaño puede variar dependiendo de la necesidad de espacio que podamos tener.

Iniciamos la instalación de Debian: qemu-system-arm -M versatilepb -kernel netboot/vmlinuz-2.6.32-5-versatile -initrd netboot/initrd.gz -hda hda.img -append "root=/dev/ram"

Imagen del inicio de del arranque de la instalación por red de Debian

Imagen del inicio del arranque de la instalación por red de Debian

Esperamos a que inicie el programa de instalación y seguimos las indicaciones en pantalla, en principio es una instalación normal como en un ordenador normal.

Instalación de Debian - Selección de idioma

Instalación de Debian - Selección de idioma

Instalación de Debian - Instalación del sistema base

Instalación de Debian - Instalación del sistema base

Para los fines que le daré a este sistema, no necesito por ejemplo un entorno de escritorio, pero sí que necesitaré un servidor ssh.

Instalación de Debian - Selección de programas

Instalación de Debian - Selección de programas

No debemos preocuparnos por no instalar un cargador de arranque, ya que le pasaremos los parámetros de arranque a Qemu.

Instalación de Debian - Cargador de arranque

Instalación de Debian - Cargador de arranque

Y por fin terminamos la instalación, debemos tener en cuenta que el sistema de instalación reinicia el sistema, por lo que volvería a iniciar el sistema de instalación. Así que lo mejor sería dejar que reinicie, y una vez que lo haya hecho, cerramos Qemu.

Instalación de Debian - Reiniciar sistema

Instalación de Debian - Reiniciar sistema

Descargamos el kernel y la imagen de inicio que usaremos para iniciar el sistema instalado. Y para terminar solo queda probar nuestra nueva instalación con el comando que usaremos para arrancar nuestro sistema Debian: qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.32-5-versatile -initrd initrd.img-2.6.32-5-versatile -hda hda.img -append "root=/dev/sda1"

Sistema Debian instalado

Sistema Debian instalado

Fuente | aurel32.net

 

17 Respuestas a “Debian Squeeze para ARM en Qemu”
  1. Damaso dice:

    Buenas Juan,

    Estoy haciendo los pasos que nos indicas ,pero no puedo llegar a la instalación ya que me esta comentando que hay problemas en el repositorio de debian, en principio no debería de tener ningún tipo de problema ya que no estoy utilizando ningún tipo de proxy.

    Lo que si que estoy en la plataforma de windows, y dentro tengo instalado una maquina virtual fedora 13 con lo cual necesito de alguna forma tener el qemu para poder compilar unos archivos que estoy haciendo en C para la arquitectura ARM en este caso ARMv5TEL, con el parámetro -lasound ya que necesito utilizar las librerias de alsa para esta arquitectura.

    Sabés de alguna forma como podría compilar la libreria de alsa en esta arquitectura, o hacerlo de alguna forma que sea más fácil??

    Gracias

  2. Juanlu dice:

    Hola Damaso, puedes probar con el cross compiler de CodeSourcery, hay binarios para Windows y GNU/Linux.

    Tengo en borradores una entrada que estoy preparando que habla precisamente sobre como compilar un núcleo en una arquitectura x86_64 para armv5tel usando la herramienta crossdev en Gentoo. Pero estos días estoy muy ocupado y no tengo tiempo de terminarla.

    Para mí ha sido coser y cantar usando Gentoo. Tengo entendido que Google ha usado Gentoo para desarrollar ChromeOS precisamente por herramientas como esta y catalyst.

    Espero poder ponerme con esa entrada el próximo fin de semana.

  3. Dámaso dice:

    Gracias por la respuesta, entonces para hacerlo más rápido sería cuestion de tener una maquina virtual en Gentoo y luego utilizar la herramienta crossdev, para poder compilar la libreria alsa en esa arquitectura armv5tel y poder compilar los programitas que tengo en c???

    Se podría hacer todo en la maquina virtual?? Me podrías pasar en que sea el borrador de como hacerlo, llebo 2 semanas detrás de esto y no he conseguido adelantar, únicamente he podido compilar en arm ficheros que no tengan ninguna libreria de alsa, y sin esto no puedo hacer absolutamente nada.

    Te lo agradeceria

  4. Juanlu dice:

    Dámaso, lo mejor es que instales Gentoo para ARM en la máquina virtual e instales las bibliotecas que necesita para compilar. Ya que vas a usar una máquina virtual, no tiene sentido que uses crossdev en ella.

  5. Dámaso dice:

    Gracias Juanlu, por la gran ayuda , lo que si que quisiera saber como podría activar el microfono si al imprimir si esta o no activado este me dice que no, por ejemplo estoy mirandome este link:

    http://www.orelly.de/catalog/multilinux/excerpt/ch14-07.htm

    En el cuál he encontrado una ayudita para saber que dispositivos están conectados, habilitados, que volumen tiene en ese momento, etc. .Pero hay el MIC que en mi caso esta habilitado pero el el source no lo esta, supongo que es donde debería tenerlo activado para poder modificar el volumen, en principio he hayado que se tendría que modificar con el parametro, SOUND_MIXER_WRITE_RECSRC, pero el problema que no se muy bien como habilitarlo.

    ¿Tienes alguna idea?, ya que estoy haciendo :
    if (ioctl(fd,SOUND_MIXER_WRITE_RECSRC,SOUND_MIXER_MIC)==-1)
    perror(“error”);

    Y este me da un error de que el parametro “it’s bad” o algo parecido :)

  6. Damaso dice:

    Buenas Junalu, más o menos lo solucioné, pero tengo una duda hay alguna forma de coger el volumen en que esta captando el micro ,cuando estamos hablando por el, es decir cuando no capte nada se supone que el volumen dinamico será 0 y cuando haya algo de ruido, sera algo como 40% o lo que sea.

    Pido cosas chungas, xDD, por cierto tendría que ser en C

  7. Juanlu dice:

    Pues para eso tendrías que empaparte sobre el control del sonido en las bibliotecas de ALSA, ahí yo ya no llego.

  8. Damaso dice:

    Gracias Juanlu, ya somos dos, algo llego, porque llevo casi un mes peleandome con esto, no pensaba que fuese tan complejo

  9. Juanlu dice:

    Estas cosas son así, poquito a poco… :-)

  10. Damaso dice:

    JEJE, me parece que para lo que quiero ,tendre que recompilar la libreria ALSA en ARM, tienes alguna idea de como hacerlo????, porque ya se me acaban las ideas!!! ;)

  11. Juanlu dice:

    ¿No has podido instalar Gentoo para ARM e instalar las depencias? Es que no sé qué has hecho, no me has dicho en qué punto estás. Crear un entorno de desarrollo para una arquitectura diferente no es algo trivial que se haga instalando dos paquetes. Requiere tener las ideas claras sobre qué es lo que se necesita y qué es lo que tienes, saber qué se está haciendo y saber cómo hacerlo.

    ¿Qué camino has tomado o vas a tomar? ¿Máquina virtual que emule la arquitectura objetivo o entorno de compilación cruzada?

  12. Damaso dice:

    Al final encontré una pequeña solución para unos temas que pensaba que no me hacía falta el ALSA, para poder utilizar la compilación cruzada, y era con un simple fedora 16 e instalándome el arm-gp2x-linux-gcc ; ya podía compilar estática añadiendo el parámetro -static, para la utilización de lo que se necesitaba me valía, pero ahora estoy en el punto de que el volumen del audio que me proporciona /dev/mixer es estático y no era lo que buscaba sino que me diera dinamicamente el dichoso volumen del micro.

    No te había comentado porque en estás 2-3 semanas estuve desarrollando los modulos que necesitaba ,ya que como te comento anteriormente pude compilar un simple helloWorld, con la arquitectura ARM, sin utilizar mucha cosa.

  13. Juanlu dice:

    Me alegro de saber que estás avanzando, por cierto, yo también tengo una GP2X modelo F100 si no me equivoco. ¿Qué firmware le tienes puesto? Quizás podrías pasarme cositas para el cacharro :-)

  14. Damaso dice:

    Pues el firmware me lo indicaba el cacharro haciendo un /proc/cpuinfo, si no me equivoco, y que seguramente lo sabrás, ya que tengo algo olvidado C y linux , :) lo que hice era conectarme con el puty para saber que es lo que tenía, me dío que era un armv5tel y con eso una semana y pico investigando que era eso y como se trataba, ya que nunca lo había oído.

    Por otra parte te puedo aconsejar que por lo que me comentas el GP2X tiene esa arquitectura ARM, lo que tendrías que averiguar de alguna forma que tipo de subarquitectura tiene si es un ARMv5TEL, o lo que sea, y hacerte en C ,un helloWorld, compilado con el post anterior que te comento haber si así se lo traga, ya que puede ser que no se lo trague y tengas que hacer I+D.

    Yo estoy utilizando una maquina virtual con un fedora 16, y le instale ese compilador y con eso puedo hacer lo anterior, pero ahora para compilar el ALSA en ARM, me tendré que mirar como hacerlo, que seguramente es lo que me comentabas en anteriores posts.

  15. Juanlu dice:

    No, /proc/cpuinfo te da información del procesador (hardware), no del firmware. Cuando enciendes la consola sale una pantalla con un dibujito y una melodía estúpida que te pone la versión del firmware.

    Yo a lo que me refería es a si tienes alguna colección de juegos y programas de la scene o algo. ¿Qué modelo tienes tú?

  16. Damaso dice:

    Ahh!, perdona se me fue la olla, con tantas cosas en la cabeza ya no se por donde tirar, a parte del problemón este. No ,no tengo ninguna consola :) ,raro ehh xDD

    El cacharro que tengo es otro tema muy diferente a lo que me comentas, ahi no te podré ayudar.

  17. Dámaso dice:

    Buenas,

    He podido conseguir hacer el cross compile del ALSA para el ARM, pero cuando intento compilarlo con el parametro -static, es decir hago lo siguiente:

    Para hacer el cross compile de ALSA+ARM en mi caso ARM-GP2X-LINUX-GCC

    Me descargue alsa-lib.1.0.17.tar.bz2 del http://dl.ambiweb.de/mirrors/ftp.alsa-project.org/lib/

    Luego lo descomprimi en el /home/user y dentro de la carpeta alsa-lib-…

    hice los siguientes pasos

    #CC=arm-gp2x-linux ./configure –host=i686.linux –target=arm-gp2x-linux

    Cuando finaliza

    #make

    Y luego

    #make install DESTDIR=/tmp/alsaCross

    Cuando acaba toda la pesadilla, voy a la carpeta temporal que me ha creado y copio, todo a sus respectivos sitios correctos dentro de mi directorio /usr/arm-gp2x-linux/

    Con lo cual ya puedo hacer un
    # arm-gp2x-linux-gcc -o micro micro.c -lasound

    Pero problema al canto!!!, yo lo necesito pasarle otro parametro -static, ya que el cacharro necesita tener los ficheros ejecutables en estaticos, ¿¿porqué?? ni zorra, pero por tocar lo que no suena…

    Si le meto ese parametro a lo anterior, ya peta!! he intentado de compilarlo estaticamente la libreria alsa, añadiendole :

    #CC=arm-gp2x-linux ./configure –host=i686.linux –target=arm-gp2x-linux –enable-store=no –enable-static=yes

    Que esto lo podeis ver dentro de la misma carpeta en el fichero INSTALL, y lo demás igual, pero na de na, me dice que no encuentra unos ficheros y no se puede. Alguna idea??

  18.  
Deja una Respuesta

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>