7/07/2006

Как настроить звук в Linux

Настроить звук в Linux достаточно просто, особенно в Debian, для чего требуется установить ALSA [?] и запустить скрипты автоматической настройки - и всё! А если в Linux нет звука - значит нужно запустить скрипты настройки alsaconf и заодно сходить на официальный сайт ALSA и поинтересоваться с поддержке вашей звуковой карты в Linux. Об этом и рассказывает данный пост.

Да будет звук!
Для начала надо поставить все пакеты, относящиеся к ALSA. Как всегда, используем от рута команды:
# apt-cache search alsa
# aptitude install alsa-utils alsa-base alsa-tools
В результате этого должны появиться по крайней мере две очень полезные программы alsaconf и alsamixer.

Если в дистрибутивном ядре не оказалось поддержки нашей карты, пересобираем ядро (читая эту статью), выкидывая из него лишнее и включаем ALSA монолитно в ядро, а драйвера к звуковой карте (картам) модульно. Сие последнее очень важно, иначе alsaconf ничего не отыщет.

После чего (собрали ядро, включили драйвер модульно, поставили все пакеты ALSA) от рута:
# alsaconf
или (в новых версиях Debian)
#
alsactl init
При этом появляется псевдографический мастер настройки и, сканируя все возможные шины и адреса, находит звуковую карту. Конфигурирует, прописывает что и куда надо - получаем сообщение HAVE A LOT OF FUN!

Далее надо глянуть в настройки самого микшера. Лучше всего запускать не kmix (не у всех он есть), а alsamixer (я его использую как штатный микшер). По умолчанию в Дебиане при первой загрузке после обнаружения звука все палочки в микшере выведены на ноль. Поднимаем уровень звука в Linux клавишами ВВЕРХ, наслаждаемся звуком. Решение с alsamixer подкупает своей универсальностью: им можно пользоваться и в иксах, и в консоли, и с любым оконным менеджером/средой.

Если вы настроили звуковую подсистему или какая-то нехорошая программа заблокировала доступ к звуковой карте, закройте все использующие звук приложения и в консоли дайте команду от рута (или через sudo):
# /etc/init.d/alsa restart
Это перезапустит звуковую подсистему, и перезагружаться не нужно. Всё, наслаждаемся звуком.

Если же вы обнаружили, что громкость слишком низкая\высокая или микрофон в Linux не работает, отрегулировать громкость в Linux можно штатным конфигуратором alsamixer в консоли:
alsamixer -V all
Это даст вывод всех каналов звуковой карты, так что настроить можно будет всё, от колонок до микрофонов.

