LINUX.ORG.RU

[alsa][Зоопарк звуковух]Сделать это работать

 


0

0

Здравствуй, лор!

В общем ввиду некоторых обстоятельств непреодолимой силы, пришлось к встроенной ноутбучной звуковухе купить внешнюю SB X-Fi 5.1.

Из-за этого возникает зоопарк, который самому разрулить не удается:

[ugin@CERN ~]$ aplay -l|grep card
card 0: NVidia [HDA NVidia], device 3: NVIDIA HDMI [NVIDIA HDMI]
card 0: NVidia [HDA NVidia], device 7: NVIDIA HDMI [NVIDIA HDMI]
card 0: NVidia [HDA NVidia], device 8: NVIDIA HDMI [NVIDIA HDMI]
card 0: NVidia [HDA NVidia], device 9: NVIDIA HDMI [NVIDIA HDMI]
card 1: Intel [HDA Intel], device 0: ALC888 Analog [ALC888 Analog]
card 1: Intel [HDA Intel], device 1: ALC888 Digital [ALC888 Digital]
card 2: S51 [SB X-Fi Surround 5.1], device 0: USB Audio [USB Audio]
card 2: S51 [SB X-Fi Surround 5.1], device 1: USB Audio [USB Audio #1]

Когда воткнута внешняя, звука вообще нет из-за кривых настроек.

Единственный способ сделать её работать - брутфорсно выбрать в SMplayer (Написать самому пальцами рук тела в консоли опции) именно её (предлагается из почти 10 шт.).

И да, аппаратного микшера на ней также нет.

Как починить asound.conf / sound.conf, чтобы все виделось, звук был и регулировался?

[ugin@CERN ~]$ cat /etc/asound.conf
pcm.!default {
    type plug
    slave.pcm "dmixer"
}

pcm.dsp0 {
    type plug
    slave.pcm "dmixer"
}

pcm.dmixer  {
    type dmix
    ipc_key 1024
    slave {
        pcm "hw:0,0"
        period_time 0
        period_size 1024
        buffer_size 8192
        rate 44100
    }
    bindings {
        0 0
        1 1
    }
}

ctl.mixer0 {
    type hw
    card 0
}
[ugin@CERN ~]$ cat /etc/modprobe.d/sound.conf
# ALSA
option snd cards_limit=2

alias snd-card-0 snd-usb-audio
alias snd-card-1 snd_hda_intel

options snd-hda-intel index=1
options snd-usb-audio index=2

# OSS
alias sound-slot-0 snd-usb-audio
alias sound-slot-1 snd_hda_intel

Видимо, в индексах устройств в asound.conf проблема, да и с ним самим, но я не пойму, как именно исправить.


Ответ на: комментарий от anon_666

Ну alsa сразу сказала, что «микшера нет, ничего не знаю».

Поэтому пытаюсь с бубном вокруг asound.conf танцевать.

P.S. Что нужно перезапустить, чтобы все саунд конфиги типа обновились?

uGin
() автор топика

И как система должна понять, что когда я втыкаю звуковуху, в нее кричать надо, а то флешку html5-видео включаешь, и тишина...

uGin
() автор топика
Ответ на: комментарий от uGin

>Что нужно перезапустить, чтобы все саунд конфиги типа обновились?

alsactl store
rmmod МодульЗвуковой

modprobe МодульЗвуковой
alsactl restore

anon_666
()
Ответ на: комментарий от anon_666

Ну и предварительно прибить все программы, использующие звуковую.

anon_666
()

Ничего не понимаю

Пришел к такому, согласно выхлопу «aplay -l | grep card»:

#
# /etc/modprobe.d/modprobe.conf (for v2.6 kernels)
#

# ALSA
alias snd-card-1 snd-hda-intel
alias snd-card-2 snd-usb-audio

options snd-hda-intel index=1
options snd-usb-audio index=2

# OSS
alias sound-slot-1 snd-usb-audio
alias sound-slot-2 snd-hda-intel

#
# /etc/asound.conf
#

pcm.!default {
    type            plug
    slave.pcm       "softvol"   #make use of softvol
}

pcm.softvol {
    type            softvol
    slave {
        pcm         "dmix"      #redirect the output to dmix (instead of "hw:0,0")
    }
    control {
        name        "Master"       #override the PCM slider to set the softvol volume level globally
        card        0
    }
}

Но звук даже вручную не играется (подставлял номера девайсов из SMplayer):

[ugin@CERN ~]$ aplay -D hw:2,0 /usr/share/sounds/alsa/Front_Center.wav
Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono
aplay: set_params:1059: Channels count non available
[ugin@CERN ~]$ aplay -D hw:2,1 /usr/share/sounds/alsa/Front_Center.wav
Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono
aplay: set_params:1059: Channels count non available
[ugin@CERN ~]$ aplay -D hw:1,0 /usr/share/sounds/alsa/Front_Center.wav
Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono
aplay: set_params:1059: Channels count non available

uGin
() автор топика
Ответ на: Ничего не понимаю от uGin

Ну не считая продолжающегося отсутствия микшера у SB.

uGin
() автор топика

Обидно

SMplayer видит, выбирает, а чтоб система увидела, неделю не могу сделать. Какой после этого «десктоп».

uGin
() автор топика

Функциональность «перекинуть звуковой поток на другую карту, не закрывая приложение» в чистой ALSA отсутствует. Она есть в pulseaudio.

Если надо менять карту по умолчанию для вновь запущенных приложений в зависимости от наличия или отсутствия USB-устройства, то можно попробовать написать правила udev, которые (через RUN+=...) копируют правильный файл в /etc/asound.conf при ее подключении или отключении, и еще как-то в init-скрипте предусмотреть случай ее отключения при выключенном ноутбуке. Т.е. можно, но это сложнее, чем заставить работать pulseaudio.

А вот правильные файлы asound.conf:

1) для встроенной карты:

defaults.pcm.card «Intel»

defaults.pcm.device 0

2) для внешней карты:

defaults.pcm.card «S51»

defaults.pcm.device 0

AEP ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.