Capítulo 7. Multimedia

This translation may be out of date. To help with the translations please access the FreeBSD translations instance.

7.1. Sinopsis

FreeBSD admite una gran variedad de tarjetas de sonido, lo que permite disfrutar de sonido de alta fidelidad en su sistema. Ésto incluye la posibilidad de grabar y reproducir ficheros de audio tanto en los formatos MPEG Audio Layer 3 (MP3), WAV y Ogg Vorbis, así como muchos otros. La Colección de Ports de FreeBSD contiene también aplicaciones que le permitirán editar audio previamente grabado, añadir efectos y controlar dispositivos MIDI.

Tras unas cuantas pruebas podrá reproducir ficheros de video y DVD en FreeBSD. La cantidad de aplicaciones disponibles para codificar, convertir y reproducir los diversos soportes de video es más limitada que lo que hay disponible para el sonido. Por ejemplo, en el momento de escribir este texto no hay en la Colección de Ports de FreeBSD una buena aplicación que permita pasar datos de un formato a otro, el equivalente a lo que hay en el campo del sonido con audio/sox. A pesar de eso la situación en este área está cambiando rápidamente.

Este capítulo muestra los pasos necesarios para configurar una tarjeta de sonido. La configuración e instalación de X11 (El sistema X Window) habrá solucionado ya todos los problemas que hubiera podido darle su tarjeta gráfica, aunque quizás haya algún pequeño detalle que añadir para mejorar la reproducción.

Tras leer éste capítulo sabrá usted:

  • Cómo configurar su sistema de modo que su tarjeta de sonido sea reconocida por el mismo.

  • Confirmar el funcionamiento de su tarjeta usando herramientas de muestreo.

  • Cómo enfrentarse a problemas de configuración de sonido.

  • Cómo reproducir y crear ficheros MP3 y otros.

  • Cómo gestiona el video el servidor X.

  • Identificar unos cuantos ports para reproducir y codificar video que le darán muy buenos resultados.

  • Cómo reproducir DVD y ficheros .mpg y .avi.

  • Cómo convertir CD y DVD en ficheros de datos.

  • Cómo configurar una tarjeta de TV.

  • Cómo configurar un escáner de imágenes.

Antes de leer éste capítulo debería:

Si intenta montar un cd con mount(8) provocará (como mínimo) un error en el sistema, pero puede llegar a provocar un kernel panic. Dichos soportes tienen codificaciones especiales sustancialmente diferentes de los típicos sistemas de ficheros ISO.

7.2. Configuración de la tarjeta de sonido

7.2.1. Configuración del sistema

Antes de nada tendrá que saber a ciencia cierta el modelo de tarjeta que tiene, qué chip utiliza y si es PCI o ISA. FreeBSD admite una amplia variedad de tarjetas, tanto PCI como ISA. Consulte la lista de dispositivos de sonido que puede usar en FreeBSD en las Hardware Notes. Las «Hardware Notes» le dirán también qué controlador es el que hace funcionar su tarjeta.

Para poder usar su dispositivo de sonido en FreeBSD tiene que cargar el controlador de dispositivo adecuado, cosa que puede hacerse de dos maneras. La forma más fácil es cargar el módulo del kernel correspondiente a su tarjeta de sonido mediante kldload(8). Puede hacerlo en su shell con la siguiente orden

# kldload snd_emu10k1

o añadiendo la línea apropiada al fichero /boot/loader.conf:

snd_emu10k1_load="YES"

Ambos ejemplos son para una tarjeta de sonido Creative SoundBlaster® Live!. Encontrará una lista de módulos de sonido que puede cargar del mismo modo en /boot/defaults/loader.conf. Si no está del todo seguro sobre el controlador que debe usar pruebe con el módulo snd_driver:

# kldload snd_driver

Se trata de un «metacontrolador» que carga en memoria todos los controladores más habituales. De este modo acelerará notablemente el proceso de detectar cuál es el controlador perfecto para su hardware. También puede cargar todos los controladores de sonido desde /boot/loader.conf.

Si quiere saber qué controlador se corresponde con su tarjeta de sonido una vez cargado el «metadriver» snd_driver debe comprobar el contenido de /dev/sndstat mediante la orden cat /dev/sndstat.

El segundo método es compilar de forma estática el soporte para su tarjeta de sonido dentro de un kernel personalizado. En la siguiente sección encontrará la información necesaria para añadir a su kernel el soporte que necesita su hardware. Para más información sobre la compilación de un kernel consulte el Configuración del kernel de FreeBSD.

7.2.1.1. Configuración de un kernel personalizado con soporte de sonido

Lo primero que hay que hacer es añadir el controlador del «framework» de sonido sound(4) al kernel; tendrá que añadir la siguiente línea a su fichero de configuración del kernel:

device sound

Una vez hecho esto tiene que añadir el soporte para su tarjeta de sonido. Evidentemente tendrá que saber exactamente qué controlador es el que hace funcionar su tarjeta. Consulte la lista de dispositivos de sonido soportados que encontrará en las Hardware Notes y elija el controlador perfecto para su tarjeta. Por ejemplo una una tarjeta de sonido Creative SoundBlaster® Live! usará el controlador snd_emu10k1(4). Siguiendo con el ejemplo, si queremos añadir soporte para esta tarjeta agregaremos lo siguiente:

device snd_emu10k1

Por favor, lea la página de manual del controlador si tiene dudas con la sintaxis. La sintaxis específica para la configuración en el kernel de cada tarjeta de sonido soportada existente puede encontrarse también en /usr/src/sys/conf/NOTES.

Las tarjetas ISA no PnP pueden requerir que se le facilite al kernel la información de la configuración de la tarjeta (IRQ, puerto de E/S, etc). Esto se hace modificando el fichero /boot/device.hints. Durante el proceso de arranque loader(8) leerá este fichero y le pasará los parámetros al kernel. Veamos un ejemplo: una vieja tarjeta Creative SoundBlaster® 16 ISA no PnP utilizará el controlador snd_sbc(4) junto con snd_sb16. En el caso de esta tarjeta habrá que añadir las siguientes líneas al fichero de configuración del kernel

device snd_sbc
device snd_sb16

y añadir lo siguiente a /boot/device.hints:

