ALSA и отключение карты без перезагрузки

Приветствую! Случилась такая ситуация, — с прошлого запуска осталась включенной внешняя карта, при следующей загрузке она оказалось картой по-умолчанию, а мне это было не нужно, я просто выдернул шнур, но alsamixer мне стал говорить:

$ alsamixer 
cannot open mixer: Нет такого файла или каталога

Я пробовал сделать:

 # /etc/init.d/alsasound restart
alsasound        | * WARNING: you are stopping a boot service
alsasound        | * Storing ALSA Mixer Levels ...                        [ ok ]
alsasound        | * Restoring Mixer Levels ...                           [ ok ]

Потому как обнаружил, что в кальке нет # alsa reload, но это не помогло, ситуация осталось той же. Перезагружаться после отключения-подключения карт «на лету» — это последнее дело. Звук не проигрывается, что делать?

так запустите cl-console-gui и выставите нужную карту … и можно без рестарт -> stop и start
p.s. если cl-console-gui нет , то

cl-setup-audio --audio 1

*–audio 1 как пример

Благодарю! Получилось.

P.S. Для тех, кто не в курсе, смотреть номера карт alsa:

cat /proc/asound/cards

Алексей Тихонов wrote:

так запустите cl-console-gui и выставите нужную карту … и можно без рестарт -> stop и start
p.s. если cl-console-gui нет , то
[…]
*–audio 1 как пример

Кстати вот у меня получилось переключить на HDMI-выход, но на аналоговый встроенной звуковой карты, — никак, просто остался он на HDMI, даже в гуе пробую, возвращаюсь в меню и туда снова — там HDMI-выход стоит. Баг?

Такое осталось и после перезагрузки, выхожу из ситуации с помощью переменной ALSA_CARD:

ALSA_CARD=0 alsamixer

Таким же образом запускаю приложения, работающие со звуком.

есть немного кривое решение :

aplay -l

пример вывода :

**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic_1 [HD-Audio Generic], device 0: ALC887-VD Analog [ALC887-VD Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: Generic_1 [HD-Audio Generic], device 1: ALC887-VD Digital [ALC887-VD Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

нам нужно ALC887-VD Analog :

$ nano ~/.asoundrc

и вставляем туда

pcm.!default {
      type plug
      slave.pcm {
              type hw
              card 1
              device 0
      }
 }

сохраняем , делаем релогин и радуемся )
з.ы.mplayer и flash будут работать только монопольно (либо mplayer либо flash) а вот vlc и audacious вполне нормально работают вместе (вывод звука в настройках плееров выставить не забудьте)

К сожалению это не помогло. Даже после релогина. Релогин — это почти всё-равно что перезагружаться. Но и всё-равно не работает. Есть у меня на примете один вариант: сделать проброс альсы в JACK просто, и запускать JACK на нужной мне карте. Но это тоже не всегда кстати.

Алексей Тихонов wrote:

есть немного кривое решение :
[…]
пример вывода :
[…]
нам нужно ALC887-VD Analog :
[…]
и вставляем туда
[…]
сохраняем , делаем релогин и радуемся )
з.ы.mplayer и flash будут работать только монопольно (либо mplayer либо flash) а вот vlc и audacious вполне нормально работают вместе (вывод звука в настройках плееров выставить не забудьте)
Вот понять бы, откуда alsamixer берёт значение этой карты, чтобы пытаться открыть её по-умолчанию?