Índice F.A.Q.
Actualizado: 2016-01-19
Configuración erróneaHe introducido una mala configuración y ahora no puedo acceder al router.
La solución para este problema consiste en acceder al router en modo
failsafe y borrar la partición de la configuración (
rootfs_data) para restablecer la configuración inicial del router.
Prerrequisitos: La imagen de OpenWrt flasheada en el router debe ser del tipo
squashfs. Si se ha flasheado otro tipo de imagen (
jffs2), este proceso no es válido, ya que no se puede recuperar la configuración original.
Para poner el router en modo
failsafe hay que realizar el siguiente procedimiento:
1) Apagar el router.
2) Encender el router y presionar y soltar continuamente el botón
Reset.
3) Una vez que el LED de estado del router parpadee rápidamente podemos dejar de presionar y soltar el botón
Reset (normalmente el LED de estado es el LED de Power).
4) El router ya está en modo
failsafe, así que podemos acceder por telnet y restaurar la configuración por defecto:
telnet 192.168.1.1
mtd erase -r rootfs_data
5) Una vez introducido el comando para borrar la partición
rootfs_data, el router se reiniciará sólo y restablecerá la configuración por defecto.
Más información:
OpenWrt Failsafe
Acabo de actualizar el firmware de mi router y ahora, cuando lo reinicio (o apago) no me guarda los cambiosjffs2_scan_eraseblock(): End of filesystem marker found at 0x?????
jffs2: Cowardly refusing to erase blocks on filesystem with no valid JFFS2 nodes
jffs2: empty_blocks ??, bad_blocks ?, c->nr_blocks ??
Ejecutar el siguiente comando (si no es posible acceder por telnet/ssh hay que acceder al modo failsafe):
mtd erase -r rootfs_data
Cuando el router se haya reiniciado ya no debería aparecer el error.
Dependencias de paquetes con el kernelAl intentar instalar el paquete xxx me da error de dependencias con el kernel.
* satisfy_dependencies_for: Cannot satisfy the following dependencies for xxx:
* kernel (= 3.6.11-1-9dae866b8f6d8a6cc46cd26eb5d3a5e6) * kernel (= 3.6.11-1-9dae866b8f6d8a6cc46cd26eb5d3a5e6) *
* opkg_install_cmd: Cannot install package xxx.
Es un error muy común en OpenWrt. Algunos de los paquetes disponibles en el repositorio de OpenWrt dependen directamente del hash del kernel. Si éste no coincide sólo se pueden instalar con "--force-depends" y no siempre funciona. Cuando los bots recompilan OpenWrt, si ha habido cambios en el kernel el hash cambia, y los firmwares antiguos ya no pueden instalar paquetes dependientes del kernel.
En este foro se da soporte a bastantes router no incluidos en el repositorio oficial de OpenWrt y para ello es necesario modificar el kernel, por lo que en todos los firmwares disponibles en el foro para routers que no están soportados oficialmente por OpenWrt va a existir siempre este problema (también sucede lo mismo si se modifica el kernel para añadir nuevas funcionalidades relacionadas con el router, aunque éste ya esté integrado en el repositorio oficial de OpenWrt).
La solución más 'limpia' posible consiste en compilar un firmware propio con los paquetes extra que quieras añadir al kernel (desde un repositorio que disponga de los parches añadidos, o desde el repositorio oficial, añadiendo los parches manualmente).
Como alternativa, se puede probar el método explicado en este hilo:
[Tutorial] Cómo intentar instalar paquetes dependientes del kernel
Compilar OpenWrtQuiero compilar un firmware personalizdo para mi router con más paquetes incluidos.
Tutorial de jar229OpenWrt Buildroot
Backup de la configuración de OpenWrtQuiero hacer una copia de seguridad de la configuración de mi router con OpenWrt.
Para hacer un backup de la configuración de OpenWrt el método más sencillo es mediante LuCI:
System->Backup/Flash Firmware.
En la sección
Backup/Restore->Download backup pulsamos
Generate archive y se descargará un fichero .tar.gz con la configuración actual de OpenWrt.
Atención: No es posible hacer un backup de los paquetes instalados que no venían en el firmware, pero sí se guardará la configuración de estos paquetes extra con el método descrito.
xDSL/DOCSIS/GPON en OpenWrt¿Perderé la funcionalidad de xDSL/DOCSIS/GPON si instalo OpenWrt?
No existe soporte para ADSL en OpenWrt, excepto en las plataformas
lantiq y
ar7.
No existe soporte para VDSL en OpenWrt, excepto en la plataforma
lantiq.
No existe soporte para DOCSIS en ningún router con OpenWrt.
No existe soporte para GPON en ningún router con OpenWrt.
Por ello, en la mayoría de los casos necesitarás otro dispositivo que haga de 'modem' (o router en modo bridge).
Si no sabes la plataforma a la que pertenece tu router, puedes verificarlo aquí:
https://foro.seguridadwireless.net/openwrt/(indice)-hilos-relevantes-de-openwrt/msg263768/#msg263768En cualquier caso, la funcionalidad se recupera si se instala de nuevo el firmware original.
Transmission reinicia/cuelga el routerTengo instalado y funcionando transmission en mi router, pero tarde o temprano termina reiniciándolo.
Este problema debería solucionarse usando una partición swap.
Adding Swap PartitionsEspacio de Intercambio (Wikipedia)
Formato de ficheros para HDDQuiero instalar un disco duro USB para descargar/compartir. ¿Qué sistema de archivos es el más recomendable?
Desde luego NO es recomendable usar
NTFS. El rendimiento es muy pobre y el uso de CPU en el router se dispara.
Lo ideal sería formatear el disco con un sistema de ficheros propio de linux:
ext2,
ext3 o
ext4.
Canal IRCTenéis disponible, el canal de IRC
seguridadwireless en el servidor
irc.freenode.net (si no queréis instalar ninguna aplicación, podéis conectaros por web:
http://webchat.freenode.net/En el canal, no se contestarán preguntas/dudas que ya estén solucionadas en el foro.
¿ Qué es un Backport ?Según la wikipedia:
http://es.wikipedia.org/wiki/BackportBackport
Es la acción de hacer modificaciones o crear un parche a un software con una versión más antigua que la existente.
Para aclarar el tema, y refiriéndonos, por ejemplo, al backport a Backfire que ha hecho danitool para el Huawei hg556a:
Con el backport, se ha conseguido hacer funcionar el hg556a en una versión
estable (Backfire) para la que no existe soporte oficial por parte de OpenWrt.
¿ Cuales son las diferentes versiones de OpenWrt?http://wiki.openwrt.org/about/history
¿ Qué significa trunk?trunk es la versión de desarrollo actual. Ahora mismo se refiere a Barrier Braker, pero en su día lo fueron también Backfire, Attitude Adjustment (estas han pasado a ser versiones estables) ...
¿ Puedo conectar una tarjeta wifi USB para hacer que mi router actúe como Repetidor ?Por si no lo sabías, algunos routers, con chipset wifi atheros (también modelos antiguos como el Linksys WRT54GL, con broadcom), permiten hacer de repetidor con sólo una radio wifi.
Sin embargo, lo normal es que para hacerlo necesitemos añadir una tarjeta wifi USB adicional. Así una de las radios actuará como cliente, y la otra como AP.
Lo primero será pincharla a uno de los puertos USB del router.
Ahora, necesitaremos averiguar el chipset del dispositivo para poder instalar el driver correspondiente. Para ello necesitamos usbutils así que procederemos a instalarlo.
Desde una conexión ssh:
opkg update
opkg install usbutils
Ahora ejecutamos el comando lsusb
root@OpenWrt:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:2502 Standard Microsystems Corp.
Bus 001 Device 003: ID 0ace:1211 ZyDAS ZEW 2501 802.11bg Wireless Adapter
root@OpenWrt:~#
En este ejemplo, he puesto un USB con el chipset 1211 de zydas, así que tendré que instalar kmod-zd1211rw
opkg install kmod-zd1211rw
Ahora, para que sea detectado y podamos hacer uso del nuevo interface, debemos generar un nuevo fichero 'wireless'
rm /etc/config/wireless
wifi detect > /etc/config/wireless
Si todo ha ido bien, ahora tendremos 2 radios disponibles (podéis comprobarlo también desde LuCi)
cat /etc/config/wireless
config wifi-device radio0
option type mac80211
option channel 11
option macaddr 20:2b:xx:xx:xx:xx
option hwmode 11ng
option htmode HT20
list ht_capab SHORT-GI-40
list ht_capab TX-STBC
list ht_capab RX-STBC1
list ht_capab DSSS_CCK-40
# REMOVE THIS LINE TO ENABLE WIFI:
option disabled 1
config wifi-iface
option device radio0
option network lan
option mode ap
option ssid OpenWrt
option encryption none
config wifi-device radio1
option type mac80211
option channel 11
option macaddr 00:30:xx:xx:xx:xx
option hwmode 11g
# REMOVE THIS LINE TO ENABLE WIFI:
option disabled 1
config wifi-iface
option device radio1
option network lan
option mode ap
option ssid OpenWrt
option encryption none
root@OpenWrt:~#
Cómo acceder desde Windows Vista o 7 a las carpetas compartidas mediante Samba.raphik dixit: He instalado la compilación 'x' y tras configurar Samba ¡no he podido acceder a las carpetas compartidas desde Win7x64 Professional! He repasado mil y una veces la configuración de Samba sin dar con el error. Finalmente he podido solucionarlo.
A los que os haya pasado esto, sabéis de lo que estoy hablando: intentas conectarte a las carpetas compartidas del router (típicamente \\192.168.1.1) y el PC te pide usuario y contraseña una y otra vez, en un bucle infinito, sin que nunca te deje acceder. Por lo que parece, esto pasa porque algunas versiones de Windows implementan por defecto el protocolo de cifrado NTLMv2 y Samba no. Afortunadamente, se puede arreglar cambiando el modo en el que Windows transmite las credenciales a Samba durante el proceso de autenticación.
Para las versiones Busines, Ultimate y Enterprise:
1. En Inicio, Ejecutar escribe secpol.msc
2. Vé: Directivas locales, Opciones de seguridad.
3. Seguridad de red: nivel de autenticación de LAN Manager.
4. Cambia el valor: Enviar sólo respuesta NTLMv2 por Enviar LM y NTLM: usar la seguridad de sesión NTLMv2 si se negocia.
Las versiones Home y Home Premium no tienen la utilidad secpol.msc, así que toca editar el registro a pelo (¡peligro!):
1. En Inicio, Ejecutar escribe regedit.
2. Crea (o edita) la clave DWORD: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\LMCompatibilityLevel
3. Asígnale el valor 1.
Instalación de paquetes desde un pendrive.Creo que esto puede ser interesante ya que a mi me ha ayudado.
http://wiki.openwrt.org/doc/techref/opkg#local.repositories
Este "truco" se puede hacer desde LuCI o desde línea de comandos.
Con la interfaz web se ve enseguida, y desde línea de comandos hay que cambiar la primera línea del archivo /etc/opkg.conf por:
src/gz local file:////directorio_donde_están_los_paquetes
Por ejemplo, si montamos el pendrive en /tmp/usb quedaría de la siguiente manera:
src/gz local file:////tmp/usb
Sobre las compilaciones personalizadas basadas en la rama 'trunk' (en desarrollo).
Una cosa que no sé si se deduce de todas las lecturas de los posts a simple vista es que todos los firmwares compilados y puestos en los posts de una versión trunk, antes o después terminarán estando COJOS. Es decir, si alguien utiliza los firmwares, con intención de no instalar paquetes, es genial porque el firmware tiene todo lo necesario y no pasará nada, pero si hay intención de instalar nuevas cosas hay que tener en cuenta que los paquetes que se instalan dependen estrechamente del momento en que se generaron y de la versión de openwrt de su momento. ANTES O DESPUES LAS VERSIONES CAMBIARAN Y QUEDARAN COJOS. No es muy sabio instalar una version antigua de openwrt sin tener los paquetes necesarios para completarlo con dicha versión y al poner algo más nuevo del repositorio de internet pensar que va a seguir funcionando.
Cuando utilizo openwrt compilo todos los paquetes para tenerlos a disposición cuando me interese actualizar algo. O si no compilo y utilizo alguna imagen del trunk ya compilada, teniendo presente que cambia constantemente, descargo todos los paquetes que haya en ese momento sabiendo que son los que más o menos van a ser compatibles con la imagen que acabo de instalar y los utilizo instalando y forzando las dependencias o bien editando el fichero Packages del repositorio local y poniendo mi checksum del kernel en los paquetes que tengan dependencia del checksum del kernel, de forma que luego LuCi no se queje al instalar las dependencias (suena lioso pero no lo es cuando se entiende lo que se dice).
Mi consejo cuando se trabaja con imágenes del trunk es instalar un servidor web local que actúe como repositorio local cuando necesitemos actualizar los paquetes en un momento dado con los paquetes descargados en el momento en que esa imagen se generó, o como poco hacer una descarga de los paquetes del trunk en ese momento para luego instalarlos por USB o por cualquier otro medio. Si tenemos los paquetes de la misma época de la imagen, tenemos muchas posibilidades de que funcione, si no, es una lotería que tiene muchas menos papeletas si se trata de dependencias del kernel a lo largo del tiempo.
Por supuesto también podemos utilizar una imagen de las consideradas estables como Attitude Adjustment en la que sabemos que los paquetes no van a cambiar a lo largo del tiempo en que se le dé soporte a dicha versión (aunque dentro de 20 años puede que los paquetes no estén online así que sería bueno hacer una descarga también...)
En resumidas cuentas, no me gusta depender de internet para nada, así que de casi todo con lo que trabajo tengo copias locales para poderlas utilizar "dentro de 20 años". (Optimista soy, desde luego)
Teorema de antigüedad de openwrt:
Antes o después todas las imágenes de openwrt terminarán quedando cojas si no se tiene un repositorio local.
Corolario del teorema anterior:
Es bueno tener un repositorio local de la versión de openwrt que se haya instalado en un momento dado.
No se actualiza la lista de paquetes por internet. La lista de paquetes no se actualiza cuando recibimos un mensaje similar a este:
Downloading http://downloads.openwrt.org/snapshots/trunk/brcm63xx/packages/Packages.gz.
wget: server returned error: HTTP/1.1 404 Not Found
Collected errors:
* opkg_download: Failed to download http://downloads.openwrt.org/snapshots/trunk/brcm63xx/packages/Packages.gz, wget returned 1.
En la última versión de openwrt Chaos Chalmer, la ubicación de paquetes de los repositorios ha cambiado, y como consecuencia las versiones anteriores basadas en Barrier Breaker no actualizarán el listado de paquetes y no será posible bajar los paquetes actualizados.
Para intentar tener compatibilidad con los paquetes actuales y dado que la versión Barrier Breaker está en proceso de estabilización se sugiere actualizar el router con la versión rc3 de Barrier Breaker, o en su defecto, actualizar la ubicación de paquetes a descargar.
Para ello hay que editar el fichero /etc/opkg.conf y sustituir la ruta que aparece en la línea que contiene src/gz con la ruta que se corresponda con nuestra arquitectura de router, es decir, si tenemos en la línea lo siguiente:
src/gz barrier_breaker http://downloads.openwrt.org/snapshots/trunk/brcm63xx/packages
sustituirla por lo siguiente:
src/gz barrier_breaker http://downloads.openwrt.org/barrier_breaker/14.07-rc3/brcm63xx/generic/packages
Para comprobar que la ruta es correcta, copiarla a un navegador y mirar si el fichero
Packages.gz aparece entre el listado de paquetes devuelto.
Para averiguar la ruta de otras arquitecturas de router (
ar7, ar71xx, atheros, brcm63xx, lantiq, etc...) , se recomienda poner en un navegador la ruta
http://downloads.openwrt.org/barrier_breaker/ y a partir de ahí, navegar hasta el directorio en el que se encuentren los paquetes, comprobar que el fichero
Packages.gz se encuentra entre el listado de paquetes, y copiar la dirección del navegador en el fichero /etc/opkg.conf tal y como se explica anteriormente. Si el navegador nos devuelve una dirección https, sustituir por http.
Mi router tiene chipset Realtek. ¿Cuándo habrá una versión de OpenWrt para él?Respuesta corta: NUNCA.
Odio chafar a la gente pero todo router que tenga un chip Realtek va a ser casi imposible que tenga soporte para openwrt debido a que casi todos sus SoC usan cpus Lexra modificadas (además de que el código fuente no son capaces de leerlo ni ellos).
¿Cómo accedo al puerto serie?Hay un tutorial explicando el tema aquí:
https://foro.seguridadwireless.net/openwrt/(tutorial)-puerto-serie-como-acceder/
¿Cuál es el acceso más básico al router para configurar, y subir / bajar ficheros?
Acceso BásicoOpenwrt es accesible mediante 3 formas:
LuCI, su interfaz gráfica. Es lo más sencillo, pero no todas las versiones de OpenWrt tienen LuCI, por motivos de espacio, o por motivos de desarrollo (las versiones trunk NUNCA tienen LuCI instalado).
- Accesible a través de
http://192.168.1.1Telnet: si no hemos accedido al router mediante LuCI y si no le hemos puesto contraseña todavía, éste método estará activo para acceder al router. OpenWrt tiene activo el protocolo telnet para acceder al router en el primer inicio, y cuando no se haya configurado todavía una contraseña de acceso. Una vez puesta la contraseña, el router no será accesible por telnet.
- Accesible mediante
PuTTy (Windows) o telnet (Linux), utilizando la IP del router, puerto 23, protocolo telnet.
>>> Para poner contraseña al router:
>>> Una vez se ha accedido por telnet, aparecerá "root@openwrt:"
>>> Teclear
passwd >>> Teclear la contraseña que queramos ponerle
>>> Teclear otra vez la contraseña que hayamos puesto, para verificarla
>>> Teclear
exitSSH: es el método seguro de acceso a la consola, una vez configurada la contraseña del router.
- Accesible mediante
PuTTy (Windows) o ssh (Linux), utilizando la IP del router, puerto 22, protocolo SSH.
>>> Para acceder al router deberemos teclear la contraseña que hayamos puesto por LuCI, o por telnet.
Transferir ficherosUna vez configurada la contraseña del router, podemos utilizar el protocolo SCP (Secure Copy) para transferir ficheros por el puerto 22.
Para ello podemos usar el programa
WinSCP (Windows) o scp (Linux), utilizando la IP del router, el puerto 22, y el protocolo SCP.
>>> Para acceder al router deberemos usar el usuario root y la contraseña que hayamos puesto por LuCI, o por telnet.
Modificado por Tki2000 el 19/01/2016 para añadir: ¿Cuál es el acceso más básico al router para configurar, y subir bajar ficheros?