hint.sbc.0.at="isa"
hint.sbc.0.port="0x220"
hint.sbc.0.irq="5"
hint.sbc.0.drq="1"
hint.sbc.0.flags="0x15"

La tarjeta del ejemplo usa el puerto de E/S 0x220 I/O port y la IRQ 5.

La sintaxis a utilizar en /boot/device.hints se explica en la página de manual de sound(4) y en la del controlador en cuestión.

En el ejemplo se muestran los parámetros por omisión. En ciertos casos habrá que usar otra IRQ o usar otros parámetros para hacer funcionar la tarjeta de sonido. Consulte la página de manual de snd_sbc(4) para más información sobre esta tarjeta.

7.2.2. Cómo probar su tarjeta de sonido

Una vez que haya reiniciado con su kernel personalizado, o tras cargar el mólo del kernel necesario la tarjeta de sonido aparecerá en el búfer de mensajes del sistema (dmesg(8)); deberí ser algo muy parecido a esto:

pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0
pcm0: [GIANT-LOCKED]
pcm0: <Cirrus Logic CS4205 AC97 Codec>

Puede comprobar el estado de la tarjeta de sonido en el fichero /dev/sndstat:

# cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384
kld snd_ich (1p/2r/0v channels duplex default)

El resultado en su sistema seguramente será distinto. Si no aparecen dispositivos pcm revise todo el proceso a ver dónde está el error. Revise su fichero de configuración del kernel nuevamente y compruebe que eligió el controlador de dispositivo adecuado. Tiene una lista de problemas habituales en la Problemas habituales.

Si todo ha ido bien ya tiene una tarjeta de sonido funcionando en su sistema. Si los pins de salida de sonido de su CD-ROM o DVD-ROM están colocados correctamente puede poner un CD en la unidad y reproducirlo con cdcontrol(1).

% cdcontrol -f /dev/acd0 play 1

Hay muchas aplicaciones como audio/workman que le ofrecerán un interfaz más amigable. Si quiere escuchar ficheros MP3 puede instalar, por ejemplo, audio/mpg123.

Hay otra via aún más rápida de probar su tarjeta de sonido. Envíe datos a to /dev/dsp del siguiente modo:

% cat fichero > /dev/dsp

donde fichero puede ser cualquier fichero. Esta orden producirá ruido, lo que confirmará que la tarjeta de sonido funciona.

Puede manejar los niveles de la tarjeta de sonido con mixer(8). Tiene todos los detalles en la página de manual de mixer(8).

7.2.2.1. Problemas habituales

ErrorSolution

sb_dspwr(XX) timed out

El puerto de E/S no ha sido configurado correctamente.

bad irq XX

No ha elegido correctamente la IRQ. Asegúrese de que la IRQ que ha elegido y la IRQ del sonido son la misma.

xxx: gus pcm not attached, out of memory

No queda memoria suficiente en el sistema para poder usar el dispositivo.

xxx: can’t open /dev/dsp!

Compruebe si hay otra aplicación utilizando (y por tanto ocupando) el dispositivo. Escriba fstat | grep dsp. Los sospechosos habituales son esound y el sistema de sonido de KDE.

7.2.3. Cómo utilizar múltiples fuentes de sonido

Disponer de múltiples fuentes de sonido puede ser muy útil, por ejemplo cuando esound o artsd no permiten compartir el dispositivo de sonido con otra aplicación.

FreeBSD permite hacerlo gracias a los Virtual Sound Channels (canales virtuales de sonido), que se activan mediante sysctl(8). Los canales virtuales permiten multiplexar la reproducción de sonido de su tarjeta mezclando el sonido en el kernel.

El número de canales virtuales se configura utilizando dos sysctl; como root escriba lo siguiente:

# sysctl hw.snd.pcm0.vchans=4
# sysctl hw.snd.maxautovchans=4

En el ejemplo anterior se han creado cuatro canales virtuales, una cantidad muy razonable para el uso normal. hw.snd.pcm0.vchans es el número de canales virtuales de que dispone pcm0; puede configurarlo en cuanto el dispositivo sea reconocido por el sistema. hw.snd.maxautovchans es el número de canales virtuales que se le asignan a un nuevo dispositivo de audio cuando se conecta al sistema mediante kldload(8). Puesto que el módulo pcm puede cargarse independientemente de los controladores de hardware hw.snd.maxautovchans puede almacenar cuántos canales virtuales tienen asignados los dispositivos que se vayan conectando al sistema.

No es posible modificar el número de canales virtuales de un dispositivo que esté en marcha. Cierre antes todos los programas que estén utilizando el dispositivo, como reproductores de música o dæmons de sonido.

Si no usa devfs(5) tendrá que configurar sus aplicaciones para que apunten a /dev/dsp0.x, donde x es un número entre 0 y 3 si hw.snd.pcm.0.vchans tiene un valor de 4 como en el ejemplo anterior. Si se estuviera usando devfs(5) en el ejemplo anterior cualquier programa que pidiera /dev/dsp0 sería atendido de forma totalmente transparente.

7.2.4. Asignación a los canales de mezcla de valores por omisión

Los valores por defecto de los distintos canales de mezcla están fijados en el código del controlador pcm(4). Hay distintas aplicaciones y dæmons que le permitirán asignar valores al mezclador y que permanezcan entre uso y uso, pero no es una solución demasiado limpia. Puede asignar valores por omisión a las mezclas a nivel de controlador definiendo los valores apropiados en /boot/device.hints. Veamos un ejemplo:

hint.pcm.0.vol="50"

Esto asignará al canal de volumen un valor por omisión de 50 al cargar el módulo pcm(4).

7.3. Sonido MP3

El formato MP3 (MPEG Layer 3 Audio) llega casi al nivel de calidad del CD, por lo que no hay motivo por el deba faltar en su escritorio FreeBSD.

7.3.1. Reproductores de MP3

El reproductor de MP3 para X11 más extendido es, de lejos, XMMS (X Multimedia System). Puede usar en él «skins»de Winamp puesto que el interfaz gráfico de XMMS es casi idéntico al de Nullsoft Winamp. XMMS incluye también soporte nativo para «plug-ins».

Puede instalar XMMS como port (multimedia/xmms) o como package.

La interfaz de XMMS es intuitiva e incluye una lista de reproducción, un ecualizador gráfico y muchas otras cosas. Si está acostumbrado a WinampXMMS le será muy fácil de usar.

