Open Sound System (Español)

From ArchWiki
Revision as of 14:25, 9 November 2012 by Pedro (Talk | contribs) (Paquetes Experimentales)

Jump to: navigation, search

El Open Sound System (OSS) es una arquitectura de sonido alternativa para sistemas compatibles con UNIX y POSIX. OSS versión 3 era el sistema original de sonido para Linux y estaba incluido en el kernel hasta que fue reemplazado por ALSA en 2002, año en que la versión 4 de OSS se convirtió en un producto propietario. Luego, OSSv4 volvió a ser software libre en 2007 cuando 4Front Technologies liberó el código bajo licencia GPL.

Comparación con ALSA

OSS (Open Sound System) tiene algunas ventajas y desventajas comparado con el uso de Advanced Linux Sound Architecture (ALSA).

Ventajas de OSS (usuarios)

  • Control sobre el nivel del volumen de cada aplicación.
  • Algunas tarjetas de sonido antiguas tienen mejor soporte.
  • El tiempo de respuesta inicial en las aplicaciones de audio, en la mayoría de los casos, es mejor.
  • Mejor soporte para las aplicaciones que utilizan el API OSS. Muchas aplicaciones todavía usan este API, y no necesitan un nivel de emulación como el que se utiliza con ALSA.

Ventajas de OSS (desarrolladores)

  • El API es más limpio, más fácil de usar y también mejor documentado.
  • Suporte para el controlador en el espacio del usuario.
  • Accesibilidad. OSS también funciona con BSDs y Solaris.

Ventajas de ALSA sobre OSS

  • Mejor soporte para aparatos de audio USB. Con OSS la producción de sonido es experimental y la introducción de sonido no está implementada.
  • Soporte para aparatos de audio Bluetooth.
  • Soporte para el modem software AC'97 y HDAudio como el Si3055.
  • Mejor soporte para aparatos MIDI. Con OSS tendrá que usar software sintetizador como Timidity o Fluidsynth.
  • Soporte para suspender. OSS y los programas asociados tendrán que cerrarse todos antes de suspender.
  • Mejor soporte para detección de clavijas (jack). En algunas placas madres HD, los usuarios tendrán que apagar manualmente el altavoz al introducir las tomas de los auriculares.
  • Mejor soporte para las aplicaciones que utilizan la API de ALSA y no admiten la API OSS.

Instalacion

Instale OSS ejecutando:

# pacman -S oss

Esto instalará los archivos de OSS, e iniciará el programa de instalación de OSS que va a incapacitar temporalmente los modulos de ALSA, e instalará los modulos de OSS para el kernel. Pero, como ALSA es activado, por defecto, durante el inicio del sistema, es necesario deshabilitarlo para evitar conflictos con OSS durante el arranque. Ésto se puede hacer añadiendo en blacklisting el módulo:

/etc/modprobe.d/alsa_blacklist.conf
blacklist soundcore

Inicie el demonio oss y añada oss a la matriz DAEMONS para permitir el inicio automático del mismo en el arranque.

Si su usuario no forma parte del grupo de audio, añádalo:

# gpasswd -a nombredeusuario audio

En caso de que OSS no pueda detectar su tarjeta de sonido, ejecute:

# ossdetect -v

Después, para reactivarlo, use:

soundoff && soundon

Comprobación

Advertencia: El nivel inicial del volumen es muy alto. Por eso no use auriculares y, si es posible, baje físicamente el nivel del altavoz antes de ejecutar la prueba.

Compruebe OSS, ejecutando:

$ osstest

Debería oír música durante la prueba. Si no hay audio, trate de ajustar el nivel del volumen o consulte la sección de solución de problemas.

Para escuchar sonidos procedentes de más de una aplicación simultáneamente es necesario vmix, el software de mezcla de OSS (mixer software OSS).

Compruebe que vmix ha sido habilitado, ejecutando:

$ ossmix -a | grep -i vmix

Debería ser posible ver una línea del tipo 'vmix0-enable ON|OFF (currently ON)'. Si no es posible ver ninguna línea que inicie con 'vmix', probablemente significa que vmix no se ha conectado con el dispositivo de audio. Para conectar vmix, ejecute el comando:

