Mostrando entradas con la etiqueta Debian. Mostrar todas las entradas
Mostrando entradas con la etiqueta Debian. Mostrar todas las entradas

domingo, 3 de febrero de 2019

Creación de un disco USB para la instalacción de Debian GNU / Linux en un portatil MacBook 2,1 de 2006

Los pasos para la creación del disco USB están basados en la información encontrada en el siguiente enlace:

Installing Debian Jessie on a "pure UEFI" system

Y son los siguientes:

root@miequipo:~# fdisk /dev/sdb

Orden (m para obtener ayuda): n
Número de partición (1-128, valor predeterminado 1):
Primer sector (34-1986526, valor predeterminado 2048):
Último sector, +sectores o +tamaño{K,M,G,T,P} (2048-1986526, valor predeterminado 1986526): +100M

Crea una nueva partición 1 de tipo 'Linux filesystem' y de tamaño 100 MiB.

Orden (m para obtener ayuda): t
Se ha seleccionado la partición 1
Tipo de partición (teclee L para ver todos los tipos): 1
Se ha cambiado el tipo de la partición 'Linux filesystem' a 'EFI System'.

Orden (m para obtener ayuda): p
Disco /dev/sdb: 970 MiB, 1017118720 bytes, 1986560 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: gpt
Identificador del disco: CCE5296A-D7FD-4271-B116-45E811B635ED

Device     Start    End Sectors  Size Type
/dev/sdb1   2048 206847  204800  100M EFI System


Orden (m para obtener ayuda): w
Se ha modificado la tabla de particiones.
Llamando a ioctl() para volver a leer la tabla de particiones.
Se están sincronizando los discos.

root@miepia:~# mkfs.fat /dev/sdb1 
mkfs.fat 3.0.27 (2014-11-12)
root@miepia:~# fdisk -l       

Disco /dev/sdb: 970 MiB, 1017118720 bytes, 1986560 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: gpt
Identificador del disco: CCE5296A-D7FD-4271-B116-45E811B635ED

Device     Start    End Sectors  Size Type
/dev/sdb1   2048 206847  204800  100M EFI System

root@miequipo:~# pmount sdb1
root@miequipo:~# mkdir /media/sdb1/EFI/debian
root@miequipo:~# wget -O /media/sdb1/EFI/debian/linux http://ftp.fr.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux
--2019-02-03 21:15:55--  http://ftp.fr.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux
Resolviendo ftp.fr.debian.org (ftp.fr.debian.org)... 212.27.32.66, 2a01:e0c:1:1598::2
Conectando con ftp.fr.debian.org (ftp.fr.debian.org)[212.27.32.66]:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 4232992 (4,0M)
Grabando a: “/media/sdb1/EFI/debian/linux”

/media/sdb1/EFI/debian/linux                 100%[================================================================================================>]   4,04M  4,81MB/s   en 0,8s   

2019-02-03 21:15:56 (4,81 MB/s) - “/media/sdb1/EFI/debian/linux” guardado [4232992/4232992]
root@miequipo:~# wget -O /media/sdb1/EFI/debian/initrd.gz http://ftp.fr.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz
--2019-02-03 21:17:24--  http://ftp.fr.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz
Resolviendo ftp.fr.debian.org (ftp.fr.debian.org)... 212.27.32.66, 2a01:e0c:1:1598::2
Conectando con ftp.fr.debian.org (ftp.fr.debian.org)[212.27.32.66]:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 24774665 (24M) [application/x-gzip]
Grabando a: “/media/sdb1/EFI/debian/initrd.gz”

/media/sdb1/EFI/debian/initrd.gz             100%[================================================================================================>]  23,63M  6,15MB/s   en 4,2s   

2019-02-03 21:17:29 (5,67 MB/s) - “/media/sdb1/EFI/debian/initrd.gz” guardado [24774665/24774665]
root@miequipo:~# cat << EOF > /media/sdb1/boot/grub/grub.cfg
menuentry "Jessie Installer" {
insmod part_msdos
insmod ext2
insmod part_gpt
insmod fat
insmod gzio
echo  'Loading Linux kernel'
linux /EFI/debian/linux --- console=ttyS0,115200
echo 'Loading InitRD'
initrd /EFI/debian/initrd.gz
}
EOF
Y estaría creado el disco con el que podremos arrancar la instalación.

viernes, 14 de febrero de 2014

Configuración Mando a Distancia en Debian GNU / Linux