El port audio/mpg123 es un reproductor MP3 que se usa desde la shell.

Puede especificarle desde la misma línea de órdenes a mpg123 el dispositivo de sonido que debe usar y el fichero MP3 que debe reproducir. Veamos un ejemplo:

# mpg123 -a /dev/dsp1.0 ASaber-GrandesÉxitos.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!

Playing MPEG stream from ASaber-GrandesÉxitos.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo

Sustituya /dev/dsp1.0 por el dispositivo dsp que haya en su sistema.

7.3.2. Extracción de pistas de sonido de un CD

Antes de convirtir una pista o todo un CD a MP3 la información sonido debe volcarse al disco duro. Esto se hace convirtiendo los datos «raw CDDA» (CD Digital Audio) a ficheros WAV.

La herramienta cdda2wav, que forma parte del port sysutils/cdrtools, permite la extracción de información de sonido en CD así como la información asociada a él.

Con el CD en la unidad la siguiente orden (como root) un CD entero en ficheros WAV individuales, uno por pista:

# cdda2wav -D 0,1,0 -B

cdda2wav soporta unidades CDROM ATAPI (IDE). En el caso de unidades IDE especifique el número de dispositivo en el lugar correspondiente al núro de unidad SCSI. Por ejemplo, para extraer la pista 7 desde una unidad IDE:

# cdda2wav -D /dev/acd0 -t 7

La opción -D 0,1,0 indica el dispositivo SCSI 0,1,0, que corresponde con la salida de cdrecord -scanbus.

Para extraer pistas de forma selectiva use la opción -t:

# cdda2wav -D 0,1,0 -t 7

Esta opción extrae la séptima pista de un CDROM de sonido. Si quiere extraer un rango de pistas, por ejemplo las pistas de la uno a la siete, declare el rango del siguiente modo:

# cdda2wav -D 0,1,0 -t 1+7

La herramienta dd(1) le permite también extraer pistas de sonido desde unidades ATAPI; consulte la Copiar CD de audio para más información.

7.3.3. Codificación de MP3

Hoy por hoy el codificador de MP3 por antonomasia es lame. Puede encontrar lame en audio/lame.

Partiendo de ficheros WAV previamente extraidos la siguiente orden convierte audio01.wav en audio01.mp3:

# lame -h -b 128 \
--tt "Título de copla o cantar" \
--ta "Grupo, solista o coral sinfónica" \
--tl "Título del álbum" \
--ty "2001" \
--tc "Autor de la extracción y paso a MP3" \
--tg "Estilo" \
audio01.wav audio01.mp3

Los 128 kbits pasan por se el estándar de ratio de bits de los MP3, aunque puede que usted sea de los que prefieren calidades más altas, 160 o incluso 192. A mayor ratio de bits, más espacio en disco necesitará, aunque la calidad también será mayor. La opción -h usa el modo «más calidad pero algo más lento». Las opciones que empiezan por --t indican etiquetas ID3, que suelen contener información de la canción que contiene el fichero MP3. Tiene información sobre otras opciones de codificación en la página de manual de lame.

7.3.4. Decodificación de MP3

Para grabar un CD de sonido desde ficheros MP3 hay que convertirlos a formato WAV no comprimido. Tanto XMMS como mpg123 soportan la conversión de MP3 a un formato de fichero no comprimido.

Escritura a disco desde XMMS:

  1. Arranque XMMS.

  2. Botón derecho del raón en la ventana para acceder al menú de XMMS.

  3. Elija Preferences en Options.

  4. Cambie el «Output Plugin» a «Disk Writer Plugin».

  5. Pulse Configure.

  6. Elija un directorio en el que guardar los ficheros descomprimidos.

  7. Cargue el fichero MP3 en XMMS de la forma habitual, pero asegúrese de tener el volumen al 100% y las opciones de ecualización desactivadas.

  8. Pulse Play - parecerá que XMMS está reproduciendo música pero no sonará nada. Lo que está haciendo es volcar el MP3 a un fichero.

  9. Recuerde que antes de poder volver a escuchar ficheros MP3 de nuevo tendrá que devolver el «Plugin de salida» por omisión a la posición inicial.

Escritura de la salida estándar en mpg123:

  1. Ejecute mpg123 -s audio01.mp3 > audio01.pcm

XMMS genera un fichero WAV, mientras que mpg123 convierte MP3 a datos de sonido raw PCM. Puede usar cdrecord con ambos formatos para crear CD de sonido. Tendrá que usar burncd(8) para raw PCM. Si lo que tiene son ficheros WAV escuchará un ligero clic al principio de cada pista: se trata de la cabecera del fichero WAV. Puede eliminar esta cabecera mediante SoX (que puede instalar como port desde audio/sox o si lo prefiere como package):

% sox -t wav -r 44100 -s -w -c 2 pista.wav pista.raw

Consulte la Creación y uso de medios ópticos (CD) para más información sobre el uso de grabadoras de CD en FreeBSD.

7.4. Reproducción de vídeo

La reproducción de vídeo es un área muy nueva y en la que se producen grandes cambios a gran velocidad. Tenga paciencia. Aquí no va a ser todo tan sencillo como al configurar el sonido.

Antes de comenzar es imprescindible que sepa con certeza cuál es el modelo de su tarjeta gráfica y qué chip usa. Tanto Xorg como XFree86™ soportan gran cantidad de tarjetas gráficas, pero de pocas se puede decir que den un buen rendiemiento de reproducción. Puede consultar una lista de extensiones que el servidor X puede hacer funcionar en su tarjeta ejecutando xdpyinfo(1) desde una sesión X11.

Le recomendamos que tenga a mano un fichero MPEG no muy grande para usarlo en las pruebas que haga con los diversos reproductores y opciones. Algunos reproductores de DVD buscarán por omisión soportes DVD en /dev/dvd (algunos incluso tienen fijado en el código el nombre de dicha unidad) seguramente le resultará útil ejecutar los siguientes enlaces simbólicos:

# ln -sf /dev/acd0 /dev/dvd
# ln -sf /dev/acd0 /dev/rdvd

Tenga en cuenta que debido al diseño de devfs(5) los enlaces creados a mano no sobrevivirán a un reinicio del sistema. Para que así suceda tras cada reinicio debe añadir las siguientes líneas a /etc/devfs.conf:

link acd0 dvd
link acd0 rdvd

Además, el descifrado de DVD (una tarea que hará necesario llamar a funciones especiales de los DVD-ROM) requiere permisos de escritura en unidades DVD.

Le recomendamos que aumente la memoria compartida del interfaz X11, para lo cual tendrá que incremente los valores asignados a varias sysctl(8):

kern.ipc.shmmax=67108864
kern.ipc.shmall=32768

7.4.1. Cómo determinar las características de video

Hay varias formas de reproducir vídeo en X11, pero cuál de ellas sea la que funcione depende en gran medida del hardware que intervenga. Cada uno de los métodos que se describen más son mejores o peores según en qué hardware se ejecute. Además el procesamiento de video en X11 es un asunto que está recibiendo mucha atención últimamente y en cada nueva versión de Xorg y de XFree86™ no es extraño encontrar avances significativos.

Veamos una lista de interfaces de vídeo muy comunes:

  1. X11: salida normal de X11 utilizando memoria compartida.

  2. XVideo: una extensión del interfaz X11 que permite la reproducción de vídeo en las ventanas de X11.

  3. SDL: Simple Directmedia Layer.

  4. DGA: Direct Graphics Access (acceso directo a gráficos.

  5. SVGAlib: capa de consola de gráficos a bajo nivel.

7.4.1.1. XVideo

Xorg y XFree86™ 4.X tienen una extensión llamada XVideo (también conocida como Xvideo, Xv o xv) que permite reproducir vídeo en ventanas del sistema X11 a través de un tipo de aceleración especial. Dicha extensión ofrece una calidad de reproducción muy alta incluso en máquinas muy cortas de recursos.

Utilice xvinfo para saber qué extensión está utilizando:

% xvinfo

XVideo is supported for your card if the result looks like:

X-Video Extension version 2.2
screen #0
  Adaptor #0: "Savage Streams Engine"
    number of ports: 1
    port base: 43
    operations supported: PutImage
    supported visuals:
      depth 16, visualID 0x22
      depth 16, visualID 0x23
    number of attributes: 5
      "XV_COLORKEY" (range 0 to 16777215)
              client settable attribute
              client gettable attribute (current value is 2110)
      "XV_BRIGHTNESS" (range -128 to 127)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_CONTRAST" (range 0 to 255)
              client settable attribute
              client gettable attribute (current value is 128)
      "XV_SATURATION" (range 0 to 255)
              client settable attribute
              client gettable attribute (current value is 128)
      "XV_HUE" (range -180 to 180)
              client settable attribute
              client gettable attribute (current value is 0)
    maximum XvImage size: 1024 x 1024
    Number of image formats: 7
      id: 0x32595559 (YUY2)
        guid: 59555932-0000-0010-8000-00aa00389b71
        bits per pixel: 16
        number of planes: 1
        type: YUV (packed)
      id: 0x32315659 (YV12)
        guid: 59563132-0000-0010-8000-00aa00389b71
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)
      id: 0x30323449 (I420)
        guid: 49343230-0000-0010-8000-00aa00389b71
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)
      id: 0x36315652 (RV16)
        guid: 52563135-0000-0000-0000-000000000000
        bits per pixel: 16
        number of planes: 1
        type: RGB (packed)
        depth: 0
        red, green, blue masks: 0x1f, 0x3e0, 0x7c00
      id: 0x35315652 (RV15)
        guid: 52563136-0000-0000-0000-000000000000
        bits per pixel: 16
        number of planes: 1
        type: RGB (packed)
        depth: 0
        red, green, blue masks: 0x1f, 0x7e0, 0xf800
      id: 0x31313259 (Y211)
        guid: 59323131-0000-0010-8000-00aa00389b71
        bits per pixel: 6
        number of planes: 3
        type: YUV (packed)
      id: 0x0
        guid: 00000000-0000-0000-0000-000000000000
        bits per pixel: 0
        number of planes: 0
        type: RGB (packed)
        depth: 1
        red, green, blue masks: 0x0, 0x0, 0x0

Tenga en cuenta que los formatos que aparecen en el listado (YUV2, YUV12, etc) no aparecen en todas las implementaciones de de XVideo y su ausencia puede despistar a algunos reproductores.

Si el resultado se parece mucho a esto

X-Video Extension version 2.2
screen #0
no adaptors present

lo más probable es que su tarjeta no soporte XVideo.

Si su tarjeta gráfica no soporta XVideo lo único que significa es que para su sistema será más complicado alcanzar los requisitos computacionales necesarios para el procesamiento de vídeo. Dependiendo de la tarjeta gráfica y el procesador que tenga es posible que de todos modos pueda salvar la papeleta. Consulte la sección sobre recursos avanzados en la Lecturas adicionales.

7.4.1.2. Simple Directmedia Layer

SDL (Simple Directmedia Layer) se creó pensando en una capa que permitiera aplicaciones fáciles de portar entre las plataformas Microsoft® Windows®, BeOS y UNIX® y que permitiera al mismo tiempo un uso eficiente del sonido y el vídeo. La capa SDL ofrece abstracción de hardware a bajo nivel, lo que a veces puee ser más eficiente que la propia interfaz X11.

SDL está en devel/sdl12.

7.4.1.3. Direct Graphics Access

«Direct Graphics Access» es una extensión de X11 que permite que un programa sortée el servidor X y acceda directamente al «framebuffer». Utiliza memoria de bajo nivel, así es imprescindible que se ejecute como root.

Puede probar y analizar el rendimiento de la extensión DGA con dga(1). Al ejecutar dga la pantalla cambia de color cada vez que pulsa una tecla. Para salir de la aplicación pulse q.

7.4.2. Ports y packages relacionados con el vídeo

Esta sección expone el software existente en la Colección de Ports de FreeBSD que puede usar para la reproducción de vídeo. La reproducción de vídeo es un área del desarrollo de software donde hay muchísima actividad, de manera que las características de más de una de las aplicaciones que vamos a describir pueden ser distintas.