$ vmixctl attach device

donde device es la tarjeta de audio, por ejemplo, /dev/oss/oss_envy240/pcm0.

Para evitar tener que volver a ejecutar este comando manualmente en el futuro, puede agregar el comando a /usr/lib/oss/soundon.user, como se sugiere en este artículo.

Si recibe el error "Device or resource busy" ("Dispositivo o recurso ocupado"), debe agregar "vmix_no_autoattach=1" en /usr/lib/oss/conf/osscore.conf y, seguidamente, reiniciar.

Ver qué dispositivos son reconocidos, ejecutando:

$ ossinfo

Debe ver una lista de los dispositivos en Device object o Audio Devices. Si el dispositivo que desea utilizar no se encuentra en la parte superior de las secciones Audio Device o Device objects, debe editar el archivo /usr/lib/oss/etc/installed_drivers. El controlador para el dispositivo que desee utilizar debe estar en la parte superior. Y probablemente necesita un soundoff && soundon. Si eso no funciona, comente todos los drivers presentes que no sean del dispositivo preferido.

Control del Volumen del Mezclador

Para controlar el nivel del volumen de los diferentes aparatos, se tienen que ajustar los niveles de los mixers. El mixer de consola se llama ossmix.

$ ossmix

Es muy parecido al mixer audio de BSD (mixerctl). El mixer gráfico se llama ossxmix

$ ossxmix

y exige instalar el paquete gtk2.

Controles primarios del comando ossxmix:

 / High Definition Audio ALC262 \    --------------------------------> 1
/________________________________\________________________________
|                                                                 \
| [x] vmix0-enable [vmix0-rate: 48.000kHz]      vmix0-channels    |--> 2
|                                               [ Stereo [v] ]    |
|                                                                 |
|  __codec1______________________________________________________ |
| |  _jack______________________________________________________ ||--> 3
| | |  _int-speaker_________________   _green_________________  |||
| | | |                             | |                       | |||
| | | |  _mode_____ | |             | |  _mode_____   | |     | |||
| | | | [ mix [v] ] o o [x] [ ]mute | | [ mix  [v] ]  o o [x] | |||
| | | |             | |             | |               | |     | |||
| | | |_____________________________| |_______________________| |||
| | |___________________________________________________________|||
| |______________________________________________________________||
| ___vmix0______________________________________________________  |
| |  __mocp___  O O   _firefox_  O O  __pcm7___  O O            | |--> 4
| | |         | O O  |         | x x |         | O O            | |
| | | | |     | x O  | | |     | x x | | |     | O O            | |
| | | o o [x] | x x  | o o [x] | x x | o o [x] | O O            | |
| | | | |     | x x  | | |     | x x | | |     | O O            | |
| | |_________| x x  |_________| x x |_________| O O            | |
| |_____________________________________________________________| |
|_________________________________________________________________|
  1. Una pestaña por cada aparato de sonido.
  2. La configuración especifica del vmix (mixer virtual) aparece abajo. Eso incluye sampling rate y prioridad del mixer.
  3. Estas son las configuraciones (introducción y producción) de la toma (jack) de la tarjeta de sonido. Cada controlador del mixer que está mostrado aquí lo provee su tarjeta de sonido.
  4. Los controles del mezclador y los niveles de audio de la aplicación vmix. Si la aplicación no produce sonido por el momento, será etiquetada como pcm08, pcm09, etc., pero en cuanto la aplicación produce sonido, aparecerá el nombre.

Definiciones de los Colores

Para el audio de alta definición (HD), ossxmix mostrará la configuración de cada toma (jack) coloreada según los colores predefinidos:

Color Tipo Conector
verde canal frontal (salida estéreo) 3.5mm TRS
negro canal posterior (salida estéreo) 3.5mm TRS
gris canal lateral (salida estéreo) 3.5mm TRS
amarillo central y subwoofer (salida dual) 3.5mm TRS
azul línea de nivel (entrada estéreo) 3.5mm TRS
rosa micrófono (entrada mono) 3.5mm TS