Después de actualizar mi media center a Debian Wheezy, lo único que me ha dado problemas es el mando a distancia. De repente parece que solo funcionan algunas teclas :-(

Después de investigar, parece que a partir de la versión 2.6.32 del kernel, han incluido los mandos a distancia para que se detecten como un dispositivo de entrada cualquiera. Con lo que sin ninguna configuración adicional funcionan como si fueran un teclado.

A primera vista esto puede estar muy bien, pero a mi me interesa seguir usando Lirc, ya que me permite hacer la correspondencia de teclas del mando a distancia de forma más personalizada, según el programa que esté usando. Además, como he dicho antes, parece ser que este mando no tiene mapeadas correctamente todas las teclas, y necesitaría realizar cierta configuración con el comando "ir-keytable".

A continuación, a modo de referencia, pongo los pasos a seguir para configurar un mando a distancia desde cero. El mando a distancia a configurar es el modelo "RM-FP" de Avermedia:
Aunque con un poco de trampa, porque lo que utilizo es un mando a distancia universal, programado para que pueda controlar la televisión y el media center.
El mando a distancia universal que uso es el modelo "Essence 4 (URC-7140)" de One For All:
Este mando universal permite copiar los códigos que envía el mando original mediante su función de aprendizaje. Con lo que, aunque no era compatible con el mando de Avermedia, he podido grabar el código de cada tecla, y así sustituirlo con el mando universal.

El primer paso es configurar el fichero "/etc/lirc/hardware.conf". Para ello se debe buscar en que dispositivo se ha referencia el mando a distancia. Para ello ejecutamos el siguiente comando:

cat /proc/bus/input/devices

Ahora podemos buscar el dispositivo dentro del directorio "/dev/input". En mi caso el fichero de configuración queda como sigue:

# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS=""

#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD=false

#Don't start irexec, even if a good config file seems to exist.
#START_IREXEC=false

#Try to load appropriate kernel modules
LOAD_MODULES=true

# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="devinput"
# usually /dev/lirc0 is the correct setting for systems using udev
DEVICE="/dev/input/by-path/pci-0000:00:04.1-usb-0:6-event-ir"
MODULES=""

# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""

Para crear el fichero "lircd.conf" para nuestro mando a distancia copiamos el fichero de configuración genérico y reiniciamos el servicio, con el siguiente comando:

cp /usr/share/lirc/remotes/devinput/lircd.conf.devinput /etc/lirc/lircd.conf
/etc/init.d/lirc restart

Ahora, con el siguiente comando se deberían poder ver los códigos que genera el mando a distancia con cada tecla:

irw

Es posible que algunas teclas no muestren ningún código. Aquí es donde entra en juego el comando "ir-keytable". Al ejecutarlo nos debería mostrar la información del mando a distancia. Por ejemplo:

Found /sys/class/rc/rc0/ (/dev/input/event3) with:
    Driver af9015, table rc-avermedia-m135a
    Supported protocols: NEC
    Enabled protocols: NEC
    Repeat delay = 500 ms, repeat period = 125 ms

Con estos datos, podemos usar este mismo comando para ver los códigos que genera cada botón del mando a distancia, al estilo del comando "irw", pero con la diferencia que debería mostrar el código de todas las teclas que pulsemos. Debemos ejecutar lo siguiente:

ir-keytable -s rc0 -t

A su vez, si no aparecen los códigos de las teclas del mando pulsadas, puede ser que haya un programa capturando las teclas de Lirc, o que el servidor de X Windows esté usando el mando a distancia como dispositivo de entrada estándar, e impida que lleguen los códigos al comando "ir-keytable". Puedes comprobarlo parando Lirc con el siguiente comando:

/etc/init.d/lirc stop

Si ahora funciona se puede seguir con la configuración del mando. Si no se puede probar a parar las X:

/etc/init.d/kdm stop

Y si ahora sí funciona el comando "ir-keytable" debemos añadir lo siguiente al fichero de la ruta "/usr/share/X11/xorg.conf.d/10-evdev.conf":

Section "InputClass"
    Identifier "IR-receiver inside an USB DVB receiver"
    MatchProduct "IR-receiver inside an USB DVB receiver"
    MatchIsKeyboard "true"
    Option "Ignore" "true"
EndSection

El identificador del mando hay que bucarlo ejecutando el siguiente comando:

cat /proc/bus/input/devices

Ahora podemos arrancar de nuevo las X y ver que el comando "ir-keytable" funciona:

/etc/init.d/kdm start

El siguiente paso es el más importante, que consiste en modificar la tabla de correspondencia de teclas que tiene configurado el kernel. En mi caso está en el fichero "/lib/udev/rc_keymaps/avermedia_m135a".

Para adaptar adecuadamente este fichero al mando a distancia en concreto, se debe ir viendo el código asociado a cada tecla. Para lo que se puede usar el siguiente comando:

ir-keytable -s rc0 -t

Una vez editado el fichero, para que los cambios surtan efecto en caliente, hay que ejecutar los siguientes comandos.

ir-keytable -c
ir-keytable -w /etc/rc_keymaps/rc0_avermedia

La siguiente vez que se reinicie la máquina, la nueva tabla de códigos del mando a distancia se cargará automáticamente.

El contenido final del fichero "/lib/udev/rc_keymaps/avermedia_m135a" es el siguiente:

0x0205 KEY_1
0x0206 KEY_2
0x0207 KEY_3
0x0209 KEY_4
0x020a KEY_5
0x020b KEY_6
0x020d KEY_7
0x020e KEY_8
0x020f KEY_9
0x0211 KEY_0
0x0213 KEY_PREVIOUS
0x0204 KEY_EPG
0x0215 KEY_MENU
0x0212 KEY_SCREEN
0x021e KEY_LEFT
0x021f KEY_RIGHT
0x0303 KEY_UP
0x0302 KEY_DOWN
0x020c KEY_OK
0x0201 KEY_EXIT
0x0210 KEY_INFO
0x021d KEY_REWIND
0x0218 KEY_PLAY
0x021a KEY_PAUSE
0x021c KEY_FORWARD
0x021d KEY_REWIND
0x021b KEY_STOP
0x0219 KEY_RECORD
0x021c KEY_FORWARD


Fichero de configuración para XBMC ubicado en la ruta $HOME/.xbmc/userdata/Lircmap.xml

<lircmap>
        <remote device="/etc/lirc/lircd.conf">

                <reverse>KEY_REWIND</reverse>
                <play>KEY_PLAY</play>
                <pause>KEY_PAUSE</pause>
                <forward>KEY_FORWARD</forward>
                <stop>KEY_STOP</stop>
                <record>KEY_RECORD</record>

                <left>KEY_LEFT</left>
                <right>KEY_RIGHT</right>
                <up>KEY_UP</up>
                <down>KEY_DOWN</down>
                <select>KEY_OK</select>

                <back>KEY_EXIT</back>
                <menu>KEY_MENU</menu>
                <title>KEY_EPG</title>
                <info>KEY_INFO</info>
                <display>KEY_SCREEN</display>

                <one>1</one>
                <two>2</two>
                <three>3</three>
                <four>4</four>
                <five>5</five>
                <six>6</six>
                <seven>7</seven>
                <eight>8</eight>
                <nine>9</nine>
                <zero>0</zero>

        </remote>
</lircmap>


Fichero de configuración para MythTV ubicado en la ruta $HOME/.lircrc

begin
    prog = mythtv
    button = 1
    config = 1
end

begin
    prog = mythtv
    button = 2
    config = 2
end

begin
    prog = mythtv
    button = 3
    config = 3
end

begin
    prog = mythtv
    button = 4
    config = 4
end

begin
    prog = mythtv
    button = 5
    config = 5
end

begin
    prog = mythtv
    button = 6
    config = 6
end

begin
    prog = mythtv
    button = 7
    config = 7
end

begin
    prog = mythtv
    button = 8
    config = 8
end

begin
    prog = mythtv
    button = 9
    config = 9
end

begin
    prog = mythtv
    button = 0
    config = 0
end

begin
    prog = mythtv
    button = source
    config = Esc
end

begin
    prog = mythtv
    button = menu
    config = M
end

begin
   prog = mythtv
   button = 16_ch_prev
   config = I
end

begin
    prog = mythtv
    button = ch_up
    config = Up
end

begin
    prog = mythtv
    button = ch_down
    config = Down
end

begin
    prog = mythtv
    button = vol_down
    config = Left
end

begin
    prog = mythtv
    button = vol_up
    config = Right
end

begin
    prog = mythtv
    button = fullscreen
    config = Return
end

begin
   prog = mythtv
   button = epg
   config = S
end

begin
   prog = mythtv
   button = play
   config = P
end

begin
   prog = mythtv
   button = record
   config = R
end

begin
   prog = mythtv
   button = stop
   config = Esc
end

begin
   prog = mythtv
   button = pause
   config = P
end

begin
    prog = mythtv
    button = ch_rtn
    config = H
end

begin
    prog = mythtv
    button = teletext
    config = T
end

begin
    prog = mythtv
    button = display
    config = W
end

begin
    prog = mythtv
    button = red
    config = ,
end

begin
    prog = mythtv
    button = yellow
    config = .
end

begin
    prog = mythtv
    button = audio
    config = +
end

begin
    prog = mythtv
    button = mute
    config = -
end


Bibliografía:

http://www.linuxtv.org/wiki/index.php/AVerMedia_AVerTV_Digi_Volar_X_(A815)
http://www.math.ucla.edu/~jimc/documents/bugfix/17-ir-keyboard.html
http://www.mythtv.org/wiki/LIRC
http://wiki.xbmc.org/index.php?title=HOW-TO:Setup_Lirc
http://forum.xbmc.org/showthread.php?tid=101151
http://askubuntu.com/questions/277135/ir-remote-button-being-recognised-by-ir-keytable-but-not-by-irw
http://forum.xbmc.org/showthread.php?tid=132160

--

martes, 3 de diciembre de 2013

Accediendo a un servidor SSH a través de un proxy con Corkscrew



Cuando un servidor proxy impide conectarse a puertos que no sean de navegación web puede usarse la herramienta Corkscrew.

En el siguiente ejemplo muestro los ficheros de configuración necesarios para realizar una conexión SSH a través de un túnel con Corkscrew sobre el proxy HTTP.

Además se incluye en los ficheros la configuración necesaria para que SSH coja un usuario en la conexión y redirija los puertos 4080 y 3128 de la máquina remota. Además, el servidor SSH de los ficheros de ejemplo escucha en el puerto 443.

El formato del fichero ".ssh/config" sería el siguiente:

Host <ip_destino>
    ProxyCommand corkscrew <proxy_host> <proxy_host> %h %p ~/.ssh/proxyauth
    LocalForward 4080 localhost:4080
    LocalForward 3128 localhost:3128
    Port 443
    User <default_user>

Y el formato del fichero ".ssh/proxyauth" sería el siguiente:

<user>:<password>

TRUCO: es posible que el proxy HTTP filtre también por nombre de máquina, con lo que al realizar la conexión SSH con la máquina es mejor usar direcciones IP. Por ejemplo, si se quiere acceder a una máquina que tenga un nombre asignado en un DNS dinámico, como DynDNS o similares, es mejor resolver primero la IP con nslookup, y después usar la IP.

OTRO TRUCO: también es posible que el servidor SSH se tenga que poner en el puerto 443 u 80, porque el proxy puede ser que permita únicamente conexiones destino a esos puertos.

--

miércoles, 6 de noviembre de 2013

Editar metadatos en ficheros de video MP4



Al igual que los ficheros MP3 de música guardan información de las canciones en las etiquetas ID3, o los formatos de ficheros JPG guardan la información de las fotografías con EXIF, los ficheros MP4 también tienen metadatos que permiten guardar información relacionada con los vídeos: fecha de creación, título, etc.

Mantener estas etiquetas actualizadas puede ser útil, por ejemplo, para mantener documentados y clasificados los vídeos familiares. Los gestores de fotografías suelen leer estos metadatos también en los vídeos para organizarlos junto a las fotografías.

Pongo aquí varios ejemplos alternativos que permiten modificar estos metadatos en ficheros MP4, en línea de comandos:

ffmpeg -i video_in.mp4 -acodec copy -vcodec copy -metadata creation_time="2013-06-27 17:50:00" video_out.mp4

avconv -i video_in.mp4 -c copy -metadata date="2013-06-27 17:50:00" video_out.mp4

AtomicParsley video.mp4 --year "2013-06-27 17:50:00"

MP4Box -itags "created=2013-06-27 17:50:00" video.mp4

Bibliografía:

http://ffmpeg.org
http://atomicparsley.sourceforge.net
http://gpac.wp.mines-telecom.fr

--

jueves, 2 de mayo de 2013

Copia de seguridad de DVD en Debian GNU/Linux



Este es el método que uso para hacer copias de seguridad de mis DVD.

Para instalar las herramientas ejecutamos lo siguiente:

aptitude install dvdbackup genisoimage

Y para pasar cada DVD a un fichero ISO ejecuto lo siguiente:

dvdbackup -M -o output_directory
genisoimage -dvd-video -o copia.iso output_directory

--

jueves, 24 de enero de 2013

Usar la fecha y hora de los datos EXIF para renombrar fotografías



Para organizar las fotos me gusta renombrarlas con la fecha y hora en la que fueron tomadas.
Para ello podemos usar la utilidad ExifTool de línea de comandos.

Para instalar la utilidad ejecutamos lo siguiente:

aptitude install libimage-exiftool-perl

Ejecutaremos el siguiente comando sobre la carpeta que contiene las fotografías:

exiftool '-FileName<CreateDate' -d %Y%m%d_%H%M%S%%-c.%%e .

Bibliografia:

http://www.sno.phy.queensu.ca/~phil/exiftool/
--

miércoles, 2 de enero de 2013

Joystick de PS3 (Dualshock 3 / Sixaxis) por bluetooth en Debian GNU/Linux



Este artículo explica los pasos para configurar un mando de PS3 en Linux, permitiendo que funcione como ratón y mapeando ciertos botones del mando a eventos del teclado.

Conectado con el cable, el mando de la PS3 funciona directamente en Linux, sin hacer nada, pero para que funcione por bluetooth es necesario seguir unos pasos, ya que no sigue el estándar de dispositivos de entrada de Bluetooth.

Para que funcione correctamente vamos a usar el proyecto QtSixA.

No existen paquete para Debian, por lo que debemos compilar el fuente del proyecto con los siguientes comandos:

aptitude -r install bluetooth libusb-dev libbluetooth-dev pyqt4-dev-tools libjack-jackd2-dev pkg-config checkinstall build-essential
wget http://sourceforge.net/projects/qtsixa/files/QtSixA%201.5.1/QtSixA-1.5.1-src.tar.gz
tar xfvz QtSixA-1.5.1-src.tar.gz
cd QtSixA-1.5.1
make
mkdir -p /var/lib/sixad/profiles
checkinstall
update-rc.d sixad defaults
/etc/init.d/sixad start

Conectamos el mando con el cable USB y ejecutamos el siguiente comando:

sixpair

Si obtenemos un mensaje como el siguiente todo ha ido correctamente:

Current Bluetooth master: DE:AD:BE:EF:00:00
Setting master bd_addr to: 00:1F:81:00:06:20

Ahora podemos desconectar el cable USB y pulsar el botón "PS" del joystick.

Si se ha detectado correctamente, en el log del sistema (var/log/messages) aparecerán un par de líneas como las siguientes:

Jan 2 00:36:40 mipc kernel: [ 5598.272211] usb 2-1: USB disconnect, address 3
Jan 2 00:36:48 mipc kernel: [ 5605.974295] input: PLAYSTATION(R)3 Controller (00:23:45:0A:04:37) as /devices/virtual/input/input17

Para desconectar y apagar el mando, pulsar el botón "PS" del mando durante más de 12 segundos.

Para poder usar el joystick como ratón y mapear los botones con eventos del teclado hay varias opciones.
Podemos usar la misma aplicación QtSixA, que permite definir varios perfiles para distintos juegos o aplicaciones.
Otra opción en la misma línea es usar el proyecto QJoyPad.
Y otra opción es usar las opciones que nos ofrece el propio servidor X, que es la que se describe a continuación.

El primer paso será ejecutar lo siguiente:

aptitude -r install xserver-xorg-input-joystick

Y editamos el fichero "/usr/share/X11/xorg.conf.d/50-joystick.conf" añadiendo el siguiente contenido:

Option "MapButton1" "none" # Select
Option "MapButton2" "none" # Analog left button
Option "MapButton3" "none" # Analog right button
Option "MapButton4" "key=67" # Start (F1)

Option "MapButton5" "key=111" # Up (Up)
Option "MapButton6" "key=114" # Right (Right)
Option "MapButton7" "key=116" # Down (Down)
Option "MapButton8" "key=113" # Left (Left)

Option "MapButton9" "none" # R1
Option "MapButton10" "none" # R2
Option "MapButton11" "none" # L1
Option "MapButton12" "none" # L2

Option "MapButton13" "button=1" # Triangle (Mouse left click)
Option "MapButton14" "button=3" # Circle (Mouse right click)
Option "MapButton15" "key=36" # X (Return)
Option "MapButton16" "key=9" # Square (Escape)

Option "MapButton17" "none" # PS

Option "MapAxis1" "mode=relative axis=+1x deadzone=5000" # Analog left
Option "MapAxis2" "mode=relative axis=+1y deadzone=5000" # Analog left
Option "MapAxis3" "mode=relative axis=+1zx deadzone=5000" # Analog right
Option "MapAxis4" "mode=relative axis=+1zy deadzone=5000" # Analog right
Option "MapAxis5" "mode=none" # Motion sensor
Option "MapAxis6" "mode=none" # Motion sensor
Option "MapAxis7" "mode=none" # Motion sensor

Para ver los códigos que aplican a cada tecla ejecutamos el siguiente comando:

xmodmap -pk

Ahora debemos reiniciar el servidor X y ya tenemos configurado el mando.

Bibliografia:

http://qtsixa.sourceforge.net/
http://www.pabr.org/sixlinux/sixlinux.en.html
http://www.raspians.com/Knowledgebase/ps3-dualshock-controller-install-on-the-raspberry-pi/
http://www.x.org/archive/X11R7.5/doc/man/man4/joystick.4.html
http://qjoypad.sourceforge.net/

--

jueves, 26 de abril de 2012

Videos AVI MJPEG y Picasa

Parece ser que ciertas cámaras Canon antiguas graban en formato de fichero AVI con un formato de codificación MJPEG. Este formato de video no está soportado por Picasa, por lo que no serán detectados y no se podrán subir a la Web de Picasa ni ser visualizados.

Para solucionar este problema podemos recodificarlos con la herramienta ffmpeg usando la siguiente línea de comandos:

ffmpeg -i video_origen.avi -vcodec mpeg4 -b 5000k -r 30 -acodec libfaac video_recodificado.3gp

domingo, 27 de noviembre de 2011

Escanear fotos en Linux

El siguiente artículo describe los pasos para escanear fotografías de la manera más óptima posible utilizando las herramientas que proporciona Linux.
Para el escaneo de imágenes vamos a utilizar XSane y para el retoque y las mejoras de la imagen obtenida utilizaremos GIMP.

En la pantalla principal de XSane seleccionaremos los parámetros para el escanéo.



Debemos seleccionar una resolución de al menos 600 dpi. La mejor resolución suele ser la máxima resolución óptica que permita el escáner. En mi caso, tras realizar varias pruebas, opté por usar una resolución de 900 dpi.
Hay que tener en cuenta que el tamaño de las imágenes obtenidas es exponencial a la resolución. Por lo que hay que hacer un balance del uso que se va a realizar de las fotos escaneadas para decidir si se opta por obtener la máxima calidad a costa del tiempo de proceso que nos va a llevar.

El formato de imagen seleccionado debe ser uno que utilice un tipo de compresión sin pérdida de información, como por ejemplo PNG. En ningún caso se debe usar el formato JPEG ya que se perderá mucha calidad en la compresión y en procesado posterior con GIMP.

Para obtener un ajuste de color adecuado durante el escanéo conviene abrir la ventana de vista previa, en el menú "Ventana" -> "Mostrar vista previa". En ella podemos obtener una vista previa de la imagen a escanear y seleccionar el área de escaneo de la imagen a obtener.
Realizar una vista previa nos permitirá además seleccionar la opción "Ajustar automáticamente gamma, brillo y contraste", en la pantalla principal, para que dichos parámetros se ajusten automáticamente usando la vista previa de la imagen obtenida.

Una vez hecho esto podemos proceder a realizar el escaneo de la imagen, visualizar el resultado obtenido y guardarla en el formato de fichero seleccionado.

El siguiente paso consistirá en abrir la imagen obtenida en GIMP para su retoque.

El primer paso consistirá en rotar la imagen adecuadamente, en el caso que sea necesario. Para ello seleccionaremos la opción de rotación adecuada dentro del menú "Imagen" -> "Transformar".

El siguiente paso será ajustar el área de la imagen de forma precisa, para que la fotografía ocupe todo el área de la imagen y no queden márgenes blancos. Para ello pinchamos en la "Herramienta de selección de rectángulos" y seleccionamos el área de la fotografía que nos interesa. Una vez hecho esto seleccionamos la opción del menú "Imagen" -> "Recortar a la selección".


En este momento conviene guardar una copia de seguridad de la imagen para poder revertir de forma segura los cambios a realizar en los siguientes pasos. O simplemente para tener una copia de la fotografía tal y como se obtuvo del proceso de escaneo. El formato en el que se guardará la imagen será el formato original en el que fue obtenida, por ejemplo PNG.

En el caso de que la imagen contenga un defecto de ojos rojos lo podremos corregir con la opción del menú "Filtros" -> "Realzar [Enhance]" -> "Quitar ojos rojos ...".
Si la imagen escaneada tiene ruido, como puede ser polvo, rayas o el efecto moiré, se podrá corregir usando la opción "Filtros" -> "Realzar [Enhance]" -> "Desparasitar ...". Si se va a aplicar el filtro a toda la imagen conviene no seleccionar la opción "Adaptativo", ya que quita efectividad al filtro. La siguiente imagen muestra los valores que he utilizado con éxito en alguna imagen.



Visualizar las imágenes obtenidas (en formato PNG y con una resolución muy alta) es algo engorroso ya que debido a su gran tamaño tardan bastante en mostrarse. Por ello, es interesante tener una copia de la imagen con una resolución menor y en formato JPEG, intentando mantener en la medida de lo posible toda su calidad. Conviene guardar previamente una copia de la imagen original en formato PNG, como se comentó anteriormente.

A la hora de reducir la resolución de la imagen conviene tenerla en dos instancias de GIMP simultaneas para comparar los detalles de la imagen antes y después de redimensionarla. De esta forma, podremos reducir la resolución todo lo posible comprobando que no se pierden detalles significativos.
Para reducir la resolución de la imagen usaremos la opción "Imagen" -> "Escalar la imagen". En esta pantalla podremos seleccionar la nueva resolución de la imagen y los pixeles por pulgada. Para facilitarnos el trabajo conviene seleccionar como medida "Porcentaje", lo que nos permitirá memorizar más fácilmente el valor que aplicamos en cada prueba que realicemos.
El valor de pixeles por pulgada no modifica realmente la resolución de la imagen, sino que indica el tamaño real de la imagen. Un imagen con la misma resolución se mostrará en un visualizador de imágenes con un tamaño mayor cuando menor valor de pixeles por pulgada tenga, ya que los puntos de la imagen estarán menos condensados. Las fotografías suelen tener configurado un valor de 72 pixeles por pugada.

El último paso consistirá en guardar la imagen en formato JPEG conservando la calidad de la imagen al máximo posible. Para ello, en las opciones de guardado seleccionar como calidad una valor de al menos 90.

Por último, visualizar la imagen JPEG obtenida y comprobar que tiene la calidad que se esperaba.

domingo, 24 de julio de 2011

Problema al hibernar ordenador con tarjeta gráfica NVIDIA en Debian GNU/Linux

Si se usan los drivers propietarios proporcinados por NVIDIA, la suspensión a disco o hibernación no funcionará. Para corregirlo se debe añadir la opción "NvAGP" a "1" en la sección "Device" del fichero "/etc/X11/xorg.conf".

Este es el contenido íntegro de mi fichero "/etc/X11/xorg.conf" configurado con la salida de video HDMI conectada a un televisor:

Section "ServerLayout"
Identifier "Layout0"
Screen "Screen0"
EndSection

Section "ServerFlags"
Option "NoPM" "true"
EndSection

Section "Extensions"
Option "Composite" "Disabled"
EndSection

Section "Monitor"
Identifier "Monitor0"
Option "DPI" "96x96"
EndSection

Section "Device"
Identifier "Device0"
Driver "nvidia"
Option "TripleBuffer" "True"
Option "UseEdidDpi" "False"
Option "NvAGP" "1"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection

Más información en:
https://help.ubuntu.com/community/NvidiaLaptopBinaryDriverSuspend

miércoles, 13 de julio de 2011

Codificar videos con mencoder para PSP

Se debe usar el siguiente comando:

mencoder -ofps 30000/1001 -af volnorm,lavcresample=24000 -vf dsize=320:200,scale=0:0,harddup -oac lavc -ovc lavc -lavcopts aglobal=1:vglobal=1:vcodec=mpeg4:vbitrate=1000:threads=2:acodec=libfaac -of lavf -lavfopts format=psp INPUT.AVI -o OUTPUT.MP4

Más información en:
http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-handheld-psp.html
http://movingparts.net/2007/12/10/mencoder-dvd-rip-volume-increase-your-psp-and-you/

sábado, 27 de noviembre de 2010

Configuración de las teclas multimedia en Linux

El primer paso es obtener los códigos que producen las teclas multimedia. Para ello utilizamos el comando "xev".
Al ejecutar en una consola este comando nos aparecerán todos los códigos que producen el teclado y el ratón.
El campo que debemos guardar es el "keycode".
Una vez obtenidos todos los códigos de las teclas multimedia los asociaremos a teclas de función a partir de la F13 en adelante.
Para esta asociación usaremos el comando "xmodmap".
Con la ejecución de los siguientes comandos conseguimos la asociación de teclas para el teclado:

xmodmap -e "keycode 161 = F13" xmodmap -e "keycode 198 = F14" xmodmap -e "keycode 223 = F15" ...

Para que estas teclas queden configuradas durante el arranque de la sessón se pueden meter las líneas anteriores en el fichero ".xsession" del usuario.

Una vez hecho esto, se puede configurar en el Centro de Control de KDE las acciones para cada tecla. Para ello se debe ir a "Regional y Accesibilidad" -> "Introducir acciones". Al igual que en KDE, el resto de escritorios también tienen opciones para asociar las teclas a un comando.

lunes, 8 de noviembre de 2010

Sintonizador TDT-HD AVerMedia AVerTV Digi Volar X (A815) en Debian GNU / Linux

Para configurar el dispositivo se debe descargar el siguiente fichero:

http://www.otit.fi/~crope/v4l-dvb/af9015/af9015_firmware_cutter/firmware_files/4.95.0/dvb-usb-af9015.fw

Este fichero se debe ubicar en el directorio "/usr/lib/hotplug/firmware/".

Una vez hecho esto se puede conectar el dispositivo al puerto USB y comprobar en el log del sistema (/var/log/messages) que ha sido detectado correctamente.

Para crear un fichero con la información de sintonización de los canales se puede usar el comando "scan", contenido en el paquete "dvb-apps". Por ejemplo, en Madrid se ejecutaría el siguiente comando:

scan /usr/share/dvb/dvb-t/es-Madrid > channels.conf

El fichero "channels.conf" se puede usar con los programas Xine y MPlayer copiándolo a "$HOME/.xine" y "$HOME/.mplayer" respectivamente. Una vez hecho esto se pueden ejecutar dichos programas de la siguiente forma:

xine -A alsa -V vdpau --no-splash -f -g dvb://

mplayer -ao alsa:device=hw=0.3 -vo vdpau:deint=2 -vc ffmpeg12vdpau,ffh264vdpau -cache 8192 -fs -zoom dvb://

Estas líneas de ejecución de ejemplo están optimizadas para acelerar por hardware usando una placa base Zotac Ion con tarjeta gráfica NVIDIA, pero existen otras opciones para acelerar por hardware en otros sistemas.

Una vez tenemos la sintonizadora de TV funcionando, el siguiente paso es configurar el mando a distancia. Cuando se conecta la sintonizadora, el kernel reconoce automáticamente el mando a distancia como un dispositivo de entrada. Para comprobarlo se puede ejecutar el siguiente comando:

cat /proc/bus/input/devices

Para que funcionen correctamente el mando a distancia se deben crear los siguientes dos ficheros con su correspondiente contenido:

/etc/modprobe.d/dvb.conf
options dvb_usb_af9015 remote=5

/etc/modprobe.d/usbhid.conf
options usbhid quirks=0x07ca:0xa815:0x04

Una vez echo este se debe ejecutar como root el siguiente comando y reiniciar:

update-initramfs -u

Al detectarse como un dispositivo de entrada como si fuera un teclado real, las teclas del mando se pueden mapear a cualquier comando dentro de un escritorio, como puede ser KDE o GNOME.

lunes, 28 de junio de 2010

Sincronizar agenda, calendario y notas de un Nokia 5800 en Linux

En el siguiente artículo se muestran los pasos necesarios para sincronizar la agenda, el calendario y las notas de un Nokia 5800 con las aplicaciones de KDE den Debian GNU / Linux.

El primer paso será instalar los programas necesarios. Para ello, ejecutamos el siguiente comando:

aptitude install bluez-utils multisync-tools opensync-plugin-kdepim opensync-plugin-syncml

El siguiente paso será obtener la dirección bluetooth del móvil. Para ello, activamos el bluetooth en el móvil y ejecutamos lo siguiente:

hcitool scan

Aparecerán listados los dispositivos bluetooth encontrados. El siguiente paso es listar los canales bluetooth del teléfono ejecutando el siguiente comando con la dirección obtenida en el comando anterior:

sdptool browse XX:XX:XX:XX:XX:XX | grep -e "Service Name" -e Channel

El canal que nos interesa es el del servicio "SyncMLClient", que en este caso es el canal 7.

Ejecutamos los siguientes comandos:

msynctool --addgroup "Nokia 5800" msynctool --addmember "Nokia 5800" kdepim-sync msynctool --addmember "Nokia 5800" syncml-obex-client msynctool --configure "Nokia 5800" 2

En este punto nos mostrará el contenido de la configuración para la conexión con el móvil. La configuración debe ser la siguiente:

<config> <username></username> <password></password> <type>2</type> <bluetooth_address>XX:XX:XX:XX:XX:XX</bluetooth_address> <bluetooth_channel>X</bluetooth_channel> <interface>0</interface> <version>1</version> <identifier>PC Suite</identifier> <wbxml>2</wbxml> <recvLimit>0</recvLimit> <maxObjSize>0</maxObjSize> <usestringtable>0</usestringtable> <onlyreplace>0</onlyreplace> <contact_db>Contacts</contact_db> <calendar_db>Calendar</calendar_db> <note_db>Notes</note_db> </config>

Los campos "bluetooth_address" y "bluetooth_channel" se deben completar con la dirección y canal bluetooth obtenidos en los pasos previos.

En el móvil debemos poner el valor "Preguntar antes" en el parámetro "Ajustes -> Conectividad -> Transferencia de datos -> Sincronización -> Opciones -> Editar Perfil de Sincronización -> Permitir peticiones sync.".

Para realizar la sincronización se debe ejecutar el siguiente comando:

msynctool --sync "Nokia 5800"

viernes, 2 de abril de 2010

Media Center en Debian GNU / Linux



Este pequeño ordenador me permite ver la televisión, grabar de la televisión, reproducir música y vídeos en alta definición, navegar por Internet y jugar a juegos antiguos mediante emuladores como MAME.

El hardware que he usado es el siguiente:
  • Placa base ZOTAC ION ITX F Series de tamaño Mini-ITX
  • Fuente de alimentación Mini-ITX de 80W
  • Caja realizada partir de un pack de regalo de colonias :-)
  • Sintonizador AVerMedia AverTV DVB-T USB 2.0 (A800)