Lo primero que hay que conocer es el importante detalle de que la mayoría de las aplicaciones de vídeo que funcionan en FreeBSD se desarrollaron para Linux. Muchas de esas aplicaciones todavía están en versiones beta. Estos son algunos de los problemas que puede encontrarse durante el uso de software de vídeo en FreeBSD:

  1. Una aplicación no puede reproducir un fichero que ha generado otra aplicación distinta.

  2. Una aplicación no puede reproducir un fichero que ella misma a generado.

  3. La misma aplicación ejecutándose en dos máquinas distintas, compilada en cada una de esas máquinas; la reproducción del mismo fichero da resultados diferentes.

  4. El uso de un filtro aparentemente trivial como es redimensionar una imagen aplicando una escala da como fruto un resultado horroroso debido a que la rutina encargada de aplicarla es defectuosa.

  5. Que una aplicación de volcados de memoria («core dumps»).

  6. La documentación no se instala con el port, pero sí que existe en la web o en el directorio work del port.

La mayoría de estas aplicaciones muestra síntomas evidente de «Linuxismo», es decir, hay problemas derivados del modo en el que se implementan las bibliotecas en las distribuciones de Linux, o del hecho de que ciertas características del kernel de Linux han sido dadas por omnipresentes por los autores de las aplicaciones. Estos problemas no siempre han sido advertidas y solucionadas de algún modo por los responsables de los ports, lo que puede desembocar en problemas como:

  1. El uso de /proc/cpuinfo para detectar las características del procesador.

  2. El uso erróneo de los hilos puede causar que ciertos programas se cuelguen al intentar cerrarse en lugar de cerrarse correctamente.

  3. Software que aún no está en la Colección de Ports de FreeBSD usado frecuentemente con la aplicación.

Hasta ahora los autores de las aplicaciones han colaborado de buen grado con los responsables de los ports para hacer más sencillo el trabajo de portar estas aplicaciones a FreeBSD.

7.4.2.1. MPlayer

MPlayer es un reproductor de vídeo desarrollado muy recientemente y con un desarrollo rapidísimo. Los objetivos del equipo MPlayer son la velocidad y la flexibilidad en Linux y otros sistemas Unix. El proyecto comenzó cuando el fundador del equipo se cansó de padecer el pobre rendimiento de los reproductores de vídeo que había disponibles en ese momento. Hay quien dice que el interfaz gráfico fue sacrificado en pos de un diseño más ligero, aunque una vez que se acostumbre a las opciones desde la línea de órdenes y a los atajos de teclado todo irá como la seda.

7.4.2.1.1. Compilación de MPlayer

Encontrará MPlayer en multimedia/mplayer. MPlayer ejecuta una serie de pruebas de hardware durante el proceso de compilación, dando como resultado un binario que no tiene por qué funcionar en otros sistemas. Recuerde, por tanto, compilar la aplicación como port y no utilice el package binario. Además hay múltiples parámetros que puede pasarle a make, tal y como verá al comenzar la compilación:

# cd /usr/ports/multimedia/mplayer
# make
N - O - T - E

Take a careful look into the Makefile in order
to learn how to tune mplayer towards you personal preferences!
For example,
make WITH_GTK1
builds MPlayer with GTK1-GUI support.
If you want to use the GUI, you can either install
/usr/ports/multimedia/mplayer-skins
or download official skin collections from
http://www.mplayerhq.hu/homepage/dload.html

Las opciones por omisión del port deberían bastar para la mayoría de los usuarios, aunque si va a necesitar el codec XviD tendrá que especificar WITH_XVID en la línea de órdenes. La unidad de DVD por defecto se puede definir con la opción WITH_DVD_DEVICE si la opción por omisión, /dev/acd0, no le sirve.

En el momento de escribir esto el port de MPlayer genera la documentación en formato HTML y dos ejecutables: mplayer y mencoder, que es una herramienta para recodificar vídeo.

La documentación en HTML de MPlayer es muy informativa. Si el lector no cubre todas sus dudas sobre hardware de vídeo e interfaces con el contenido de este capítulo la documentación de MPlayer es el sitio donde debe buscar. Si quiere más información sobre el soporte de vídeo en UNIX® el mejor sitio para consultar es, sin duda alguna, la documentación de MPlayer.

7.4.2.1.2. Uso de MPlayer

Los usuarios de MPlayer deben crear un subdirectorio .mplayer en su «home». Para crear este directorio (necesario para el funcionamiento de la aplicación) teclée lo siguiente:

% cd /usr/ports/multimedia/mplayer
% make install-user

Las opciones de mplayer para la línea de órdenes se detallan en la página de manual. Si necesita todavía más detalles consulte la documentación en HTML. En esta sección se va a explicar solamente lo más básico.

Para reproducir el fichero ficherodeprueba.avi, mediante una de las diversas interfaces de vídeo utilice la opción -vo:

% mplayer -vo xv ficherodeprueba.avi
% mplayer -vo sdl ficherodeprueba.avi
% mplayer -vo x11 ficherodeprueba.avi
# mplayer -vo dga ficherodeprueba.avi
# mplayer -vo 'sdl:dga' ficherodeprueba.avi

Merece la pena que pruebe todas, puesto que el rendimiento relativo depende en gran medida de muchos factores y será muy distinto el resultado dependiendo del hardware.

Si quiere reproducir un DVD sustituya ficherodeprueba.avi por dvd://N -dvd-device DISPOSITIVO, donde N es el número de título que quiere reproducir y DISPOSITIVO es el nodo de dispositivo del DVD-ROM. Veamos un ejemplo: para reproducir el título 3 desde /dev/dvd ejecutaremos:

# mplayer -vo xv dvd://3 -dvd-device /dev/dvd

La unidad de DVD por omisión puede definirse durante la compilación del port de MPlayer con la opción WITH_DVD_DEVICE. Por defecto apunta a /dev/acd0. Tiene todos los detalles en el Makefile del port.

Consulte los atajos de teclado para parar la reproducción, ponerla en pausa, etc. consulte la salida de mplayer -h o mejor aún lése la página de manual.

Hay otras opciones que le resultarán de interés para la reproducción: -fs -zoom, para la reproducción a pantalla completa y -framedrop, que mejora el rendimiento.

Para evitar que la línea de órdenes se haga demasiado larga puede crear un fichero .mplayer/config e introducir en él las opciones que quiera usar desde el arranque de la aplicación:

vo=xv
fs=yes
zoom=yes

Para terminar, puede usar mplayer para extraer un título de un DVD a un fichero .vob. Por ejemplo, si quiere extraer el segundo título de un DVD escriba esto:

