LINUX.ORG.RU
ФорумAdmin

помогите с настройкой alsa


0

1

Драйверы alsa включены в ядро монолитно, причём все, из-за того что изначально не известно что за звукавуха будет. Само ядро скомпилено с поддержкой модулей. На системе иксов и графики нет. Есть фреймбуфер и он работает нормально. При загрузке ядра они инициализируются нормально:

ALSA device list:
 #0: Dummy 1
 #1: Loopback 1
 #2: Virtual MIDI Card 1
 #3: MTPAV on parallel port at 0x378
 #4: MPU-401 UART at 0x330, irq 10
 #5: Intel 82801BA-ICH2 with ALC200,200P at irq 5
Получается что реальный драйвер:
#5: Intel 82801BA-ICH2 with ALC200,200P at irq 5
Вот вывод команды hwinfo --sound
16: PCI 1f.5: 0401 Multimedia audio controller
  [Created at pci.318]
  Unique ID: W60f.nGIWnWXS6V3
  SysFS ID: /devices/pci0000:00/0000:00:1f.5
  SysFS BusID: 0000:00:1f.5
  Hardware Class: sound
  Model: "Intel 82801BA/BAM AC'97 Audio Controller"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0x2445 "82801BA/BAM AC'97 Audio Controller"
  SubVendor: pci 0x4005 "Avance Logic Inc."
  SubDevice: pci 0x22dd
  Revision: 0x05
  Driver: "snd_intel8x0"
  Driver Modules: "snd_intel8x0"
  I/O Ports: 0xb800-0xb8ff (rw)
  I/O Ports: 0xbc00-0xbc3f (rw)
  IRQ: 5 (no events)
  Module Alias: "pci:v00008086d00002445sv00004005sd000022DDbc04sc01i00"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
Если я не ошибаюсь то с ядром и инициализацией звуковухи всё нормально.........???????

Собраны из исходников такие пакеты:
alsa-lib-1.0.27.2
alsa-utils-1.0.27.2
pulseaudio-1.1
Всё собралось без ошибок и нормально установилось. Одно замечание когда собирал эти пакеты то загруженное ядро было без поддержки alsa, это уже потом после того как я собрал эти пакеты я перекомпилировал ядро с включённой alsa.
Вот выводы некоторых команд:

cat /proc/asound/cards
 0 [Dummy          ]: Dummy - Dummy
                      Dummy 1
 1 [Loopback       ]: Loopback - Loopback
                      Loopback 1
 2 [VirMIDI        ]: VirMIDI - VirMIDI
                      Virtual MIDI Card 1
 3 [port           ]: MTPAV - MTPAV on parallel port
                      MTPAV on parallel port at 0x378
 4 [UART           ]: MPU-401 UART - MPU-401 UART
                      MPU-401 UART at 0x330, irq 10
 5 [I82801BAICH2   ]: ICH - Intel 82801BA-ICH2
                      Intel 82801BA-ICH2 with ALC200,200P at irq 5
cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version k3.13.5.
cat /proc/asound/oss/sndstat
Sound Driver:3.8.1a-980706 (ALSA emulation code)
Kernel: Linux server.ua 3.13.5 #1 SMP Wed Mar 12 21:09:05 EET 2014 i686
Config options: 0

Installed drivers:
Type 10: ALSA emulation

Card config:
Dummy 1
Loopback 1
Virtual MIDI Card 1
MTPAV on parallel port at 0x378
MPU-401 UART at 0x330, irq 10
Intel 82801BA-ICH2 with ALC200,200P at irq 5

Audio devices:
0: Dummy PCM (DUPLEX)
1: Loopback PCM (DUPLEX)
5: Intel 82801BA-ICH2 (DUPLEX)

Synth devices: NOT ENABLED IN CONFIG

Midi devices:
2: Virtual Raw MIDI
3: MTP AV MIDI
4: MPU-401 UART MIDI

Timers:
31: system timer

Mixers:
0: Dummy Mixer
1: Loopback Mixer
2: mixer20
3: mixer30
4: mixer40
5: Realtek ALC200,200P rev 0

Теперь о проблемах, при выполнении команды: alsamixer выдаёт вот что:
ALSA lib control.c:843:(snd_ctl_open_conf) Invalid type for CTL default definition
cannot open mixer: Недопустимый аргумент

При выполнении команды: alsactl init выдаёт вот что:
ALSA lib conf.c:4706:(snd_config_expand) Load defaults error: File exists
ALSA lib control.c:953:(snd_ctl_open_noupdate) Invalid CTL hw:0

