Текущие проблемы в Linux Mint Debian Edition 64 и их причины
- отсутствует библиотека lib32asound2-plugins (не путать с libasound2-plugins!), предоставляющая доступ 32битных приложений к PulseAudio 64битной системы.
Таким образом, все 32битные приложения при обращении к ALSA не смогут быть перенаправлены в PulseAudio. Причина отсутствия не ясна. - отсутствует WINE даже базовой версии.
- конфигурация PulseAudio оставляет желать лучшего.
Шаг 1. Устанавливаем WINE
- WINE является жесткой зависимостью для установки PlayOnLinux
- в репах Debian'a WINE отсутсвует напрочь, кроме sid - поэтому мы его из sid'a и потянем. Попытка вытянуть WINE из Ubuntu чревата поломкой системы
- cборка вручную лишняя, тк PoL позволяет доустанавливать любые версии WINE сам
- обратите внимание, что wine.list после установки wine нужно заблокировать, иначе сломаете всю систему
открываем терминал, и пишем:
sudo su [вводим пароль]
mkdir -p /etc/apt/sources.list.d
еcho "deb http://frickelplatz.de/debian sid main contrib non-free" >> /etc/apt/sources.list.d/wine.list
[теперь нужно обновить репы и установить wine][ни в коем разе ничего более не устанавливайте!]
apt-get update
[проконтроллируйте, чтобы тянулся только wine, без кучи зависимостей или ошибок]
apt-get install --dry-run wine
[и если все хорошо]
apt-get install wine
теперь, важно, нужно заблокировать wine.list, так как это раздел debian sid, и он может поломать систему. Разблокируйте, если wine нужно будет переустановить.
nano /etc/apt/sources.list.d/wine.list
[поставьте перед строкой #, это закомментирует строчку]
#deb http://frickelplatz.de/debian sid main contrib non-free
[Ctrl-O,Ctrl-X]
apt-get update
Шаг 2. Устанавливаем PlayOnLinux
PlayOnLinux способен обновлять себя, а также подключать дальнейшие версии WINE
echo "deb http://deb.playonlinux.com/ squeeze main" >> /etc/apt/sources.list.d/playonlinux.list
apt-get update
apt-get install playonlinux
Шаг 3. Правим шероховатости самого Linux Mint Debian 64. Проблема с lib32asound2-plugins
Зачем нужен этот плагин?
Lib32asound2-plugins - предоставляет несколько связок для ALSA, позволяя ALSA переадресовывать вывод в том числе и на PulseAudio.Приложение, нагло пытающееся захватить ALSA (здесь - wine) в этом случае будет отправлено в PulseAudio, где оно встанет в очередь и будет "промешано" как и все остальные потоки.
Почему Lib32, а не просто libasound2-plugins?
libasound2-plugins уже есть в системе, однако непригоден для 32битных приложений. В данном случае - wine. Это 64битная библиотека.Если нам нужен звук от 32битных приложений в 64битной среде, то нужен дубликат в 32битном коде, который будет связывать 32битные вызовы на 64битный PulseAudio. Если такого дубликата не будет, то не будет и звука. Или не будет перевода и wine полезет в наглую на ALSA.
Инструкции касательного нового 1.0.25 и почему его не ставить.
ВНИМАНИЕ: Начиная с недавнего релиза 1.0.25, lib32asound2 и lib32asound2-plugins были исключены из релиза и поставляются по другому. Смотри тут
теоретически, для установки должно хватать:
НО
в этот момент Debian переходит на новую реализацию multilib - возможности адресовать и запускать одну архитектуру из другой. К примеру i386 вызывать x64. И все упирается в то, что Linux Mint взял не полноценный срез. При ручном разжовывании придется вручную выкачивать и устанавливать отдельно:
libopenjpeg2:i386 из SID (testing), так как она не была захвачена еще.
Но дальше все упирается в:
libcap2 - эта библиотека убрана из x64 в SID и доступна в SID только в i386 исполнении, плюс в новой версии добавили поддержку multiarch. Однако версия, которая еще присуствует в testing (и в срезе Linux Mint Debian Edition) не знает multiarch, доступна в x64 и i386 раздельно. И против нее выстроено 99% приложений.
При попытке:
apt-get install --dry-run libasound2-plugins:i386 libavcodec53:i386 libpulse0:i386 libcap2:i386
apt-get пытается удалить 99% всех пакетов в системе.... и фактически перевести систему на х86. Оно и понятно, у него нет выхода. Брать же версию libcap2 из SID бесполезно, так как в этом случае будет выставлен ультиматум:
Пакеты, имеющие неудовлетворённые зависимости:
libcap2 : Конфликтует: libcap2:i386 но 1:2.22-1 будет установлен
libcap2:i386 : Конфликтует: libcap2 но 1:2.22-1 будет установлен
E: Ошибка, pkgProblemResolver::Resolve сгенерировал повреждённые пакеты. Это может быть вызвано отложенными (held) пакетами.
Брать новую SIDовскую версию бесполезно! Так как в этом случае затребуются все 99% пакетов SID системы!
Вывод: инженеры Linux Mint Debian Edition допустили очередной ляп, пропустив asound2 версии 1.0.25.
Цепная реакция заставляет переставлять всю систему на новый подход multiarch, который в свою очередь, не полностью перенесен в срезе взятом Linux Mint Debian Edition.
Решение - откатиться на libasound2 версии 1.0.23 (имеется ввиду все - и libasound2 и libasound2-plugin, и 32битной и 64битной версии) и ждать лучших времен. Откат производится ручной выкачкой следующих файлов версии 1.0.23 (сейчас это stable):
lib32asound2_1.0.23-2.1_amd64.deb
lib32asound2-plugins_1.0.23-1+b1_amd64.deb
libasound2_1.0.23-2.1_amd64.deb
libasound2-plugins_1.0.23-1+b1_amd64.deb
Затем, нужно удалить все версии библиотек установленных ранее (если установлены): libopenjpeg2 и libcap2:i386.
Произвести автопочинку системы:
apt-get install -f --dry-run
скорее всего будет затянут обратно ia32-libs, то есть возврат на старую модель multlib. Опцию --dry-run убрать, если довольны результатом.
Форсировано установить библиотеки:
dpkg --force-conflicts --dry-run -i libasound2_1.0.23-2.1_amd64.deb
libasound2-plugins_1.0.23-1+b1_amd64.deb lib32asound2_1.0.23-2.1_amd64.deb
lib32asound2-plugins_1.0.23-1+b1_amd64.deb
lib32asound2-plugins_1.0.23-1+b1_amd64.deb
опять же, уберите --dry-run, если он не "выносит пол системы", а действует разумно. Звук должен опять появится, как и соответствующий вывод в pavucontrol для wine при воспроизведении.
Инструкция касательно более старого релиза - 1.0.23 и подходит также при возврате на него, "покуда погода не посветлеет".
Инструкция касательно более старого релиза - 1.0.23 и подходит также при возврате на него, "покуда погода не посветлеет".
apt-get install lib32asound2
cd /tmp
wget http://ftp.us.debian.org/debian/pool/main/a/alsa-plugins/lib32asound2-plugins_1.0.23-1+b1_amd64.deb
dpkg -i lib32asound2-plugins_1.0.23-1+b1_amd64.deb
Все должно встать без конфликтов.
Шаг 4. Доисправим интеграцию ALSA и PulseAudio
поправим конфиги:
nano /etc/asound.conf
приведите к этой форме:
pcm.pulse {
type pulse
}
ctl.pulse {
type pulse
}
pcm.!default {
type pulse
}
ctl.!default {
type pulse
}
Есть еще один вариант, использующий dmix - для случаев когда есть приложения, конфликующие с PulseAudio. Вот он:
pcm.paul {
type dmix
ipc_key 1024
slave {
pcm "hw:0,0"
period_time 0
period_size 1024
buffer_size 8192
#format "S32_LE"
#periods 128
rate 44100
}
}
pcm.dsp0 {
type plug
slave.pcm "paul"
}
pcm.dsp1 {
type plug
slave.pcm "pulse"
}
ctl.mixer0 {
type hw
card 0
}
pcm.pulse {
type pulse
}
ctl.pulse {
type pulse
}
pcm.!default {
type pulse
}
ctl.!default {
type pulse
}
type dmix
ipc_key 1024
slave {
pcm "hw:0,0"
period_time 0
period_size 1024
buffer_size 8192
#format "S32_LE"
#periods 128
rate 44100
}
}
pcm.dsp0 {
type plug
slave.pcm "paul"
}
pcm.dsp1 {
type plug
slave.pcm "pulse"
}
ctl.mixer0 {
type hw
card 0
}
pcm.pulse {
type pulse
}
ctl.pulse {
type pulse
}
pcm.!default {
type pulse
}
ctl.!default {
type pulse
}
[Ctrl-O, Ctrl-X]
Скопируйте этот файл заместо устаревшего:
cp /etc/asound.conf /usr/share/alsa/pulse-alsa.conf
Теперь, перегрузите ALSA:
/etc/init.d/alsa-util restart
вывод не должен содержать ошибок.
Его и стоит выбрать для вывода.
Запустив параллельно pavucontrol можно убедится, что звук WINE выводит через ALSA канал для Pulse.
Все, успехов!
Комментариев нет:
Отправить комментарий