Advanced linux sound architecture

User : Zunguguzunguzeng/ALSA

Advanced Linux Sound Architecture (ALSA) это компонент ядра, призванный заменить оригинальную Open Sound System (OSSv3) в предоставлении драйверов звуковым картам. Помимо драйверов звуковых устройств, ALSA также включает в себя пользовательскую библиотеку для разработчиков приложений, которые хотели бы использовать возможности драйвера с API более высокого уровня чем простое взаимодействие с драйвером ядра.

Установка

ALSA уже включена в ядро Арча по умолчанию, как набор модулей, так что в установке нет необходимости.

udev автоматически проверит оборудование, загрузив соответствующий вашей звуковой карте модуль ядра. Так что звук уже должен работать, просто по умолчанию все каналы заглушены.

Пользователи должны состоять в группе audio, чтобы воспроизводить звук с помощью ALSA. Для добавления пользователя в группу audio можно воспользоваться следующей командой:

# gpasswd -a yourusername audio

Пользовательские утилиты

Пакет alsa-utils включает в себя программу alsamixer, которая позволяет настраивать звук из консоли, или терминала. Устанавливается с помощью pacman:

Установите пакет alsa-oss если хотите, чтобы ваши OSS-приложения работали с dmix (software mixing):

Note: С версии udev>=171 , модули эмуляции OSS ( snd_seq_oss, snd_pcm_oss, snd_mixer_oss ) не загружаются автоматически по умолчанию.

Установите пакет alsa-plugins, если вам нужны high quality resampling, upmixing/downmixing и другие дополнительные программы:

Включение каналов

Текущая версия ALSA устанавливается с заглушенными по умолчанию каналами. Включать каналы нужно вручную.

Для этого прекрасно подойдёт alsamixer (сделанный в ncurses) (либо можно использовать amixer из командной строки):

Буквы «MM» под обозначением канала говорят о том, что канал заглушен, а «00» о том, что включен.

Включите каналы Master и PCM с помощью стрелок на клавиатуре, и клавиши M . Используйте клавишу ↑ , и увеличьте громкость, чтобы gain стал 0dB (его уровень можно увидеть левом верхнем углу: Item: Master [dB gain: 0,00, 0,00] ). Больший уровень gain может стать причиной искажений и шума.

