Драйвер звуковой платы Asus Xonar DG/DGX для FreeBSD

Приветствую уважаемых фряховодов, неравнодушных к качественному звуковоспроизведению! Выкладываю здесь результаты попытки заставить ещё одно интересное устройство работать с FreeBSD. На этот раз это звуковая карта Asus Xonar DG (её сестра DGX также протестирована и работает). Железка интересная, пришлось немного поломать голову над ней. И наконец-то, можно смотреть фильмы с многоканальным звуком (по-идее играть тоже, но это пока не проверено). Единственное из существенного, что приходит в голову и не реализовано в драйвере, это мониторинг канала записи. Может как-нибудь дойдут руки. Ещё не протестирован цифровой оптический выход, так как у меня до сих пор нет ресивера с toslink входами.

Драйвер протестирован только на архитектурах i386 и amd64. Работает как с PCI (Xonar DG), так и с PCI Express (Xonar DGX) вариантом платы. И да, как обычно напоминаю, что это ПО с открытым исходным кодом и БЕЗ КАКИХ-ЛИБО гарантий, распространяется по лицензии BSD 2-clause.

В общем, скачивайте, пробуйте, не забывайте оставлять комментарии внизу страницы. Если вдруг обнаружатся баги - пишите, пофиксим :)

1. Возможности
2. Загрузка
3. Как пользоваться
4. Микшер
5. Конфигурирование при загрузке системы
6. Конфигурирование в реальном времени
7. Лицензия

Возможности

Предлагаемый драйвер реализует следующие возможности:

Загрузка

Исходный код Версия Дата релиза Что нового
snd_xonardg_v1_source.tar.gz 1 2019.09.23 Смотреть

Как пользоваться

Все описанные ниже операции, кроме скачивания и распаковки, следует выполнять от имени суперпользователя (root).


1. Скачать архив по ссылке выше, или вот так (обращайте внимание на номер версии):

% fetch https://sndbro.ru/soft/snd_xonardg/files/snd_xonardg_v1_source.tar.gz

2. Распаковать архив:

% tar xf snd_xonardg_v1_source.tar.gz

3. Перейти в создавшийся при распаковке каталог и собрать драйвер:

# cd snd_xonardg_v1_source
# make && make install

4. Загрузить драйвер:

# kldload snd_xonardg

После тестирования драйвера прошу найти пару минут и написать мне (ap at sndbro.ru) об обнаруженных проблемах или предложениях по улучшению.


Если сборка завершается ошибкой, следует убедиться, что в файле /etc/make.conf не установлена переменная NO_MODULES=..., и что в системе присутствуют исходные коды ядра FreeBSD.


Для автоматизации загрузки драйвера при запуске системы следует добавить строку 'snd_xonardg_load="YES"' в файл /boot/loader.conf. Рекомендую это делать только после того, как драйвер проверен в работе, и совершенно точно не вызывает нежелательного поведения системы, вроде падений.

Микшер

Используйте команду mixer(8) для управления громкостью, чувствительностью входов, и выбора источника сигнала при записи.

Для регулировки громкости используется устройство 'vol'. Для совместимости со спецефическим ПО, которое для регулировки громкости требует наличия устройства 'pcm', есть возможность это включить (см. ниже). В этом случае 'vol' и 'pcm' одновременно участвуют в регулировке громкости (громкость = (vol + pcm) / 2).
NOTE: Аттенюатор встроен только в кодек CS4245, поэтому регулировка громкости доступна только при подключении устройств к передней HD-Audio панели, а также при подключении к задней панели в зелёный разъём, при условии, что воспроизводится двухканальное аудио (стерео), и переменная dev.pcm.X.rear_out_line установлена в 0. При воспроизведении многоканального аудио громкость ни в одном канале на задней панели не регулируется, используйте для этой цели внешний усилитель.

Для подстройки чувствительности входов используется устройство 'igain'. Чувствительность изменяется в диапазоне от -12 db (igain = 0) до +12 db (igain = 100). Для установки чувствительности 0 db используйте igain = 50.

Доступные входы для записи обозначаются 'line' (линейный вход), 'mic' (микрофон) и 'aux' (линейный вход, 4-штырьковый разъём расположен на плате). Используйте команду mixer =rec [src], заменяя [src] на line, mic, или aux, для выбора требуемого источника сигнала при записи.

Конфигурирование при загрузке системы

Следующие переменные предназначены для добавления в файл /boot/device.hints и настройки вступают в силу только при перезагрузке системы:


hint.pcm.X.extvol 0=выключено, 1=включено. Добавляет в mixer(8) устройство 'pcm' для регулировки громкости совместно с 'vol'. Результирующее значение громкости определяется по формуле (vol + pcm) / 2. Используется для совместимости, позволяет производить регулировку громкости через устройство 'pcm', если vol установлено в 100. Значение по-умолчанию: 0.

Конфигурирование в реальном времени

Доступны следующие переменные sysctl(8):


dev.pcm.X.dac_softramp 0=выключено, 1=включено. Управляет функцией плавного изменения громкости при регулировке в канале воспроизведения. Если включено, при изменении громкости через mixer(8) фактический уровень громкости изменяется плавно, если выключено - скачкообразно. Значение по-умолчанию: 1.
dev.pcm.X.pga_softramp 0=выключено, 1=включено. Управляет функцией плавного изменения чувствительности. Если включено, при изменении чувствительности через mixer(8) фактическая чувствительность изменяется плавно, если выключено - скачкообразно. Значение по-умолчанию: 1.
dev.pcm.X.playdst 0=аналоговый выход, 1=цифровой выход, 2=оба выхода одновременно. Выбор активного выхода при воспроизведении. Значение не может быть изменено в процессе воспроизведения. Значение по-умолчанию: 2.
dev.pcm.X.rear_out_line 0=при воспроизведении двухканального аудио сигнал на зелёный разъём задней панели подаётся с кодека CS4245, работает регулировка громкости. 1=сигнал подаётся с ЦАП CS4361, регулировка громкости не поддерживается. Значение не может быть изменено в процессе воспроизведения. Значение по-умолчанию: 0.

Лицензия

Copyright (c) 2019 Алексей Палютин 
All rights reserved.                                                         

Redistribution and use in source and binary forms, with or without           
modification, are permitted provided that the following conditions           
are met:
 1. Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
 2. Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND       
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE        
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE   
ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE      
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL   
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS      
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)        
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHERIN CONTRACT, STRICT    
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY    
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF       
SUCH DAMAGE.

Пожалуйста найдите минутку и оставьте комментарий об этой статье

Комментариев пока нет...