Guardar los Niveles del Mezclador

Los niveles del mezclador se guardan cuando se apaga el equipo. Si desea guardar el nivel de sonido de inmediato, ejecute, como root:

# savemixer

savemixer se puede utilizar para guardar los niveles del mixer en un archivo con el switch -f y restaurar con el switch -L.

Otros Mezcladores

Otras mixer soportados por OSS:

  • GNOME - el control de volumen de GNOME
  • KDE - Kmix - El soporte OSS está en desarrollo.
  • LXDE - volwheel
 sudo pacman -S volwheel
 echo "volwheel" >> ~/.config/lxsession/LXDE/autostart
 volwheel &

tendrá que pinchar en el applet para ajustar las preferencias:

  • driver: OSS
  • Default channel: vmix0-outvol (éste o cualquier otro que se vea en ossxmix)
  • default mixer: ossxmix
  • tab MiniMixer (optional): ponga en vmix0-outvol y otros ...

Configurar Aplicaciones para OSS

Skype

El paquete skype sólo incluye soporte para ALSA. Para tener una versión de Skype compatible con OSS instale el paqueteskype-oss:

# pacman-S skype-oss

Si está utilizando x86_64, puede obtener el paquete bin32-skype-ossAUR de AUR.

Wine

  • Ejecute winecfg.
$ winecfg
  • Vaya a la pestaña Audio.
  • Seleccione OSS Driver.

Gajim

Por defecto Gajim usa aplay -q para reproducir un sonido. Para cambiar este comportamiento vaya a Configuración Avanzada y busque la variable soundplayer. El programa ossplay, incluido en el paquete oss, es una buena alternativa: ossplay -qq

MOC

Para utilizar MOC con OSS v4.1 debe cambiar la sección OSSMixerDevice en /dev/ossmix en el archivo de configuración (ubicado en "$HOME"/.moc). Y ahora MOC debe funcionar con OSS v4.1. También es posible compilar el paquete moc-svn de AUR (tiene soporte para el nuevo vmix). Si hay problemas con la interfaz pruebe cambiando OSSMixerChannel; presione 'w' en mocp (cambia de software mixer).

Aplicaciones que usan Gstreamer

Elimine las librerías y los programas pulseAudio y gstremaer*-pulse. El paquete extra/gstreamer0.10-good-plugins es necesario para oss4sink y oss4src.

Para cambiar la configuración de gstreamer a fin de enviar el sonido a OSS en lugar de ALSA por defecto, ejecute:

gstreamer-properties

Cambie el plugin Default Output a custom y cambie la pipeline a:

oss4sink

Para la entrada:

oss4src
Nota: No es seguro que la entrada suene mejor con oss4src en comparación con osssrc, de modo que cambie ésto sólo si mejora el sonido de entrada. <Confirme ésto, por favor>
Nota: Para algunas aplicaciones (por ejemplo Rhythmbox, Totem) los comandos gstreamer-properties no tienen ningún efecto, ya que se basan en "musicaudiosink" en lugar de "audiosink" (el cual es modificado por gstreamer-properties). Solución: ajustar audiosink con gstreamer-properties y usar gconf-editor para copiar el valor de "/system/gstreamer/0.10/default/audiosink" a "musicaudiosink" (en el mismo lugar)

Si está utilizando phonon con el backend gstreamer tendrá que establecer la variable del entorno correspondiente. Para agregar a su usuario actual:

export PHONON_GST_AUDIOSINK=oss4sink

Agregue este comando a su archivo ~/.bashrc para cargarla al iniciar sesión.

Mplayer

Si está utilizando la interfaz gráfica de usuario (smplayer, etc.), es necesario cambiar la configuración de la salida de OSS en los ajustes de audio. Usando la línea de comandos debe especificar la salida de sonido: mplayer -ao oss /some/file/to/play.mkv Si no quiere molestarse en escribirla una y otra vez, agregue "ao=oss" al propio archivo ("$HOME"/.mplayer/config).

VLC media player

Puede seleccionar OSS como la salida por defecto en la configuración de audio.