# mplayer -dumpstream -dumpfile salida.vob dvd://2 -dvd-device /dev/dvd

El fichero de salida, salida.vob, un MPEG y puede manipularlo con las aplicaciones que se describen en esta sección.

7.4.2.1.3. mencoder

Antes de empezar a usar mencoder le recomendamos que se familiarice con las opciones que se detallan en la documentación HTML. Hay también una página de manual, pero no es de mucha utilidad sin la documentación HTML. Hay una ingente cantidad de formas de mejorar la calidad, reducir el ratio de bits y cambiar formatos; alguno de esos pequeños trucos pueden marcar la diferencia entre un buen y un mal rendimiento. Le mostramos un par de ejemplos por los que puede empezar. El primero es una simple copia:

% mencoder entrada.avi -oac copy -ovc copy -o salida.avi

Ciertas combinaciones erróneas de opciones en la línea de órdenes pueden dar como fruto un fichero de salida que no puede reproducir ni siquiera el propio mplayer, así que si lo que quiere es extraer datos a un fichero siga usando tranquilamente la opción -dumpfile de mplayer.

Para convertir entrada.avi con codificación MPEG4 y audio con codificación MPEG3 (necesitará audio/lame):

% mencoder entrada.avi -oac mp3lame -lameopts br=192 \
	 -ovc lavc -lavcopts vcodec=mpeg4:vhq -o salida.avi

El fichero de salida puede verse con mplayer y con xine.

Si sustituye entrada.avi por dvd://1 -dvd-device /dev/dvd y lo ejecuta como root puede recodificar un título de DVD directamente. Es posible que el resultado no sea muy satisfactorio tras los primeros intentos, así que le recomendamos que vuelque el título a un fichero y haga todas las pruebas que necesite sobre ese fichero.

7.4.2.2. El reproductor de vídeo xine

El reproductor de vídeo xine es un ambicioso proyecto que tiene como meta ofrecer no solamente una aplicación de vídeo «todo en uno», sino crear una biblioteca base reutilizable y un ejecutable modular que puede ampliarse mediante «plugins». Existe como package y también como port: multimedia/xine.

El reproductor xine está todavía en mantillas, pero sus primeros pasos están siendo muy interesantes. xine requiere o una CPU rápida o una tarjeta gráfica, o bien soporte para la extensión XVideo. El GUI es intuitivo, aunque un tanto pedestre.

En el momento de escribir esto xine no incorpora ningún módulo de entrada que sirva para reproducir DVD codificados con CSS. Hay versiones compiladas por terceros que tienen módulos que lo permiten, pero ninguna de ellas está en la Colección de Ports de FreeBSD.

Comparado con MPlayerxine deja las cosas más hechas para el usuario, pero al mismo tiempo pone más difícil el control exhaustivo sobre todo lo que pasa. El reproductor xine da un mejor rendimiento en interfaces XVideo.

Por omisión xine arranca con un intefaz gráfico de usuario. Los menús pueden usarse para abrir un fichero en concreto:

% xine

También puede invocar la aplicación desde la línea de órdenes para que reproduzca un fichero inmediatamente y sin utilizar el GUI:

% xine -g -p fichero.avi

7.4.2.3. Las herramientas transcode

transcode no es un reproductor, sino una suite de herramientas para recodificar (también se podría usar la palabra «transcodificar», de ahí su nombre) ficheros de sonido y de vídeo. Con transcode es posible fundir ficheros de video y reparar ficheros deteriorados desde la línea de órdenes y en las interfaces de flujo stdin/stdout.

Puede configurar gran cantidad de opciones en el momento de la compilación de multimedia/transcode; le recomendamos que use la siguiente línea de órdenes para compilar transcode:

# make WITH_OPTIMIZED_CFLAGS=yes WITH_LIBA52=yes WITH_LAME=yes WITH_OGG=yes \
WITH_MJPEG=yes -DWITH_XVID=yes

La configuración que le proponemos deberí satisfacer a la mayoría de los usuarios.

Veamos un ejemplo ilustrativo de las posibilidades de transcode: convertir un fichero DivX en un fichero PAL MPEG-1 (PAL VCD):

% transcode -i input.avi -V --export_prof vcd-pal -o output_vcd
% mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpa

Puede reproducir el fichero MPEG resultante, output_vcd.mpg, con MPlayer. Si quiere también puede grabar el fichero en un CD-R y tendrá un VideoCD, aunque para eso tendrá que instalar multimedia/vcdimager y sysutils/cdrdao.

Consulte la página de manual de transcode, pero no olvide consultar también el wiki de transcode, en el que encontrará más información y muchos ejemplos.

7.4.3. Lecturas adicionales

El desarrollo de las diversas aplicaciones de vídeo disponibles en FreeBSD avanza rápidamente. Es muy posible que en un futuro cercano la mayoría de los problemas de los que hemos hablado aquí hayan sido resueltos. Mientras tanto quien quiera exprimir las capacidades de FreeBSD en las áreas del sonido y el vídeo tendrán que recopilar la información repartida en varias FAQ y tutoriales y utilizar unos cuantos programas diferentes. En esta sección se le proponen al lector interesado varias fuentes de información adicional.

La documentación de MPlayer contiene una gran cantidad de información técnica. Cualquiera que quiera alcanzar un alto grado de conocimiento en vídeo sobre UNIX® debe consultar esa documentación. La lista de correo de MPlayer es sumamente hostil hacia quien no se ha molestado en leer la documentación antes de preguntar, así que si va a enviar informes de errores a esa lista, por favor, léase la documentación..

El texto xine HOWTO contiene un capítulo sobre mejora del rendimiento que afecta a todos los reproductores.

Hay unas cuantas aplicaciones muy prometedoras que el lector debería al menos probar:

7.5. Configuración de tarjetas de TV

7.5.1. Introducción

Las tarjetas de TV le permiten ver en su sistema emisiones de TV tradicionales o incluso por cable. La mayoría aceptan vídeo compuesto mediante RCA o una entrada de S-video; algunas de estas tarjetas incorporan también un sintonizador de radio FM.

FreeBSD puede utilizar tarjetas de TV PCI que tengan el chip Brooktree Bt848/849/878/879 o el chip de captura de vídeo Conexant CN-878/Fusion 878a gracias al controlador bktr(4). Asegúrese de que la tarjeta tiene un sintonizador que esté soportado: consulte la lista de sintonizadores soportados que encontrará en la página de manual de bktr(4).

