Repositorio de Antonio Sanchez

14 December 2005

Webcam Benq DC1500 en Linux (Act)

Archivado en:

Bueno, este era uno de los dispositivos que se me resistian en GNU/Linux por ser vago pero esta tarde las décimas de fiebre del constipao que tengo me han hecho ponerme manos a la obra.

Después de un par de búsquedas en google me he topado con que existe un driver para el chip Sunplus que lleva mi camara. Podeis encontrar información aqui.

Lo primero que he hecho ha sido descargar la última versión de los controladores.

agoia:/home/antonio/descargas/# tar -xvzf spca5xx-20050419.tar.gz
agoia:/home/antonio/descargas/# cd spca5xx-20050419

Le echamos un vistazo a las instrucciones de instalación (less INSTALL) y nos damos cuenta de que nos hacen falta las fuentes del kernel para poder compilar el módulo de la cámara. Pues de camino actualizo al kernel 2.6.10 mi máquina:

agoia:~# apt-get install kernel-image-2.6.10-1-386 kernel-headers-2.6.10-1-386
agoia:~# lilo -v
agoia:~# sync
agoia:~# reboot

Ahora que hemos arrancado con el nuevo kernel ya estamos en disposicion de compilar el módulo.

agoia:/home/antonio/descargas/# cd spca5xx-20050419
agoia:/home/antonio/descargas/spcaview-20050419# make clean
agoia:/home/antonio/descargas/spcaview-20050419# make
agoia:/home/antonio/descargas/spcaview-20050419# make install

A mi me dio un error al hacer el make porque se me había olvidado instalar las librerias libsdl como bien dicen las instrucciones, cosa que resolví haciendo

agoia:/home/antonio/descargas/spcaview-20050419# apt-get install libsdl1.2-dev

y repitiendo los 3 pasos anteriores.

Bueno, ahora que ya tenemos compilado e instalado el modulo enchufamos la cámara en modo webcam al puerto usb y hacemos

agoia:~# lsmod | grep spca
spca5xx 277912 0
usbcore 107256 4 spca5xx,usbnet,uhci_hcd

y comprobamos que lo tenemos cargado.

Nos hace falta el programita spcaview que instalamos siquiendo las instrucciones que incluye sin problemas.

Para probar el funcionamiento hacemos

agoia:~# spcaview -t

si se nos abre una ventanita con la imagen de nuestra cámara de lujo, ya la tenemos lista para usarla con cualquier programita de videoconferencia como gnomemeeting.

A mi me dio un error que me decía que no se encontraba el dispositivo /dev/video0 que solucioné creando el dispositivo y cargando el modulo videodev.

agoia:~# modprobe videodev
agoia:~# mknod /dev/video0 c 81 0
agoia:~# chmod 666 /dev/video0
agoia:~# lsmod | grep spca
spca5xx 277912 0
videodev 9728 1 spca5xx
usbcore 107256 4 spca5xx,usbnet,uhci_hcd

Espero que le sirva de ayuda a los propietarios de una de estas camaritas.

Actualización

Hoy me ha dado por configurar la webcam en el portatil para ver si pruebo el futuro soporte de videoconferencia de gaim y vaya si ha cambiado el panorama desde la última vez que la instalé, ahora en mi debian sid sólo hay que hacer:

apt-get install spca5xx-source
m-a prepare
m-a a-i spca5xx
cd /usr/src
dpkg -i spca5xx-modules-2.6.12.6-05.deb

y al ejecutar el gnomemeeting veremos que la detecta a la primera. ¿Quien dijo que linux era complicado?

:wq

15 October 2005

Manual de Guadalinex 2004

Archivado en:

Ahora que está fraguándose la nueva versión de Guadalinex a partir de la recién estrenada Ubuntu “Breezy” encuentro en la red este excelente manual sobre Guadalinex2004 que se ha currado Daniel López Avellaneda. Recomendable 100% para todo usuario novel y no tan novel de GNU/Linux ya que muchas partes son extrapolables de Guadalinex a cualquier distribución.

Por cierto, no le encuentro ningún sentido a que la nueva versión de Guadalinex tenga el sufijo de 2005 cuando se empezará a instalar si no me equivoco en el 2006. Se ve que en Andalucía aún no hemos aprendido la lección magistral de marketing que nos ha dado el señor Puertas con su “XP” que no se hace viejo con la de años que tiene.

:wq

2 April 2005