MPD

MPD se configura a través de /etc/mpd.conf o ~/.mpdconf. Compruebe ambos archivos, en busca de algo que se parezca a:

 audio_output {
      type           "alsa"
      name           "Some Device Name"
 }

Si encuentra una configuración de ALSA no comentada (esto es, las líneas que no comienzan con almohadilla #) como la de arriba, comentar todo, o borrarlo, y añadir lo siguiente:

 audio_output {
      type           "oss"
      name           "My OSS Device"
 }
Nota: Se debe poner esta configuración en el archivo ~/.mpdconf para que funcione correctamente, pero debería funcionar así en /etc/mpd.conf.

Ulteriores configuraciones no deberían ser necesarias para todos los usuarios. Sin embargo, si experimenta problemas (MPD no funciona correctamente después de que se haya reiniciado), o si prefiere tener un archivo de configuración específico (es decir, más configurado por el usuario, menos configurado automáticamente), la salida de audio para OSS puede ser específicamente configurada de la siguiente manera: primeramente ejecute:

 ossinfo | grep /dev/dsp

Busque la línea que diga algo similar a /dev/dsp -> /dev/oss/<SOME_CARD_IDENTIFIER>/pcm0. Tome nota de su <SOME_CARD_IDENTIFIER> y añada las líneas resaltadas en negrita a su salida de audio OSS en su archivo de configuración mpd:

 audio_output {
      type            "oss"
      name            "My OSS Device"
      device          "/dev/oss/<SOME_CARD_IDENTIFIER>/pcm0"
      mixer_device    "/dev/oss/<SOME_CARD_IDENTIFIER>/mix0"
 }

Audacity

Si audacity se inicia pero se queja de que no puede abrir el dispositivo o simplemente no funciona nada, entonces puede que esté utilizando vmix. Audacity espera a tener el acceso exclusivo al dispositivo de sonido. Para solucionar este problema, antes de iniciar audacity, ejecute:

 ossmix vmix0-enable OFF

Puede restaurar vmix después de terminar con audacity, ejecutando:

 ossmix vmix0-enable ON

Otras aplicaciones

Consejos y trucos

Usando las teclas multimedia con OSS

Una manera fácil de activar/desactivar el audio y subir/bajar el volumen es usar el script ossvol disponible en AUR.

Una vez instalado, trate de activar/desactivar el sonido:

$ ossvol -t

Escriba ossvol -h para los otros comandos disponibles.

Si no sabe cómo asignar comandos a las teclas multimedia, consulte Extra Keyboard Keys

Solución de problemas de ossvol

Si obtiene un error como:

Bad mixer control name(987) 'vol'

tiene que editar el script (/usr/bin/ossvol) y cambiar el valor de la variable CHANNEL que se encuentra al principio del script. Por ejemplo CHANNEL="vmix0-outvol".

  • Repare en que si está utilizando xbindkeys para sus teclas multimedia debe agregar las siguientes secuencias,
para alternar el sonido on/off:
"if ossmix misc.speaker-mute|grep OFF;then ossmix misc.speaker-mute on;else ossmix misc.speaker-mute off;fi;"
para subir el volumen:
"ossmix vmix0-outvol -- +1"
para bajar volumen:
"ossmix vmix0-outvol -- -1"

en la sección relativa a la regulación del volumen en el archivo .xbindkeysrc, lo cual es una manera fácil para ajustar el volumen.

Modificar la frecuencia de muestreo

Cambiar la frecuencia de muestreo de salida no es evidente a primera vista. Las frecuencias de muestreo sólo pueden ser modificadas por el superusuario y vmix no debe ser usado por ningún programa cuando se solicita un cambio. Antes de seguir alguno de estos pasos, asegúrese de utilizar un receptor/amplificador y altavoces de calidad y no simplemente lo altavoces del PC. Si está utilizando solamente los altavoces del ordenador, no se moleste en cambiar nada aquí, ya que no notará la diferencia.

Por defecto, la frecuencia de muestreo es 48000Hz. Hay varias condiciones en las que es posible que desee cambiar esta situación. Depende todo de la utilización que se haga. Es conveniente ajustar la frecuencia de muestreo correspondiente a la fuente utilizada más frecuentemente. Si el equipo tiene que cambiar la frecuencia de muestreo de una fuente para adaptarla a la del hardware es probable, aunque no se garantiza, que va a tener una pérdida de calidad de audio. Esto es más notable en el downsampling (submuestreo) (es decir, 96000Hz → 48000Hz ). Hay un artículo sobre este tema en "Stereophile" que ha sido discutido en la lista de correo de Apple "CoreAudio API" , por si desea obtener más información acerca de este tema.

Algunos ejemplos de frecuencias de muestreo:

  • 44100Hz - Frecuencia de muestreo estándar Red Book para el CD de audio.
  • 88000hz - Frecuencia de muestreo de SACD de alta definición. Es raro que su placa base soporte este tipo de frecuencia.
  • 96000Hz - Frecuencia de muestreo de la mayoría de las descargas de audio de alta definición. Si su placa base es una placa madre AC'97, probablemente ésta será su frecuencia más alta.
  • 192000hz - Frecuencia de muestreo de BluRay, y de algunas (muy pocas) descargas de alta definición. Soporte para receptores de audio externo y limitado a los dispostivos de gama alta. No todas las placas base lo soportan. Un ejemplo de chipset de una placa madre que podría soportarlo lo incluye Intel HDA de audio.

Para comprobar cuál es su frecuencia de muestreo actualmente configurada:

Ejecute

"ossmix | grep rate"

Probablemente verá una salida como ésta

"vmix0-rate <decimal value> (currently 48000) (Read-only)"

Si no ve "vmix0-rate" (o "vmix1-rate", etc.), probablemente significa que vmix está desactivado. En ese caso, OSS usará la frecuencia requerida por el programa que utiliza el dispositivo, ignorando esta sección. Excepción: La tarjeta envy24(ht) tiene un valor envy24.rate que tiene una función similar (consulte la página del manual de "oss_envy24"). Puede seguir los siguientes pasos, pero en el paso 2, cambie, con ossmix, el valor de "envy24.rate".

Pasos para efectuar el cambio:

  1. Primero, asegúrese de que su tarjeta es capaz de utilizar la nueva frecuencia. Ejecute "ossinfo -v2" y vea si la frecuencia deseada está presente en el "Native sample rates".
  2. Como root, ejecute "/usr/lib/oss/scripts/killprocs.sh". Tenga en cuenta que esto cerrará cualquier programa que actualmente tenga un canal de sonido abierto (algunos ejemplos son los reproductores multimedia, como Firefox versión 3.5 si tiene xulrunner-oss habilitado y el control de volumen de GNOME).
  3. Después que todos los programas que estaba utilizando vmix finalicen, ejecute como root: "vmixctl rate /dev/dsp 96000", sustituyendo la frecuencia con la frecuencia deseada.
  4. Ejecute "ossmix | grep rate" y compruebe que "vmix0-rate <decimal value> (currently 96000) (Read-only)" refleja la frecuencia deseada y se ha configurado correctamente.
  5. Guardar los cambios permanentemente mediante el archivo soundon.user para establecer la frecuencia de cada soundon; escriba "vmixctl rate /dev/dsp 96000" en el archivo /usr/lib/oss/soundon.user, y hágalo ejecutable.

Cambiar la salida de sonido por Defecto

Cuando se ejecuta osstest, la primera prueba se supera por el primer canal, pero no por el canal de la derecha o por los canales estéreos, en los cuales el sonido sale distorsionado y silbante. Si sucede ésto es que ha sido asignada la salida de audio equivocada.

      *** Scanning sound adapter #-1 ***
     /dev/oss/oss_hdaudio0/pcm0 (audio engine 0): HD Audio play front
     - Performing audio playback test... 
     <left> OK <right> OK <stereo> OK <measured srate 47991.00 Hz (-0.02%)>

La izquierda sonaba bien, el derecho y estéreo sonaban distorsionados.

Deje que la prueba continúe hasta obtener una salida que funcione:

      /dev/oss/oss_hdaudio0/spdout0 (audio engine 5): HD Audio play spdif-out 
     - Performing audio playback test... 
     <left> OK <right> OK <stereo> OK <measured srate 47991.00 Hz (-0.02%)> 

Si se supera la prueba en todos los canales de la izquierda, con el derecho y estéreo proceda con el siguiente paso.

Así, desde aquí: Cambiando la salida de sonido por defecto consiga el comando para cambiar la salida por defecto, modificándola de acuerdo con la configuración que funcione en su caso.

 sudo ln -sf /dev/oss/oss_hdaudio0/spdout0 /dev/dsp_multich

Si con sonido envolvente (surround) 5.1 eligió dsp_multichannel, con 2 canales dsp debería funcionar.

Creative Sound Blaster X-Fi Surround 5.1 USB SB1090

Esta información proviene completamente de 4Front-tech.com; cortesía de kristian y Maxa. ¡Gracias!

Es sorprendente saber que la tarjeta externa no funciona sólo a causa de la ausencia del valor de retorno true en la función write_control_value(...) in ossusb_audio.c.

Actualmente, para solucionar este problema, es necesario una recompilación de oss.

  • Descargue la última versión de oss de los repositorios de Arch.
  • Extráigalo.
  • Vaya a la carpeta obtenida, puede renombrarla como oss. (cambie al directorio de descarga con el comando cd desde una consola).
  • Ejecute makepkg --nobuild
  • Vaya al directorio {{|ic|src/kernel/drv/oss_usb/}}; edite el archivo ossusb_audio.c; añada return 1
    • debería quedar así:
     static int
write_control_value (ossusb_devc * devc, udi_endpoint_handle_t * endpoint,
                     int ctl, int l, unsigned int v)
{
    return 1;
  • Vaya al directorio src/kernel/setup y edite srcconf_linux.inc, busque -Werror y elimínelo, de lo contrario OSS no se compilará.
  • Haga makepkg - noextract

Ahora hay que instalar el paquete con pacman -U; remueva primero oss, si ya lo tenía instalado (pacman -Rd oss)

Un sencillo applet para la bandeja del sistema

¿Quiere un applet para controlar el volumen como en GNOME? A partir de aquí es posible obtener uno Template:Linkrot utilizable.

Descargue este Template:Linkrot script y cámbiele el nombre, por ejemplo, póngale: ossvolctl. Ejecute el siguiente comando:

$ chmod +x ossvolctl
# cp ossvolctl /usr/bin/ossvolctl

o

# install -Dm755 ossvolctl /usr/bin/ossvolctl

Tiene también el paquete volwheel .

Iniciar ossxmix en la bandeja del sistema al arrancar

KDE 4

Cree un lanzador de aplicaciones ossxmix.desktop en el propio directorio local del lanzador (~/.local/share/applications/ e introduzca:

[Desktop Entry]
Name=Open Sound System Mixer
GenericName=Audio Mixer
Exec=ossxmix -b
Icon=audio-card
Categories=Application;GTK;AudioVideo;Player;
Terminal=false
Type=Application
Encoding=UTF-8

Para agregarlo de forma que se inicie automáticamente al cargar el entorno de escritorio:

Configuración del sistema > Opciones avanzadas > Inicio automático. A continuación, pinche en agregar programa y selecciónelo de la lista 'Multimedia'.

Gnome

  • Como Root, cree el archivo /usr/local/bin/ossxmix_bg, con el siguiente contenido:
#!/bin/sh
exec /usr/bin/ossxmix -b

Ir a Sistema > Preferencias > Aplicaciones Start Up

  • Pinche en Agregar, escriba OSSMIX en el campo Nombre y la ruta /usr/local/bin/ossxmix_bg en el campo Comando; a continuación, pinche en el botón Agregar.
  • Reinicie la sesión para ver los cambios.

Guardar la salida de audio de un programa

Suspensión e hibernación

OSS no admite automáticamente la suspensión, lo que significa que es necesario detener manualmente OSS antes de suspender o hibernar.

OSS ofrece soundon y soundOff para activar y desactivar OSS, aunque todos los procesos que estén utilizando el sonido deben cesar primero.

El script siguiente es un método bastante básico para cerrar automáticamente OSS antes de la suspensión y reiniciarlo después.

#!/bin/sh
. "${PM_FUNCTIONS}"

suspend_osssound()
{
 /usr/lib/oss/scripts/killprocs.sh
 /usr/sbin/soundoff
}

resume_osssound()
{
 /usr/sbin/soundon
}

case "$1" in
 hibernate|suspend)
 suspend_osssound
	;;
 thaw|resume)
	resume_osssound
	;;
 *) exit $NA
	;;
