Bienvenido: Ingresar
location: Diferencias para "LabElectronica/HerramientasSoftware"
Diferencias entre las revisiones 2 y 30 (abarca 28 versiones)
Versión 2 con fecha 2010-07-02 13:17:14
Tamaño: 812
Comentario: u
Versión 30 con fecha 2010-08-02 20:40:57
Tamaño: 4086
Comentario:
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 6: Línea 6:
Para bajar un programa por primera ves a la flash de la SBC se debe usar un programa que cumpla con los requerimientos de booteo. Para nuestra placa utilizamos el programa Download. Para bajar un programa por primera ves a la flash de la SBC se debe usar un programa que cumpla con los requerimientos de booteo. Para nuestra placa utilizamos el programa ''Download'' que se conecta por medio de la UART del microcontrolador para hacer las descargas. Se le realizaron minimas modificaciones para que pueda ser usado con un adaptador USB-RS232.

{{{
$ download -b 115200 -p USB0 u-boot.bin
}}}

Los parámetros son el Baudrate (115200), la interfaz (USB), el archivo a grabar y también el offset a donde se grabará, que en nuestro caso es la dirección base 0x60000000(default).

= Booteando =

Para que se puede correr un sistema operativo es necesario un bootloader. Existen varios, uno de los mejores, por flexibilidad y facilidad de uso es el u-boot.

=== el "Das U-Boot" ===

Para que nuestro utilizamos el bootloader "Das U-Boot". El cual posee las capacidades de lanzar un kernel, descargar archivos a través de ethernet, crear particiones, etc.

= levantando el NFS =

el kernel levanta el sistema de archivos de la distribución Debian por medio de NFS, también lo hace con un sistema de archivos minimalista creado con buildroot.
Para ello es necesario configurar los parámetros de arranque del kernel. Estos se pueden pasar directamente con el U-Boot, pero no me funciona. Así que se tuvo que compilar el kernel con dichos comandos.
{{{
CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/nfs nfsroot=10.0.0.1:/tftpboot/nfsroot/ rw ip=10.0.0.2:10.0.0.1::255.255.255.0:placa:eth0:off"
}}}
donde se setea la consola a usar, que el sistema de archivo es nfs, la ip del server, la ruta del nfs y la ip de la placa.
Línea 9: Línea 32:
= ANDA EL DEBIAN =
Línea 10: Línea 34:
La placa esta corriendo con la distribución Debian 5.0.5 con un kernel de linux 2.6.35. Para instalar obtener el sistema de archivos de Debian lo que se realizo fue lo siguiente:
  .1 Se creo una maquina virtual de arm con qemu
  .2 Se instalo Debian para arm en esa maquina
  .3 Se monto el disco donde se instaló el Debian y se copió el sistema de archivos.
Línea 11: Línea 39:
=== Crear maquina con qemu ===
Para crear virtualizar un arm con qemu se realiza los siguientes comandos:
se crea un disco a donde se va a instalar el Debian.
{{{
$ qemu-img create -f raw disco.img 2G
}}}
Se bajan el kernel y el initrd para que arranque el sistema.
{{{
$ wget http://people.debian.org/~aurel32/arm-versatile/vmlinuz-2.6.18-6-versatile
$ wget http://people.debian.org/~aurel32/arm-versatile/initrd.img-2.6.18-6-versatile
}}}
Se baja el instalador de Debian.
{{{
$ wget http://ftp.de.debian.org/debian/dists/etch/main/installer-arm/current/images/rpc/netboot/initrd.gz
}}}
Se inicia la instalación del sistema en el disco creado
{{{
$ qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.18-6-versatile -initrd initrd.gz -hda disco.img -append "root=/dev/ram"
}}}
Luego de la instalación se puede corroborar si funciona cambiando el sistema raíz de ram a sda1 y el initrd
{{{
$ qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.18-6-versatile -initrd initrd.img-2.6.18-6-versatile -hda disco.img -append "root=/dev/sda1"
}}}
=== Obtener el Sistema de archivos para nuestra placa ===
Para ello lo que se hace es montar el disco donde se instalo el Debian con el siguiente comando.
{{{
$ mount -o loop,offset=32256 hda.img /path/punto_montaje
}}}
Luego se copia todo el contenido a la carpeta de donde se desee montar el sistema de archivo desde la placa.