Y el software utilizado es el siguiente:
  • Debian GNU / Linux Squeeze
  • Freevo 1.8.1

Como se puede ver en la siguiente imagen la placa base viene muy completa:


Esta placa obtiene un rendimiento muy bueno teniendo un consumo de energía muy bajo. Además, permite reproducir vídeo en alta definición mediante su salida HDMI.

Anteriormente tuve montada una placa base Via Epia SP800. Esta placa es del 2006 y no tenía salida HDMI. En teoría podía reproducir vídeo en alta definición pero solo con los driver suministrados por Via que eran muy complejos de instalar.

En la siguiente imagen se puede ver el montaje interior del equipo desde la parte superior:


Estos son los pasos en la configuración realizada:

Primero debemos ejecutar el siguiente comando:
dpkg-reconfigure freevo
Y seleccionaremos las siguientes opciones:
Salida de video: x11 Resolución: 1920x1080 Estándar de TV: PAL Lista de canales: Europa (Oeste) Servicios que se ejecutaran: - Servidor de X - Servidor de grabación

A continuación se muestra el contenido de ciertos ficheros de configuración utilizados por Freevo para su correcto funcionamiento:

/etc/freevo/lircrc
begin prog = freevo remote = * button = 1 repeat = 0 config = 1 end begin prog = freevo remote = * button = 2 repeat = 0 config = 2 end begin prog = freevo remote = * button = 3 repeat = 0 config = 3 end begin prog = freevo remote = * button = 4 repeat = 0 config = 4 end begin prog = freevo remote = * button = 5 repeat = 0 config = 5 end begin prog = freevo remote = * button = 6 repeat = 0 config = 6 end begin prog = freevo remote = * button = 7 repeat = 0 config = 7 end begin prog = freevo remote = * button = 8 repeat = 0 config = 8 end begin prog = freevo remote = * button = 9 repeat = 0 config = 9 end begin prog = freevo remote = * button = 0 repeat = 0 config = 0 end begin prog = freevo remote = * button = DISPLAY repeat = 0 config = DISPLAY end begin prog = freevo remote = * button = CH_RTN repeat = 0 config = PREV_CH end begin prog = freevo remote = * button = SNAPSHOT repeat = 0 config = EXIT end begin prog = freevo remote = * button = CH_UP repeat = 0 config = CH+ end begin prog = freevo remote = * button = CH_DOWN repeat = 0 config = CH- end begin prog = freevo remote = * button = VOL_DOWN repeat = 0 config = VOL- end begin prog = freevo remote = * button = VOL_UP repeat = 0 config = VOL+ end begin prog = freevo remote = * button = MUTE repeat = 0 config = MUTE end begin prog = freevo remote = * button = PLAY repeat = 0 config = PLAY end begin prog = freevo remote = * button = STOP repeat = 0 config = STOP end begin prog = freevo remote = * button = PAUSE repeat = 0 config = PAUSE end begin prog = freevo remote = * button = RECORD repeat = 0 config = REC end begin prog = freevo remote = * button = RED repeat = 0 config = REW end begin prog = freevo remote = * button = YELLOW repeat = 0 config = FFWD end begin prog = freevo remote = * button = GREEN repeat = 0 config = CH- end begin prog = freevo remote = * button = BLUE repeat = 0 config = CH+ end begin prog = freevo remote = * button = MENU repeat = 0 config = MENU end