Для 5.1 или 7.1 surround надо включить остальные каналы, такие как: Front, Surround, Center, LFE (subwoofer) и Side (это названия каналов Intel HD Audio, для других карточек они могут отличаться). Здесь надо заметить, что таким образом качество обычного стерео повышено не будет (как повысить качество читай #Upmixing/Downmixing).

Выход из alsamixer осуществляется кнопкой Esc .

Note: У некоторых карточек должен быть выключен digital output, чтобы услышать аналоговый звук. Для Soundblaster Audigy LS надо отключать IEC958 channel.

Note: У некоторых машин, (таких как Thinkpad T61), есть канал Speaker, его нужно включить и прибавить.

Читайте также:  Обновить таблицу разделов linux

Дальше проверка, как работает/не работает звук:

Измените Change -c в соответствии со своей аудиосистемой. Для системы 7.1 используйте -c 8:

Если не работает, читайте #Настройка и #Поиск проблем, чтобы разобраться.

Если всё получилось, то осталось лишь сохранить настройки микшера:

# alsactl -f /var/lib/alsa/asound.state store

Этой командой создаётся файл /var/lib/alsa/asound.state , содержащий установки alsamixerа.

Потом добавьте демон alsa в секцию DAEMONS файла /etc/rc.conf , чтобы микшер автоматически восстанавливал значения при загрузке:

Note: демон alsa просто восстанавливает настройки каналов, читая их из /var/lib/alsa/asound.state . It is separate from the alsa audio library (and kernel level API).

Настройка

Если вы так ничего не слышите, то проверьте ещё раз настройки микшера, и попробуйте запустить alsaconf от имени root:

Все необходимые модули udev должен определить и подгрузить автоматически. Особых настроек потребоваться не должно, (если только для карт ISA).

Warning: Не используйте alsaconf если у вас звуковая карта PCI или ISAPNP, так как записи в modprobe.conf, которые делает alsaconf, могут нарушить автоопределение udevа.

Установка дефолтной звуковой карты

В окружении ядра

Чтобы предотвратить конфликты другого оборудования со звуковой картой, узнайте название модели: lspci(8), и названия модулей ALSA с помощью ls:

total 0 lrwxrwxrwx 1 root root 0 Apr 25 00:56 snd_hda_codec -> ../../snd_hda_codec lrwxrwxrwx 1 root root 0 Apr 25 00:56 snd_hda_codec_realtek -> ../../snd_hda_codec_realtek lrwxrwxrwx 1 root root 0 Apr 25 00:56 snd_hda_intel -> ../../snd_hda_intel lrwxrwxrwx 1 root root 0 Apr 25 00:56 snd_hwdep -> ../../snd_hwdep lrwxrwxrwx 1 root root 0 Apr 25 00:56 snd_pcm -> ../../snd_pcm lrwxrwxrwx 1 root root 0 Apr 25 00:56 snd_timer -> ../../snd_timer

Then add the names of your sound card modules to (source[2]):

options snd slots=snd-intel8x0

These entries ensure that the Intel 82801DB-ICH4 sound card will become card 0 and the PC speaker will become card 1.

Note: You will need to unload all your sound modules and reload them for the changes to take effect. It might be easier to reboot. Your choice.

Note: This method will NOT work if the conflicting devices use the same module. If you would prefer to not configure sound on a per user basis as in the section below, you can directly modify /usr/share/alsa/alsa.conf . For example, replace all «card 0» with «card 1» .

Пользовательский способ

Этот способ не требует прав администратора, изменения делаются от имени простого пользователя, и вступают в силу сразу после перезапуска приложения.

В файле /usr/share/alsa/alsa.conf содержится список настроек, которые alsa применяет по умолчанию. Он может быть переписан в файл ~/.asoundrc .

Опции ‘pcm’ определяют какая именно карта будет использоваться для воспроизведения звука. В свою очередь опции ‘ctl’ определяют какую карту будут использовать программы управления, такие как alsamixer, amixer итп.

Чтобы выяснить какие цифры какое устройство обозначают, используйте aplay -l .

$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: Intel [HDA Intel], device 0: CONEXANT Analog [CONEXANT Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: Intel [HDA Intel], device 1: Conexant Digital [Conexant Digital] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: JamLab [JamLab], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: Audio [Altec Lansing XT1 - USB Audio], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0

Как узнать, загрузились ли модули

Допустим, что udev определил устройства правильно, вы можете это проверить:

$ lsmod|grep '^snd' | column -t snd_hda_codec_hdmi 22378 4 snd_hda_codec_realtek 294191 1 snd_hda_intel 21738 1 snd_hda_codec 73739 3 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel snd_hwdep 6134 1 snd_hda_codec snd_pcm 71032 3 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec snd_timer 18992 1 snd_pcm snd 55132 9 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer snd_page_alloc 7017 2 snd_hda_intel,snd_pcm

Если вывод команды схож с приведённым выше, значит звуковые драйвера успешно определились.

Читайте также:  Veeam backup proxy linux

Note: Начиная с udev>=171 , OSS модули ( snd_seq_oss, snd_pcm_oss, snd_mixer_oss ) не загружаются по умолчанию, это надо сделать вручную: modprobe и/или добавьте их в секцию MODULES , в /etc/rc.conf , если необходимо.

Вам также возможно захочется заглянуть в папку /dev/snd, чтобы просмотреть названия файлов устройств:

$ ls -l /dev/snd total 0 crw-rw---- 1 root audio 116, 0 Apr 8 14:17 controlC0 crw-rw---- 1 root audio 116, 32 Apr 8 14:17 controlC1 crw-rw---- 1 root audio 116, 24 Apr 8 14:17 pcmC0D0c crw-rw---- 1 root audio 116, 16 Apr 8 14:17 pcmC0D0p crw-rw---- 1 root audio 116, 25 Apr 8 14:17 pcmC0D1c crw-rw---- 1 root audio 116, 56 Apr 8 14:17 pcmC1D0c crw-rw---- 1 root audio 116, 48 Apr 8 14:17 pcmC1D0p crw-rw---- 1 root audio 116, 1 Apr 8 14:17 seq crw-rw---- 1 root audio 116, 33 Apr 8 14:17 timer

если у вас присутствуют по крайней мере устройства controlC0 и pcmC0D0p или аналоги, значит звуковые модули определены и загружены правильно.

В случае, если модули определились неправильно, можете попробовать загрузить их вручную:

  • Найдите модуль для своей звуковой карты здесь: ALSA Soundcard Matrix, перед названием модуля нужно поставить ‘snd-‘ (например: ‘snd-via82xx’).
  • Загрузите модули:
  • Сверьтесь с файлами устройств в /dev/snd (см. выше) and/or try if alsamixer or amixer have reasonable output.
  • Add snd-NAME-OF-MODULE and snd-pcm-oss to the list of MODULES in /etc/rc.conf to ensure they are loaded next time (make sure snd-NAME-OF-MODULE is before snd-pcm-oss).
  • This page was last edited on 29 November 2017, at 18:46.
  • Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.
  • Privacy policy
  • About ArchWiki
  • Disclaimers

Источник

Download

See ChangeLogs to find out what has changed since the previous release.

  • GPG signing key fingerprint: F04D F507 37AC 1A88 4C4B 3D71 8380 596D A6E5 9C91
  • GPG public key block: [1]

Detailed package descriptions

alsa-driver

alsa-driver contains the ALSA components that run in kernel space (e.g. all the modules). It also contains a few user-space components, including the alsasound startup script and a set of ALSA headers.

This package is now obsolete. The kernel development continues in the standard linux kernel tree [2].
The old drivers (alsa-driver) are still available.

alsa-lib

alsa-lib contains the user space library that developers compile ALSA applications against.

Читайте также:  Виртуальная машина линукс или виндовс

alsa-utils

alsa-utils contains various generic ALSA command line tools, such as amixer, aplay, alsaconf, etc.

alsa-tools

alsa-tools contains various more obscure tools and loaders.

alsa-firmware

alsa-firmware contains binary drivers for various third-party products.

alsa-plugins

alsa-plugins contains plugins for various ALSA needs (e.g. Jack).

alsa-oss

alsa-oss contains the OSS compatibilty layer.

pyalsa

pyalsa contains the Python bindings for ALSA

.bz2 extension handling

The .bz2 extension belongs to the bzip2 compression utility which replaces gzip. You may unpack the .tar.bz2 files directly using one of the following commands:

using the newer version of tar: tar -xjf or, using the older version of tar: tar -xIf or, with all versions of tar: bunzip2 -c | tar -xf -

FTP Access

HTTP access

Developers: GIT access

Online Snapshot From ALSA Server

Tarballs are generated from the latest code in ALSA GIT repositories immediately. Get very fresh ALSA code now.

Daily Snapshot Tarballs (from Takashi Iwai)

The tarballs of the latest GIT version with ready-for-build configure script are available at:

Tracker System

Rsync

ALSA rsync access
URL rsync://rsync.alsa-project.org/ftp
Access read-only
Description read-only access to the whole FTP tree

Источник

Advanced Linux Sound Architecture (ALSA) project homepage

Introduction
The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI functionality to the Linux operating system. ALSA has the following significant features:

  • Efficient support for all types of audio interfaces, from consumer sound cards to professional multichannel audio interfaces.
  • Fully modularized sound drivers.
  • SMP and thread-safe design (PLEASE READ THIS).
  • User space library (alsa-lib) to simplify application programming and provide higher level functionality.
  • Support for the older Open Sound System (OSS) API, providing binary compatibility for most OSS programs.

Please, help us to provide better content and organisation on this wiki. Read the Community Portal for more details.

New ALSA Users

We need users to use, test and provide feedback on drivers and applications using ALSA. If you are interested, please subscribe to a mailing list.

Other information

2023-05-04 alsa-lib,alsa-ucm-conf,alsa-utils 1.2.9 release | Changes v1.2.8 v1.2.9
2022-10-25 alsa-lib,alsa-ucm-conf,alsa-utils,tinycompress 1.2.8 release | Changes v1.2.7.2 v1.2.8
2022-07-08 alsa-lib,alsa-ucm-conf 1.2.7.2 release | Changes v1.2.7.1 v1.2.7.2
2022-06-17 alsa-lib,alsa-ucm-conf,alsa-plugins 1.2.7.1 release | Changes v1.2.7 v1.2.7.1
2022-05-31 alsa 1.2.7 release | Changes v1.2.6.3 v1.2.7
2021-12-17 alsa-ucm-conf 1.2.6.3 release | Changes v1.2.6.2 v1.2.6.3

Advanced ALSA Users

We need users to use, test and provide feedback on drivers and applications using ALSA. If you are interested, please subscribe to a mailing list.

Other information

ALSA Developers

We need application developers who choose to use ALSA as the basis for their programs, programmers to work on low level drivers, writers to extend and improve our documentation. If you are interested, please subscribe to a mailing list.

Источник

Оцените статью
Adblock
detector