martes, septiembre 11, 2007

1and1.es

Ya lo dije en un comentario de mi penúltimo post, pero por si alguien no leyó y para decir un par de cosillas mas sobre el voy a escribir este post.

Se trata de una oferta de un proveedor de hosting alemán que hace poco ha desembarcado en España. 1and1 como oferta de bienvenida da 2 años de hosting gratuito, te da un subdominio prácticamente imposible de recordar, 2 GB de espacio en el servidor, 20 GB de transferencia mensual, ftp, blogs, bases de datos mysql, ssh, email, etc. Los detalles podéis verlos aquí.

La oferta es solo para usuarios españoles y acaba el día 31 de octubre de este año. Os recomiendo que os registréis, no esta mal para probar creo que son muchas cosas las que ofrece de forma gratuita. Yo me leí toda la información, y el contrato, a mi me surgieron 2 dudas, que voy a poner aquí por si alguien las tiene también. Las solucioné contactando con la empresa.

La primera duda era sobre la transferencia mensual, en las pagina principal pone 20 GB, pero en las condiciones generales de 1and1 ponía 2 GB, la respuesta es que son 20 GB.

La otra duda era sobre que pasa si se consumen los 20 GB, la web da a entender que se deja seguir consumiendo y luego hay que abonar la diferencia a 0.49 €/GB. Tampoco es de esa forma, se bloquea la cuenta hasta el mes siguiente, a no ser que uno compre transferencia adicional, que es lo lógico, pero en la web se da a entender otra cosa.

Esas fueron las dos dudas que yo tuve tras leer el contrato y todo lo que ponía en la web sobre el Pack Bienvenida. En cuanto las aclaré me di de alta, al poco (pocos minutos) te llama por teléfono un contestador alemán (pero en español) y te pide un código de 4 cifras que te han dado cuando te registraste, lo pones y ya está, tu cuenta en el servidor se creará y enseguida recibirás un mail con los datos. Aproximadamente unas 2 horas después todo funcionará.

Yo ahora mismo no he hecho mucho, pensaba crear un blog para tener algo en el servidor, pero el dominio no hay quien lo recuerde y ahora mismo no tengo interés en contratar uno, así que lo tendré hay para lo que necesite, hoy por ejemplo he colgado ahí el SDK de OpenWrt y el código de amap-5.2.

Otra gran ventaja el el acceso ssh, por ejemplo subir archivos con ssh es mucho mas cómodo que cualquier otra cosa, tengo un servidor http en mi servidor y un puerto mapeado en el router, así que pongo lo que quiero ahí luego me conecto por ssh a mi cuenta en el servidor de 1and1 y con screen y wget lo dejo ahí trabajando, así no tengo que tener una ventana del navegador en el laptop esperando, como sucede entre otros muchos con google pages. Todavía no he probado la potencia de calculo del servidor pero es un dato curioso que me gustaría averiguar. Si me he planteado que velocidad alcanza la línea y para le he puesto a descargar un cd de debian, he probado con varios servidores, y la velocidad mas alta que he conseguido es 4.5 MB/s en 2 minutos se bajaba el cd! (luego paré y lo borré), creo que tiene que alcanzar bastante mas velocidad, si alguien conoce un servidor muy rápido que lo diga y hago la prueba.

También he pensado otro uso para esto, como ofrece ftp puedo usarlo como depósito de la fonera. Si no consigo acceder a mi cuenta en el centro tic puedo usarlo para guardar los logs, archivos, paquetes ipk, lo que sea...

En fin, una oferta muy recomendable, además por dos años!!