/etc/freevo/local_conf.py
# -*- coding: iso-8859-1 -*- CONFIG_VERSION = 5.27 # ====================================================================== LOCALE='iso-8859-15' # ====================================================================== EVENT_DEVS = ['/dev/ir'] EVENTS['menu']['2'] = Event('MENU_UP') EVENTS['menu']['8'] = Event('MENU_DOWN') EVENTS['menu']['4'] = Event('MENU_LEFT') EVENTS['menu']['6'] = Event('MENU_RIGHT') EVENTS['menu']['5'] = Event('MENU_SELECT') EVENTS['menu']['0'] = Event('MENU_SUBMENU') EVENTS['input']['2'] = Event('MENU_UP') EVENTS['input']['8'] = Event('MENU_DOWN') EVENTS['input']['4'] = Event('MENU_LEFT') EVENTS['input']['6'] = Event('MENU_RIGHT') EVENTS['input']['5'] = Event('MENU_SELECT') EVENTS['input']['0'] = Event('MENU_SUBMENU') EVENTS['tvmenu']['2'] = Event('MENU_UP') EVENTS['tvmenu']['8'] = Event('MENU_DOWN') EVENTS['tvmenu']['4'] = Event('MENU_LEFT') EVENTS['tvmenu']['6'] = Event('MENU_RIGHT') EVENTS['tvmenu']['5'] = Event('MENU_SELECT') EVENTS['tvmenu']['0'] = Event('MENU_SUBMENU') EVENTS['video']['1'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='sub_select') EVENTS['video']['3'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='switch_audio') EVENTS['video']['2'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='panscan +0.1') EVENTS['video']['8'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='panscan -0.1') EVENTS['video']['CH-'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='seek -600') EVENTS['video']['CH+'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='seek +600') EVENTS['dvd']['1'] = Event('VIDEO_NEXT_SUBTITLE') EVENTS['dvd']['3'] = Event('VIDEO_NEXT_AUDIOLANG') EVENTS['dvd']['2'] = Event('DVDNAV_UP') EVENTS['dvd']['8'] = Event('DVDNAV_DOWN') EVENTS['dvd']['4'] = Event('DVDNAV_LEFT') EVENTS['dvd']['6'] = Event('DVDNAV_RIGHT') EVENTS['dvd']['5'] = Event('DVDNAV_SELECT') EVENTS['dvd']['0'] = Event('DVDNAV_SELECT') EVENTS['audio']['CH+'] = Event('PLAYLIST_NEXT') EVENTS['audio']['CH-'] = Event('PLAYLIST_PREV') # ====================================================================== DIRECTORY_SORT_BY_DATE = 2 DIRECTORY_REVERSE_SORT = 0 DIRECTORY_SMART_SORT = 0 DIRECTORY_SMART_NAMES = 0 DIRECTORY_AUTOPLAY_SINGLE_ITEM = 0 DIRECTORY_FORCE_SKIN_LAYOUT = -1 DIRECTORY_AUDIO_FORMAT_STRING = '%(t)s' DIRECTORY_USE_MEDIAID_TAG_NAMES = 1 #DIRECTORY_AUTOPLAY_ITEMS = [] #DIRECTORY_ADD_RANDOM_PLAYLIST = [ 'audio' ] # ====================================================================== plugin.remove('shutdown') #SYS_SHUTDOWN_CONFIRM = 0 #SYS_SHUTDOWN_ENABLE = 1 #SYS_SHUTDOWN_CMD = "sudo shutdown -h now" #SYS_RESTART_CMD = "sudo shutdown -r now" # ====================================================================== VIDEO_PREFERED_PLAYER = 'mplayer' #VIDEO_ONLY_SCAN_DATADIR = 1 #VIDEO_SHOW_DATA_DIR = '/home/freevo/fxd' VIDEO_AUTOJOIN = 0 #VIDEO_DEINTERLACE = None #VIDEO_USE_XVMC = None #VIDEO_FIELD_DOMINANCE = None #VIDEO_PRE_PLAY = None #VIDEO_POST_PLAY = None # ====================================================================== GAMES_ITEMS = [ ('MAME', '/home/freevo/games/mame/roms', ('MAME', '/usr/games/xmame.x11', '-fullscreen', '/home/freevo/games/mame/shots', None)), ] # ====================================================================== VIDEO_MPLAYER_SUFFIX = [ 'avi', 'wmv', 'bin', 'rm', 'divx', 'ogm', 'vob', 'asf', 'm2v', 'm2p', 'mp4', 'viv', 'nuv', 'mov', 'iso', 'nsv', 'mkv', 'ogg', 'ts', 'flv', 'mpg', 'mpeg' ] MPLAYER_AO_DEV = 'alsa:device=hw=0.3' MPLAYER_VO_DEV = 'null' MPLAYER_VF_INTERLACED = '' MPLAYER_VF_PROGRESSIVE = '' DVD_LANG_PREF = 'es,en' DVD_SUBTITLE_PREF = '' MPLAYER_ARGS = { 'mkv' : '-vo vdpau -vc ffh264vdpau -cache 8192', 'mp4' : '-vo vdpau -vc ffh264vdpau -demuxer lavf -cache 32768', 'dvb' : '-vo vdpau -vc ffmpeg12vdpau,ffh264vdpau -nocache', 'ts' : '-vo vdpau:deint=2 -vc ffmpeg12vdpau,ffh264vdpau -cache 8192', 'mpg' : '-vo vdpau:deint=2 -vc ffmpeg12vdpau -cache 8192', 'mpeg' : '-vo vdpau:deint=2 -vc ffmpeg12vdpau -cache 8192', 'wmv' : '-vo vdpau -vc ffwmv3vdpau -cache 8192', 'default' : '-vo vdpau -cache 4096', } # ====================================================================== VIDEO_XINE_SUFFIX = [ 'iso', ] XINE_AO_DEV = 'alsa' XINE_VO_DEV = 'vdpau' XINE_COMMAND = '%s -D --auto-play=fq --hide-gui --borderless --geometry %sx%s+0+0 --no-splash' % (CONF.xine, CONF.width, CONF.height) XINE_ARGS_DEF = "--no-lirc" XINE_HAS_NO_LIRC = True XINE_BOOKMARK = False # ====================================================================== TV_CHANNELS = [ ( '01', 'La 1', 'La 1(RTVE)' ), ( '02', 'La 2', 'La 2(RTVE)' ), ( '03', 'ANTENA 3', 'ANTENA 3(ANTENA3 TELEVISION)' ), ( '04', 'CUATRO', 'CUATRO(SOGECABLE)' ), ( '05', 'Telecinco', 'Telecinco(TELECINCO)' ), ( '06', 'laSexta', 'laSexta(La Sexta)' ), ( '07', 'Telemadrid', 'Telemadrid(RTVM)' ), ( '08', 'MTV', 'MTV(MTV)' ), ( '09', 'Kiss TV', 'Kiss TV(Teledifusion Madrid)' ), ( '10', 'Antena 3 HD', 'Antena 3 HD(Antena3)' ), ( '11', 'Tele 5 HD', 'Telecinco HD(Tele5)' ), ( '12', 'Telemadrid HD', 'Telemadrid HD(RTVM)' ), ( '13', 'TVE HD', 'TVE-HD Pruebas(RTVE)' ), ] # ====================================================================== TV_RECORD_DUPLICATE_DETECTION = False TV_RECORD_ONLY_NEW_DETECTION = False TV_RECORD_REMOVE_COMMERCIALS = False #TV_RECORD_CONFLICT_RESOLUTION = False TV_REENCODE = False TV_REENCODE_REMOVE_SOURCE = False TV_DATE_FORMAT = '%e-%b' # Day-Month: 11-Jun TV_TIME_FORMAT = '%H:%M' # Hour-Minute 14:05 TV_DATETIME_FORMAT = '%A - %d %b %H:%M' # Thursday - 24 September 14:54 TV_RECORD_FILE_SUFFIX = '.ts' TV_RECORD_FILE_MASK = '%%y%%m%%d %%H%%M %(progname)s - %(title)s' RECORDSERVER_IP = 'localhost' RECORDSERVER_PORT = 18001 RECORDSERVER_SECRET = 'secret1' RECORDSERVER_UID = 0 RECORDSERVER_UID = 0 TV_RECORD_PADDING_PRE = 0 TV_RECORD_PADDING_POST = 0 TV_RECORD_FAVORITE_MARGIN = 0 RECORDSERVER_CLEANUP_THRESHOLD = 0 VCR_PRE_REC = None VCR_POST_REC = None VCR_CMD = CONF.mplayer + ' -dumpstream -dumpfile %(filename)s "dvb://%(channel)s"' # ====================================================================== #plugin.remove('tv.mplayer') #plugin.activate('tv.xine') TV_VIDEO_GROUPS = [ VideoGroup(vdev='/dev/dvb/adapter0', adev=None, input_type='tuner', input_num=1, group_type='dvb', record_group=None, desc='DVB Viewer'), ] # ====================================================================== ##plugin.remove('tv.mplayer') ##plugin.activate('tv.livepause') ##TV_VIDEO_GROUPS = [ ## VideoGroup(vdev='0', ## group_type='dvb', ## desc='Watching Video Group', ## ), ##] ##LIVE_PAUSE2_BUFFER_SIZE = 2048 ##LIVE_PAUSE2_BUFFER_PATH = '/home/freevo/live.buf' ##LIVE_PAUSE2_PREFERRED_PLAYER='xine' # ====================================================================== ##plugin.remove('tv.mplayer') ##plugin.remove('tv.generic_record') ##plugin.activate('tv.dvbstreamer.live_pause') ##plugin_record = plugin.activate('tv.dvbstreamer.record') ##TV_VIDEO_GROUPS = [ ## VideoGroup(vdev='0', ## group_type='dvb', ## desc='Watching Video Group', ## record_group=None ## ), ##] ##LIVE_PAUSE_BUFFER_SIZE=(6.25, 30 * 60) ##LIVE_PAUSE_BUFFER_PATH='/home/freevo/live.buf' ##DVBSTREAMER_USERNAME='dvbstreamer' ##DVBSTREAMER_PASSWORD='control' # ====================================================================== #XMLTV_FILE = '/home/freevo/TV.xml' ##XMLTV_GRABBER = '' ##XMLTV_SORT = '' ##XMLTV_DAYS = 3 #XMLTV_TIMEZONE='+0200' # ====================================================================== ##plugin.activate('idlebar.system.procstats', level=30, args=(-1, 1, 1)) ##plugin.activate('idlebar.system.sensors', level=20, args=(('temp1', '((@ * 10) - 73.869) / 0.9528'), 'temp2', None)) ##SENSORS_PLATFORM_PATH='/sys/devices/platform' ##SENSORS_I2CDEV_PATH='/sys/bus/i2c/devices' # ====================================================================== plugin.activate('oneclick', level=45) ONECLICK_LOCATIONS = [ ("SPXX0050", True, None, "Madrid, Spain"), ] # ====================================================================== HEADLINES_LOCATIONS = [ ('Meneame', 'http://www.meneame.net/rss2.php'), ('Barrapunto', 'http://barrapunto.com/index.rss'), ] # ====================================================================== plugin.activate('video.rtve') plugin.activate('video.appletrailers') # ====================================================================== #SCREENSAVER_DELAY = 120 #SCREENSAVER_CYCLE_TIME = 60 #plugin.activate('screensaver') #plugin.activate('screensaver.flames') #plugin.activate('screensaver.life') #plugin.activate('screensaver.balls') #plugin.activate('screensaver.bouncing_freevo') # ====================================================================== #plugin.activate('command', level=45) #COMMANDS_DIR='/home/freevo/commands' # ====================================================================== COMMAND_SPAWN_WM='/usr/bin/wmaker &' COMMAND_KILL_WM='/usr/bin/killall WindowMaker' plugin.activate('command.CommandMainMenuItem', args=('/etc/freevo/Firefox.fxd', ), level=45) # ====================================================================== #DEBUG = 1 #LOGGING = logging.DEBUG #DEBUG_CHILDAPP = 1 #LOGGING_RECORDSERVER = logging.DEBUG #DEBUG_RECORDSERVER = 1 # ======================================================================

