lunes, 16 de mayo de 2011

USB en Fonera 2.0, con Openwrt 10.03

Bueno pues este fin de semana me he dedicada a darle algunas vueltas mas a la fonera, en este caso una Fonera 2.0 (mod.2202). El tema este de las foneras es algo que ya había andado bastante, pero en su día me "pelee" mas con la 2100. Aqui dejo la pagina que puse en su dia con info sobre esta y algun router mas

https://sites.google.com/site/lsdios/Home


Bien lo que vamos ha hacer por un lado darle capacidad extra de almacenamiento a la Fonera, y montar el sistema de archivos así como una partición swap para aumentar la RAM utilizando el puerto USB que trae la Fonera Para ello he utilizado una memora USB de 2Gb aunque se puede utilizar de cualquier otra capacidad, incluso un HD externo, siempre y cuando lo alimentemos de manera externa ya que el puerto USB de la Fonera no nos da suficiente tensión
Bien, lo primero sera flashear la Fonera con el firmware Openwrt Backfire 10.03.1 RC4 (yo lo he hecho con este que es el ultimo estable. Los archivos necesarios son estos:

http://downloads.openwrt.org/backfire/10.03.1-rc4/atheros/openwrt-atheros-root.squashfs

http://downloads.openwrt.org/backfire/10.03.1-rc4/atheros/openwrt-atheros-vmlinux.lzma

Para flashear la Fonera de manera sencilla se puede utilizar Fon Flash lo puedes descargar de aquí:

http://www.gargoyle-router.com/downloads/fon-flash/fon-flash-linux.tar.gz (version para Linux)
http://www.gargoyle-router.com/downloads/fon-flash/fon-flash-linux-64bit.tar.gz (version para Linux 64-bit
http://www.gargoyle-router.com/downloads/fon-flash/fon-flash-windows.zip (version para windows)

bien una vez tengamos la Fonera flasheada y con Openwrt corriendo en ello, conectamos la Fonera al router y a nuestro PC. Posiblemente tengamos que cambiar al configuración de la Fonera para que esta tenga acceso a internet. Si al configuración de nuestra red es del rango 192.168.1.x deberemos entrar en la Fonera bien sea por web o por telnet y cambiar al configuración de la red local a otro rango, como por ejemplo 192.168.10.x, asignándole a la Fonera la ip 192.168.10.1, para hacer esto si lo hacemos por web accederemos desde el navegador a la dirección 192.168.1.1, aparecerá la pantalla de login, como no hemos puesta contraseña dejaremos la contraseña en blanco y pulsaremos sobre "login". Una vez logeados vamos a network/general y cambiamos "IPv4-Address" de la sección Local network por 192.168.10.1.

Si prefieres hacerlo por terminal, accedemos a la Fonera por telnet:

telnet 192.168.1.1

y una vez que hallamos accedido, editaremos el archivos /etc/config/network y cambiamos "option 'ipaddr" de la sección "'interface' 'lan'" y nos debería quedar lo como sigue:

config 'interface' 'lan'
        option 'type' 'bridge'
        option 'proto' 'static'
        option 'netmask' '255.255.255.0'
        option 'ifname' 'eth0.1'
        option 'ipaddr' '192.168.10.1'

guaradamos y reiniciamos la red con

/etc/config/network restart

posiblemente deberemos de reiniciar también la conexión del PC o podemos desconectar y volver a conectar la Fonera

Una vez hecho esto entramos de nuevo en al Fonera por telnet y comprobamos que esta tenga acceso a internet, con un ping a google por ejemplo. Una vez comprobado que tenemos acceso a internet pasaremos a actualizar los repositorios e instalar los paquetes necesarios para utilizar el USB.

opkg update
opkg install kmod-usb2 kmod-usb-storage kmod-fs-ext2 kmod-fs-ext3 kmod-fs-vfat block-hotplug block-extroot

Una vez instalados los paquetes y sus dependencias, reiniciamos la Fonera y ya podemos pinchar el USB, pero antes lo preparamos creando 3 particiones en el USB de la siguiente manera

partición 1 -> fat32, y de 1,3Gb en mi caso, la utilizaremos para el directorio /home,
partición 2 -> ext3, de 300Mb, para el sistema
partición 3 -> swap, de 300mb, para área de intercambio, así aumentaremos la RAM de la Fonera

Con las particiones ya creadas y formateadas, lo pinchamos en la Fonera, y pasamos a montar la partición de sistema y copiar allí los archivos del mismo.


mount -t ext3 -o rw /dev/sda2 /mnt
mkdir /tmp/root
mount -o bind /rom /tmp/root
cp /tmp/root/* /mnt -a
umount /tmp/root
umount /mnt


Ahora vamos a editar el archivo /etc/config/fstab y editamos la sección mount y la dejamos como sigue (la ultima linea tendremos que añadirla)

config mount
option target /overlay
option device /dev/sda2
option fstype ext3
option options rw,sync
option enabled 1
option enabled_fsck 1
option is_rootfs 1

guardamos y antes de reiniciar cambiaremos el archivos /etc/banner, para diferenciar cuando se a iniciado desde la ROM interna o desde el USB, para ello escribiremos:

echo "Iniciado desde ROM interno" >> /etc/banner

y reiniciamos la Fonera

reboot & exit

deberemos reiniciar también la conexión de red del PC (desconectando y conectando el cable de red) ya que al iniciar ahora volveremos a tener la configuración estándar de Openwrt, así que como hemos hecho al principio para que pueda tener conexión a internet debemos cambiar la configuración de la red local y volver a reiniciar al Fonera
Para comprobar que el sistema de archivos esta montado desde el USB podemos utilizar el comando df -h nos debería de dar algo parecido a esto:

root@OpenWrt:/# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 1.6M      1.6M         0 100% /rom
tmpfs                    14.3M     48.0K     14.3M   0% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/sda2               288.6M     15.5M    258.2M   6% /overlay
mini_fo:/overlay          1.6M      1.6M         0 100% /

Ahora para poder montar la partición fat32 instalaremos los siguientes paquetes

opkg install kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1

ahora para que nos monte /dev/sda1 en /home probe a ponerlo en /etc/config/fstab pero no funciono y como el archivo /etc/fstab es solo un enlace decidi borrar dicho enlace y crear un archivo en lugar del enlace así que hice lo siguiente.

cd /etc
cat fstab > fstab.bak
rm fstab
mv fstab.bak fstab

luego editamos el archivo y le añadimos los parámetros para montar /dev/sda1 en /home, nos quedaría así:

/dev/sda2       /overlay        ext3    rw,sync 0       0
/dev/sda1       /home           vfat    rw,sync 0       0

guardamos los cambios y por ultimo hacemos que se monte al inicio, para ello:

echo "mount -a" >> /etc/init.d/done

y si no nos monta la partición de intercambio:

echo "swapon /dev/sda3" >> /etc/init.d/done

ahora reiniciamos la Fonera y cuando inicie montara todas las particiones del USB si este esta pinchado quedándonos así el sistema de archivos.

root@OpenWrt:/# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 1.6M      1.6M         0 100% /rom
tmpfs                    14.3M     44.0K     14.3M   0% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/sda2               288.6M     16.5M    257.2M   6% /overlay
mini_fo:/overlay          1.6M      1.6M         0 100% /
/dev/sda1                 1.3G      4.0K      1.3G   0% /home