Sudo alsa force-reload

#1 por Stahlfabrik el 20/02/2011
Hola amigos.

Quisiera, si es posible, que alguien me explicara cómo evitar tener que poner esta parrafadita en el terminal cada vez que abro Ubuntu para poder escuchar sonido.

Gracias de antemano.

Saludos.
Subir
#2 por Pablo_F el 20/02/2011
Hola,

Flecha arriba :evil:

Bueno, con flecha arriba se invocan los últimos comandos que escribiste en la terminal y también puedes usar [ALT-F2] para no tener que abrir una terminal.

Ahora en serio, eso deberías arreglarlo, pero no sabemos por qué ocurre sin más información. ¿Puedes dar las salidas de:

cat /proc/asound/cards

justo después de arrancar y después del alsa force-reload?

Y también, explicar de dónde no obtienes sonido, de pulseaudio o de jack? O si no lo sabes con seguridad ¿Qué aplicaciones no suenan? ¿Antes o después de lanzar el servidor jack, si es que lo lanzas?

Saludos, Pablo
Subir
#3 por yuanx el 20/02/2011
has metido alsa al bootup?

yo tenía gentoo y se hacía rc-update add alsasound default

en Ubunto según acabo de leer...

mirate este mini tutorial de como agregar un script al inicio:
https://lists.ubuntu.com/archives/ubuntu-es/2008-March/029117.html

crea este archivo:
/etc/init.d/alsaforce

Dentro de ese archivo mete esto:
#!/bin/bash
alsa force-reload



luego como root dale permisos:
chmod 750 /etc/init.d/alsaforce

finalmente, agregarlo al boot:
sudo update-rc.d alsaforce defaults

reinicia y suerte.




un saludo.
Subir
#4 por veguita el 21/02/2011
no entiendo el por qué de la falla, pero si la solución es hacer un alsa force reload, puedes ir a preferencias > aplicaciones al inicio y en añadir colocas

Nombre: Cargar Alsa
Orden: alsa force-reload #o el comando que necesies
Comentario: Lo que se te ocurra

también puedes agregar un script en init.d como recomienda yuanx, la diferencia es que los script de init.d los ejecuta cuando carga el sistema (cuando dice ubuntu al centro con una barrita de carga con mensajes sucedidos de un [ Ok ]). Las aplicaciones al inicio las carga cuando carga gnome, después de hacer Login.

"tengo una soledad tan concurrida que puedo organizarla como una procesión"
Mario Benedetti

Subir
#5 por Stahlfabrik el 21/02/2011
Antes que nada, gracias a todos por vuestras aportaciones, sois unos fieras.

A ver...

Para Pablo-F: Ésta es la salida del cat/proc/asound/cards:

stahlfabrik@stahlfabrik:~$ sudo cat /proc/asound/cards
[sudo] password for stahlfabrik:
0 [U0x46d0x9a4 ]: USB-Audio - USB Device 0x46d:0x9a4
USB Device 0x46d:0x9a4 at usb-0000:05:07.2-3.4.1, high speed
1 [Controller ]: USB-Audio - MS-20 Controller
KORG INC. MS-20 Controller at usb-0000:05:07.1-2, full speed
2 [DMX6Fire ]: ICE1712 - TerraTec DMX6Fire
TerraTec DMX6Fire at 0xaf00, irq 20
3 [default ]: USB-Audio - USB Audio CODEC
Burr-Brown from TI USB Audio CODEC at usb-0000:05:07.2-3.4.3, fu
stahlfabrik@stahlfabrik:~$

Decirte que Pulseaudio lo tengo deshabilitado y que Jack no se abre solo, sino que lo abro yo para trabajar con ardour o con otros programas. Respecto a qué aplicaciones no suenan, decirte que no suena nada hasta que le hago el sudo alsa force-reload.

Para Yuanx: He hecho todo lo que me has dicho menos lo del boot, que no sé como se hace. Dame un poco de lección al respecto, si puedes.


Para Veguita: He hecho lo que me has dicho en Aplicaciones al Inicio pero nada, sigue igual. Gracias de todas formas.

Espero vuestras respuestas.

Saludos. ;)
Subir
#6 por yuanx el 21/02/2011
si es hacer esto simplemente:

crea este archivo:
/etc/init.d/alsaforce

Dentro de ese archivo mete esto:
#!/bin/bash
alsa force-reload


luego como root dale permisos:
chmod 750 /etc/init.d/alsaforce

finalmente, agregarlo al boot:
sudo update-rc.d alsaforce defaults
Subir
#7 por yuanx el 21/02/2011
si quieres ver si es efectivo todo esto, reinicia el equipo y me cuentas si ya te va el sonido automáticamente.
Subir
#8 por Stahlfabrik el 21/02/2011
Pues parece funciona después de seguir lo que me ha dicho Yuanx. He reinciado varias veces y de momento en todas se ha abierto el Alsa. Lo que no se oye es la musiquilla del principio, pero casi que mejor porque era un tostón.

Bueno, ya os informaré de si me deja de funcionar en lo sucesivo.

Millones de gracias a todos. ;)
Subir
#9 por yuanx el 21/02/2011
me alegro de que te funcione tornroig :)

seguramente tengas un conflicto de drivers de sonido y por eso te ocurre esto.
Subir
#10 por monon el 21/02/2011
Otra forma de hacer lo sugerido por yuanx es incluir el comando (sin sudo)

alsa force-reload

en /etc/rc.local

el cual en principio se ejecutará en todos los runlevels
Subir
#11 por Pablo_F el 22/02/2011
Estamos hablando de cuál es la mejor forma de "forzar la recarga" de los módulos de alsa pero yo creo que esta es no la mejor solución. Hay que buscar la causa del problema. La pregunta debería ser ¿Por qué tengo que hacerlo? en lugar de ¿Cómo puedo hacerlo automáticamente?.