7.5.2. Añadir el controlador

Poder usar la tarjeta tendrá que cargar el controlador bktr(4). Una forma de hacerlo es añdir la siguiente línea al fichero /boot/loader.conf:

bktr_load="YES"

También puede hacerlo compilando estáticamente el soporte para la tarjeta de TV en su kernel; añada las siguientes líneas al fichero de configuración de su kernel:

device	 bktr
device	iicbus
device	iicbb
device	smbus

Es necesario incluir todas esas lineas adicionales porque los componentes de la tarjeta están conectados entre sí por un bus I2C. Hecho esto compile e instale su nuevo kernel.

Una vez añadido el soporte de la tarjeta al sistema tendrá que reiniciar. Durante el arranque deberían aparecer rastros de su tarjeta de TV. Veamos un ejemplo:

bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0
iicbb0: <I2C bit-banging driver> on bti2c0
iicbus0: <Philips I2C bus> on iicbb0 master-only
iicbus1: <Philips I2C bus> on iicbb0 master-only
smbus0: <System Management Bus> on bti2c0
bktr0: Pinnacle/Miro TV, Philips SECAM tuner.

Es obvio que estos mensajes serán distintos según sea el hardware del que se trate. Asegúrese de que el sistema detecta correctamente el sintonizador. Se puede sobreescribir alguno de los parámetros detectados por el sistema mediante MIB sysctl(8) y opciones del fichero de configuración del kernel. Si por ejemplo quiere obligar al sintonizador para que se comporte como un Phillips SECAM añada lo siguiente al fichero de configuración de su kernel:

options OVERRIDE_TUNER=6

Puede utilizar directamente sysctl(8):

# sysctl hw.bt848.tuner=6

Consulte en bktr(4) y en /usr/src/sys/conf/NOTES si necesita más detalles sobre las opciones disponibles.

7.5.3. Aplicaciones útiles

Tendrá que instalar una de estas aplicaciones para poder utilizar su tarjeta de TV:

  • multimedia/fxtv ofrece «TV en una ventana» y captura de imagen/sonido/vídeo.

  • multimedia/xawtv: otra aplicación de TV; ofrece lo mismo que fxtv.

  • misc/alevt decodifica y reproduce videotexto y teletexto.

  • audio/xmradio permite utilizar el sintonizador de radio FM que incorporan algunas tarjetas de TV.

  • audio/wmtune, una aplicación de escritorio muy útil para el uso de sintonizadores de radio.

Hay más aplicaciones útiles en la Colección de de Ports de FreeBSD.

7.5.4. Solución de problemas

Si tiene algún problema con su tarjeta de TV compruebe en primer lugar que el chip de captura de vídeo y el sintonizador realmente funcionan con el controlador bktr(4) y si ha utilizado las opciones de configuración más adecuadas. Si necesita más ayuda o necesita respuestas sobre su tarjeta de TV puede recurrir a la lista de correo Lista de correo sobre multimedia en FreeBSD.

7.6. Escáneres de imágenes

7.6.1. Introducción

El acceso a escáneres de imágenes en FreeBSD funciona gracias a la APISANE (siglas de «Scanner Access Now Easy», «el acceso a escáneres ahora es fácil»), disponible en la Colección de Ports de FreeBSD. SANE utiliza también ciertos controladores de FreeBSD para acceder al hardware del escáner.

FreeBSD puede utilizar tanto escáneres SCSI como USB. Asegúrese de que el suyo funciona con SANE antes de intentar ningún tipo de configuración. SANE tiene una lista de dispositivos soportados donde encontrará información actualizada sobre hasta dónde funciona el escáner y su estatus. La página de manual de uscanner(4) incluye una listas de escáneres USB que funcionan con SANE.

7.6.2. Configuración del kernel

Como ya se ha dicho tanto los interfaces USB como las SCSI funcionan. Según sea el interfaz de su escáner necesitará un tipo diferente de controlador:

7.6.2.1. Interfaz USB

El kernel GENERIC incluye por omisión los controladores de dispositivo necesarios para poder usar escáneres USB. Si va a personalizar su kernel asegúrese de que esto está en el fichero de configuración del mismo:

device usb
device uhci
device ohci
device uscanner

Según cual sea el chipset de su placa base tendrá que usar device uhci o device ohci, aunque si tiene ambos no tendrá problemas por eso.

Si por cualquier motivo no quiere recompilar su kernel y su kernel no es el GENERIC puede cargar el módulo controlador de dispositivo uscanner(4) con kldload(8):

# kldload uscanner

Si quiere cargar este módulo cada vez que arranque el sistema debe añadir la siguiente línea a /boot/loader.conf:

uscanner_load="YES"

Tras reiniciar con el kernel correcto (o una vez que el módulo esté cargado) conecte su escáner USB. Debe aparecer en el «buffer» de mensajes del sistema (dmesg(8)) un mensaje una línea como la siguiente:

uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2

La línea del ejemplo muestra que nuestro escáner está utilizando el nodo de dispositivo /dev/uscanner0.

7.6.2.2. Interfaz SCSI

Si su escáner tiene un interfaz SCSI es importante saber qué controladora SCSI incorpora. El chipset SCSI que tenga influirá en la configuración del kernel que tenga que personalizar. El kernel GENERIC tiene controladores de dispositivo para las controladoras SCSI más comunes. Consulte el fichero NOTES y añada la línea correcta al fichero de configuración de su kernel. Tendrá que añadir también la siguiente línea:

device scbus
device pass

Una vez compilado e instalado el kernel correctamente tiene ya que ver sus nuevos dispositivos en el «buffer» de mensajes del sistema:

pass2 at aic0 bus 0 target 2 lun 0
pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device
pass2: 3.300MB/s transfers

Si su escáner estaba apagado durante el arranque puede forzar manualmente la detección si ejecuta una búsqueda de buses SCSI con camcontrol(8):

# camcontrol rescan all
Re-scan of bus 0 was successful
Re-scan of bus 1 was successful
Re-scan of bus 2 was successful
Re-scan of bus 3 was successful

El escáner aparecerá en la lista de dispositivos SCSI:

