LINUX.ORG.RU

arch, alsa, нет звука на displayPort'е

 , ,


0

1

уже больше месяца не могу вывести звук на hdmi и displayPort. Через стандартный audio jack на мат.плате он идёт, но мне нужен вывод именно из моника

проблема точно где-то в арче, т.к. в федоре всё сразу было ок

сейчас по новой накатил рач, и вот что имею (c воткнутым displayPort’ом):

$ aplay -L

null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=PCH
    HDA Intel PCH, ALC887-VD Analog
    Default Audio Device
sysdefault:CARD=PCH
    HDA Intel PCH, ALC887-VD Analog
    Default Audio Device
front:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
    Front output / input
surround21:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
hdmi:CARD=HDMI,DEV=0
    HDA ATI HDMI, HDMI 0
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=1
    HDA ATI HDMI, HDMI 1
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=2
    HDA ATI HDMI, HDMI 2
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=3
    HDA ATI HDMI, HDMI 3
    HDMI Audio Output
hdmi:CARD=HDMI,DEV=4
    HDA ATI HDMI, HDMI 4
    HDMI Audio Output
$ aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 10: HDMI 4 [HDMI 4]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

/etc/asound.conf - нету ~/.asound.conf - тоже

в alsamixer’е, что странно, при смене аудиокарты на default:1 HDA ATI HDMI (второй выбор - default:0 Realtec ALC887-VD) столбики неактивны. Ну т.е. совсем. По умолчанию они были замутены, но после unmute’а по центру просто OO в квадратиках. Выше должны быть столбики, но их нет

ещё что-то не так со speaker-test’ом. Говорит, что память выделить не может

$ speaker-test -c2 -Dhdmi:CARD=HDMI,DEV=0

speaker-test 1.2.5.1

Playback device is hdmi:CARD=HDMI,DEV=0
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 64 to 8544000
Period size range from 32 to 4272000
Using max buffer size 8544000
Periods = 4
Unable to set hw params for playback: Cannot allocate memory
Setting of hwparams failed: Cannot allocate memory

видюха у меня rx460, с дровами не колдовал, ставился по минимуму

заранее благодарю

Ответ на: комментарий от aper19-20

что не так?

Ты оскорбил чуйства рачеводов, они тебе этого не простят.

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

Решение отдельной проблемы методом переустановки ОС в сообществе софта под копилефт лицензией считается скажем так плохой практикой.

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

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

anonymous
()

А видеокарта точно правильно заведена? Проверь, чтобы использовался нужный драйвер - amdgpu. Если видеокарту не завести правильно - звук по HDMI работать не будет.

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

А «столбиков» в alsamixer’е быть и не должно, громкость придется регулировать либо через меню самого монитора, либо через софт.

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

я сделал это для полной чистоты системы, т.к. в прошлых попытках мудрил даже с oss. Не знал что это смертных грех

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

да,

Kernel driver in use: amdgpu

Но ниже заметил это

Audio device: Advanced Micro Devices, ...

но драйвер у этого аудио всё-равно snd_hda_intel

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

Так все верно. Звук будет работать через snd_hda_intel, просто чтобы пустить его на монитор через HDMI-кабель и выводить через выход на мониторе (ты же так хочешь?), нужно завести видеокарту с правильным драйвером. По всей видимости, драйвер подхватился. Значит, есть такие варианты: выбрать карту в alsamixer’е и размутить всё. Если звука не появится, можно попробовать запилить .asoundrc (или /etc/asound.conf, если захочешь для всей системы сделать). В конфиге нужно будет указать нужный девайс в виде «hw:0,3,0», «hw:0,7,0». Но для начала нужно через /etc/modprobe.d/«конфиг модулей алсы» сделать так, чтобы твоя HDMI-карточка инициализировалась первой. Как это сделать, можно прочитать в той же ArchWiki.

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

Когда всё правильно настроишь, у тебя в выводе aplay HDMI-звуковушка станет видна как «card 0», а встройка cтанет «card 1». После этого пробуй в одном из конфигов алсы (.asoundrc или /etc/asound.conf, какой используешь) выставить нужный девайс.

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