No diste la salida de cat /proc/asound/cards antes y después de hacer el force-reload. Ahí hubiésemos visto que los 4 interfaces de audio toman números de índice diferentes antes y después de la recarga de los módulos. Muy probablemente, esa es la causa del problema. También estaría bien saber cuál o cuales quieres usar.

Hay un par de soluciones mucho más limpias: (1) fijar los números que alsa da a las tarjetas en el archivo /etc/modprobe.d/alsa-base.conf y/o (2) en jack, invocar la tarjeta por su nombre, no por su número.

Saludos, Pablo
Subir
#12 por Stahlfabrik el 22/02/2011
Chicos, esto ha vuelto a fallar... :(

Para Pablo F.: Aquí tienes las salidas del cat /proc/asound/cards, la primera es de antes del force-reload y la segunda, después:

stahlfabrik@stahlfabrik:~$ cat /proc/asound/cards
0 [U0x46d0x9a4 ]: USB-Audio - USB Device 0x46d:0x9a4
USB Device 0x46d:0x9a4 at usb-0000:05:07.2-3.4.1, high speed
1 [Controller ]: USB-Audio - MS-20 Controller
KORG INC. MS-20 Controller at usb-0000:05:07.1-2, full speed
2 [default ]: USB-Audio - USB Audio CODEC
Burr-Brown from TI USB Audio CODEC at usb-0000:05:07.2-3.4.3, fu
3 [DMX6Fire ]: ICE1712 - TerraTec DMX6Fire
TerraTec DMX6Fire at 0xaf00, irq 20
stahlfabrik@stahlfabrik:~$
============================

stahlfabrik@stahlfabrik:~$ cat /proc/asound/cards
0 [DMX6Fire ]: ICE1712 - TerraTec DMX6Fire
TerraTec DMX6Fire at 0xaf00, irq 20
1 [Controller ]: USB-Audio - MS-20 Controller
KORG INC. MS-20 Controller at usb-0000:05:07.1-2, full speed
2 [U0x46d0x9a4 ]: USB-Audio - USB Device 0x46d:0x9a4
USB Device 0x46d:0x9a4 at usb-0000:05:07.2-3.4.1, high speed
3 [default ]: USB-Audio - USB Audio CODEC
Burr-Brown from TI USB Audio CODEC at usb-0000:05:07.2-3.4.3, fu
stahlfabrik@stahlfabrik:~$
============================

Para que me entiendas, la tarjeta que me interesa que funcione al iniciar es la ICE1712 Terratec DMX6Fire, que por lo que veo no está la primera en la salida del cat antes del force-reload. Las otras que constan como USB son, por un lado el controlador Korg MS-20 para el vst Korg Legacy y la webcam.

En fin, ya me dirás algo.

Gracias por tu interés. ;)
Subir
#13 por Pablo_F el 22/02/2011
Hola,

Pues a ver, tienes que editar un archivo de configuración de alsa. Normalmente es el que dije arriba pero el nombre puede cambiar con la distribución. Si estás en un ubuntu reciente o similar, tendrías que hacer:

gksudo gedit /etc/modprobe.d/alsa-base.conf

Verás que el archivo existe y tiene varias líneas escritas.

(Si estuviese vacío, no existía y lo estás creando y entonces no vale. Buscas un alsa.conf, alsa-base.conf o similar)

Al final del archivo, añade estas líneas:

#Dar números de orden fijo a las tarjetas de audio.
#Ver http://www.hispasonic.com/foros/sudo-alsa-force-reload/361373
#Ver http://alsa.opensrc.org/MultipleCards#How_to_choose_a_particular_order_for_multiple_installed_cards

alias snd-card-0 snd-ice1712
options snd-ice1712 index=0

alias snd-card-1 snd-usb-audio
options snd-usb-audio index=1 vid=0xXXXX pid=0xXXXX

alias snd-card-2 snd-usb-audio
options snd-usb-audio index=2 vid=0xXXXX pid=0xXXXX

alias snd-card-3 snd-usb-audio
options snd-usb-audio index=3 vid=0xXXXX pid=0xXXXX



Y sustituye XXXX por el número de vendor y de product de tu tarjetas USB, en el orden que te parezca bien (cualquiera; la idea es que sea siempre el mismo). Estos números (en hexadecimal) los ves en la salida de lsusb.

Un ejemplo:

$lsusb
Bus 005 Device 005: ID 0763:019b Midiman KeyRig 49

En este caso:

vid=0x0763 pid=0x019b

Ojo, todo esto suponiendo que el módulo que controla tus tres tarjetas USB es el snd-usb-audio. Creo que sí, pero compruébalo por si acaso con:

cat /proc/asound/modules


Además, como recomendación general, en la configuración de jack es mejor nombrar la tarjeta por nombre, no por número (aunque se supone que ya no va a cambiar el número). Así, en lugar de elegir (default) o hw:0 ó hw:1 o similar como interfaz, es mejor escribir (aunque no salga como opción en la lista desplegable) hw:Nombre, en tu caso, hw:DMX6Fire (osea, el nombre entre corchetes en la salida de cat /proc/asound/cards).

Saludos, Pablo
Subir
#14 por Stahlfabrik el 22/02/2011
Pues después de hacer todo lo apuntado por Pablo.F, he reiniciado varias veces y funcionaba, pero a la quinta o sexta vez ya no se ha cargado Alsa. :(

Total, que habrá que acostumbrarse al force-reload de las narices.
Subir
Respuesta rápida

Regístrate o para poder postear en este hilo