Teclas multimedia útiles con lineak

Archivado en:

Lineak es un software que nos permite darle uso a esas teclas multimedia que traen los modernos teclados bajo GNU/Linux.

La instalación bajo Debian GNU/Linux es muy sencilla y basta con hacer

apt-get install lineakd

para ver la lista de teclados que están soportados ejecutamos

lineakd -l

en mi caso quiero configurar un teclado Logitech Cordless Desktop Pro con lo que veo en la lista anterior que el tipo es LTCDP.

Ahora vamos a generar un archivo de configuración para nuestro teclado que se situara en $HOME/.lineakd/lineakd.conf

lineakd -c LTCDP

Existen herramientas gráficas para configurar las funciones de las teclas pero yo he preferido editar el fichero de configuración a mano y asociar una función a cada tecla de la siguiente manera.

vim /home/antonio/.lineakd/lineakd.conf

CdromDevice = /dev/cdrom
Display_align = center
Display_color = 0aff00
Display_font = -adobe-helvetica-bold-r-normal-*-*-240-*-*-p-*-*-*
Display_hoffset = 0
Display_plugin = internal
Display_pos = bottom
Display_soffset = 1
Display_timeout = 3
Display_voffset = 50
KeyboardType = LTCDP
MixerDevice = /dev/mixer
RAWCommands =
Screensaver =
conffilename = /home/antonio/.lineak/lineakd.conf
keystate_capslock =
keystate_numlock =
keystate_scrolllock = 
	
Go = mozilla-firefox http://antoniosanchez.wpblogs.com
Internet = mozilla-firefox
Mail = mozilla-firefox http://www.gmail.com
Mute = EAK_MUTE
Next = xmms -f
Play|Pause = xmms --play-pause
Previous = xmms -r
Search = mozilla-firefox http://www.google.es
Sleep =
Stop = xmms -s
VendorHome =
VolumeDown = EAK_VOLDOWN
VolumeUp = EAK_VOLUP

Para lanzar el programa podemos incluirlo en algún archivo que se carge al inicio de sesión del entorno gráfico o bien como hago yo lanzarlo en segundo plano cada vez que lo necesito con

lineakd &

:wq

16 March 2005

Configuración de Bacula

Archivado en:

Bacula es un software libre para realizar copias de seguridad muy potente que apenas tiene nada que envidiar a sus equivalente en software propietario.

La instalación para debian GNU/Linux es muy sencilla y podeis encontrar un manual muy bueno en Libertonia.

En estos apuntes vamos a tratar de aclarar un poco como configurar el director de bácula que es el que se encarga de coordinar todo.

El archivo de configuración más importante de bacula es el bacula-dir.conf que normalmente se encuentra en /etc/bacula.

Este archivo puede llegar a ser monstruoso y cuesta ver que estamos haciendo si no lo tenemos bien ordenado. La directivas que podemos (y debemos) usar son las siguientes:

  • Director Esta directiva sirve para definir la clave de acceso de la consola al director y sólo puede existir una instancia de esta directiva.

Director {
Name = discovery-dir
DIRport = 9101
WorkingDirectory = "/var/lib/bacula"
Password = "tuclave"
PidDirectory = "/var/run/bacula"
QueryFile = "/etc/bacula/scripts/query.sql"
Maximum Concurrent Jobs = 1
Messages = Standard
}

  • Catalog Esta directiva sirve para fijar la información sobre qué base de datos se esta utilizando y sólo puede existir una instancia de esta directiva.

Catalog {
Name = MyCatalog
User = bacula
dbname = bacula
password = "tuclavedelabd"
}

  • Messages define como van a ser manejados los mensajes y a quien tienen que llegarles. También es única.

Tengo que pensarmelo todavía.

Estas tres directivas son independientes. Ahora veremos como se relacionan entre sí las 6 directivas que nos faltan.

  • Client define un puntero hacía un equipo del que queremos hacer copias de seguridad.
Client {
  Name = Animalito
  Address = animalito.dominio.completo
  Catalog = MyCatalog
  Password = \"tuclave\"
}
  • Storage define un puntero hacía un dispositivo encargado del albergar las copias.
Storage {
  Name = DAT72
  Address = becerrito.dominio.completo
  Password = \"tuclavedelstorage-fd\"
  Device = \"HP DAT 72\"     # el mismo que tengas puesto en el storage-fd
  Media Type = DAT72      # el mismo que el del storage-fd
}
  • Pool define una colección de cintas (o discos) sobre las que se hacen las copias. Se pueden definir varias colecciones para diferentes rotaciones.