Вот как будет выглядеть примерный .asoundrc, например:

   pcm.!default {
        type hw
        card 1
        device $N
   }

   ctl.!default {
        type hw           
        card 1
        device $N
   }

Вместо $N нужно будет подставлять 3, 7, 8, 9, 10. Нужный device найдешь через aplay -l. Попробуй пока этот вариант, для него не нужно менять порядок через modprobe.d. Короче, звук будет выводиться через определенный device, все задействовать не нужно. Просто подставляешь в конфиг и тестишь. Это самое простое, что я могу предложить.

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

Можно, в принципе, со speaker-test’ом побаловаться, подставляя в него нужный device так:

speaker-test -c2 -Dhw:1,3,0
speaker-test -c2 -Dhw:1,7,0
...

Так быстрее найдешь.

Setting of hwparams failed: Cannot allocate memory speaker-test -c2 -Dhdmi:CARD=HDMI,DEV=0 У твоей HDMI-карточки нет device 0, все в выводе aplay -l. У тебя все получится, пробуй.

anonymous
()
Ответ на: комментарий от anonymous
$ sudo alsactl init
alsa-lib parser.c:242:(error_node) UCM is not supported for this HDA model (HDA Intel PCH at 0xdff20000 irq 128)
alsa-lib main.c:1405:(snd_use_case_mgr_open) error: failed to import hw:0 use case configuration -6
Found hardware: "HDA-Intel" "Realtek ALC887-VD" "HDA:10ec0887,1849d887,00100302" "0x1849" "0xd887"
Hardware is initialized using a generic method
alsa-lib parser.c:242:(error_node) UCM is not supported for this HDA model (HDA ATI HDMI at 0xdfe60000 irq 129)
alsa-lib main.c:1405:(snd_use_case_mgr_open) error: failed to import hw:1 use case configuration -6
Found hardware: "HDA-Intel" "ATI R6xx HDMI" "HDA:1002aa01,00aa0100,00100700" "0x1043" "0xaae0"
Hardware is initialized using a generic method
aper19-20
() автор топика
Ответ на: комментарий от aper19-20

UCM is not supported for this HDA model

Use Case Interface не работает с твоими картами. Звук работать будет, но только из одного источника. Также, если какой-либо софт монопольно захватит устройство, звука не будет. Вдобавок, не будут работать звуки уведомлений при воспроизведении, и, скорее всего, запись через arecord работать не будет. Ты, случаем, не старый Арч юзаешь? Иначе странно, что на таких старых звуковушках UCM не заводится…

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

Обновляй BIOS, если не поможет, то гугли :

UCM is not supported for this HDA model
anonymous
()
Ответ на: комментарий от aper19-20

Попробуй так: в конец /etc/modprobe.d/alsa.conf добавляешь

options snd_hda_codec_hdmi index=0
options snd_hda_intel index=1

И перезагружаешься. В alsamixer’е размьючиваешь все устройства на HDMI карточке. Пробуешь.

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

на самом деле звук нужно пустить в DisplayPort. Почему aplay в своём выводе пишет HDMI - не знаю

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

про /etc/modprobe.d/ сейчас читаю

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

в speaker-test -c2 -Dhdmi:CARD=HDMI,DEV=0 да, сглупил. Проверил другие дейвайсы, но ошибка с выделением памяти есть и с ними

$ speaker-test -c2 -Dhw:1,3,0

speaker-test 1.2.5.1

Playback device is hw:1,3,0
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 64 to 8544000
Period size range from 32 to 4272000
Using max buffer size 8544000
Periods = 4
Unable to set hw params for playback: Cannot allocate memory
Setting of hwparams failed: Cannot allocate memory
aper19-20
() автор топика
Ответ на: комментарий от anonymous

но с этим же BIOS’ом в fedora звук идёт правильно

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

Норма для двачеров и прочего сброда. Для номальных людей - детектор вышеобозначенных.

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

на самом деле образ был от 1-го декабря 2020-го. Но в прошлых попытках починить звук я проводил sysupgrade. Не помогло

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

С этим теперь без root’а alsamixer не открывается