esac

Guarde el contenido del script (como root) en /etc/pm/sleep.d/50ossound y hágalo ejecutable: chmod a+x /etc/pm/sleep.d/50ossound

Nota: Este script es bastante básico y terminará cualquier aplicación que esté usando directamente OSS, por lo tanto, guarde sus trabajos antes de suspender/hibernar.

OSS no es compatible con la suspensión, pero no es indispensable desde el momento que s2ram funciona bien sin cerrar OSS. Basta con crear una secuencia de comandos (script) de suspensión en el archivo /sbin/suspend y hacerlo ejecutable.

 #!/bin/sh

 ## Checking if you are a root or not
 if ! [ -w / ]; then
   echo >&2 "This script must be run as root"
   exit 1
 fi

 s2ram -f

 sleep 2

 /etc/rc.d/oss restart 2>/tmp/oss.txt ||
 echo "OSS restart failed, check /tmp/oss.txt for advice"

Con ésto todas las aplicaciones funcionarán correctamente con la suspensión. \o/

Nota: Si utiliza el navegador Opera debe terminar operapluginwrapper antes de la suspensión. Para hacerlo añada pid=$(pidof operapluginwrapper) && kill $pid antes de s2ram -f.

Emulación ALSA

Es posible configurar alsa-lib para utilizar OSS como su sistema de audio de salida. Esto funciona como una especie de emulación de ALSA.