El Booteo del EP9302

El microcontrolador ep9302 puede bootear desde la Flash externa, Ram externa, SPI y UART, de acuerdo a los estados de los pines que estan a tal fin. Cuando bootea por UART o SPI carga un codigo desde ahi de hasta 2kB a un buffer del modulo ethernet,luego ejecuta el codigo. La mayoria de los programas booteadores utilizan este metodo para grabar la flash externa, donde dicho codigo gestiona una comunicacion con una PC por medio de la UART y descarga los datos y/o programas a ser grabados en la memoria flash externa.

Escribiendo en la Flash

Para bajar un programa por primera ves a la flash de la SBC se debe usar un programa que cumpla con los requerimientos de booteo. Para nuestra placa utilizamos el programa Download que se conecta por medio de la UART del microcontrolador para hacer las descargas. Se le realizaron minimas modificaciones para que pueda ser usado con un adaptador USB-RS232.

$ download -b 115200 -p USB0 u-boot.bin

Los parámetros son el Baudrate (115200), la interfaz (USB), el archivo a grabar y también el offset a donde se grabará, que en nuestro caso es la dirección base 0x60000000(default).

Booteando

Para que se puede correr un sistema operativo es necesario un bootloader. Existen varios, uno de los mejores, por flexibilidad y facilidad de uso es el u-boot.

el "Das U-Boot"

Para que nuestro utilizamos el bootloader "Das U-Boot". El cual posee las capacidades de lanzar un kernel, descargar archivos a través de ethernet, crear particiones, etc.

levantando el NFS

el kernel levanta el sistema de archivos de la distribución Debian por medio de NFS, también lo hace con un sistema de archivos minimalista creado con buildroot. Para ello es necesario configurar los parámetros de arranque del kernel. Estos se pueden pasar directamente con el U-Boot, pero no me funciona. Así que se tuvo que compilar el kernel con dichos comandos.

CONFIG_CMDLINE="console=ttyAM0,115200 root=/dev/nfs nfsroot=10.0.0.1:/tftpboot/nfsroot/ rw ip=10.0.0.2:10.0.0.1::255.255.255.0:placa:eth0:off"

donde se setea la consola a usar, que el sistema de archivo es nfs, la ip del server, la ruta del nfs y la ip de la placa.

ANDA EL DEBIAN

La placa esta corriendo con la distribución Debian 5.0.5 con un kernel de linux 2.6.35. Para instalar obtener el sistema de archivos de Debian lo que se realizo fue lo siguiente:

  • 1 Se creo una maquina virtual de arm con qemu
  • 2 Se instalo Debian para arm en esa maquina
  • 3 Se monto el disco donde se instaló el Debian y se copió el sistema de archivos.

Crear maquina con qemu

Para crear virtualizar un arm con qemu se realiza los siguientes comandos: se crea un disco a donde se va a instalar el Debian.

$  qemu-img create -f raw disco.img 2G

Se bajan el kernel y el initrd para que arranque el sistema.

$ wget http://people.debian.org/~aurel32/arm-versatile/vmlinuz-2.6.18-6-versatile
$ wget http://people.debian.org/~aurel32/arm-versatile/initrd.img-2.6.18-6-versatile 

Se baja el instalador de Debian.

$ wget http://ftp.de.debian.org/debian/dists/etch/main/installer-arm/current/images/rpc/netboot/initrd.gz 

Se inicia la instalación del sistema en el disco creado

$ qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.18-6-versatile -initrd initrd.gz -hda disco.img -append "root=/dev/ram" 

Luego de la instalación se puede corroborar si funciona cambiando el sistema raíz de ram a sda1 y el initrd

$ qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.18-6-versatile -initrd initrd.img-2.6.18-6-versatile -hda disco.img -append  "root=/dev/sda1"

Obtener el Sistema de archivos para nuestra placa

Para ello lo que se hace es montar el disco donde se instalo el Debian con el siguiente comando.

$ mount -o loop,offset=32256 hda.img /path/punto_montaje

Luego se copia todo el contenido a la carpeta de donde se desee montar el sistema de archivo desde la placa. -- Main.DiegoGonzalez - 10 May 2010

None: LabElectronica/HerramientasSoftware (última edición 2010-08-02 21:17:17 efectuada por DiegoGonzalez)