Archivo de la etiqueta: GNU/Linux

Debian etch-and-a-half released!

Hasta ahora, en ocasiones Debian Etch estaba demasiado ‘deprecated’ en algunos aspectos, como controldoras de disco etc…

Para tener últimos drivers con Debian Etch podíamos utilizar la Debian Etch Kmuto Build pero ahora se ha hecho oficial el proyecto Debian Etch-and-a-half, cuyo fín es básicamente el mismo: ofrecer una distribución estable como es Debian Etch, pero con soporte para nuevo hardware.

Podéis consultar más información y descargaros las imágenes de esta release aquí: http://www.debian.org/releases/etch/debian-installer/etchnhalf

HOWTO: Kernel optimizado para la Soekris Net4801

En el post anterior comentaba como instalar Debian en una placa Soekris. Pues bien, al terminar la instalkación se obtiene una Debian “tal cual” con Kernel 486, pero obviamente tiene cientos de cosas que no necesitamos en una placa tan pequeña, por lo que conviene instalarle un Kernel menos pesado y optimizado a los recursos que tiene.

Por suerte, alguien ya pensó en eso e hizo unos bonitos paquetes deb 🙂 Para instalar este Kernel optimizado solo tenéis que añadir lo siguiente a vuestro /etc/apt/sources.list


deb http://www.linuxvillage.ca/downloads/i386/net4801/ ./
deb-src http://www.linuxvillage.ca/downloads/i386/net4801/ ./

Y tras un apt-get update ya podréis instalar el propio kernel y los sources:

apt-get install linux-image-2.6.18-soekris4801 linux-source-2.6.18-soekris4801

Si queréis realizar alguna optimización más podéis consultar detalladamente la configuración del hardware aquí, y bajaros el .config del kernel aquí.

net4801_bc_01_open-200x200.jpg

HOWTO: Instalar Debian en una placa Soekris

Hace bastante que tengo una Soekris Net 4801: una placa con 3 tarjetas ethernet, 1 slot MiniPCI, 1 slot PCI, 1 slot para CF, procesador Geode a 266MHz y 128MB de RAM.

Hasta ahora había probado varias distros orientadas a esta placa, como m0n0wall, AskoziaPBX o AstLinux, pero yo tenía ganas de meterle “la distro”: Debian.

Teniendo en cuenta que la única forma de conectarse con la placa es mediante un puerto serie con cable null-modem, tenemos 2 posibilidades para instalar Debian:

  • Sacar la tarjeta CF e instalar Debian mediante Debootstrap en otro host.
  • Instalar Debian a través de NetBoot.

Yo me decanté por la segunda, que es “más hacker” 🙂 así que manos a la obra!

El Servidor TFTP

Para instalar Debian a través de NetBoot, necesitamos un servidor TFTP. atftp por ejemplo nos servirá:

apt-get install atftpd

Ahora descargamos los ficheros de netboot de aquí y los descomprimimos en /tftpboot. El link apunta al debian-installer unstable, ya que no conseguí instalarlo utilizando el de Etch.

Al descomprimir los ficheros de netboot, tendremos algo así:


drwxr-xr-x 3 root root 4,0K 2008-02-28 00:28 debian-installer
-rw-r--r-- 1 root root 6,1M 2008-02-28 00:28 netboot.tar.gz
lrwxrwxrwx 1 root root 32 2008-04-26 15:37 pxelinux.0 -> debian-installer/i386/pxelinux.0
lrwxrwxrwx 1 root root 57 2008-04-26 15:38 pxelinux.cfg -> /tftpboot/debian-installer/i386/pxelinux.cfg

Pero esto no esta preparado para la instalación por serie, así que hacemos lo siguiente:


rm /tftpboot/pxelinux.cfg
ln -s /tftpboot/debian-installer/i386/pxelinux.cfg.serial-9600 /tftpboot/pxelinux.cfg

Entonces nos quedará así el directorio:


