miércoles, 30 de mayo de 2012

Configuración WIFI ASL26555 OpenWrt

Vamos a configurar la conexión WIFI como cliente de nuestra red inalámbrica, editando dos ficheros de configuración:


  • /etc/config/network
  • /etc/config/wireless


Empezamos:
  • /etc/config/network
Ajustaremos la parte relativa al interface asignado a la red WIFI; si queremos IP, dinámica creamos un interface WAN según lo siguiente:


config 'interface' 'wan'
        option 'proto' 'dhcp'


En caso de IP estática será como sigue:



config interface 'wan'
        option proto    static
        option ipaddr   10.0.0.2
        option netmask  255.255.255.0
        option gateway  10.0.0.1
        option dns      10.0.0.1

Donde ipaddr es la IP que queremos asignar con la máscara correspodiente. La dirección de gateway y DNS corresponderán con nuestro router ADSL.

  • /etc/config/wireless

En este fichero controlamos la configuración WIFI:



config wifi-device  radio0
        option type     mac80211
        option channel  11
        option macaddr  5c:33:8e:bc:ee:ff
        option hwmode   11ng
        option htmode   HT20
        list ht_capab   GF
        list ht_capab   SHORT-GI-20
        list ht_capab   SHORT-GI-40
        list ht_capab   TX-STBC
        list ht_capab   RX-STBC12
        # REMOVE THIS LINE TO ENABLE WIFI:
        option disabled 0


config wifi-iface
        option device   radio0
        option network  wan
        option mode     sta
        option ssid     NOMBRE_RED_WIFI
        option encryption psk2
        option key CONTRASEÑA

Ajustaremos lo siguiente:

  • option disable 0
  • option network wan ( o el nombre que se haya definido en el fichero network para esta red)
  • option mode sta (modo wifi cliente)
  • option ssid NOMBRE_RED_WIFI (el nombre de la red WIFI que queramos conectarnos)
  • option encryption psk2 ( o bien psk o web según la encriptación que tengamos)
  • option key contraseña (nuestra contraseña)

Podemos ver las diferentes opciones en la wiki de OpenWrt http://wiki.openwrt.org/doc/uci/network

Una vez guardados los cambios reiniciamos la red y tendremos conexión con la red definida haciendo un /etc/init.d/network restart o bien con el comando wifi.




domingo, 27 de mayo de 2012

Instalando OpenWrt en ASL26555

Una vez lograda la conexión a consola y probado el firmware en RAM podemos instalar definitivamente OpenWrt en nuestro router.

IMPORTANTE: al seguir estos pasos perderemos la funcionalidad ADSL. 


La flash es tipo SPI con 16 MB particionada de la siguiente forma en Openwrt:

mtd0: 00030000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00010000 00010000 "factory"
mtd3: 000e0000 00010000 "kernel"
mtd4: 00ea0000 00010000 "rootfs"
mtd5: 00c80000 00010000 "rootfs_data"
mtd6: 00f80000 00010000 "linux"
mtd7: 00010000 00010000 "devdata"
mtd8: 00010000 00010000 "cert"
mtd9: 00010000 00010000 "langpack"

Las 3 primeras particiones son para el bootloader y datos por defecto. El espacio ocupado por OpenWRT comprende las particiones kernel, roofs y rootfs_data, y todas se agrupan en la partición linux. Devdata contiene datos como las MAC de modo que nunca la debemos tocar.

Siempre utilizaremos pues para instalar el OpenWRT la partición linux.


Como tenemos OpenWrt operativo, es muy fácil flashear la versión definitiva:


  • Activamos el servidor SSH añadiendo una contraseña con el comando passwd
  • Subimos el firmware adecuado via SCP al router (WinSCP si lo haces en windows). En consola de ubuntu sería algo como:
scp openwrt-ramips-rt305x-asl26555-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/

  • Escribimos el firmware desde el directorio /tmp con el comando mtd tal cual sigue:

root@OpenWrt:/tmp# mtd -r write openwrt-ramips-rt305x-asl26555-squashfs-sysupgrade.bin linux
Unlocking linux ...
Writing from openwrt-ramips-rt305x-asl26555-squashfs-sysupgrade.bin to linux ...


  • El router se reiniciará automáticamente y arrancará OpenWrt :-D
  • La dirección IP por defecto de la red por cable es 192.168.1.1 Inicialmente accederemos vía telnet y luego por SSH en cuanto pongamos una contraseña con el comando passwd como vimos antes.

Posteriormente añadiré como configurar el WIFI e instalar todo lo necesario para que nos funcione la radio WIFI.

DESCARGAS:

Compilación desde trunk r31855 de OpenWrt con soporte de WIFI, USB, sistema de ficheros EXT4, vfat y NFS:

Firmware ASL26555 Sysupgrade












Probando OpenWrt en ASL26555

Continuando la entrada anterior, una vez que tengamos conexión a la consola del router podemos acceder a las opciones del bootloader uboot.

Para acceder arrancamos el router ya conectados con nuestro programa terminal y justo cuando aparece el primer mensaje tenemos que pulsar el número  apropiado rápidamente.

La secuencia de arranque es:


1.0.0 U-Boot 1.1.3 (Mar 16 2011 - 18:01:52) - SVN revision : 15534


Model: ASL-26564/ES


Board: Ralink APSoC DRAM:  32 MB
config usb..
[...]