/etc/freevo/Firefox.fxd
<?xml version="1.0" ?>
<freevo>
    <command title="Internet">
        <cmd>/usr/bin/firefox</cmd>
        <stoposd />
        <spawnwm />
        <info>
            <content>Firefox execution</content>
        </info>
    </command>
</freevo>

/home/freevo/.mplayer/channels.conf
/home/freevo/.xine/channels.conf
CANAL 7 TV :586000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_AUTO:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_AUTO:128:144:1 TEST 1 :586000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_AUTO:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_AUTO:129:145:2 TEST 2 :586000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_AUTO:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_AUTO:130:146:3 TEST 3 :586000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_AUTO:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_AUTO:131:147:4 8madrid(Teledifusion Madrid):618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:256:257:3901 Popular TV MADRID(Teledifusion Madrid):618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:512:513:3902 INTERECONOMIA BUSINESS(Teledifusion Madrid):618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:768:769:3903 Kiss TV(Teledifusion Madrid):618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1025:1024:3904 COPE(Teledifusion Madrid):618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1281:3905 CADENA 100(Teledifusion Madrid):618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1536:3906 ASTROCANAL(Teledifusion Madrid):618000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1792:1793:3907 Aprende Ingles TV(Teledifusion Madrid):706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:256:257:5001 Libertad Digital TV(Teledifusion Madrid):706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:512:513:5002 Ver-T(Teledifusion Madrid):706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:768:769:5003 Sin servico(Teledifusion Madrid):706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1025:1024:5004 Butaca Latina(Teledifusion Madrid):706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1280:1281:5005 NEW MILLENIUM(Teledifusion Madrid):706000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1536:1537:5006 NITRO(ANTENA3):698000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:101:103:147 Antena 3 HD(Antena3):698000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:501+500:503:148 MARCA TV(Imagina):698000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1001:1003:263 13 TV:698000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1501:1503:264 TVE-HD Pruebas(RTVE):746000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1001+1000:1100:40001 Teledeporte(RTVE):746000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2001:2002:40002 Radio Clásica(RTVE):746000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2010:40005 Radio 3(RTVE):746000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:3010:40006 La 1(RTVE):770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:101:103:530 La 2(RTVE):770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:201:203:531 24h(RTVE):770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1001:1003:532 Clan(RTVE):770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1501:1503:533 RNE1(RTVE):770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2001:535 RNEC(RTVE):770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2011:536 RNE3(RTVE):770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2021:537 Boing(Tele5):778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:101:103:184 Telecinco HD(Tele5):778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:501+500:503:185 MTV(MTV):778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1001:1003:304 La 10(La 10):778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1501:1503:305 Punto Radio(Punto Radio):778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1601:306 Telemadrid(RTVM):810000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:111:115:421 LA OTRA(RTVM):810000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:211:212:422 Metropolitan TV(Vocento):810000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:311:312:423 Telemadrid HD(RTVM):810000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:611+610:612:425 ONDA MADRID(RTVM):810000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:511:10068 Teledeporte(RTVE):834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:101:103:100 VEO7(VEO TELEVISION):834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1001:1002:260 AXN(AXN):834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1401:1402:261 Tienda en VEO(VEO TELEVISION):834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1601:1602:262 RADIO MARCA(VEO TELEVISION):834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1951:271 Vaughan Radio(Vaughan Radio):834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1966:273 Intereconomía(INTERECONOMIA):834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:201:202:300 esRadio(esRadio):834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:3501:302 Radio Intereconomía(INTERECONOMIA):834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:3001:303 laSexta(La Sexta):842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1501:1503:340 CUATRO(SOGECABLE):842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:160:80:1057 CNN+(SOGECABLE):842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:161:84:1058 CANAL+ Dos(SOGECABLE):842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:162:88:1059 CANAL CLUB(SOGECABLE):842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:163:92:1060 SER(SOGECABLE):842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:262:1061 40 PRINCIPALES(SOGECABLE):842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:260:1062 CADENA DIAL(SOGECABLE):842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:256:1063 Telecinco(TELECINCO):850000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:203:303:180 FDF(TELECINCO):850000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:201:301:181 LaSiete(TELECINCO):850000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:202:302:182 Disney Channel(Disney Channel):850000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1501:1502:301 ANTENA 3(ANTENA3 TELEVISION):858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:301:303:140 NEOX(ANTENA3 TELEVISION):858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:501:503:141 NOVA(ANTENA3 TELEVISION):858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1001:1003:142 ONDA CERO(ANTENA3 TELEVISION):858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:351:144 EUROPA FM(ANTENA3 TELEVISION):858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:551:145 ONDA MELODÍA(ANTENA3 TELEVISION):858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:1051:146 GOL TELEVISIÓN(LA SEXTA):858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1501:1503:341