drwxr-xr-x 3 root root 4,0K 2008-02-28 00:28 debian-installer
-rw-r--r-- 1 root root 6,1M 2008-02-28 00:28 netboot.tar.gz
lrwxrwxrwx 1 root root 32 2008-04-26 15:37 pxelinux.0 -> debian-installer/i386/pxelinux.0
lrwxrwxrwx 1 root root 57 2008-04-26 15:38 pxelinux.cfg -> /tftpboot/debian-installer/i386/pxelinux.cfg.serial-9600/

Ya tenemos el servidor TFTP listo!

El Servidor DHCP

En el servidor DHCP solo tenemos que incluir la siguiente sección, poniendo la MAC de nuestra Soekris:


host soekris {
hardware ethernet 00:00:24:xx:xx:xx ;
fixed-address 192.168.1.123 ;
filename "/tftpboot/pxelinux.0" ;
}

Ya tenemos todos los servicios necesarios listos, ahora a por la Soekris!

Instalando Debian en la Soekris

Para iniciar la instalación recomiendo tener la última versión de la BIOS de la placa antes de comenzar. Una vez tenemos esto, podemos utilizar minicom para conectarnos con la placa, a 9600 y sin control de errores por hadware o software.

Una vez conectados, arranzamos la placa, y pulsando CTRL+P entraremos al prompt de la BIOS. Ahí solo tenemos que teclear boot f0 y la placa arrancará por PXE y comenzará la instalación.

La instalación se realiza de manera normal, y al finalizar tendremos una Debian Lenny funcionando perfectamente en nuestra Soekris Net 4801.

Hasta aquí como instalar Debian, en sucesivos posts iré comentando como optimizar el sistema para esta placa, y alguna cosilla más 🙂

soekris1.png

soekris2.png

VirtualBox 1.5 con Seamless Mode

Una de las cosas que también me gusta bastante es la virtualización, y cuando vi que habían actualizado VirtualBox y le habían añadido seamless mode decidí actualizarme rápidamente para probarlo.

El resultado es impresionante, ventanas de Windows mezcladas con las mías de Debian 🙂 Como una imagen vale más que mil palabras, os pongo un screenshot para que lo veáis:

seamless.jpg

Web Oficial: http://www.virtualbox.org/ 

HOWTO + Review: chan_mobile

Hace ya tiempo que escribí un howto para utilizar chan_cellphone con Asterisk, pero como comenté hace poco, ya no es necesario parchear nada, ya que el nuevo chan_mobile viene incluido en la rama trunk de asterisk-addons.

En este post voy a comentar la manera de realizar la instalación, así como los resultados de las pruebas realizadas y una sección TODO, en la que indicaré pruebas que me gustaría realizar.

HOWTO

Lo primero que tenemos que hacer es preparar nuestra máquina para funcionar con los dispositivos bluetooth. Para ello, añadiremos los siguientes repositorios a nuestro fichero /etc/apt/sources.list:

#bluetooth
deb http://bluez.sourceforge.net/download/debian/ ./
deb-src http://bluez.sourceforge.net/download/debian/
./

A continuación, instalamos los paquetes necesarios:

apt-get install bluetooth bluez-utils libbluetooth2 libbluetooth2-dev

Una vez tenemos los paquetes necesarios instalados, configuramos el subsistema bluetooth editando el fichero /etc/bluetooth/hci.conf, dejándolo así:

options {
autoinit yes;
security auto;
pairing multi;
passkey “1234”;
}
device {
name “asteriskpbx”;
class 0x000100;
iscan enable; pscan enable;
lm accept;
lp rswitch,hold,sniff,park;
}

Reiniciamos el subsistema bluetooth:

#/etc/init.d/bluetooth restart

Para más información acerca de este fichero, podéis preguntarle al señor man. 🙂

Ya tenemos el subsistema bluetooth listo, ya podemos comenzar a instalar Asterisk. El chan_mobile solo esta disponible en la versión trunk de asterisk-addons, por lo que realizaremos una instalación de Asterisk bajándolo del servidor SVN:

#cd /usr/src
#svn co http://svn.digium.com/svn/zaptel/trunk zaptel-trunk
#cd zaptel-trunk
#./configure
#make && make install