Pool {
  Name = Default
  Pool Type = Backup
}
  • FileSet define los directorios que se van a copiar y cuales se van a excluir, por ejemplo el /var/www de todos los servidores web.
FileSet {
  Name = \"Full Set\"
  Include {
    Options {
      Compression=GZIP
      signature=SHA1
      Sparse = yes
    }
    File = @/etc/backup.list
  }
  Include {
     Options {
        wild = *.o
        Exclude = yes
     }
     File = /root/myfile
     File = /usr/lib/another_file
  }
}
  • Schedule define cuando se va a ejecutar un trabajo y el tipo de copia que se va a hacer … incremental, completa.
Schedule {
  Name = \"CicladoMensual\"
  Run = Level=Full Pool=Monthly 1st sun at 1:05
  Run = Level=Differential 2nd-5th sun at 1:05
  Run = Level=Incremental Pool=Daily mon-sat at 1:05
}
  • Estas últimas 5 directivas están relacionadas gracias a la directiva Job que define una colección de archivos (FileSet) para un cliente (Client) de acuerdo con una planificación de copias (Schedule) en un conjunto de cintas (Pool) de un determinado dispositivo (Storage).
Job {
  Name = \"BackupDeAnimalito\"
  Type = Backup
  Level = Incremental                 # default
  Client = Animalito
  FileSet=\"Full Set\"
  Storage = DAT72
  Pool = Default
  Schedule = \"CicladoMensual\"
  Messages = Standard
}

:wq

5 March 2005

Linux y Windows de la mano con Samba

Archivado en:

Se trata de que un equipo de mi red que corre Windows 2000 acceda de forma transparente a una partición Fat32 de mi equipo corriendo Debian GNU/Linux.

Lo primero que he hecho ha sido instalar Samba en mi debian.

apt-get install samba smbclient smbfs

Durante la instalación nos preguntaran el nombre del dominio o del grupo de trabajo, respondemos con el que queramos,

triana

Los clientes Windows más modernos se comunican con los servidores SMB utilizando contraseñas cifradas. Si elegimos usar contraseñas en texto plano tendremos que cambiar un parámetro en el registro de Windows asi que responderemos afirmativamente al uso cifrado de las contraseñas.

No modificaremos el smb.conf para usar la configuración WINS que proviene de DHCP.

Elegiremos ejecutar el servicio Samba smbd como demonio.

Respondemos afirmativamente a la pregunta de crear la base de dados de contraseñas /var/lib/samba/passdb.tdb.

Ahora creo en mi debian una cuenta de usuario para que mi padre pueda acceder a mi equipo.

#adduser papa

Y añado ese usuario a la lista de usuarios permitidos de samba

#smbpasswd -a papa

Ahora vamos a añadir el recurso que queremos compartir al archivo de configuración /etc/samba/smb.conf añadiendo al final del archivo

# Compartiendo la particion de Datos
[datos]
comment = Datos en el PC de Antonio
writable = no
locking = no
path = /mnt/Datos
public = yes

Una vez hecho esto vamos a ver si efectivamente todo esta funcionando

smbclient -L localhost -U papa

y obtendremos los recursos que se estan compartiendo en nuestro equipo


Domain=[TRIANA] OS=[Unix] Server=[Samba 3.0.10-Debian]

Sharename Type Comment
print$ Disk Printer Drivers
datos Disk Datos en el PC de Antonio
IPC$ IPC IPC Service (agoia server (Samba 3.0.10-Debian))
ADMIN$ IPC IPC Service (agoia server (Samba 3.0.10-Debian))

Ahora solo tendremos que irnos a Mis Sitios de Red en el sistema operativo de las siete letras y acceder con el usuario papa y su contraseña al contenido de mi particion de datos.

Listo, asi pueden escuchar la música sin tenerla duplicada en otra máquina, por ejemplo.

:wq

4 March 2005

Transformar PNG a GD2

Archivado en:

El paquete debian que contiene la herramienta para transformar una imagen en formato PNG a formato GD2 es libgd-tools

apt-get install libgd-tools

La sintaxis de la herramienta en cuestion es pngtogd2 filename.png filename.gd2 cs fmt

pngtogd2 sevilla.png sevilla.gd2 1 1

:wq

27 January 2005

Dive into Python