/home/freevo/.gtkrc-2.0
gtk-font-name = "Lucida Sans 40"

/home/freevo/.asoundrc
pcm.!default {
    type hw
    card 0
    device 3
}
ctl.!default {
    type hw
    card 0
    device 3
}

/home/freevo/.xsession
xset s noblank xset s off xset -dpms # ---- language-env DON'T MODIFY THIS LINE! # set LANG LANG=es_ES@euro export LANG if [ -x "$WINDOW_MANAGER" ]; then realstartup=$WINDOW_MANAGER elif [ -x /usr/bin/x-session-manager ]; then realstartup=x-session-manager elif [ -x /usr/bin/x-window-manager ]; then realstartup=x-window-manager elif [ -x /usr/bin/x-terminal-emulator ]; then realstartup=x-terminal-emulator fi exec $realstartup # ---- language-env end DON'T MODIFY THIS LINE!

/etc/X11/xorg.conf
Section "ServerLayout" Identifier "Layout0" Screen "Screen0" InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" EndSection Section "ServerFlags" Option "NoPM" "true" EndSection Section "Extensions" Option "Composite" "Disabled" EndSection Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/psaux" Option "Emulate3Buttons" "no" Option "ZAxisMapping" "4 5" EndSection Section "InputDevice" Identifier "Keyboard0" Driver "kbd" EndSection Section "Monitor" Identifier "Monitor0" Option "DPMS" "false" Option "DPI" "96x96" EndSection Section "Device" Identifier "Device0" Driver "nvidia" Option "TripleBuffer" "True" Option "UseEdidDpi" "False" EndSection Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection

domingo, 6 de diciembre de 2009

Restaurando GRUB 2 en Debian GNU / Linux

Hay veces en el que el gestor de arranque GRUB se puede estropear. Por ejemplo, al instalar otro sistema operativo.

Para recuperarlo, debemos arrancar con un CD de instalación de Debian en modo "rescue". Una vez configurado el idioma del teclado, abrimos otra consola con "Alt-F2" y ejecutamos los siguientes comandos:

mount /dev/sda3 /mnt mount -t proc /proc /mnt/proc mount --bind /dev /mnt/dev chroot /mnt/ grub-install /dev/sda

De esta forma, hemos recuperado el sector de arranque en "/dev/sda", teniendo la instalación de Debian en la partición "/dev/sda3".

domingo, 4 de octubre de 2009

Configuración de un servidor SSH en Debian GNU / Linux

En este artículo vamos a ver una serie de recomendaciones para tener un servidor SSH lo más seguro posible.

Los pasos de la configuración son los siguientes:

1. Instalación
2. Uso de pares de claves
3. Cambiar el puerto por defecto

A continuación se detallan cada uno de estos pasos:

1. Instalación

Para la instalación únicamente debemos ejecutar el siguiente comando:

aptitude install ssh

2. Uso de pares de claves

Configurando el servidor SSH para que solo se pueda acceder mediante pares de claves SSH se obtiene un gran beneficio. Por un lado, se obtiene mayor seguridad, ya que para el acceso a la máquina se debe disponer de una clave privada cuya clave publica este dada de alta en el servidor. Y por otro lado, es posible configurar que la clave privada de acceso esté guardada sin contraseña, de forma que se pueda acceder directamente al servidor sin que se solicite ningún tipo de contraseña. Esto puede ser útil, por ejemplo, para scripts de tareas automatizadas.

