Instalando OpenWRT con extroot en TP-LINK TL-MR3020

Lastimosamente mis intentos para instalarlo con el firmware pre-compilado que encontramos en la página de openwrt no fue suficiente, suficiente para usarlo por defecto si, quiero decir que puedes descargar e instalar sin ningún problema, pero al momento de aplicar el extroot no va a funcionar, ya que no hay suficiente espacio para instalar los módulos necesarios.

Mientras intentaba hacerlo, use Attitude Adjustment 12.09, Barrier Bricker 14.07 y Chaos Calmer 15.05, lastimosamente chaos calmer me pareció un poco buggy, ya que no guardaba los cambios y al desinstalar software el fs se llenaba en vez de librearse, aun asi no hice una investigación mas a fondo (no hice un “mtd -r erase rootfs_data”), es posible que funcione sin problemas.

Con Atittude Adjustment 12.09 funciona todo a la perfección, aun asi recomiendo hacer una restauración de fabrica antes de comenzar a usarlo. Aplicarle el extroot fue tan sencillo como seguir los pasos de la wiki de Openwrt https://wiki.openwrt.org/doc/howto/extroot para resumir seria:

ssh root@192.168.1.1# O el ip de tu TL-MR3020
opkg update ; opkg install block-mount kmod-fs-ext4 kmod-usb-storage-extras
mount /dev/sda1 /mnt ; tar -C /overlay -cvf - . | tar -C /mnt -xf - ; umount /mnt
block detect > /etc/config/fstab ; vi /etc/config/fstab

Solo reemplaza los valores para tu instalación (solo el uuid),

config ‘mount’
option target ‘/mnt/sda1’
option uuid ‘18784ace-3ede-4ff1-aaf1-a1212a569176’
option enabled ‘0’

por esto:

config ‘mount’
option target ‘/overlay’
option uuid ‘c91232a0-c50a-4eae-adb9-14b4d3ce3de1’
option enabled ‘1’

y

reboot

y a esperar que funcione.

Este escenario no es tan feliz para Barrier Breaker 14.07, si intentas instalar block-mount kmod-fs-ext4 kmod-usb-storage-extras, no te quedara espacio ni para crear el fstab, por lo tanto sera inútil lo que hagas, lo que mas ocupa espacio es el modulo para ext4, unos 400K aproximadamente, lo que puedes hacer es descargar el generador de imágenes de barrier breaker (en este caso) de aquí, descomprimir y entrar en el directorio que se creo, a continuación vamos generar una imagen personalizada con el siguiente comando:

make image PROFILE="TLMR3020" PACKAGES="kmod-fs-ext4 kmod-usb-storage-extras block-mount luci"

con esto generas una imagen con lo suficiente para cargar tu usb y con interfaz web para entrar. La imagen creada estará en bin/ar71xx/, en lo personal preferí hacer el upgrade del firmware por ssh así que:

scp bin/ar71xx/openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin root@192.168.1.1:/tmp

luego ya conectado por ssh:

sysupgrade -v -n /tmp/openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin

al reiniciar tendrás espacio suficiente solo para aplicar el extroot, así que esperemos reinicie y nos conectamos por ssh para luego aplicar el extroot:

mount /dev/sda1 /mnt ; tar -C /overlay -cvf - . | tar -C /mnt -xf - ; umount /mnt
block detect > /etc/config/fstab ; vi /etc/config/fstab

Solo reemplaza los valores para tu instalación (solo el uuid y el target)

config ‘mount’
option target ‘/mnt/sda1’
option uuid ‘18784ace-3ede-4ff1-aaf1-a1212a569176’
option enabled ‘0’

por esto:

config ‘mount’
option target ‘/overlay’
option uuid ‘c91232a0-c50a-4eae-adb9-14b4d3ce3de1’
option enabled ‘1’

y

reboot

Recuerda que la memoria usb debe estar previamente formateada con ext4, ciertamente podrías hacerlo desde tu AP, pero implicaría bajar mas software y perder mas espacio, ya que para eso debes descargar e2fsprogs.
Ya con esto tienes un poderoso dispositivo en tus manos con gran espacio para hacer tu vida mas cómoda, como ejemplo puedes instalarle samba y compartir archivos, o instalar algún cliente web de torrent y que su AP se encargue de hacer estas descargas.

Ahora que ya sabemos como funciona esto, existe un método fácil e interesante que lo hace automáticamente, les dejo el enlace Auto extroot.