#cd ..
#svn co http://svn.digium.com/svn/asterisk/trunk asterisk-trunk
#cd asterisk-trunk
#./configure
#make && make install

#cd ..
#svn co http://svn.digium.com/svn/asterisk-addons/trunk asterisk-adons-trunk
#cd asterisk-addons-trunk
#./configure
#make menuselect

Aquí nos aseguramos de que chan_mobile esta marcado, y acontinuación ejecutamos:

#make && make install && make samples

Ya tenemos Asterisk listo, comencemos la configuración del chan_mobile!

Lo primero que necesitamos saber es la dirección MAC del adaptador bluetooth que hemos conectado a nuestro servidor, que podemos obtener ejecutando:

#hcitool dev

Obtendremos una salida como esta:

asterisk-debian:/etc/asterisk# hcitool dev
Devices:
hci0 00:02:72:C9:6E:33

Ahora editamos el fichero mobile.conf y añadimos una sección con la configuración de nuestro adaptador:

[adapter]
id=bluekosa
address=00:02:72:C9:6E:33

Ya tenemos el adaptador “bluekosa” conectado, ahora tenemos que localizar el móvil. Para ello arrancamos Asterisk y desde el CLI ejecutamos:

*CLI>mobile search

Del resultado de la búsqueda, anotamos la MAC del dispositivo y el puerto que utiliza. A continuación paramos Asterisk y editamos otra vez el fichero mobile.conf y añadimos la sección correspondiente al teléfono:

[n70]
address=00:17:4B:13:71:CC
port=1
context=incoming-mobile
adapter=bluekosa

Ahora ejecutamos el siguiente comando, de manera que nuestro servidor sea visible. Después lo emparejamos con nuestro móvil, utilizando la contraseña que indicamos en el fichero /etc/bluetooth/hci.conf (passkey).

dbus-send --system --dest=org.bluez /org/bluez/hci0 org.bluez.Adapter.SetMode string:discoverable

Ya podemos arrancar Asterisk, y si todo ha ido bien, podremos ver algo parecido a esto:

scr1.jpg

Ya casi esta, solo nos queda configurar el dialplan para hacer y recibir llamadas con el móvil. Para recibir llamadas, creamos el contexto inoming-mobile que hemos especificado en el fichero mobile.conf, por ejemplo yo he realizado las pruebas así:

[incoming-mobile]
exten => s,1,Answer
exten => s,n,Playback(demo-congrats)
exten => s,n,Echo

De esta manera podemos comprobar tanto el envío como la recepción de audio. Para las llamadas salientes, podemos utilizar esta configuración:

exten => _0X.,1,Dial(Mobile/n70/${EXTEN:1})

Voila! Ya tenemos nuestro Asterisk con chan_mobile funcionando! 😀

Review

Las pruebas realizadas han sido sencillas, hacer y recibir llamadas con un softphone en un PC, a través del móvil que estaba encima de la mesa 🙂

Los resultados han sido muy buenos, la calidad era perfecta (he llamado a mi padre y ni se ha dado cuenta xD).

PERO PERO PERO, me he encontrado con una pequeña pega: al llamar a un teléfono fijo, no se detectaba el colgado. Esto al parecer es un pequeño bug, así que espero que se resuelva pronto. No obstante, las llamadas a móviles funcionan correctamente.

ToDo

Me hubiera gustado probar el envío y recepción de SMS, pero al hacer el scan con Asterisk, este me dice que no tengo esa posibilidad… no se si es por el adaptador o por el móvil, así que haré más pruebas…

También me hubiera gustado probar un manos libres bluetooth, y recibir con él llamadas, pero no tengo ninguno… A alguien le sobra uno? 🙂

Y hasta aquí hemos llegado, espero que os sirva y que disfrutéis tal y como yo lo he hecho haciendo pruebas y escribiendo estas líneas. Njoy! 😀

Una PBX empotrada con Asterisk y hardware libre!

A David Rowe un día se le ocurrió empezar a desarrollar hardware abierto para su uso con Asterisk. Tras muchas pruebas y prototipos, ya tiene una versión de producción de PBX empotrada.

