Búsqueda personalizada

29 mayo 2009

Configuración de servidor Dell PowerEdge 2900 III, bajo Debian

Aprovechando la configuración que tuve que realizar para un servidor del departamento de Geografía, presento aquí los pasos que seguí.

Eduardo Marín Izquierdo- Dpto. Geografía. Universidad de Alcalá de Henares

Introducción

El departamento de Geografía de la Universidad de Alcalá de Henares, para cubrir la necesidad de disponer de un servidor de datos/web, ha adquirido dos equipos Dell PowerEdge 2900 III.

Estos equipos vienen sin un sistema operativo preinstalado y, por tanto, debemos plantearnos qué solución elegir entre las diferentes opciones que se nos presentan.

Dell, como alternativa de configuración, puede preinstalar los siguientes sistemas operativos orientados a servidores:

  • Microsoft Windows Server 2003 Standard Edition y Enterprise Edition.
  • Microsoft Windows Small Business Server 2003, Standard Edition y Premium Edition.
  • Microsoft Windows Server 2003 Standard Edition y Enterprise x64 Edition.
  • Red Hat Enterprise Linux AS y ES (versiones 3 y 4) para Intel x64.
  • Red Hat Enterprise Linux AS y ES (versión 4) para Intel Extended Memory 64 Technology (Intel EM64T).
  • SUSE Linux Enterprise Server 9 para Intel EM64T.

Sin embargo, ya venga preinstalada u optemos por adquirir uno de estos paquetes, aun cuando algunas de ellas son distribuciones linux, son paquetes comerciales, y, por tanto, debemos adquirir licencia.

Como alternativa, y dado que nuestro sistema no va a soportar grandes cargas de trabajo, el número de conexiones también será reducido, y los niveles de configuración que podamos llevar serán limitados, podemos optar por una distribución linux como Debian, ya que el grado de seguridad que nos brinda y de flexibilidad son altos.


Protocolo de configuración

Los pasos que seguiremos para dejar operativo nuestro servidor como un servidor web, y de datos serán los siguientes:

  1. Configuración previa a la instalación del sistema operativo de la controladora RAID.
  2. Instalación del sistema operativo Debian 5.0 (11 de abril de 2009).
  3. Particionado de los discos virtuales (creados en el pto 1), dedicados al almacenamiento de los datos.
  4. Instalación de Webmin, servicio de administración del sistema remoto.
  5. Instalación del servidor de datos, bajo paquete Samba.
  6. Instalación del servidor Web (mysql + apache + php).

Preparando el equipo - RAID 5

Nuestro servidor viene preparado con una controladora RAID PERC5I/6I 3-8 HDD. Gracias a este controlador, nuestro sistema tendrá un soporte RAID transparente al sistema operativo, que nos permitirá elevar la consistencia del mismo hasta los niveles Raid que nosotros escojamos.




