LINUX.ORG.RU

Не работает звук в wine. Debian 10.2 64-х разрядный.

 , , , ,


0

1

Wine 4.0. Мамка Asrock J4005B-ITX. В winecfg всё по умолчанию, более того, если нажать «Проверить звук», звук есть. Но в винампе выдаёт либо «в системе не установлено ни одного драйвера!» (WaveOut), либо «Device not found. Please select another device» (DirectSound). В других приложениях звука тоже нет. Интернет советует переключить на ALSA, но у меня никакой альсы нет в вариантах. Есть какие-нибудь соображения?

★★★

Ответ на: комментарий от tiinn

winealsa.drv и с пульсой прекрасно работает. Во времена Wine 1.x так было.

Предлагаю вернуть winepulse.drv и искать причину, почему не работает. А как именно не работает с ним? Просто тишина, или «устройство не найдено» тоже? Если тишина, то проверь pavucontrol

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

Пишет,

c@c-desktop:~$ sudo apt-get install libpulse0:i386
[sudo] пароль для c: 
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Уже установлен пакет libpulse0:i386 самой новой версии (12.2-4+deb10u1).
libpulse0:i386 помечен как установленный вручную.
Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
tiinn ★★★ ()
Ответ на: комментарий от Kron4ek

Установлены, судя по выхлопу

c@c-desktop:~$ sudo apt-get install libasound2:i386
[sudo] пароль для c: 
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Уже установлен пакет libasound2:i386 самой новой версии (1.1.8-1).
libasound2:i386 помечен как установленный вручную.
Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
c@c-desktop:~$ sudo apt-get install libasound2-plugins:i386
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Уже установлен пакет libasound2-plugins:i386 самой новой версии (1.1.8-1).
libasound2-plugins:i386 помечен как установленный вручную.
Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
tiinn ★★★ ()
Ответ на: комментарий от tiinn

Я понял, что у тебя случилось. Но вывод командной строки при запуске программы в Wine помог бы разобраться в этом быстрее.

Итак, PulseAudio появился в 2008 году. В первое время было много программ, которые всё ещё использовали ALSA, и не знали ни про какую PulseAudio. Но ведь ред хету хотелось, чтобы ВООБЩЕ ВЕСЬ звук шёл через «пульсу» - а не так, что часть приложений работает через пульсу, а часть - через ALSA напрямую.

Тогда был создан плагин /usr/lib/alsa-lib/libasound_module_conf_pulse.so. Если попросить систему пользоваться этим плагином (например специальным конфигом:

pcm.pulse {
    type pulse
}

ctl.pulse {
    type pulse
}


pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
} 

Но сейчас создавать такой конфиг ~/.asoundrc нет необходимости, потому что устройство pulse теперь само создаётся, когда PulseAudio включена. Я не знаю, как это сделано)

Ну так вот, в этом случае, приложение общается с libasound2, которое отправляет звук в вышеназванный плагин, который отправляет звук в libpulse0. (Ну и дальше звук опять идёт в libasound2, никуда после этого не переадресовывается, и начинает воспроизводиться). Благодаря этому, мы видим в pavucontrol - ALSA-only приложение, которое про Пульсу ничего не знает, и тем не менее, мы можем отрегулировать ему звук.

Тока вот проблема. Файл libasound_module_conf_pulse.so лежит не в /usr/lib, а в /usr/lib/alsa-lib/. То есть, в ld.conf и ld.conf.d/*.conf не прописано, что надо искать либы в этой директории. И если 64-битную версию библиотеки система сама находит и использует (она прописана в alsa.conf), то где находится 32-битная система может и не знать.

В Gentoo это решалось так. В файле alsa.conf (или alsa.conf.d/*.conf) добавляется несколько строк. После чего, библиотека обнаруживается системой, и звук в Wine появляется. (как и в любых других приложениях, которые 32-битные, в 64-битной системе, и которые выводят через ALSA) Вот ссылка на конфиг.

Тебе надо использовать этот конфиг, но внести изменения, потому что пути к библиотекам поменялись после перехода на multilib. Конфиг не учитывает multilib. После чего, вывод через winealsa.drv заработает.

Почему не работает вывод при помощи winepulse.drv, я не знаю. Но нам бы мог помочь вывод Wine в командной строке.

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

Спасибо за совет, но я просто скачал portable-версию вайн из прикреплённой темы «Готовые сборки wine», и в этой сборке всё работает: и прога, нужная мне, запускается, и звук в 32-битных приложениях. Просто работает из коробки.

tiinn ★★★ ()