Corre uCLinux y Asterisk, y posibilidad de acoplarle 4 módulos analógicos. Todo esto por un coste de alrededor a $450!!

Echadle un vistazo a proyecto, no tiene desperdicio! Hasta puso a su mujer a soldar! 🙂

http://www.rowetel.com/blog/?p=35

Hay algo mejor que el software libre? Si, el software libre acompañado de hardware libre! 😉

Unas fotos del “invento”:

ip04_case.jpg

ip04_rs232_daughter.png

Vía VentureVoIP

PD: A David Rowe ya le conocíamos, por OSLEC, el cancelador de eco Open Source.

HOWTO: Un servidor web ligero: Lighttpd + PHP5 + MySQL5

No se exactamente las ventajas/desventajas de Lighttpd frente a Apache, pero me decidí a probarlo al ver un vídeo sobre escalabilidad en el que uno de los creadores de YouTube comentaba que cambiaron Apache por Lighttpd.

Me decidí a probarlo, y puedo decir que para una web, un blog, etc… en PHP, el rendimiento ha resultado superior, con un menor consumo de recursos. Sin más dilación, vamos a instalarlo!

Primero descargamos todos los paquetes necesarios:

#apt-get install lighttpd php5-cgi php5-common php5-mysql mysql-server-5.0

Una vez hemos instalado los paquetes solo tenemos que modificar dos ficheros para habilitar el soporte de PHP en el servidor. Primero editamos el fichero /etc/php5/cgi/php.ini y añadimos la siguiente línea:

cgi.fix_pathinfo=1

A continuación modificamos el fichero /etc/lighttpd/lighttpd.conf:

Comprobad que se carga el módulo mod_fastcgi:

server.modules = (
“mod_access”,
“mod_alias”,
“mod_accesslog”,
“mod_compress”,
“mod_cgi”,
“mod_fastcgi”,
# “mod_rewrite”,
# “mod_redirect”,
# “mod_status”,
# “mod_evhost”,
# “mod_usertrack”,
# “mod_rrdtool”,
# “mod_webdav”,
# “mod_expire”,
# “mod_flv_streaming”,
# “mod_evasive”
)

Por último añadimos esto al final del fichero:

fastcgi.server = ( “.php” => ((“bin-path” => “/usr/bin/php5-cgi”,”socket” => “/tmp/php.socket”)))

Para finalizar, reiniciamos el servidor:

/etc/init.d/lighttpd force-reload

Si queremos comprobar que el servidor esta correctamente instalado, podemos colocar un fichero con el siguiente contenido en /var/www

<?php
phpinfo();
?>

Njoy! 😉

lighttpd_hosting.gif

De vuelta del e-Verano

En realidad volví el sábado, pero he andado algo liado y es ahora cuando me he podido sentar tranquilamente a plasmar mis impresiones sobre este evento.

La verdad es que fui un poco “a lo desconocido”, ya que nunca antes había ido a un evento ni siquiera parecido y además, nunca había dado un curso de Asterisk. Tras llegar a Sevilla (vía Valencia) me llevaron a la residencia donde nos alojábamos los ponentes y organizadores, y nada más llegar lo que vi fue mucha gente y mucha pizza, así que la cosa pintaba bien! 🙂

El curso fue muy bien (o eso creo) y mis impresiones fueron más que positivas, estaría encantado de repetir la experiencia!

La semana fue realmente agotadora, ya que dormíamos poco (Luis sobre todo desde que yo llegué 🙂 ) y frikeabamos mucho. La gente era simplemente impresionante, dominaba el buen rollo, y creo que no se me borró la sonrisa de la cara ninguno de los días.

Sin duda toda una experiencia para mi, no encuentro las palabras exactas para describirla, ya que fue impresionante, lástima que yo solo fuera una semana 🙁

Todo salió a pedir de boca y me fui a casa con la sensación de llevarme muchas amistades en el bolsillo, y de haber hecho las cosas bien.

No quiero finalizar esta chapa sin dar las gracias a la organización por haberme dado la oportunidad de  participar en este evento: MUCHAS GRACIAS A TODOS!!