Я так понял что надо принудительно прописать устройство вместо hw:0 прописать hw:5 но что то перепробовал варианты и ничего не получается. Пожалуйста помогите. Прошу строго не ругать.

★★

Последнее исправление: v4567 (всего исправлений: 1)

На счёт ядра и т.п. ничего сказать не могу, но вот про настройку..

Просто так альса не схавает hw:5, так как ты говоришь ей только номер карты, а она желает знать ещё и устройство. Попробуй hw:5,0

перепробовал варианты

Какие? Куда прописывал? В ~/.asoundrc?

По первой же ссылке на убунтуфорумс:

pcm.!default {
    type plughw
    card 5
    device 0
}

ctl.!default {
    type plughw           
    card 5
    device 0
}

Так же попробуй поменять device на 1. И hw:5,1.

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

Прописал эти строки в файл ~/.asoundrc при 0 и при 1 выдаёт вот что:

alsamixer
ALSA lib conf.c:1017:(parse_value) default is not a string
ALSA lib conf.c:1686:(snd_config_load1) _toplevel_:129:0:Недопустимый аргумент
ALSA lib conf.c:3406:(config_file_open) /etc/asound.conf may be old or corrupted: consider to remove or fix it
ALSA lib conf.c:3328:(snd_config_hooks_call) function snd_config_hook_load returned error: Недопустимый аргумент
ALSA lib conf.c:3777:(snd_config_update_r) hooks failed, removing configuration
cannot open mixer: Недопустимый аргумент

похоже что пакеты alsa скомпилились с ошибкой:

Вот что выдают следующие команды:

lspci -k | grep -i -A2 audio
00:1f.5 Multimedia audio controller: Intel Corporation 82801BA/BAM AC'97 Audio Controller (rev 05)
        Subsystem: Avance Logic Inc. Device 22dd
        Kernel driver in use: snd_intel8x0

aplay -l
**** List of PLAYBACK Hardware Devices ****
ALSA lib conf.c:4706:(snd_config_expand) Load defaults error: Файл существует
ALSA lib control.c:953:(snd_ctl_open_noupdate) Invalid CTL hw:0
aplay: device_list:277: control open (0): Файл существует
ALSA lib conf.c:4706:(snd_config_expand) Load defaults error: Файл существует
ALSA lib control.c:953:(snd_ctl_open_noupdate) Invalid CTL hw:1
aplay: device_list:277: control open (1): Файл существует
ALSA lib conf.c:4706:(snd_config_expand) Load defaults error: Файл существует
ALSA lib control.c:953:(snd_ctl_open_noupdate) Invalid CTL hw:2
aplay: device_list:277: control open (2): Файл существует
ALSA lib conf.c:4706:(snd_config_expand) Load defaults error: Файл существует
ALSA lib control.c:953:(snd_ctl_open_noupdate) Invalid CTL hw:3
aplay: device_list:277: control open (3): Файл существует
ALSA lib conf.c:4706:(snd_config_expand) Load defaults error: Файл существует
ALSA lib control.c:953:(snd_ctl_open_noupdate) Invalid CTL hw:4
aplay: device_list:277: control open (4): Файл существует
ALSA lib conf.c:4706:(snd_config_expand) Load defaults error: Файл существует
ALSA lib control.c:953:(snd_ctl_open_noupdate) Invalid CTL hw:5
aplay: device_list:277: control open (5): Файл существует

aplay -L
ALSA lib conf.c:4706:(snd_config_expand) Load defaults error: Файл существует
ALSA lib control.c:953:(snd_ctl_open_noupdate) Invalid CTL hw:0
Ошибка сегментирования

Ошибка сигментирования, получается что криво скомпилилось?!?!?!

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

Посмотри содержимое /etc/asound.conf Должно быть схожее, если не то же самое, что и в ~/.asoundrc

Easy, easy, я ни разу ничего не компилял, и это уже тебе делать выводы) Если с моей подачи у тебя в итоге что-то получится - буду просто рад.

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

Посмотри содержимое /etc/asound.conf Должно быть схожее, если не то же самое, что и в ~/.asoundrc

их изначально не было, был вот этот файл:
/usr/share/alsa/alsa.conf
Я его скопировал в /etc/asound.conf и в ~/.asoundrc так что естественно что они одинаковые.

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