RAID (Redundant Array of Independent Disk), por definición, es un sistema de almacenamiento que utiliza múltiples discos sobre los cuales se distribuye o replican los datos. (más sobre RAID en wikipedia: http://es.wikipedia.org/wiki/RAID)

Por su conocida relación coste/integridad/rendimiento, hemos elegido el nivel RAID 5, que permite aprovechar hasta un 75% de espacio, con un alto rendimiento.

A continuación, detallamos los pasos necesarios para configurar la controladora RAID de nuestro servidor en un nivel RAID 5.

1. Configuración previa a la instalación del sistema operativo de la controladora RAID


Tras encender el equipo, estaremos atentos para pulsar las teclas CTRL + R cuando aparezca el siguiente mensaje:


Una vez dentro de la Utilidad de configuración Perc, veremos una pantalla similar a la siguiente:


De fábrica, (o de un estado anterior), tendremos una configuración determinada. En nuestro caso eliminaremos la configuración existente, y la adaptaremos a nuestras necesidades.

Para ello, basta con seleccionar la entrada en el árbol "Controller 0" y seleccionar "Clear Config":


En caso de que exista alguna configuración "foreign", también la eliminaremos, accediendo desde la pestaña pertinente (CTRL + N).

Con el sistema limpio, comenzamos a configurar nuestro RAID 5.

Volvemos a la única entrada que tendrá el árbol (Controller 0):


Desde este punto, creamos una nueva unidad virtual ("Create New VD"), que será uno de los discos duros que, más adelante, nuestro sistema operativo podrá ver.

El siguiente paso será seleccionar el nivel RAID que queremos establecer en este nuevo grupo de discos. En nuestro caso, tanto para el SO como para el disco de datos seleccionaremos el nivel RAID 5.


En este nivel, necesitamos utilizar, mínimo, tres discos duros. Para nuestro caso particular, dado que disponemos de 7 discos, seleccionaremos todos, formando así una unidad RAID con distribución de bits entre todos los disponibles.

Con todos los discos seleccionados, el siguiente dato a aportar será el tamaño de la unidad virtual. En nuestro caso, este disco será el que contenga el sistema operativo, así como futuras aplicaciones que queramos instalar. Nosotros estableceremos un tamaño de 50GB aprox. Además, damos un nombre al disco virtual (debian, p.ej.).



Esto originará la siguiente estructura en el árbol principal:


Posiblemente, y de forma automática, comience un proceso de comprobación de la consistencia de esta unidad virtual para, más adelante, comenzar la inicialización de la unidad. Para esta unidad, que tan sólo ocupa 50GB, este proceso es rápido (el de la comprobación de la consistencia), y podemos dejar que finalice sin problemas.

A continuación, y operando de la misma forma que la anterior unidad, crearemos la segunda y tercera, dedicadas a albergar los datos de trabajo en el sistema. (En un principio optamos por crear una única unidad de datos, pero más tarde, en Debian, por alguna razón, no es capaz de crear más de dos particiones de 2TB). Para ello, volvemos a crear una nueva unidad virtual ("Create New VD"), seleccionando de forma obligatoria RAID 5, y todos los discos disponibles. El tamaño de la segunda unidad será de 4TB, y de la tercera del resto del espacio sobrante. Tendremos en cuenta de que si estamos trabajando con más discos, y en Debian, intentaremos no crear unidades virtuales de más de 4TB. Así, etiquetaremos las dos unidades como "data1" y "data2".


En este punto, y al igual que con la anterior unidad virtual, puede iniciar el proceso de comprobación de consistencia. Para esta unidad este proceso es muy lento (días), y, dado que partimos de un sistema nuevo, podemos omitir este paso (para equipos con ciclo de trabajo ejecutado, es recomendable respetarlo). El paso que no debemos omitir será el de la inicialización de las unidades (que para el caso de la primera puede haberse completado, aunque para asegurarnos, no está de más volver a realizarlo). Para ello, y para cada unidad, seleccionamos la entrada en el árbol, y pulsando F2 - Operations, seleccionamos "Initialization -> Start Init.":


Nos debería quedar una estructura como la siguiente (con tres unidades virtuales en vez de 2):


Finalizamos así la configuración del sistema RAID, pulsando la tecla "ESC" y confirmando la salida.

Ahora tendremos dos unidades virtuales, una de 50GB para albergar nuestro SO y otra de 5,4 TB para los datos de trabajo.


2. Instalación del sistema operativo Debian 5.0 (11 de abril de 2009).

El siguiente paso será instalar como sistema operativo la versión 5.0 de Debian.

Para ello, partiendo del DVD 1 que habremos descargado desde la página oficial, reiniciaremos el sistema para su carga. Cuando nos pregunte por las opciones disponibles, seleccionaremos "Install":


El siguiente paso será seleccionar el lenguaje, país, y distribución de teclado.

Tras estos preliminares, posiblemente nos pregunte sobre un controlador o firmware comercial no libre que debe cargar desde un dispositivo externo (disquete o USB) llamado "bnx2-06-4.0.5.fw". Este archivo hace referencia a la controladora ethernet "Broadcom NetXtrem II", cuyos archivos no vienen incluidos en esta distribución de Debian. La descargaremos desde aquí (http://www.megaupload.com/?d=U496MTA8) y guardaremos el archivo en un disquete o usb (raíz). Cuando nos pida confirmación, confirmaremos que deseamos cargar el controlador:


Seleccionaremos como interfaz de red primaria una de las dos, (debemos asegurarnos de que tenemos conectada dicha interfaz a la red, pues más adelante necesitaremos descargar archivos de internet):


A continuación daremos nombre a nuestro equipo (debian p.ej.), y nos pedirá nombre de dominio (posiblemente lo detecte de forma automática). También nos preguntará por nuestra zona horaria, y el siguiente paso será el particionado de las unidades virtuales.

Para instalar debian, necesitamos montar toda la estructura de directorios en una partición adecuada al sistema linux. Para ello, y partiendo de la unidad virtual, crearemos dos particiones necesarias para el sistema.

Para ello, como método de particionado seleccionaremos la forma "manual":



A continuación seleccionamos la unidad adecuada (en nuestro caso, la de 50 GB - sda):


Cuando nos pregunte si deseamos crear una nueva tabla de particiones aceptaremos, y a continuación, seleccionando el espacio libre disponible, configuraremos nuestra primera partición.

En esta partición, albergaremos todo el sistema, y lo montaremos en "/". Tenemos que tener en cuenta que hay que dejar espacio suficiente para el área de intercambio (swap), aproximadamente 2GB:


Establecemos esta partición como "primaria" y la emplazamos al "Principio". Como punto de montaje nos aseguramos de que quede en / :


Terminamos de definir la partición y a continuación crearemos una nueva, con el espacio restante, como área de intercambio (swap).

Para ello, igual que antes, seleccionamos el espacio libre restante, establecemos el tamaño máximo existente, y en la configuración de la partición, seleccionando "utilizar como:", modificaremos para establecer la misma como "área de intercambio":



Automáticamente se establecen los parámetros adecuados para este tipo de partición, y tan sólo nos queda "Se ha terminado de definir la partición":


Saldremos del particionado, seleccionando "Finalizar el particionado y escribir los cambios en el disco":


Confirmaremos que deseamos escribir los cambios en el disco, y el proceso de instalación continuará.

El siguiente paso será introducir datos de administración (clave de superusuario, nombre de cuenta de usuario principal, clave de dicha cuenta y sus respectivas confirmaciones).

Por último, analizaremos la consistencia del dvd antes de la instalación, confirmaremos que deseamos utilizar réplica en red (configurando proxy en caso de que lo necesitemos), y, opcionalmente, confirmamos si deseamos enviar estadísticas del uso de Debian.

Como programas a instalar, y de momento, tan sólo seleccionaremos los que vienen por defecto ("Entorno de escritorio" y "Sistema estándar").

Después de confirmar la instalación del cargador de arranque Gurb, la instalación comenzará y, al cabo de unos minutos, cuando finalice, confirmamos que deseamos "continuar". Extraemos el dvd y reiniciaremos el equipo.

Nuestro sistema Debian estará listo para arrancar.

3. Particionado del disco virtual (creado en el pto 1), dedicado al almacenamiento de los datos.

El siguiente paso, una vez arrancado Debian y logueado correctamente, será configurar correctamente la unidad virtual que habíamos configurado en el paso 1 para albergar los datos. Esta partición, de unos 5,4TB, debe ser particionada y montada al arrancar debian. Para ello, lo primero que debemos hacer es configurar correctamente la tabla de particiones.

En "Terminal", introducimos:


debian:/home/becario# fdisk -l Disco /dev/sda: 53.6 GB, 53686960128 bytes 255 heads, 63 sectors/track, 6527 cylinders Units = cilindros of 16065 * 512 = 8225280 bytes Disk identifier: 0x000a7520 Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/sda1 1 6322 50781433+ 83 Linux /dev/sda2 6323 6527 1646662+ 82 Linux swap / Solaris Disco /dev/sdb: 4398.0 GB, 4398046248960 bytes 255 heads, 63 sectors/track, 534698 cylinders Units = cilindros of 16065 * 512 = 8225280 bytes Disk identifier: 0x000edf7c Disposit. Inicio Comienzo Fin Bloques Id Sistema Disco /dev/sdc: 1546.1 GB, 1546188619776 bytes 255 heads, 63 sectors/track, 187980 cylinders Units = cilindros of 16065 * 512 = 8225280 bytes Disk identifier: 0x000bb88a Disposit. Inicio Comienzo Fin Bloques Id Sistema


Podemos comprobar como, para la unidad virtual sda de 53,6GB existe una tabla de particiones que fue la que creamos al instalar Debian.

En cambio, para la unidad virtual sdb y sdc, no existe tabla alguna.

Para crear la tabla de particiones en sdb (recordemos que habíamos dado 4TB de espacio), haremos uso del editor de particiones gráfico (aunque puede usarse cfdisk o fdisk):

Añadimos dos particiones de tamaño máximo 2TB (2097152 MB). En este punto, tal vez pueda dar problemas la creación de particiones. En vez de crear las dos particiones del primer disco duro a la vez, podemos crear la primera, aplicar los cambios, y después crear la segunda.


Operamos de la misma forma con la segunda unidad virtual de datos, esta vez, particionando todo el espacio disponible (que en nuestro caso será menor que 2TB).



Ya tenemos la tabla de particiones para las dos unidades configuradas correctamente. El único paso que nos queda es configurar el montaje de esta nueva unidad de forma automática al arrancar el sistema.

Para ello, desde consola, creamos primero el directorio donde se montará esta partición, y después editamos fstab:


debian:sudo mkdir /mnt/data1
debian:sudo mkdir /mnt/data2
debian:sudo mkdir /mnt/data3
debian:sudo gedit /etc/fstab

Y en archivo fstab, añadimos al final la siguiente línea:

/dev/sdb1 /mnt/data1 ext3 rw,user,auto 0 1
/dev/sdb2 /mnt/data2 ext3 rw,user,auto 0 1
/dev/sdc1 /mnt/data3 ext3 rw,user,auto 0 1


4. Instalación de Webmin, servicio de administración del sistema remoto.

Para facilitar el acceso a la gestión del servidor de forma remota, y como apoyo al "escritorio remoto" que más tarde configuraremos, instalaremos el servicio de administración Webmin.

Para ello, desde consola, descargamos el paquete:

debian: sudo wget http://prdownloads.sourceforge.net/webadmin/webmin_1.450_all.deb

Instalamos las dependencias necesarias:

debian: sudo aptitude install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl

Y finalmente instalamos webmin:

debian: sudo dpkg --install webmin_1.450_all.deb

Finalmente, debemos cambiar la contraseña que, por defecto, establece webmin:

    debian: sudo /usr/share/webmin/changepass.pl /etc/webmin usuario mipassword

Podremos, entonces, acceder vía web (de forma local, o remota tras oportunas configuraciones), a la gestión del servidor:




5. Instalación del servidor de datos, bajo paquete Samba.

Bajo sistemas Windows, la forma de intercambiar archivos (dejando de lado servicios ftp, sftp o http) se lleva a cabo bajo las herramientas que éste ofrece para "compartir carpetas".

En linux, esta capacidad se puede conseguir gracias a diversas utilidades que nos ofrecen servidores como SAMBA.

Para ello, debemos instalar tanto SAMBA como dependencias necesarias para el correcto funcionamiento.

Desde consola:


debian: sudo aptitude update debian: sudo aptitude dist-upgrade debian: sudo aptitude install samba smbclient winbind krb5-doc krb5-user krb5-config

En este proceso de instalación, se nos preguntará sobre el nombre del grupo de trabajo donde queremos que aparezcan las carpetas compartidas. Si deseamos instalar la compatibilidad con servidores WINS (homólogo a DNS), confirmamos y continuamos.

Nos preguntará también sobre el nombre del servidor Kerberos, que será el que ofrezca capacidad de autenticación en las comunicaciones. Introduciremos un nombre en las dos peticiones que nos realice (en la segunda, por defecto tomará el primer nombre).

El siguiente paso será configurar SAMBA mediante su archivo de configuracion, y establecer algún directorio compartido. Para nuestro caso particular, en el que hemos montado el servidor de datos, principalmente, para este acometido, lo lógico es situar los directorios a compartir en las particiones para ese propósito, es decir, en las particiones "data1", "data2" o "data3".

Para ello, y como archivo de configuración de prueba:

debian: sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
debian: sudo gedit /etc/samba/smb.conf

[global]
workgroup = GEOGRAFIA
server string = %h server
obey pam restrictions = Yes
passdb backend = tdbsam
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
panic action = /usr/share/samba/panic-action %d

[homes]
comment = Home Directories
valid users = %S
create mask = 0700
directory mask = 0700
browseable = No

[printers]
comment = All Printers
path = /var/spool/samba
create mask = 0700
printable = Yes
browseable = No

[print$]
comment = Printer Drivers
path = /var/lib/samba/printers

[datos1]
path = /mnt/data1/datos1
read only = No
create mask = 0770
directory mask = 0770


En este archivo de configuración, que estará correctamente formado tras la instalación anterior, tan sólo hemos modificado el nombre del grupo de trabajo (por defecto se encontraba como "WORKGROUP"), y la sección final ([datos1]), relativa a una carpeta de prueba que vamos a compartir. Esta carpeta se encontrará en /mnt/data1/, tendrá permisos de lectura y escritura, y establecemos las máscaras de permisos para creación de archivos y directorios propios al usuario.

Comprobaremos que la sintáxis es correcta desde consola:


debian: sudo testparm

Una vez hecho esto, tan sólo nos quedaría crear un usuario de prueba, que podrá acceder al directorio "datos1" configurado en el paso anterior.

Para ello, primero debemos crearlo en el sistema:


debian: sudo adduser miusuario

Tras ingresar su contraseña y confirmación, así como posibles datos para este usuario, debemos crear el usuario para samba:

debian: sudo smbpasswd -a miusuario

Al igual que antes, insertamos de nuevo la misma contraseña anterior y confirmación.

Por último, crearemos el directorio datos1 en /mnt/data1 y cambiaremos permisos de escritura lectura y el propietario del mismo:

debian: sudo mkdir /mnt/data1/datos1
debian: sudo chmod 777 /mnt/data1/datos1
debian: sudo chown miusuario /mnt/data1/datos1

Finalmente, reiniciamos el servidor samba:

debian: sudo cd /etc/init.d
debian: sudo ./samba restart



Podremos, entonces, ver desde una máquina remota, el equipo y el directorio compartido tras identificarse correctamente como el usuario "miusuario".


6. Instalación del servidor Web (mysql + apache + php).

El último paso en nuestra configuración para el servidor PowerEdge, será la instalación del servidor Apache + Mysql + PHP (destinado, en principio, a albergar un sistema DRUPAL).

Desde consola, obtenemos los paquetes necesarios:

debian: apt-get install apache2
debian: apt-get install php5
debian: apt-get install php5-mysql
debian: apt-get install php5-gd
debian: apt-get install libapache2-mod-php5
debian: apt-get install mysql-server-5.0
debian: apt-get install mysql-client-5.0
debian: apt-get install phpmyadmin

La instalación es automática y tan sólo habrá que introducir la contraseña de administrador para mysql.

Comprobaremos que funciona correctamente nuestro servidor php. Para ello creamos en /var/www, un archivo info.php que contenga la siguiente línea:

<?php phpinfo(); ?>

Y después, desde navegador web, accedemos a http://localhost/info.php, donde debería aparecernos la configuración correcta del servidor.

24 enero 2009

Un nuevo descubrimiento - Spotify

Algo más de un año hablaba por aquí de una nueva página que venía, en cierta medida, a revolucionar la forma en la que se escuchaba la música, y, esta vez, de forma legal. Estábamos hablando de Deezer.

Hoy, y tras unos cuantos meses sin subir contenido nuevo al blog, aprovecho para hablar de una nueva herramienta de streaming musical.

Hoy hablamos de Spotify.

Tiene mucho que ver con Deezer. Se basa en la misma idea. Bien a través de publicidad o bien a través de cuentas premium (o de un día) podemos escuchar miles de canciones de forma legal. Pero la diferencia está en cómo la escuchamos.


Deezer se basaba en formato web, haciendo uso del navegador y plugin flash. Esto, a mi parecer, era una ventaja y un inconveniente. Ventaja pues accedes de forma casi instantánea a tu música desde cualquier punto, sólo con abrir el navegador. El inconveniente es que la implementación tiene algún fallo y recarga demasiado el navegador (hablamos de memoria ocupada). Además, el tratamiento en los cortes de audio dejaban KO la reproducción en la que estuvieras si tu conexión presentaba problemas.


Spotify, en cambio, se basa en un cliente independiente de tu navegador web. El control de estos fallos es más robusto, y permite retomar automáticamente la reproducción incluso en caídas de red. La fluidez en su ejecución también es visible, y las opciones que ahora mismo presenta, y presentará, le hace ganar puntos. Entre estas opciones, personalmente, señalo el hecho de que puedo usar mi mando remoto de la tarjeta Avermedia para controlar la reproducción de mis listas (Play, Stop, Fwd, Rwd, V+, V-, ...), algo que sería impensable con Deezer. Inconvenientes: hay cosas que todavía añoro de Deezer (compartir de forma fácil playlist, la SmartRadio, códigos para embeber reproductor en web...

En fin, os invito a que probéis Spotify.

02 noviembre 2008

Control Webcam 2.0

Documentación vigente en: http://eduardomarin.es/blog/entry/control-webcam-2-0

Hace algo más de un año que escribí este post donde explicaba cómo realizar el control de una cámara web instalada sobre dos servomotores.

Aquella implementación la realicé haciendo uso del router Linksys wrt54g, pero a través del sistema operativo que nos ofrecía openwrt.

Ahora, y tras algunas cuestiones que se le planteaban a Fernando, volví a retomar aquél proyecto y le apliqué las técnicas que nos ofrece AJAX, para mejorar el interfaz gráfico, además de cambiar el sistema embebido a dd-wrt.

De hecho, dd-wrt vino mucho antes, justo cuando quise usar el router como repetidor.

Entonces..., ¿qué ha cambiado. Qué ha mejorado?

Primeros pasos:

El primer paso, siempre que tengamos instalado dd-wrt (en mi caso v24-RC7), será instalar un servidor con soporte para PHP.

Nuestro router viene con un servicio servidor httpd que es el que nos muestra el contenido de las páginas de administración del mismo. No obstante, la configuración para soportar PHP puede ser algo compleja si lo comparamos con "thttpd".

Pero antes que todo esto, debemos pensar que nuestro router viene limitado en cuanto a memoria física. Si sóis de los que ya realizásteis el mod para añadir una tarjeta SD/mmc, o no tenéis miedo en realizarlo, entonces no habrá ningún problema.

Una vez instalada nuestra tarjeta SD, bajo la ventana de administración dd-wrt del router nos mostrará el espacio de tarjeta total y disponible:

Esto nos permitirá montar una partición dentro de la tarjeta que apunte a /jffs. Gracias a este nuevo directorio (y que en nuestro router es sólo de acceso a lectura), podremos instalar nuevos paquetes sin problemas. Y, hablando de instalar paquetes sin problemas, otro de los módulos que debemos instalar es optwrt, al estilo "ipkg", "ipkg-opt" nos permite buscar e instalar paquetes desde los repositorios de optwrt.

Manos a la obra (paso por paso):

1. Montamos nuestra nueva partición en la tarjeta SD:


mkdir /mmc/jffs
mount --bind /mmc/jffs /jffs


2. Instalamos optwrt:

mkdir /jffs/opt
mount -o bind /jffs/opt /opt
mkdir /jffs/tmp
cd /jffs/tmp
wget http://www.wlan-sat.com/boleo/optware/optware-install-ddwrt.sh
./optware-install-ddwrt.sh

Una vez tenemos instalado optware, bajo /opt/bin podremos encontrar "ipkg-opt", el instalador de paquetes de optware.

Así pues, como nuestro objetivo era montar el servidor http + php, instalaremos, por un lado php5 y por otro thttpd, que soporta php5.

Para ello:

cd /opt/bin
./ipkg-opt install php
./ipkg-opt install php-thttpd

Tendremos instalado nuestro servidor con soporte a php, pero debemos configurar el servidor indicando dónde queremos alojar nuestros archivos web.

En mi caso, los alojaré en /mmc/cgi-bin. Para ello, creamos la carpeta y configuramos el servidor:

mkdir /mmc/cgi-bin
vi /opt/etc/init.d/thttpd.conf

Este archivo de configuración del servidor contiene las siguientes líneas (en mi caso, donde el servidor escucha por el puerto 8080, manteniendo el puerto 80 para la ventana de administración del router)

dir=/mmc/cgi-bin
port=8080
user=root
nochroot
nosymlink
novhost
logfile=/opt/var/log/thttpd.log
# Please do not edit pidfile path at it is use to kill thttpd process during ini
pidfile=/opt/var/run/thttpd.pid

Finalmente, tan sólo queda poner en marcha el servidor. Pero debemos recordar una cosa, antes que el servidor "thttpd" estaba trabajando el servidor "httpd", y este entrará en conflicto si deseamos poner a escuchar el nuevo en el puerto 80. Este es un caso similar al mío. Yo tengo tres servidores. El primero (externo al router, y principal), escucha por el puerto 80. El servidor interno del router httpd (y que ofrece el servicio para la administración del router), quiero que escuche por el puerto 81 y, finalmente, el nuevo, "thttpd" con soporte a PHP, escuchará por el 8080. Así pues, debo matar al viejo, asignarle un nuevo puerto de escucha y arrancar, finalmente al nuevo:

killall httpd
cd /www
httpd -p 81 -h /www

cd /opt/etc/init.d/
./S80thttpd start

Cuando todo esto os funcione, algo muy importante, y que hará que no tengáis que iniciar manualmente los servicios ni la asignación de particiones a jffs y a opt, es añadir las siguientes líneas (a través de la ventana de administración del router (Administración -> Diagnóstico)), y grabar el arranque:

killall httpd
cd /www
httpd -p 81 -h /www

mount --bind /mmc/jffs /jffs
mount -o bind /jffs/opt /opt

cd /opt/etc/init.d/
./S80thttpd restart

Quedando esta ventana de la siguiente forma:


Probaremos entonces que nuestro servidor funciona correctamente, accediendo a través de la dirección del router IPdelrouter:8080. Debería salir una ventana como la siguiente:



Si ahora creamos un archivo (recordemos que nuestro directorio del servidor lo habíamos indicado en el archivo de configuración /opt/etc/thttpd.conf) para probar el funcionamiento PHP, por ejemplo, test.php, con el siguiente contenido:


<?php

$instr = "date";

$salida = exec($instr);

echo "Hoy es $salida";

?>



No debemos olvidar cambiar los permisos al archivo

chmod 744 test.php


Y ahora, con la webcam:

La idea del manejo de la webcam es exáctamente el mismo que en la versión anterior. Se hace uso del puerto serie que instalamos al router, se utiliza la misma codificación en arduino, pero lo único que estamos cambiando es la llamada a las funciones que envían el mensaje por el puerto serie. En la otra versión utilizábamos shell script. Ahora hacemos uso de PHP. La ventaja es que podemos utilizar las funciones de scriptaculous o prototype para añadir un toque AJAX, y así evitar los feos cortes que se veían en la página anterior.

Adjunto aquí el código de la página web (html, php, js) y aquí el código en arduino.

Cómo ha cambiado la versión (vídeos):

Versión 1.0:



Versión 2.0:

27 julio 2008

Linksys WRT54G como repetidor de 3COM

Hace ya bastante que no actualizo el blog. Los exámenes me mantuvieron ocupado, más tarde el trabajo, prácticas para septiembre, y el poco tiempo que me queda es para descansar.

Aún así, y dado que me costó un poquillo conseguir lo que aquí explicaré, publico este post por si alguna vez tuviera que repetir el proceso, y, además, pudiera servirle.

OBJETIVO: Hacer uso del router Linksys WRT54G como repetidor de un modem 3COM 3CRWDR100Y-72 (de los que daba YA.COM), y así ampliar la zona de cobertura de nuestra señal WIFI.

Debo decir que he intentado llevar a cabo la configuración que aquí se explica, y que configura una arquitectura WDS, pero no conseguí que funcionara.

Así pues, tras mucho trastear, conseguí una solución intermedia a la buscada. No se trata de WDS (creando bajo una misma SSID una red más grande), sino que creamos una nueva red, con su propia SSID, que se conecta a la red original del 3COM y nos permite rellenar una zona sin cobertura con esta nueva red. La idea sería la siguiente:

ARQUITECTURA:

REQUISITOS:
  • Router 3COM que será el que queramos repetir.
  • Router Linksys wrt54G que funcionará como repetidor del anterior.
  • Versión firmware para el Linksys wrt54G descargable aquí.
CONFIGURACIÓN DEL ROUTER 3COM:

En mi caso, el único cambio que realicé sobre el router "fuente" fue establecer el modo de seguridad (encriptación) mediante clave WEP de 128 bits.

CONFIGURACIÓN DEL ROUTER LINKSYS WRT54G:

Tras haber actualizado el firmware del router con la versión indicada, accederemos a la configuración del router a través de cable LAN (cualquiera de los puertos 1 - 4 LAN) a través de la dirección 192.168.1.1 en el navegador WEB.

Aparecerá entonces una pantalla como la siguiente:


En ese momento, al intentar acceder a alguna de las funciones, nos pedirá la clave y contraseña de acceso. Siendo usuario = root y contraseña = admin.

A continuación, asignamos una IP para nuestra nueva red. Así, en "Setup", en la pestaña "Setup Básico" (podéis configurar el idioma a Spanish en "Administración"), asignáis una IP para la nueva red, y establecéis el servidor DHCP para esta nueva red a "activo":



El siguiente paso es configurar el modo inalámbrico como repetidor. Así, en "Inalámbrico", sobre la pestaña "Config. Básica", establecemos el módo inalámbrico como "Repeater". El modo Wifi será el mismo que tengamos en el 3COM (en mi caso mixed= b + g). Y el nombre de red SSID, el que queramos repetir (es decir, el del 3COM). Después debemos añadir una nueva SSID virtual, que será la que nos aparecerá definida para nuestra nueva red. Así, le damos un nombre nuevo (repetidor, p.ej), y los parámetros por defecto:



En cuanto a la seguridad inalámbrica (encriptación), dado que, por un lado, el router LINKSYS se conecta al 3COM y, posiblemente tengamos habilitada la seguridad en éste (como es en mi caso), debemos configurar la clave de acceso para que pueda realizar la conexión. Según he leído en algún sitio, sólo funciona con claves tipo WEP Y WPA. Yo opto por WEP DE 128bits (26 hexadecimal). Además, si habilitáis también la seguridad para vuestra nueva red, también tendréis que añadir una clave. Como podéis ver en la siguiente imagen:



Por último sólo quedaría deshabilitar el firewall para que no de problemas (pues se supone que ya está configurado en el 3COM).

Y con todo esto, yo estoy disfrutando de internet en la piscina, justo al otro lado de la casa donde tenía el 3COM, ayudado de la FONTENA, XDD.

Espero que os haya servido a alguno.

Actualización

Fis2 me recordaba que, bajo esta solución, los recursos compartidos no están visibles entre equipos de las dos redes diferentes creadas. Es decir, los equipos de la red A sólo ven recursos y equipos de esa red, y los de la red B sólo ven lo que hay en la B.

Este problema debe ser alguna limitación de windows (o una configuración escondida que no soy capaz de encontrar).

Para resolver esto, y tener todos los recursos que existen en las dos redes seguimos los siguientes pasos:

1º. Comprobamos que realmente tenemos acceso al equipo de la otra red que contiene los recursos mediante un ping:


2º. Accedemos de forma manual al equipo o recurso, para que windows "recuerde" el nombre de todos los recursos que en él se comparten:


Veremos entonces los recursos compartidos.

Más fácil que el punto 3º. Una vez tenemos la ventana con los recursos que nos ha mostrado el punto anterior, vamos arrastrando a la ventana de "Mis sitios de red". Asi los tendremos en un instante!

3º. Vamos a "Mis sitios de red" y allí, en el icono de la izquierda "Agregar un sitio de red", tras hacer click un par de veces en "siguiente", seleccionando "Elija otra ubicación de red", introducimos la misma dirección que la anterior. Entonces veremos cómo windows ha "recordado" el nombre de los recursos. Iremos seleccionando cada uno de ellos hasta tener los deseados.


Finalmente se nos agregará el icono correspondiente en la zona "Internet", en vez de en "Local", como estamos acostumbrados.


31 mayo 2008

Somos lo que buscamos

Digamos que escribo esta entrada como quien visita a alguien por cumplir, y al rato dice eso de "bueno, me alegro mucho de veros, pero no me siento que tengo que ir a recoger unos papeles y me cierran".

El caso es que me he puesto un momento a buscar unas palabrillas en Google Trends, y al final me he dado cuenta de lo costumbristas que somos. Sí, sí, sino haced la prueba.

En primer lugar, para el que no sepa lo que es Google Trends, es una de tantas y tantas herramientas que tiene Google. Se encarga de mostrarte, mediante una gráfica, el número de veces que una palabra es buscada por los usuarios de forma histórica. Así, guardan estadísticas desde comienzos del 2004.

Gracias a esto, si nosotros buscamos estas 3 palabras: "google, yahoo, msn", podemos ver, de forma lógica, como han ido en aumento la cantidad de búsquedas que se hacen sobre ellas (dado que esa evolución es proporcional a la popularidad de la misma):



Pues bien, lo interesante es ver cómo evolucionan esas búsquedas y comprobar que, año tras año, el ser humano se comporta de la misma forma, y, de forma colectiva, se ve interesado por las mismas cosas y necesidades.

Véase unos ejemplos:

¿Necesitamos unas vacaciones?



¿Se acercan las compras de navidad (regalos)?



¿Toca esquí o toca playa?



Se acerca el buen tiempo, ¿nos compramos un chalet con jardin?



¿A estudiar? (Universidad, Uned, Selectividad, Colegio). Parece que va en declive...



Y ahora sigo con lo mío, que es lo que toca.

29 mayo 2008

Google Maps está bien, pero mejor está Google Earth

En la última conferencia sobre Google I/O se ha presentado un nuevo plug-in para los navegadores web que permiten visualizar Google Earth en el mismo.

Sin duda esto es un paso adelante, ya que Google ofrece un nuevo soporte para la generación de nuevos productos. Los desarrolladores verán satisfechas sus necesiades, pudiendo ofrecer un contenido más atractivo a los usuarios, aprovechando las ventajas virtuales que ofrecen las tres dimensiones:




Este es el resultado si no instaláis el plugin.



Por cierto, ahora que el Asus Eee deja de ser objeto exclusivo, y posiblemente os animéis a pillar aquí uno en España, decir que ejecuta esta Api de Google maravillosamente.

27 mayo 2008

Fases del estudio

Acabo de terminar un tema, paso al siguiente.
Aprovecho para ver correo.
Mañana, exámen.

La suma de estas tres circunstancias me recuerdan un correo muy gracioso que recibí hace tiempo, y que posiblemente se os pase por la cabeza ahora mismo la siguiente idea: "ah sí, yo también lo recibí, vaya novedad".

El caso es que me hizo mucha gracia.

Seguro que a wolo, que pronto me leerá tras la luz del RSS, se reirá.

En fin, esto es lo que me hizo gracia.

HISTORIA DEL CUATRIMESTRE UNIVERSITARIO

user posted image

En la primera semana:
user posted image

En la segunda semana
user posted image

Antes del examen semestral:
user posted image

Durante el examen semestral:
user posted image

Después del exámen semestral:
user posted image

Antes del examen final:
user posted image

Una vez que sabes la hora del examen final:

user posted image

7 días antes del examen final:

user posted image

6 días antes del examen final:

user posted image

5 días antes del examen final:

user posted image

4 días antes del examen final:
user posted image

3 días antes del examen final:
user posted image

2 días antes del examen final:
user posted image

1 días antes del examen final:

user posted image

Una noche antes del examen final:
user posted image

1 hora antes del examen final:
user posted image

Durante el examen final:
user posted image

Una vez que saliste del examen final:

user posted image

Después del examen final, en vacaciones:

user posted image

FELIZ FINAL DE CUATRIMESTRE !!

Ahora, a continuar.