# camcontrol devlist
<IBM DDRS-34560 S97B>              at scbus0 target 5 lun 0 (pass0,da0)
<IBM DDRS-34560 S97B>              at scbus0 target 6 lun 0 (pass1,da1)
<AGFA SNAPSCAN 600 1.10>           at scbus1 target 2 lun 0 (pass3)
<PHILIPS CDD3610 CD-R/RW 1.00>     at scbus2 target 0 lun 0 (pass2,cd0)

Tiene todos los detalles sobre los dispositivos SCSI en las páginas de manual de scsi(4) y camcontrol(8).

7.6.3. Configuración de SANE

El sistema SANE se divide en dos partes: los «backends» (graphics/sane-backends) y los «frontends» (graphics/sane-frontends). Los «backends» facilitan el acceso al escáner propiamente dicho. La lista de dispositivos que funcionan con SANE le dirá qué «backend» hará funcionar su escáner de imágenes. No hay más remedio que identificar correctamente el «backend» de su escáner para poder usarlo. Los «frontends» ofrecen una interfaz gráfica para escanear (xscanimage).

Lo primero que hay que hacer es instalar el port o package de graphics/sane-backends. Después ejecute la orden sane-find-scanner para comprobar el funcionamiento de la detección de escáneres del sistema SANE:

# sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3

En la salida de la orden anterior se le mostrará el tipo de interfaz del escáner y el nodo de dispositivo a través del cual el sistema accede a él. Es posible que no aparezcan la marca y el modelo, pero eso no tiene importancia.

Algunos escáneres USB necesitan que les instale un «firmware»; esto se explica en la página de manual del «backend» correspondiente. También debe leer las páginas de manual sane-find-scanner(1) y linprocfs(7).

Ahora hay que comprobar que el «frontend» de escaneo puede identificar el escáner. Por omisión los «backends» de SANE incorporan una herramienta de línea de órdenes llamada sane(1), que le mostrará una lista de dispositivos e incluso una captura de imagen desde la shell. La opción -L muestra una lista de escáners:

# scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner

Si el software no lanza ningún mensaje, o si el mensaje indica que no se han encontrado escáneres significa que sane(1) no puede identificar su escáner. Si este es el caso tendrá que editar el fichero de configuración del «backend»y definir en él el escáner que quiera utilizar. Encontrará todos los ficheros de configuración de los «backends» en el directorio /usr/local/etc/sane.d/. Este problema con la identificación del hardware es relativamente frecuente con ciertos modelos de escáneres USB.

Por ejemplo, con el escáner que hemos usado en la Interfaz USB la orden sane-find-scanner nos da la siguiente información:

# sane-find-scanner -q
found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0

El escáner ha sido detectado sin problemas, utiliza el interfaz USB y está conectado al nodo de dispositivo /dev/uscanner0 . Ahora comprobaremos que podemos identificar correctamente el escáner:

# scanimage -L

No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).

No hemos podido identificar el escáner, así que hemos de editar el fichero /usr/local/etc/sane.d/epson.conf. Estamos usando el modelo de escáner EPSON Perfection® 1650, así que ya sabemos que el escáner utilizará el «backend» epson. Lea atentamente los comentarios que hay en los ficheros de configuración de los «backends». Lo que hay que hacer es muy sencillo: basta con comentar las líneas en las que aparecen interfaces que no sean el perfecto para su escáner. En nuestro caso comentaremos todas las líneas que comiencen por scsi puesto que nuestro escáner tiene interfaz USB. Después de esto hay que añadir una lína al final del fichero declarando el interfaz y el nodo de dispositivo que se van a usar. En el caso del ejemplo esto es lo que añadimos:

usb /dev/uscanner0

Por favor, lea los comentarios que encontrará en el fichero de configuración del «backend» y la pángina de manual de del «backend» si necesita más información sobre la sintaxis que debe usar. Hecho esto podemos verificar si ya podemos identificar el escáner:

# scanimage -L
device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner

Hemos identificado nuestro escáner USB. Ni tiene importancia si la marca y modelo que hemos visto no coinciden con nuestro escáner. Lo único realmente importante es el campo `epson:/dev/uscanner0', que nos da el nombre correcto del «backend» y el nodo de dispositivo correcto.

Una vez que scanimage -L llega a ver al escáner hemos terminado con la configuración. El dispositivo está listo para escanear imángenes.

sane(1) permite ejecutar una captura de imágen desde la línea de órdenes, pero siempre es mejor utilizar un interfaz gráfico de usuario para estas tareas. SANE ofrece un interfaz gráfico simple pero eficiente: xscanimage (graphics/sane-frontends).

Otro «frontend» gráfico para escanear que se ha hecho muy popular es Xsane (graphics/xsane). Este «frontend» tiene características muy avanzadas como varios modos de escaneo (fotocopia, fax, etc.), corrección de color, escaneo de imágenes por lotes, etc. Ambas aplicaciones pueden utilizarse además como «plugins» de GIMP.

7.6.4. Dar acceso al escáner a otros usuarios

Todo lo que se ha mostrado en esta sección se ha ejecutado con privilegios de root. Lo normal es que haya otros usuarios que tengan que tener acceso al escáner. Un usuario que quiera usar el escáner tiene que tener acceso de lectura y escritura al nodo de dispositivo que usa el escáner. Por ejemplo, nuestro escáner USB utiliza el nodo de dispositivo /dev/uscanner0 propiedad del grupo operator. Al añadir al usuario joe al grupo operator éste podrá acceder al escáner:

# pw groupmod operator -m joe

Para más información sobre el uso de pw(8) lea su página de manual. Tendrá también que configurar correctamente los permisos de escritura (0660 o 0664) en el nodo de dispositivo /dev/uscanner0; por omisión los miembros del grupo operator sólo tienen acceso de lectura en este nodo de dispositivo. Añada las siguientes líneas al fichero lines to the /etc/devfs.rules:

[system=5]
add path uscanner0 mode 660

Ahora añada lo siguiente a /etc/rc.conf y reinicie la máquina:

devfs_system_ruleset="system"

Para más información sobre lo que acaba de leer consulte la página de manual de devfs(8).

Por seguridad debería pensarse dos veces el hecho mismo de añadir cualquier usuario a un grupo y muy especialmente al grupo operator.


Last modified on: 9 de marzo de 2024 by Danilo G. Baio