Да, согласно гуглу, скорее всего скомпилировалось неверно. Но не факт что и конфиг сам по-себе рабочий. Говорю же, я просто нашёл его в первой ссылке с похожей проблемой. Все эти plughw... Хотя свой тоже так сразу не вспомню. Приду домой - могу скинуть.

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

переустановил пакеты:
alsa-lib-1.0.27.2
alsa-utils-1.0.27.2
Ранее установленные удалил, всё почистил. Поставил заново, всё скомпилилось нормально. Но ничего не изменилось, при запусках выдаёт те же ошибки.

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

~/.asoundrc

pcm.playme {
type plug
slave.pcm "surround41"
slave.channels 5
route_policy duplicate
}
pcm_slave.slavej {
  pcm "hw:0,0"
  channels 2
  rate 44100
}
pcm.plugj {
  type plug
  slave slavej
}

Я сейчас сам удивился, но, оно работает уже очень давно. Как видишь 5 каналов для 4.1 аккустики. Соответственно, меняешь каналы и hw под себя. Если не заработает - sorry :( Значит копали не туда.

/cat/asound.conf у меня не существует. А ещё есть тот самый /usr/share/alsa/alsa.conf но он просто огромен :) Надо?

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

Переустановил или пересобрал? Это разные вещи. Где-то тут была тема про это. Тоже с альсой, тоже не правильно скомпилировано было.

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

всё ранее установленное удалил, потом наново сконфигурировал, скомпилил и инсталировал. Это всё делал уже с ядром в котором была включена alsa.

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

нет не работает с твоим конфигом. Я тут ещё спросил у знакомого. Если что подскажет и получится тогда напишу.

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

Разобрался с alsa Может кому пригодится. Проблема наверное была в том что не был установлен пакет alsa-plugins-1.0.27
в общем удалили пакеты alsa-lib, alsa-utils и pulseaudio всё почистил, потом заново установил в таком порядке:

alsa-lib-1.0.27.2
alsa-firmware-1.0.27
alsa-plugins-1.0.27
alsa-oss-1.0.25
alsa-utils-1.0.27.2
pyalsa-1.0.26 даже библиотеку для питона поставил.

Потом в конфиге /etc/asound.conf прописал

pcm.!default
{
 type hw
 card I82801BAICH2
}

ctl.!default
{
 type hw
 card I82801BAICH2
}

pcm.!default
{
 type plug
 slave.pcm "dmixer"
}

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

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

ctl.mixer0
{
 type hw
 card 5
}
Выполнил следующие команды:
alsactl init 5 - 5 это моя аудио карточка, именно надо было init 5, просто init не работало.
alsamixer
alsactl store

Потом при загрузке системы выполняю alsactl restore и всё динамики и микрофон работает. Только не понятно, судя по данным:

cat /proc/asound/cards
 0 [Dummy          ]: Dummy - Dummy
                      Dummy 1
 1 [Loopback       ]: Loopback - Loopback
                      Loopback 1
 2 [VirMIDI        ]: VirMIDI - VirMIDI
                      Virtual MIDI Card 1
 3 [port           ]: MTPAV - MTPAV on parallel port
                      MTPAV on parallel port at 0x378
 4 [UART           ]: MPU-401 UART - MPU-401 UART
                      MPU-401 UART at 0x330, irq 10
 5 [I82801BAICH2   ]: ICH - Intel 82801BA-ICH2
                      Intel 82801BA-ICH2 with ALC200,200P at irq 5
cat /proc/asound/devices | grep capture
  3: [ 0- 0]: digital audio capture
  6: [ 1- 1]: digital audio capture
  8: [ 1- 0]: digital audio capture
 19: [ 5- 1]: digital audio capture
 21: [ 5- 0]: digital audio capture
cat /proc/asound/pcm
00-00: Dummy PCM : Dummy PCM : playback 8 : capture 8
01-00: Loopback PCM : Loopback PCM : playback 8 : capture 8
01-01: Loopback PCM : Loopback PCM : playback 8 : capture 8
05-00: Intel ICH : Intel 82801BA-ICH2 : playback 1 : capture 1
05-01: Intel ICH - MIC ADC : Intel 82801BA-ICH2 - MIC ADC : capture 1
Получается что динамики hw:5,0 а микрофон hw:5,1 Но на самом деле и динамики и микрофон hw:5,0
Команда: arecord -D hw:5,1 -f dat /tmp/mic.wav не работает пишет ошибка ввода/вывода, а вот команда: arecord -D hw:5,0 -f dat /tmp/mic.wav работает и пишет с микрофона в файд /tmp/mic.wav Вот такие вот дела..........

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