Nótese, sin embargo, que este método puede introducir una latencia adicional en el sonido de salida, y que la emulación no es completa y no funciona con todas las aplicaciones. No funciona, por ejemplo, con los programas que tratan de detectar los dispositivos que usan ALSA.

Así que, como la mayoría de las aplicaciones son compatibles con OSS directamente, utilice este método sólo como último recurso.

En el futuro, métodos más completos para emular ALSA estarán disponibles, como libsalsa y cuckoo.

Instrucciones

  • Instale el paquete alsa-plugins:
# pacman -S alsa-plugins
  • Modifique el archivo /etc/asound.conf como sigue:
pcm.oss {
   type oss
    device /dev/dsp
}

pcm.!default {
    type oss
    device /dev/dsp
}

ctl.oss {
    type oss
    device /dev/mixer
}

ctl.!default {
    type oss
    device /dev/mixer
}


Nota: Si no desea utilizar más OSS, no se olvide de revertir los cambios realizados en /etc/asound.conf.

Configuración de controlador específico

Si algo no funciona, existe la posibilidad de que haya opciones específicas para el controlador específico (de este modo es posible activar el autorreconocimiento de las tomas (conectores -jack-) del portatil)

  • Averigüe qué controlador se utiliza:
$ lspci -vnn | grep -i -A 15 audio
00:1e.2 Multimedia audio controller [0401]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller [8086:266e] (rev 03)
	Subsystem: Hewlett-Packard Company NX6110/NC6120 [103c:099c]
	Flags: bus master, medium devsel, latency 0, IRQ 21
	I/O ports at 2100 [size=256]
	I/O ports at 2200 [size=64]
	Memory at d0581000 (32-bit, non-prefetchable) [size=512]
	Memory at d0582000 (32-bit, non-prefetchable) [size=256]
	Capabilities: <access denied>
	Kernel driver in use: *oss_ich*
	Kernel modules: snd-intel8x0
  • Localice el archivo de configuración del dispositivo en:
# cd /usr/lib/oss/conf/
  • Trate de cambiar los valores predeterminados. Hay sólo unos pocos ajustes, y son fáciles de entender.

Ajuste:

ich_jacksense = 1

en oss_ich.conf el cual habilita el autorreconocimiento de los jack en algunos portátiles (al conectar los auriculares los reconoce y los altavoces se desactivan).

  • Reinicie oss para que los cambios surtan efecto:
# /etc/rc.d/oss restart
  • oss_hdaudio.conf contiene también hdaudio_jacksens. Tal vez funcione en su caso. Lamentablemente no para todos.

Solución de problemas

Solución de problemas con dispositivos HDAudio

Conocer la causa del problema

Si se dispone de un dispositivo de sonido HDAudio, es muy probable que tenga que ajustar algunos parámetros del mezclador antes de que el audio funcione correctamente.

Los dispositivos HDAudio son muy potentes en el sentido de que puede contener una gran cantidad de pequeños circuitos (llamados widgets) que pueden ser ajustado vía software en cualquier momento. Estos controles están disponibles en el mixer, y se pueden utilizar, por ejemplo, para reasignar un jack para auriculares en un jack de entrada en lugar de uno de salida.

Sin embargo, esto es un efecto secundario, sobre todo porque el estándar HDAudio es más flexible de lo que, tal vez, debería ser, ya que los vendedores, a menudo, sólo se preocupan de conseguir el correcto funcionamiento de sus driver oficiales.