Archivado en:

Justo cuando no puedo leer me entero que acaba de ser traducido el libro Dive into Python al español. Ya lo tengo en pdf y no puedo seguir leyendo…

… y no es porque se me haya acabado el texto de la tarjeta como en el Un, Dos, Tres sino porque tengo examen dentro de poco y las pocas horas que tengo libres al día las tengo que invertir en ello. Que coraje. Seguro que cuando termine los examenes ya no tengo ganas de leer, que le vamos a hacer, lo dejo en el escritorio para acordarme.

:wq

19 January 2005

Compilar un kernel a la antigua usanza

Archivado en:

En estos apuntes pretendo esquematizar los pasos que hay que dar para compilar el nucleo de un sistema GNU/Linux a la antigua usanza, esto es, sin terminar paquetizando el kernel para ninguna distribución.

El primer paso que hay que dar es descargar de kernel.org la última versión (o la que preferais) de la rama estable 2.x.y siendo x un número par e y el mayor número disponible.

Yo voy a utilizar la última versión a día de hoy que es la 2.6.10.

Lo primero que tenemos que hacer es mover el archivo descargado al directorio estándar de facto para albergar el núcleo.

mv linux-2.6.10.tar.bz2 /usr/src

Nos situamos en dicho directorio y descomprimimos y desempaquetamos el archivo.

cd /usr/src
tar -xvjf linux-2.6.10.tar.bz2

Donde la x significa extraer, la v sirve para ver los archivos que se están extrayendo, la f sirve para mantener los permisos de los archivos y la j, a la cual no le veo ninguna relación con bunzip2 es para idicarle que el archivo esta comprimido con esa herramienta.

Ahora para ser ordenados borramos el archivo comprimido para no ir dejando na por medio y entramos en el directorio que acaba de aparecer.

rm -f linux-2.6.10.tar.bz2
cd linux-2.6.10

Para limpiar restos que hayan podido quedar de una compilación anterior y asegurarnos que las fuentes están limpias pasamos el mister prope

make mrproper
make clean

Y seguidamente vamos a configurar los parámetros del kernel con la interfaz que más coraje nos dé, en modo texto,

make config

o utilizando las librerias ncurses en consola,

make menuconfig

o bien bajo nuestras amadas X escribiendo

make xconfig

Yo prefiero usar la consola (make menuconfig) para seleccionar los modulos para lo que tengo que instalar las librerias de desarrollo de ncurses. En mi amada debian (apt-get install libncurses5-dev).

Después de un rato configurando las opciones que quiero que lleve incluidas o como módulo mi kernel, entre las que me interesaban especialmente el V4L y el soporte para todo tipo de dispositivos usb de distintas velocidades EHCI/OHCI/UHCI, pulsamos Esc repetidas veces hasta que se nos pregunta si queremos salvar la configuración del kernel a lo que respondemos afirmativamente.

Ya queda poco, ahora vamos a compilar el kernel, tiempo para ir a cambiarle el agua al canario o a tomarse un vasito de agua a la cocina tras lanzar los siguientes comandos:

make dep
make modules
make modules_install
make bzImage

o bien de tiron:

make dep && make modules && make modules_install && make bzImage

donde make dep crea un archivo .depend con las indicaciones para las herramientas de compilación, make modules se encarga de compilar los modulos que no son más que ficheros objeto .o de C que se enlazan dentro del kernel cuando tiras de ellos, make modules_install se encarga de poner los modulos en el directorio /lib/modules/2.6.10.

Ahora después de un ratillo tenemos que copiar el kernel que se ha generado en /usr/src/linux-2.6.10/arch/i386/boot/bzImage en /boot

cp /usr/src/linux-2.6.10/arch/i386/boot/bzImage /boot/vmlinuz-2.6.10

Y también hacemos un enlace en el /

ln /boot/vmlinuz-2.6.10 /vmlinuz-2.6.10

Ya lo único que nos queda es configurar nuestro cargador de arranque preferido para que podamos seleccionar dicho nucleo.

En mi caso en el lilo pongo una entrada


image=/vmlinuz-2.6.10
label=Linux
read-only
restricted
alias=1

ejecuto /sbin/lilo, reinicio y cruzo los dedos.

Como podeis comprobar no soy ningún gurú compilando nucleos, estos pasos se han recopilado de algunos “joutus” que hay por la red, cualquier sugerencia de mejora será acogida con mucha alegría.

:wq