Please choose the operation: 
   1: Load system code to SDRAM via TFTP. 
   2: Load system code then write to Flash via TFTP. 
   3: Boot system code via Flash (default).
   4: Entr boot command line interface.
   9: Load Boot Loader code then write to Flash via TFTP. 


Vamos a utilizar la opción 1 para probar una imagen que no altera el firmware original en la flash del router y ver que todo va bien.

La imagen que va a coger el router se sirve desde el PC vía TFTP, un protocolo de transmisión de ficheros muy utilizado en la configuración de equipos de comunicaciones por ejemplo.

Podemos utilizar el TFTP-HPA de Ubuntu. Lo instalaremos con un sudo apt-get install tftp-hpa y pondremos el fichero imagen de OpenWrt firmware.bin como sigue:  /var/lib/tftpboot/firmware.bin


En el router, al elegir la opción 1 introducimos la IP del router, del PC y el nombre del fichero:



1: System Load Linux to SDRAM via TFTP. 
 Please Input new ones /or Ctrl-C to discard
        Input device IP (192.168.1.1) ==:192.168.1.1
        Input server IP (192.168.1.10) ==:192.168.1.10
        Input Linux Kernel filename (1.bin) ==:firmware.bin

Al darle a enter veremos como inicia el arranque 



netboot_common, argc= 3 
 KSEG1ADDR(NetTxPacket) = 0xA1FE7800 
 NetLoop,call eth_halt ! 
 NetLoop,call eth_init ! 
 Waitting for RX_DMA_BUSY status Start... done
 Header Payload scatter function is Disable !! 
 ETH_STATE_ACTIVE!! 
Using Eth0 (10/100-M) device
TFTP from server 192.168.1.10; our IP address is 192.168.1.1
Filename 'firmware.bin'.


 TIMEOUT_COUNT=10,Load address: 0x80500000
Loading: Got ARP REPLY, set server/gtwy eth addr (00:24:1d:df:a4:93)
Got it
#
 first block received  
################################################################
###########################################
done
Bytes transferred = 2879232 (2bef00 hex)
NetBootFileXferSize= 002bef00
Automatic boot of image at addr 0x80500000 ...
## Booting image at 80500000 ...
## Booting image from active region 1 at 80500000 ...
   Image Name:   MIPS OpenWrt Linux-3.3.7
   Created:      2012-05-27  19:18:35 UTC
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    2879168 Bytes =  2.7 MB
   Load Address: 80000000
   Entry Point:  80000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK


Starting kernel ...


[    0.000000] Linux version 3.3.7 (chisco@chisco-aluminio) (gcc version 4.6.3 20120201 (prerelease) (Li2
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU revision is: 0001964c (MIPS 24KEc)
[    0.000000] Ralink RT3052 id:1 rev:3 running at 384.00 MHz
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 02000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Zone PFN ranges:
[    0.000000]   Normal   0x00000000 -> 0x00002000
[    0.000000] Movable zone start PFN for each node

[...]

Pulsaremos enter y ya tendremos acceso a la línea de comandos de la consola:

BusyBox v1.19.4 (2012-05-24 22:28:07 WEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 ATTITUDE ADJUSTMENT (Bleeding Edge, r31855)
 -----------------------------------------------------
  * 1/4 oz Vodka      Pour all ingredients into mixing
  * 1/4 oz Gin        tin with ice, strain into glass.
  * 1/4 oz Amaretto
  * 1/4 oz Triple sec
  * 1/4 oz Peach schnapps
  * 1/4 oz Sour mix
  * 1 splash Cranberry juice
 -----------------------------------------------------
root@OpenWrt:/#

La particularidad de esta versión de OpenWrt compilada para este router es que corre en RAM (utiliza 16 megas de los 32 disponibles) y nos permite echar un ojo sin alterar el firmware original de ninguna forma, bastando con reiniciar el router para que quede como al principio.


DESCARGAS:

Firmware tipo initRAM para probar OpenWrt sin alterar el firmware original con soporte USB, FAT, EXT4.

Posteriormente desde este firmware instalaremos permanentemente OpenWrt en la flash del router








viernes, 25 de mayo de 2012

Conexion serie con router ADSL Homestation ASL26555

Con los router Homestation ASL26555 de los nuevos que pone telefónica podemos disponer de una radio WIFI gracias a un hardware relativamente potente, que hará las delicias de los que nos gusta escuchar música, con calidad y estemos 'cansados' de las clásicas emisoras que podemos sintonizar con las radios convencionales.

Tras el cese además de las transmisiones de DAB, salvando las grandes ciudades, tenemos esta mágnífica opción que solo requiere de internet y un par de altavoces amplificados con lo que podemos acceder a cientos de emisoras temáticas de todo el mundo con poca o ninguna publicidad y excelente calidad de sonido.

Además puede controlarse vía el mismo WIFI con un teléfono android con aplicaciones como mpddroid.

Los pasos para tener conexión vía puerto serie con la consola son:
  1. Abrimos nuestro router con cuidado y accedemos a la placa base donde se encuentran 5 puntos donde soldar unos jumpers.
  2. Conectamos las lineas RX-GND-TX según la imagen a un adapator TTL-RS232. Vale cualquier PL2303 o CP2101 USB configurando la conexión a 57600 8N1 sin control de flujo.


En este punto con un programa de terminal veremos por pantalla la consola ttyS0 del router. 

En la siguiente entrada publicaré como cambiar el firmware a OpenWrt y lo necesario para disponer la radio en marcha.