El primer paso será generar un par de claves SSH y configurar el servidor para que se pueda acceder con ellas.

Generamos el par de claves en el cliente de la siguiente forma:

ssh-keygen -t dsa -C "USERNAME@DOMAIN"

En el comando anterior podemos sustituir USERNAME por el nombre del usuario y DOMAIN por el dominio que queramos.

Durante la creación nos solicitará una contraseña que será la que proteja la clave privada generada. Si se considera que la cuenta del usuario está en un entorno fiable podemos omitirla y acceder al servidor SSH automáticamente sin contraseña.

Para permitir que ese cliente se conecte con las claves generadas a un usuario del servidor, debemos crear un fichero "$HOME/.ssh/authorized_keys" que contenga la información de la clave pública que hemos generado. Por defecto, la clave pública se genera en un fichero "$HOME/.ssh/id_dsa.pub". En el fichero "authorized_keys" se podrán meter todas las claves públicas que se desee y cada una deberá estar en una línea.

Es muy importante el tema de permisos en estos ficheros. Únicamente deberán poder ser accesibles por el usuario de la cuenta en la que esté contenido cada fichero.

Por último, si queremos que únicamente se permita el acceso a la máquina mediante pares de claves y no se permita acceder mediante usuario y contraseña, debemos configurar en el fichero "/etc/ssh/sshd_config" el valor de la variable "PasswordAuthentication" a "no" y reiniciar el servidor de SSH.

Si un usuario tiene varias claves, puede seleccionar la clave que quiere usar con el parámetro "-i" del comando ssh.

También es interesante impedir que se pueda acceder directamente con el usuario root. Para ello, debemos configurar en el fichero "/etc/ssh/sshd_config" el valor de la variable "PermitRootLogin" a "no" y reiniciar el servidor de SSH.

3. Cambiar el puerto por defecto

Cambiando el puerto por defecto del servicio SSH se consigue burlar ciertos escaneres de puertos. Para ello editamos el fichero "/etc/ssh/sshd_config" y cambiamos el parámetro "Port".

Al cambiar el puerto, para acceder al servicio debemos indicar un parámetro adicional. Por ejemplo, si cambiamos el servicio al puerto 1234 usaríamos el siguiente comando:

ssh -p 1234 user@hostname

domingo, 13 de septiembre de 2009

Conexión a internet en el ordenador mediante móvil bluetooth GPRS

Este artículo explica como configurar una instalación de Debian GNU / Linux para conectarse a Internet usando la conexión GPRS de un teléfono movil Sony-Ericsson w800i.

Se deben tener instalados los paquetes bluez-utils y ppp.

El primer paso es activar el bluetooth en el móvil y localizarlo en el ordenador con el siguiente comando:

hcitool scan

Se obtiene un resultado con una dirección del tipo 11:22:33:44:55:66, que es la dirección que identifica el móvil por bluetooth.

Ahora se debe emparejar el móvil. Para ello debemos ejecutar los siguientes comandos con el usuario root:

hcitool cc 11:22:33:44:55:66
hcitool auth 11:22:33:44:55:66

Con el siguiente comando obtenemos los servicios que proporciona el móvil por bluetooth:

sdptool browse 11:22:33:44:55:66

Para poder usar el móvil para conectarse a internet desde un ordenador tiene que tener un servicio del tipo "Dial-up Networking". Por ejemplo, se debe obtener información de este tipo:

Service Name: Dial-up Networking
Service RecHandle: 0x10001
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100

Con el siguiente comando nos conectamos con el móvil para que se cree un canal de comunicación:

rfcomm connect /dev/rfcomm 11:22:33:44:55:66 1

El valor 1 del final del comando es el canal asociado al servicio del tipo "Dialup Networking".

Para evitar tener que ejecutar este comando cada vez que vayamos a usar la conexión, podemos crear una entrada en el fichero "/etc/bluetooth/rfcomm.conf" con la siguiente información:

rfcomm0 {
bind no;
device 11:22:33:44:55:66;
channel 1;
comment "Sony-Ericsson W800i";
}

Y con esta configuración solo tendremos que ejecutar el comando de la siguiente forma:

rfcomm connect rfcomm0

Otra opción es poner el parámetro bind con el valor yes, y al reiniciar el servicio de bluetooth se realizará la conexión automáticamente. Para reiniciar el servicio se ejecuta como root el siguiente comando:

/etc/init.d/bluez-utils restart

Para poder usar el móvil como modem, el usuario del ordenador debe pertenecer a los grupos dialout y dip. Para ello se puede editar como root el archivo "/etc/group" y añadir el usuario a los grupos correspondientes.

El siguiente paso es crear como root el fichero "/etc/ppp/peers/bluetooth_w800i" con el siguiente contenido:

debug
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/bluetooth_w800i"
usepeerdns
/dev/rfcomm0 115200
defaultroute
crtscts
lcp-echo-failure 0

Y después crear como root el fichero "/etc/chatscripts/bluetooth_w800i" con el siguiente contenido:

TIMEOUT 35
ECHO ON
ABORT '\nBUSY\r'
ABORT '\nERROR\r'
ABORT '\nNO ANSWER\r'
ABORT '\nNO CARRIER\r'
ABORT '\nNO DIALTONE\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
'' \rAT
OK 'AT+CGDCONT=2,"IP","nombre_apn"'
OK ATD*99***numero_perfil_datos#
CONNECT ""

El el fichero anterior se debe sustituir el valor numero_perfil_datos por la posición en la configuración del móvil del perfil de conexión de datos que queremos usar. Y el valor nombre_apn por el nombre del APN que tiene configurado el perfil del móvil.

Una vez hechos estos pasos ya tenemos todo configurado. Solo tenemos que ejecutar el siguiente comando para iniciar la conexión:

pon bluetooth_w800i

Y el siguiente comando para desconectarse:

poff bluetooth_w800i

Si algo no funciona correctamente podemos consultar las trazas del fichero "/var/log/messages" para intentar descubrir el error.

Espero este artículo sea de ayuda.

Saludos,
Tony

miércoles, 2 de septiembre de 2009

Trabajando con DVDs en Debian GNU / Linux

A continuación mostraré varios comandos bastante prácticos para manipular DVD en Linux.

Con el siguiente comando podemos compiar un DVD completo al disco duro como imagen ISO. Con esto obtenemos una copia completa del DVD para posteriormente copiarla a un DVD, o simplemente para reproducirlo desde el disco duro. El comando sería el siguiente.

dd if=/dev/dvd of=copia.iso

De esta forma, se leerá todo el contenido del dispositivo "/dev/dvd" en el fichero "copia.iso".

El contenido del DVD anterior se puede ver montándolo en un directorio. Para esto, debemos ejecutar el siguiente comando como usuario root:

mount -o loop copia.iso /mnt

Con este comando se monta en la carpeta "/mnt" el ISO del DVD obtenido con el comando anterior.

Con el siguiente comando podemos crear un DVD a partir del contenido obtenido de otro DVD. Para ello creamos un directorio, copiamos la estructura del DVD (directorios AUDIO_TS y VIDEO_TS) y ejecutamos el siguiente comando:

genisoimage -dvd-video -V "Nombre o etiqueta del DVD" -o nuevo_dvd.iso directorio_estrucura_dvd

domingo, 30 de agosto de 2009

Cambiar la relación de aspecto de un video en formato AVI con sonido dual en Debian GNU / Linux

Hay que ejecutar los siguientes tres comandos:

mencoder -force-avi-aspect 1.77777777778 -ovc copy -oac copy -aid 1 -o video_y_audio_1.avi video_origen.avi
avimerge -i video_y_audio_1.avi -p video_origen.avi -a 1 -o video_y_audio_1_y_audio_2.avi

La relación de aspecto se cambia en el primer comando con el parámetro "-force-avi-aspect".
También se puede quitar el parámetro y la relación de aspecto se dejará vacía en el video resultante, con lo que los reproductores de video la calcularán automáticamente usando la resolución del video.