Звук только под root!
Если кто-то начудил с правами доступа, то звук проигрывается только под root, а у простого пользователя звука не будет. При этом попытка запустить микшер может сопровождаться ошибками:
Sound server informational message:
Error while initializing the sound driver:
device: default can't be opened for playback (Permission denied)
The sound server will continue, using the null output device.
Для того, чтобы пользователи могли тоже слушать музыку, даём права на аудиоустройства:
chmod 755 /dev/dsp*
chmod 755 /dev/audio*
chmod 755 /dev/mixer*
chmod 777 /dev/snd/*
После этого звук должен воспроизоводиться и у пользователей. Есть так же и другой путь побороть проблему "звук только от root": добавить текущего пользователя в группу audio. Имя текущего пользователя можно узнать командой whoami. Далее:
#adduser вашеимяпользователя audio
Изменения вступят в силу после того, как вы перелогинитесь (войдёте в систему снова, log-out и затем log-in).

Громкость звука в Linux

Легко и просто: у драйвера звука alsa имеется командный микшер amixer и его можно использовать для увеличения\уменьшения уровня звука.
amixer -c 0 -q set Master 3%+ unmute <-- сделать громче на 3%
amixer -c 0 -q set Master 3%- unmute <-- сделать тише на 3%
Эти команды легко прикручиваются к горячим клавишам того же hotkey.

Для любителей графических интерфейсов: помимо программы kmix, есть ещё маленькая, но очень хорошая GTKшная программа VolumeIcon (спасибо комментаторам за наводку). В репозиториях нет, но на сайте есть дебиановский пакет, исходники и простые инструкции по установке.

А чем слушать музыку в Linux?
Аудиоплееров в Debian хватает - пишем в консоли:
apt-cache search audio player
и выбираем из этого богатства что-нибудь. Музыку слушать в Linux можно программами:
  • xmms: очень похожий на WinAmp аудиоплеер, с кучей возможностей, плагинов, поддерживает MP3/Ogg, wav, воспроизведение audioCD, управление с клавиатуры и другое.
  • beep-media-player: то же, что xmms, только интерфейс чуть красивее и дружит с UTF8.
  • mocp - консольный плеер с интерфейсом в стиле Norton Commander; играет, даже если вы выйдете из графической оболочки.
  • rhythmbox: простой и функциональный плеер для среды GNOME.
  • amaroK: навороченный плеер и каталогизатор музыки для KDE.
Для начала можно установить несколько плееров аудио в Linux так:
apt-get install beep-media-player xmms rhythmbox amarok
и наслаждаемся.

43 комментария:

  1. >> Потом, пересобираем ядро, выкидывая из него лишнее и включаем ALSA монолитно в ядро, а драйвера к звуковой карте (картам) модульно

    Написал бы чтоли, как ты это делал.. было срьезно кому-то полезно

    ОтветитьУдалить
  2. У меня два звуковых устройства: встроенный via ac97 (модуль via82xxx по-моему) и c-media (cmipci). Можно ли как-то настроить в дебиане, чтоб работали оба? Или вообще, один плеер играет через одну звук. карту, другой плеер через другую? =)

    ОтветитьУдалить
  3. Обе звуковые карты поддерживаются, и если драйвера для них скомпилированы в ядре и опознаны alsaconf, то программам воспроизведения надо указать в лоб звуковые устройства - каждой своё. Должно работать.
    Не забыть поставить в /dev правильные права на соответствующие устройства. Простой совет, но как часто бьёшься лбом об стену - не посмотрев на права...

    ОтветитьУдалить
  4. а как насчет midi?..

    ОтветитьУдалить
  5. Midi я не пользуюсь, но там тоже есть поддержка. Приходилось пересобирать ядро, т.к. в то время поддержки моей звуковой карты не было.

    P.S. Пост надо бы расширить....

    ОтветитьУдалить
  6. Я знаю, пытался включить, но загвоздка в том, что если включен MIDI-вывод, обычный вывод отключается. Т.е. надо включать или/или, такой расклад, естественно, меня не устраивает. Значит, буду UTFS'ить...

    ОтветитьУдалить
  7. #alsaconf помогает и отлично всё настраивает, но при следующей загрузке звука нет до тех пор, пока заново не запустишь #alsaconf (что для пользователей, которых нет в списке sudoers не только не приемлимо, но и невозможно).

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

    ОтветитьУдалить
  8. to Anonymous : 4:19 AM
    если у вас установлены все alsa-* пакеты, перечисленные в статье (в данном случае необходимы ), то
    `update-rc.d alsa-utils defaults`

    ОтветитьУдалить
  9. если у вас установлены все alsa-* пакеты, перечисленные в статье (в данном случае необходимы ), то
    `update-rc.d alsa-utils defaults`

    Попробовал. Не помогло.
    Попорбовал предварительно сделать
    # update-rc.d -f alsa-utils remove
    и потом уже
    # update-rc.d alsa-utils defaults
    Тоже не помогло.

    После перезагрузки -- пока не сделаешь
    # alsaconf
    который "найдёт звук" и гордо сообщит о том, что прописал его в /etc/modporobe.d/sound -- звука не будет.

    Где копать?

    P.S. Использую Etch.

    ОтветитьУдалить
  10. Сегодня долго мучался с тем, как заставить alsa на своей машине одновремеено играть звуки от двух и более приложений.
    в какую сторону копать - заменить mpg123 на mpg123-alsa, и видимо домучать mpd на предмет вывода в pcm.xmix
    интересно было бы дополнение статьи. потому что ставить artsd не всем удобно;)
    кстати, на fa сайта alsa прорисано - oss-wrapper не работает с этим.
    в общем было бы интересно почитаь развитие этой статьи в данном направлении:)

    ОтветитьУдалить
  11. Почему-то после настройки звук идет только через колонки, подключаемые к основному выводу. На внутреннем выводе (коннектор на системной плате для передней панели) - тишина (в Windows все работало). HD Audio Controller

    ОтветитьУдалить
  12. 2 Anonymous said...
    Почему-то после настройки звук идет только через колонки, подключаемые к основному выводу.
    Потому что надо включить (раз-mutt-ить) первый ползунок в alsamixer, который отвечает на передние колонки, и поставить в конце не 2-х канальный звук, а 6. И не надо про винду - там далеко не всегда всё работает.

    ОтветитьУдалить
  13. "#alsaconf помогает и отлично всё настраивает, но при следующей загрузке звука нет до тех пор, пока заново не запустишь #alsaconf"

    Вот такая же фигня и у меня на Etch - вольтанусь скоро. Помница Шуруп хаял слаку (статья - уродец наших дней) за то что звука нет, но там в модулес надо было всего лишь раскоментировать драйвер, чтобы все работало. А здесь Debian :(
    Карты две, одна интегрирована в материнку, вторая (через которую требуется выводить звук) Live!5.1
    Первый раз ставил гном, потом доустановил кде , а гном снес - после настройки алса все работало и после перезагрузки. Потом пошел другим путем, поставил базовую систему и доустановил кде, алсу - выскачил этот глюк. ЧТО ДЕЛАТЬ? Караууул!

    ОтветитьУдалить
  14. На сколько понял Etch по умолчанию создает пользователя вообще без прав, точнее у пользователя нет прав на запуск sound сервера (или как там правильно). Была аналогичная проблема, решилась путем включения пользователя в какую-то группу...кажется soundsrv?. если надо точно могу посмотреть (проблема была на работе, а не дома)

    ОтветитьУдалить
  15. 2 Анонимный комментирует...
    Вот такая же фигня и у меня на Etch - вольтанусь скоро.
    Не надо вольтоваться, не поможет. Немного погуглить - и порядок. У меня блог - не энциклопедия :-)


    2 Анонимный комментирует...
    На сколько понял Etch по умолчанию создает пользователя вообще без прав, точнее у пользователя нет прав на запуск sound сервера
    При чём тут звуковой сервер? Любой пользователь включён в группу audio, может играть звук.

    если надо точно могу посмотреть
    Если не затруднит - я это опубликую.

    ОтветитьУдалить
  16. Здравствуйте!
    У меня следующая проблема:
    Ноутбук toshiba satellite a200 13oю На нем встроенная звуковушка от интела.
    После установки из исходников самой последней алсы и прочего звук отлично работает, однако при подключении наушников звук во встроенных динамиках НЕ пропадает(в наушниках появляется).
    С чем это может быть связано и как лечить?

    ОтветитьУдалить
  17. 2 anthonio пишет...
    Вместо:
    # /etc/init.d/alsa restart

    У меня получилось так:
    # /etc/init.d/alsa force-reload

    Интересно, а что за дистрибутив?

    Проблема такая - звука нет в welcome screen. Вместо этого - системный динамик пищит.
    Данных мало, как обычно. Лучше бы забраться на forum.ubuntu.ru - там может кто знает из телепатов :-)

    2 Носеевич Георгий пишет...
    Ноутбук toshiba satellite a200 13oю На нем встроенная звуковушка от интела.
    После установки из исходников самой последней алсы и прочего звук отлично работает, однако при подключении наушников звук во встроенных динамиках НЕ пропадает(в наушниках появляется).

    Частая проблема - иногда помогает установка более свежего ядра (некоторые проблемы решались переходом на 2.6.22).

    ОтветитьУдалить
  18. Звук в системе есть, всё работает с картой корректно. Однако Audacity говорит что звукового девайса нет и работать со звуком отказывается, а alsaconf приводит к мёртвому зависанию системы. Карта ESi-Juli@, в Мандриве опознавалась, но не работала. Но вот великий Дебиан с ней зазвучал на раз и очень качественно. Однако Audacity...
    Может кто знает где копать?

    ОтветитьУдалить
  19. Проблема "разрешилась" весьма странным способом. Изменив интерфейс с английского на руский, я получил бредовые символы, что естественно ибо система и редактор установлены в английской версии. Но вот когда я изменил интерфейс обратно на английский, всё вернулось и вдобавок появился ЗВУК!!! Карта была опознана редактором и он заработал. Сия методика меня очень удивила :-)

    ОтветитьУдалить
  20. У меня в Etch, как и у нескольких предыдущих ораторов, также приходится повторно запускать #alsaconf, но вот что интересно - если сделать
    # /etc/init.d/alsa restart
    то ответ будет:
    bash: /etc/init.d/alsa: Нет такого файла или каталога
    Насколько я понимаю, скрипт alsa как раз и отвечает за инициализацию звука... Но вот почему его нет и как его создать я понять не могу... :(

    ОтветитьУдалить
  21. Трабла с новой звуковухой
    HD AUDIO VIA VT1708B

    Система
    Linux debian 2.6.26-1-amd64
    Звук выводится с тормозами, шипением и т д...
    Алсаконф находит аудюху и радуется жизни.
    Шутки ради поставил даже алса из экспериментальной ветви. Баги не пропали. Куда копать?

    ОтветитьУдалить
  22. При установке из коробки почему-то оказалось, что звук есть только у рута, хотя обычный юзер входил в группу audio.
    Поменял права для /dev/snd/ на 755 - звук появился у всех.

    ОтветитьУдалить
  23. А кто нибуть знает как перезапускать alsa? Раньше делал при помощи alsaconf, щас его выкинули :(

    ОтветитьУдалить
  24. Привет всем! Подскажите, как заставить Debian 5.03 задать по умолчанию итегрированную звуковую карту. У меня nforce2 и через usb подключен скайпфон Voxtel 100. Debian при подключении usb скайпфона Voxtel 100 стал игнорировать основную nforce2 звуковую карту и весь звук стал идти через usb скайпфона Voxtel 100. alsaconf приходится кажлый раз при загрузке запускать и восстанавливать работу звуковой карты nforce2.

    ОтветитьУдалить
  25. делал все как написанно. alsa нашла мою карту via82xx, настроила, сказала что все в порядке. зашел в микшер, ползунки выставил на максимум. звука нет :( что делать?

    ОтветитьУдалить
  26. А у меня вообще звука нет! Никакого.
    Пишет: "Модули GStream и\или устройства регулировки громкости не найдены". Хотя, условно, все вроде бы стоит. Это при наведении на регулятор громкости на панели управления. Выбираешь параметры и просто ничего не загружается.
    Что с этим делать?!

    ОтветитьУдалить
  27. У меня небыло звука под обычным пользователем. Звук был только под root`ом.
    Мне помогло вот это:

    chmod a+rw /dev/dsp /dev/mixer /dev/sequencer /dev/midi

    ОтветитьУдалить
  28. Я оставлю тут такую нубинфо. Несколько раз настраивал звук в ленни (да и в этче тоже) с ходу - алсаконфом, и все было чудесно. Сейчас вот не прокатывало, несмотря на все поднятые столбики в alsamixer. В IRC подсказали, что можно попробовать снять mute со звука, что меня и спасло:

    /etc/init.d/alsa-utils reset 0 (unmutes and sets sane levels)

    Я тут больше ломаю голову над регулятором громкости, kmix подводил при загрузке icewm и куда-то девался каждые несколько часов, так что приходилось запускать его заново. Да и как-то я по многим-многим мелочам стал сомневаться в такой уж прям стабильности дебиана. Но это уже оффтопик.

    ОтветитьУдалить
  29. А можно ли альсамиксером изменить направление звука? допустим, программно переназначить вход на выход?

    ОтветитьУдалить
  30. Хочу иконку управления громкостью на панели задач IceWM. KMix слишком тяжелый; пробовал volti -- тянет пакеты из testing, а хотелось бы оставаться под Debian Lenny.

    ОтветитьУдалить
  31. Извините за флуд, нашел решение -- Volume Icon. Не тянет за собой никаких пакетов, из меню можно вызвать alsamixer.

    ОтветитьУдалить
  32. Вы знаеете моя мама нечайно стукнула по колонкам ноултбука и звук с пустя 5 дней пропал!Подскожите пожал. что мне делать звука уже 6 месяцев нет,музыку слушать нельзя,видео смотреть нельзя P L I S помогите=_))))

    ОтветитьУдалить
  33. @Euge комментирует...
    Я тут больше ломаю голову над регулятором громкости
    Ну, я, например, повесил на хоткеи. У меня на ноутбуке есть кнопки для управления громкостью. Hotkeys их прекрасно жуёт.

    Да и как-то я по многим-многим мелочам стал сомневаться в такой уж прям стабильности дебиана.
    Нет в мире совершенства. Попробуйте в виртуальной машине убунту или федору. Будет с чем сравнить. :-)

    @Анонимный комментирует...
    А можно ли альсамиксером изменить направление звука? допустим, программно переназначить вход на выход?
    А такое вообще бывает!? Я лично сомневаюсь.


    @iv_vl комментирует...
    Хочу иконку управления громкостью на панели задач IceWM.
    Выше я отписался про хоткеи. По-моему, это оптимальный вариант. Никогда этим вопросом, если честно, не задавался - у меня клавиатуры с доп.кнопками, повесил хоткеи - и всё.

    Извините за флуд, нашел решение -- Volume Icon.
    О, кстати, судя по описанию - то, что надо. Может, я даже попробую. И не флуд это вовсе, iv_vl, а ценные комментарии. Они для этого как раз тут и висят.

    @Анонимный комментирует...
    Вы знаеете моя мама нечайно стукнула по колонкам ноултбука и звук с пустя 5 дней пропал!
    Нет, ну я, конечно, мега-гуру дебиана всех времён, могу на расстоянии диагностировать неисправности, и даже гнуть ложки усилием воли. Но телепатически припаять колонки ноутбука - это выше даже моих джедайских возможностей.

    ОтветитьУдалить
  34. Подскажите пожалуйста, как можно реализовать 6 канальный звук?
    Система: Debian 6, Linux 2.6.39-1-amd64
    Звук: HD Intell Realtek ALC887-VD. Мать Asus P5G41T-M LX.
    Настроек каналов нигде не нашёл. В VLC при просмотре фильма переключал на "5.1" и "4.0". но звук настойчиво выходит только через «зелёный» разъём.

    ОтветитьУдалить
  35. YaLiC, посмотрите этот материал ... http://provincial.livejournal.com/4068.html это не повашему железу и системе, но важен принцип... куда можно копать ...

    ОтветитьУдалить
  36. >А можно ли альсамиксером изменить направление звука? допустим, програмно переназначить вход на выход?

    не самим алсамиксером но редактированием конфигов alsa и созданием патча, судя по публикации которую озвучил постом выше - можно.
    "...получить шестиканальный звук ..., очевидно, можно только одним способом - переключить линейный и микрофонный входы в режим вывода звука. ...чтение документации ... вывода команды ... показало, что микрофонный и линейный входы могут быть переключены в режим вывода путем перепрограммирования их начальной конфигурации.
    ...для чего необходимо выполнить следующие действия:
    1. Обновить ALSA до версии 1.0.21. Сделать это проще всего, использовав ALSA Upgrade Script.
    2. Создать файл конфигурации /lib/firmware/..._6ch.patch, предписывающий перед запуском ALSA переключить микрофонный и линейный каналы в режим вывода, со следующим содержимым:
    .... и тд
    источник (с) http://provincial.livejournal.com/4068.html

    ОтветитьУдалить
  37. Блин...
    Крорче, после обновления до squeeze перестал работать alsa. Совсем.
    Переустанавливал, конфигурировал...
    Скачал последнюю версию драйверов с оффсайта, скомпилировал, поставил.
    Звук появился, только не работал alsamixer.
    Регулировал исключительно через kmix.
    После обновления ядра kernel до версии 3.0 звук опять пропал.
    Поднял ядро до 3.2, ничего.
    Откатиться обратно до lenny не знаю как, да и не хочу, потому что система работает на ура: быстро, стабильно, ничего не отваливается (кроме alsa). Пробовал заново компилировать, не выходит: то нет какого-то файла, то несовместимые пакеты, то ещё чего...
    2,5 года назад я lenny даже несколько раз переустанавливал, как винду... Потому что звук работал только в KDE, и только при устновке системы заново и только с сервера. При установке с DVD не работало, при простой смене диспетчера окон и сопутствующих пакетов приложений тоже. Ох как ятогда намучился...
    Странно, не пойму, где связь между alsa и графикой?
    Кстати, в опере не смог настроить звук во флеш при работающей alsa...
    Переустанавливать не хочу, а то если до этого дойдёт, уйду на винду, т.к там такой же алгоритм действий (в смысле, чуть что, сразу переустановка)...

    ОтветитьУдалить
  38. Под карточку VIA VT1708s так ничего и не помогло на все 100%.
    Изначально звук был и в колонках и в наушниках. После сжигания на костре pulseaudio и настройкой alsa появилось чудо - звук стал либо в наушниках либо в колонках... Но при этом либо в браузере либо в плеере. И вот это уже не удалось побороть. Звук есть только в одном приложении.
    Правильный параметр в /etc/modprobe.d/alsa-base.conf найти не удалось. Пробовал options snd-hda-intel model=laptop и snd-hda-intel model=asus enable_msi=0 и snd-hda-intel model=auto.
    ос: debian mint 12, ядро 3.0.0-1-486, ноут K50af

    ОтветитьУдалить
  39. "chmod 777 /dev/snd/*"

    2 часа убунта трахала мне мозг и ВОТ ОНА КОМАНДА МОЕЙ МЕЧТЫ!!!! Спасибо великий гуру, только ты смог наставить меня на путь истинный!

    ОтветитьУдалить
  40. Господа!
    У меня карта E-Mu Tracker Pre. В арче работала без всяких танцев с бубном. А вот Debian 6.0 64bit никак не могу с ней подружить (
    Может кто-то сталкивался? Вот единственное что никак в дебиане не настрою самостоятельно ...(

    ОтветитьУдалить
  41. Есть ощущение, что E-Mu не работает из-за старой версии alsa в дебиане. Подскажите, есть ли возможность на debian squeeze обновить alsa с версии 1.0.23 до современной 1.0.25?

    ОтветитьУдалить
  42. я бы сюда еще добавил cmus - хороший консольный плеер - можно работать и из под иксов(через терминал), и из консоли, естественно. поддеживает много чего, в том числе и flac. Разобраться с ним - 5 минут дела. Ну а если все так плохо и хочется чего-то по красивше, то есть Banshee, правда эта зараза при сборке тянет mono, что конечно не очень хорошо, особенно если у вас гента и собирается из исходников все - у меня час ушел только на эту либу.

    ОтветитьУдалить