Luego, cuando se utilizan dispositivos HDAudio, a menudo se encuentran controles del mezclador desorganizados que no funcionan en absoluto para ninguna de las configuraciones por defecto, siendo necesario probar todas las combinaciones de control del mixer hasta alcanzar una configuración que funcione.

Cómo resolverlo

Abra ossxmix y trate de cambiar todos los controles de mezclador en el área central, que contiene los controles específicos de las tarjetas de sonido, tal como se explica en la sección anterior "Control de volumen".

Probablemente esté interesado en configurar un programa para grabar/reproducir continuamente en segundo plano (por ejemplo, ossrecord - | ossplay - para grabar, o osstest -lV para reproducir), mientras se está cambiando la configuración del mezclador con ossxmix en primer plano.

  • Subir cada deslizador del control de volúmenes.
  • En cada cuadro de opción, trate de cambiar la opción seleccionada, probando todas las combinaciones posibles.
  • Si se obtiene ruido, trate de bajar y/o silenciar algunos controles de volumen, hasta encontrar la fuente del ruido.

Tenga en cuenta, una vez más, que no necesita cambiar ninguna configuración en el área superior ni en el área inferior, desde el momento que son configuraciones relativas al mezclador virtual vmix.

  • Edite el archivo /usr/lib/oss/conf/oss_hdaudio.conf quitando los comentarios (#) y modifique hdaudio_noskip=0 con un valor de 0 a 7, que le permite disponer de más opciones relativas al jack en ossxmix.

En el supuesto tratado, fue necesario modificar hdaudio_noskip=7 para activar los altavoces posteriores y el subwoofer en el portatil, y reiniciar oss para que los cambios surtieran efecto /etc/rc.d/oss restart

Sonido distorsionado con los MMS en tótem

Si los flujos tienen un sonido distorsionado o producen ruidos extraños en tótem, es posible probar reproducir con otro backend como ffmpeg (mplayer). Esto no va a solucionar el problema, que de alguna manera aparece en gstreamer durante la reproducción de secuencias de MMS, pero se le dará la opción de reproducir con buena calidad de sonido. Reproducir con mplayer es simple:

# mplayer mmsh://yourstreamurl

El Micrófono funciona a través de los altavoces

OSS por defecto reproduce el micrófono a través de los altavoces. Para deshabilitar esta función busque en ossxmix la sección misc. Marque cada "input-mix-mute" para desactivarla.

Solución de otros problemas

  • Si se obtine un sonido distorsionado, pruebe a reducir algunos deslizadores del control de volumen.
  • Si es necesario cambiar la tarjeta de sonido por defecto, consulte aquí.
  • Si tiene otros problemas, trate de buscar o pedir ayuda en los foros 4front.

See also