PD: Esta entrada no es patrocinada :(

Compilando para la fonera

Para conseguir mi objetivo con la fonera, (lo del modo monitor), necesito algunas herramientas que no existen como paquetes precompilados para la fonera, tengo que compilarlos yo. Realmente tampoco me he puesto muy en serio con el tema todavía y solo se me ha ocurrido una herramienta que compilar, se trata de amap, que averigua que servicio corre en cada puerto, nmap simplemente ve que puertos están abiertos, mira en su base de datos de puertos conocidos y te pone el servicio que debería ir ahí, por ejemplo, si tu tienes un ftp en el puerto 80 nmap te dirá que el puerto esta abierto, pero pondrá http, no ftp. Amap trabaja de otra manera, esta herramienta mira como responden los servicios que tras esos puertos y te dice que es lo que hay, incluso puede llegar a decirte el programa y su versión, no simplemente dice es un servidor ftp, puede que te diga que servidor es y su versión. Vamos una herramienta muy útil.

Recapitulando un poco, a mi me daba un error de ld al intentar compilar cualquier cosa, ya fuera compilación normal o compilación cruzada. Pregunté en un foro y me dijeron que tenía el ld de mi sistema y otro que había compilado yo (supongo que hice algo mal durante el lfs). Así que eliminé el que yo compile ya que no me valía para nada y ya funcionó, ahora si puedo compilar tanto de forma normal como cruzada. Aquí esta el hola mundo, que al fin funcionó:

# gcc test.c -o test
# ./test
¡Hola, mundo!

Ahora veamos como compilar nuestro hola mundo para que funcione en OpenWrt en mi fonera, luego veremos como compilar amap para la fonera. Lo primero que necesitamos es el toolchain (herramientas de desarrollo) de openwrt para nuestra arquitectura (de la maquina donde compilaremos), yo me bajé i686, también hay para x86_64. La versión para i686 ahora mismo no la encuentro en la web oficial, en su día me costo encontrar el enlace, así que la subo yo y si la queréis os la bajáis de aquí. Lo primero, como es lógico, es descomprimirlo, luego tenemos que añadir la ruta de los archivos para compilar al path. Dichos archivos se encuentran en OpenWrt-SDK-atheros-2.6-for-Linux-i686/staging_dir_mips/bin. Para hacerlo estando en el directorio donde descomprimimos, en mi caso /media/almacen/toolchain/, ejecutamos:

export PATH=`pwd`/OpenWrt-SDK-atheros-2.6-for-Linux-i686/staging_dir_mips/bin:$PATH

Ahora para comprobar que todo ha salido bien ejecutamos echo $PATH, en el resultado tiene que estar nuestro directorio:

/media/almacen/toolchain/OpenWrt-SDK-atheros-2.6-for-Linux-i686/staging_dir_mips/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Queda un poquito largo, no importa, mientras funcione. Ya podemos probar, compilando, por ejemplo nuestro hola mundo:

# mips-linux-gcc test.c -o test

Si ahora intentamos ejecutarlo, no podremos, eso es porque el ejecutable es para otra arquitectura:

# ./test
-bash: ./test: cannot execute binary file

Sin embargo si lo ejecutamos en la fonera la cosa cambiará, para pasarlo a la fonera hay varias maneras, yo suelo hacerlo mediante netcat o mediante http. Como tengo un servidor http en el server simplemente lo he copiado a /var/www (luego lo haremos con netcat). Luego en la fonera lo descargamos y ejecutamos:

# wget http://debian/test
# chmod +x test
# ./test
¡Hola, mundo!

Funciona! vale, ya sabemos como compilar cosas "sencillas", ahora vamos a intentar compilar algo se hace con el clásico ./configure... amap nos servirá. Lo primero es tener el código de amap, aquí nuevamente he perdido el enlace, así que os lo subo yo también, aquí. La forma normal de compilarlo es la normal de estos paquetes:

# tar -xzvf amap-5.2.tar.gz
# cd amap-5.2
# ./configure
# make
# make install

Con eso lo tenemos para usar en nuestra maquina local, que yo también lo he hecho porque es muy útil. Ahora veamos como hacemos para que se compile usando los archivos de nuestro SDK (Software Development Kit), es decir, para usar el compilador de la fonera. Me imagino que habrá distintas formas de hacer esto, investigaré un poco para ver cual es la mejor y mas cómoda. A me se me ocurren tres, una es modificar el configure, otra es modificar el Makefile y la última que no se si será posible: en alguna parte del sistema tiene que estar escrito que compilador se usa, si cambio esa configuración y en vez de gcc pongo mips-linux-gcc estaría todo solucionado. Yo he optado por modificar el (los) Makefile, porque en el configure no he encontrado donde hacer los cambios. He hecho esto:

# ./configure

Y después he modificado los dos Makefiles que hay. Si os fijáis hay uno en el directorio en el que estamos (amap-5.2/) y otro dentro de pcre-3.9/. En el primero de ellos solo he cambiado la variable CC, he puesto esto:

CC=mips-linux-uclibc-gcc

Y en el segundo he cambiado CC, RANLIB y STRIP, todos ellos hay que cambiarlos por los de la fonera:

CC = mips-linux-uclibc-gcc
RANLIB = mips-linux-uclibc-ranlib

STRIP = mips-linux-uclibc-strip

Puede que os preguntéis porque he cambiado esas variables, y que como vais a saber que variables cambiar cuando tengáis que compilar otro programa. Existe un conjunto de programas (binutils) que son el compilador, el linkador, etc. El compilador gcc de mi debian i386 no valdrá para la fonera, y tampoco valdrá el linkador ld de mi fonera en mi server. Entonces yo he mirado los nombres de las binutils de la fonera en OpenWrt-SDK-atheros-2.6-for-Linux-i686/staging_dir_mips/bin, y veo los nombres, por ejemplo: gcc, ar, as, c++, ld... De esta manera cuando yo en el Makefile vea gcc lo cambio por mips-linux-gcc, ar lo cambio por mips-linux-ar, etc. Estoy seguro de que debe existir algún método mejor, que intentaré averiguar, pero mientras no lo sepa esta es mi única solución.

Después de haber hecho los cambios precisos compilamos:

make

Si ahora intentamos ejecutar el archivo tampoco podremos, es para la fonera, no para un x86:

# ./amap
-bash: ./amap: cannot execute binary file

Sin embargo si lo pasamos a la fonera, esta vez con netcat, funcionará. Ejecutamos en el server:

# cat amap | nc fonera 9999

En la fonera:

# nc -l -p 9999 > amap

Y ya podemos darle permisos y ejecutarlo. De todas formas todavía no funcionara bien, porque para comprobar que servicio está en cada puerto compara la respuesta con una base de datos, también tiene que estar en la fonera. Supongo que sera cosa de añadirlo al directorio adecuado, todavía no lo he hecho, en cualquier caso pienso hacer un paquete ipk por cada programa que vaya a usar, seguiré trabajando con este hasta tenerlo todo listo. En cualquier caso, lo que me he interesa ya lo he conseguido: esta compilado.

Ahora buscaré un método mas cómodo, rápido y sencillo para hacer compilación cruzada, aprenderé a hacer paquetes ipk, y me pondré a programar el script que me haga un análisis de la red.

Ya estoy bien

Pues sí, al final me cansé de la venda y como no me dolía nada al intentar mover la mano, me quité la venda ayer. El mismo día que me llegó el pendrive (por fin!!!), luego os pondré una foto y os contaré lo que he hecho con él. También tengo que contaros como conseguí compilar para la fonera desde el server y como está ahora mismo la fonera (que ya queda poco para que empiece el curso, creo que es el 24). Ahora mismo no se me ocurren mas cosas, pero creo que hay algo mas que contar, ya irán saliendo los temas.

Por cierto el pendrive ya le he instalado switchblade y funciona, consigue muchísimos datos del pc, luego cuento los detalles.

jueves, septiembre 06, 2007

Comunicado

A partir de hoy y aproximadamente hasta dentro de una semana es muy probable que no escriba nada, porque tengo la mano izquierda inmovilizada (y soy zurdo). Una mala caída me ha dejado un dolor que me impedía mover el pulgar y el meñique, hoy fui al médico y no tengo nada roto, sin embargo estoy con la mano vendada y no puedo usarla para nada, además al mover los otros tres dedos también me molesta un poco. Por ello solo puedo escribir en el pc con la mano derecha y se tarda bastante más que con dos manos.

También os adelanto que ya he podido compilar para la fonera desde el server, pero no puedo contaros como, es largo y ahora no voy a escribirlo.

Nada más, espero mejorarme lo antes posible y poder seguir escribiendo por aquí.

miércoles, septiembre 05, 2007

No puedo compilar en el server

La última vez que compile en el servidor fue cuando estuve con el LFS, luego como sabéis conseguí reparar la fonera y me puse a trabajar con ella, ya que era mi principal objetivo. Como ya queda poco para que empiece el curso, porque no es en octubre como muchos creíamos, es sobre el 20 de este mes, tengo que preguntar cuando es exactamente, bueno que me voy del tema, como queda poco estoy preparando ya el ultimo experimento (lo del modo cliente), y quería compilar una herramienta para la fonera, se trata de amap, un paquete que averigua que servicio corre en cada puerto abierto (no, nmap no lo hace), antes de hacer la compilacion cruzada probé a compilarlo para mi servidor también, pero ejecuto el ./configure y me da este error:

# ./configure
loading cache ./config.cache
checking for a BSD compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... missing
checking for gcc... gcc
checking whether the C compiler (gcc ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.

Entonces, yo para comprobar que pasaba intenté compilar algo, porque ahí pone que gcc no puede crear ejecutables (WTF!), creé un fichero (test.c) que no es mas que un hola mundo y lo intenté compilar:

# gcc test.c -o test
/usr/local/bin/ld: opción `--hash-style=both' no reconocida
/usr/local/bin/ld: use la opción --help para información de modo de empleo
collect2: ld returned 1 exit status

No compila y la verdad es que no se que hacer, he googleado y no he encontrado nada, he buscado en todas partes pero no ha habido manera, así que he preguntado en un foro, esdebian.org, a ver si alguien puede ayudarme. Luego la idea sería hacer compilación cruzada y compilarlo con el toolchain de openwrt.

Mientras se soluciona ese contratiempo voy a seguir por otro frente, voy a configurar la red inalámbrica de mi otro router con wpa, y voy a intentar que la fonera se conecte a él, ya que la red wifi de mi instituto esta cifrada con wpa, aunque como ya he dicho en otras ocasiones tengo el fichero de configuración con la clave, así que no debería serme mayor problema.

Yo por último un comentario sobre el pendrive, hoy se cumplen las 48 horas, debería llegarme...

lunes, septiembre 03, 2007

Problemas con el portátil

Hoy el portátil me ha dado un buen susto, incluso pensé en abrirlo para intentar hacerle algo. Todo empezó ayer por la tarde, yo no estaba en mi casa, había ido a casa de un amigo para explicarle algunas cosas de matemáticas, que hoy tenía los famosos exámenes de septiembre. Volví a mi casa sobre las diez de la noche, cuando llegué fui a por el portátil lo enciendo y lo primero que sale al encenderse es una pantalla de Acer, en ese momento se puede acceder a la bios, el problema es que justo en ese momento, instantes después de pulsar el botón de encendido empezó a sonar un pitido, bueno mas que un pitido era un sonido tipo sirena por llamarlo de una forma, tono agudo, tono grave, tono agudo, tono grave, de forma indefinida. Y se quedaba bloqueado no podía hacer nada. Yo sabía que hay un código de pitidos que las bios usan para indicar si hay algún fallo, buscando vi que lo mio significaba sobrecalentamiento de la cpu, y quizás que el ventilador no funcionara. Lo comprobé y el ventilador funcionaba, sobrecalentamiento... no se notaba, el portátil al tacto no estaba caliente. Intenté reiniciando varias veces a ver si cambiaba algo... nada. Entonces mi hermano salta y me dice que antes iba a usar el portátil pero no pudo, que cuando lo encendió sonaba el pitido ese y que ya no hacía nada mas. Le dije que eso era por sobrecalentamiento, que si había hecho algo, me respondió que lo encendió la primera vez y lo dejo un buen rato ahí porque siguió estudiando (el también tenía examen). Mientras tanto lo había dejado puesto encima la maleta del portátil abierta y como que no es del todo rígida y yo diría que es de puro nylon, creo que todas las ranuras de ventilación que tiene en la base (el portátil) estaban tapadas, eso unido a que la batería estaba cargada entera y a que mi hermano lo dejo ahí hasta que se le gastó toda la batería... Vamos que por lo menos 2 horas teniendo las "tripas" como una verdadera sauna. Entonces yo pensé que a lo mejor necesitaba cierto tiempo para recuperarse, así que esperé, al final poco antes de acostarme, sobre las 12 de la noche, probé de nuevo y tampoco funcionaba, daba el mismo problema.

Hoy, cuando me he levantado, también pasaba lo mismo, así que primero me fui un rato al sobremesa y mas tarde volví de nuevo a por el portátil, no funcionaba! yo ya estaba dispuesto a abrirlo para ver si tenía polvo o si se habia quemado o algo por el estilo. Pero entonces se me ocurrió otra cosa, yo cuando enciendo el portátil no puedo entrar a la bios desde que pita, así que cambie de estrategia, encenderlo con F2 pulsado para entrar a la bios si se puede antes del pitido. Funcionó, conseguí entrar a la bios, y no había nada raro, sin embargo cambié una cosa, para ver si así funcionaría, la unidad de cd/dvd es la primera desde la que se arranca, luego desde el disco duro, etc. Puse primero el disco duro, reinicié y arrancó!! entonces reincié de nuevo puse las cosas como antes y siguió funcionando. Asunto acabado, ya funcionaba de nuevo el portátil.

Antes de acabar quiero comentar otra cosa, en los sobremesas me da igual porque si hay que arreglar algo lo haré yo mismo, sin embargo el portátil tendría que mandarlo al servicio técnico, por ello creo que voy a hacer una cosa que llevo procrastinando desde hace meses, crear al menos una partición cifrada en el portátil para guardar ahí mis cosas, porque la verdad no me hace ninguna gracia que mi portátil se estropeé un día, tenga que mandarlo al servicio técnico y que el técnico de turno pueda entretenerse viendo que tengo en el ordenador.

Otra cosa mas, el proyecto de la fonera en modo cliente sigue en pie, lo único que pasa es que quiero compilar algunos paquetes para la fonera, pero no puedo, el compilador gcc no compila da un error de ld, en otras palabras que con el lfs me he cargado la compilación normal en el server, tendré que revisar el manual de lfs y ver que he hecho para estropearme el sistema.

Y ya por último, acabo de ponerme en contacto con Alternate, para que me digan que pasa con mi pendrive, el que pedí el 19 de agosto. porque cuando lo pedí ponía 8-10 dias, ahora mismo pone 48h, y a mi no me ha llegado a 3 de septiembre. Les mandé un mail y a los pocos minutos me responden diciéndome que en 24 o 49 horas habré recibido el pedido, esperemos que sea verdad.

miércoles, agosto 29, 2007

Otra prueba de autonomía

Como ya conté en el último post tenía pensado hacer otra prueba con la fonera, ver la autonomía que tiene la fonera con el wifi a máximo rendimiento. Ya he hecho la prueba y la verdad es que el resultado no me ha decepcionado, está bastante bien. Al final os digo el tiempo...

Para hacer la prueba lo que se me ocurrió fue hacer que se conectara a mi red wifi, cosa que hizo perfectamente y luego desde el servidor enviarle una cantidad ingente de datos, suficiente como para que pudiera estar recibiendo datos por un período de 3 o 4 horas a 1 MB/s. Mientras, ejecutar un par de scripts iguales que el de la prueba anterior, uno sería exactamente igual, para hacer pings a la fonera vía ethernet, y el otro le cambiaría la ip para que ejecutara los pings vía wifi. Porque dos pings diferentes? pues la idea era comprobar con pings si la fonera estaba viva, pero entonces pensé que quizás el wifi podría tener un fallo puntual mientras la fonera seguir viva, y entonces mi script simplemente apuntaría la hora del fallo y se detendría, sin embargo si también ejecuto los pings via ethernet, si el wifi fallara en estos pings quedaría registrado como fallo y no como "muerte" de la fonera. No se si se lo he explicado bien, lo dig de otra manera, la fonera, para mi prueba va a estar conectada por wifi y por ethernet, por ello tendrá dos interfaces de red activas con dos ips diferentes, por ello si ejecuto pings a ambas ips y una no responde y la otra si, podemos deducir que se trata de un fallo puntual de esa interfaz, y no que se haya apagado la fonera.

Los scripts que controlan el tiempo ya los tenemos listos, solo los queda preparar el flujo de datos que hará que el wifi de la fonera no pare hasta que no se apague la fonera. Para esto tenía dos opciones, una crear un archivo muy grande para pasarselo a la fonera (o en su defecto idear un bucle con uno pequeño que se enviara constantemente) la otra opción era utilizar algún fichero grande que tuviera a mano. Yo dispongo en mi servidor de las imágenes de los tres DVDs de debian etch, que son de 4.4 GB, 4.4 GB y 4.3 GB. En total 13.1 GB, que teniendo en cuenta que la velocidad del wifi de la fonera no ha pasado de 1.1 MB/s en pruebas previas, dan para 3.39 horas. Sabiendo que sin wifi aguantó un poco mas de cuatro horas y que con el wifi aguantará menos creo que con esos datos tendré suficiente. Ahora ya la cuestión técnica, como le paso los datos a la fonera? pues of course, con netcat, lo instalo en un momento en la fonera mediante ipkg (no, por defecto no lo trae). Entonces le pongo las pilas a la fonera, pongo los dos scripts a funcionar y envío los datos, ejecutando el primer comando en la fonera y el segundo en el servidor:

nc -l -p 9999 > /dev/null
cat debian-40r0-i386-DVD-* | nc 192.168.0.11 9999

Hecho eso solo toca esperar a que la fonera se apague:

mié ago 29 17:33:04 CEST 2007
mié ago 29 20:09:09 CEST 2007

Lo que significa 2 horas 36 minutos, que para mi es bastante. Por ultimo señalar una curiosidad, realmente no esperaba que la fonera se apagara justo cuando cayera la red, de hecho cuando los pings no fueron respondidos, el led de red empezó a parpadear, luego se apagó, después el led de power empezó a brillar cada vez menos, hasta que 25 minutos mas tarde se apagó!! 25 minutos!!!

Nada mas, ahora solo me queda pensar el script que ejecutara la fonera para analizar la red del centro tic.

PD: La prueba como dije la hice con la fontenna conectada.