$ alsamixer
cannot open mixer: Invalid argument

Запустил через root, но столбцы не появились

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

Вернее их и не должно быть, как писали выше. Звука всё ещё нет

aper19-20
() автор топика
Ответ на: комментарий от ZenitharChampion

Не факт, надо пробовать. Там все зависит от того, какой device к какому выходу привязан. Может быть так, что HDMI заработает с одним, а DP с другим.

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

Я надеюсь, ты не просто скопировал код из моего коммента? Там надо подставлять в конфиге нужный device в двух местах, просто скопировать не получится. В любом случае, если у тебя c UCM’ом такая борода, лучше пробуй вариант с modprobe.d/alsa.conf.

anonymous
()
Ответ на: комментарий от anonymous
options snd_hda_codec_hdmi index=0
options snd_hda_intel index=1

это в /etc/modprobe.d/alsa.conf уже прописывал, выше описал то, что вышло

Всё ещё стоит попробывать сделать так, чтобы HDMI-карта инициализировалась первой? Изменения индексов не хватит?

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

Нет, $N заменил на 3, затем стал пробывать speaker-test’ом искать работающий device (но там проблема или в нём, или в device’ах)

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

Она после этого и должна определяться первой. Эти настройки задают модулю hdmi-кодека очередь на загрузку. Что сейчас aplay -l показывает?

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

С таким /etc/modprobe.d/alsa.conf выводится это

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: HDMI [HDA ATI HDMI], device 10: HDMI 4 [HDMI 4]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

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

Все правильно. Теперь нужная звуковушка определяется первой. Теперь замени свой .asoundrc на:

   pcm.!default {
        type hw
        card 0
        device 10
   }

   ctl.!default {
        type hw           
        card 0
        device 10
   }

Сохрани и пробуй запустить alsamixer. Если не заработает, пробуй вместо 10 подставить 9, 8 и 7 (после каждой замены и сохранения конфига пробуй запустить alsamixer). Если не заработает, значит, проблема глубже юзерспейса.

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

Прошёлся по всем. alsamixer при каждой версии конфига отказывался запускаться от user’а

$ alsamixer 
cannot open mixer: Invalid argument

Запускал от root’а, но ничего не менялось (а что должно было?), звук не пошёл

Но всё же спасибо за помощь

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

хех, только сейчас дошло, что у root’а свой ~/.asoundrc конфиг

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

Как вариант: посмотри версию ядра на Fedor’е, и попробуй собрать его для Арча. Либо попробовать образы Арча 18-19 годов. Потому что ну не может не работать цифровое аудио на «полярисах». На «нави» работает, а на более старом железе - нет? Я не поверю ни за что. Разве что регрессия в ядре или в алсе.

anonymous
()

Ещё интересно то, что в livecd этого Арча звук шёл, speaker-test работал. Что есть в нём того, что в систему не вошло?

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

Нужно сравнить версии ядра и пакетов в лайв-системе и в установленной. Может, действительно в новых компонентах что-то сломали, и при обновлении все становится колом.

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

Не сочти за глупость. Если в лайве звук работает, может, попробовать раскатать саму ФС с него на диск и просто поставить загрузчик? Тогда ты сможешь сам проследить, в какой момент вывод звука ломается (например, при обновлении). Я знаю точно, линух позволяет такое делать. Только сам я такое еще не проворачивал - повода не было, поэтому точный рецепт дать не смогу. Знаю только что это можно сделать с помощью tar или rsync. Как это сделать - можно поискать, такое точно есть в интернете.

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

Вот что нарыл: по запросу arch wiki migrate installation to new hardware в ArchWiki - прмощь по переносу системы на новое устройство хранения. Если умеешь в английский, все должно получиться.

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

На fedora стоит vmlinuz-5.11.12-300.fc34.x86_64, сейчас на Арче 5.12.12-arch1-1. Ядро 5.11.12 для Арча сейчас компилируется

Насколько я понял, мне было бы достаточно копировать ядро с fedora в Арч и настроить загрузчик?

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

ядро 5.11.12 собрал, запустил, но ничего не изменилось

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