MPD+Pulseaudio

Доброго времени суток.
Понадобился мне MPD с поддержкой pulseaudio. В пакадже скомпилен без нее.
Ну вроде не беда, /usr/ports/audio/mpd
изменил makefile:
- --disable-pulse \
+ --enable-pulse \

Дальше make package, и тут грабли:

/usr/bin/ld: warning: libX11-xcb.so.1.0, needed by /usr/local/lib/libpulse.so.2.0, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libSM.so.8.0, needed by /usr/local/lib/libpulse.so.2.0, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libICE.so.9.0, needed by /usr/local/lib/libpulse.so.2.0, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libXtst.so.10.0, needed by /usr/local/lib/libpulse.so.2.0, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libXi.so.11.1, needed by /usr/local/lib/libpulse.so.2.0, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libXext.so.12.0, needed by /usr/local/lib/libpulse.so.2.0, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libX11.so.15.1, needed by /usr/local/lib/libpulse.so.2.0, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libxcb.so.2.4, needed by /usr/local/lib/libpulse.so.2.0, not found (try using -rpath or -rpath-link)
/usr/local/lib/pulseaudio/libpulsecommon-3.0.so: undefined reference to `xcb_intern_atom_reply'
/usr/local/lib/pulseaudio/libpulsecommon-3.0.so: undefined reference to `xcb_disconnect'
/usr/local/lib/pulseaudio/libpulsecommon-3.0.so: undefined reference to `xcb_connect'
/usr/local/lib/pulseaudio/libpulsecommon-3.0.so: undefined reference to `xcb_change_property'
/usr/local/lib/pulseaudio/libpulsecommon-3.0.so: undefined reference to `xcb_get_property'
/usr/local/lib/pulseaudio/libpulsecommon-3.0.so: undefined reference to `xcb_intern_atom'
/usr/local/lib/pulseaudio/libpulsecommon-3.0.so: undefined reference to `xcb_setup_roots_iterator'
/usr/local/lib/pulseaudio/libpulsecommon-3.0.so: undefined reference to `xcb_get_property_value'
/usr/local/lib/pulseaudio/libpulsecommon-3.0.so: undefined reference to `xcb_delete_property'
/usr/local/lib/pulseaudio/libpulsecommon-3.0.so: undefined reference to `xcb_get_setup'
/usr/local/lib/pulseaudio/libpulsecommon-3.0.so: undefined reference to `xcb_screen_next'
/usr/local/lib/pulseaudio/libpulsecommon-3.0.so: undefined reference to `xcb_get_property_value_length'
/usr/local/lib/pulseaudio/libpulsecommon-3.0.so: undefined reference to `xcb_connection_has_error'
/usr/local/lib/pulseaudio/libpulsecommon-3.0.so: undefined reference to `xcb_get_property_reply'
collect2: ld returned 1 exit status
*** Error 1 in . (Makefile:3328 'src/mpd')

Помогите понять, чего ему не хватает?

P.S. ссылки по теме "А нафига оно надо?":
http://habrahabr.ru/post/184110/
http://habrahabr.ru/post/181728/
http://habrahabr.ru/post/195458/

Аватар пользователя Tohin

Метод "тыка"

В период тишины, решил попробовать метод тыка.. Гугль наковырял мне ссылку:
http://stackoverflow.com/questions/15365649/compiling-xkbcomp-xorg-app
Попробовал добавить в Makefile:
LDFLAGS=-lxcb //не помогло
LDFLAGS="-lxcb" //не помогло
LDFLAGS="-L${LOCALBASE}/lib -lxcb" // gcc вылетел с ошибкой

Продолжим...

Дополним строку:
-- CONFIGURE_ENV = LDFLAGS="-L${LOCALBASE}/lib" \
++ CONFIGURE_ENV = LDFLAGS="-L${LOCALBASE}/lib -L /usr/X11R6/lib/" \

Ура вроде скопилилось.

Аватар пользователя FancaR

Все правильно сделал

Все правильно сделал (С)
Можно написать статью :)

Аватар пользователя Tohin

Рано! PulseAudio настройка 2 звуковух.

Рано!
Собсно говоря mpd через pulse заиграл и с ведроида рулится на ура. Но...
В ящике 2 звуковухи
/dev/audio0
/dev/audio1

Pulseaudio видит только первую:

Module #0
Name: module-sndio.so
Argument: record="false"
Usage counter: n/a
Properties:
module.author = "Eric Faurot"
module.description = "OpenBSD sndio sink/source"
module.version = "0.0"

Sink #0
State: SUSPENDED
Name: sndio-sink
Description: default
Driver: module-sndio.c
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right
Owner Module: 0
Mute: no
Volume: 0: 100% 1: 100%
balance 0.00
Base Volume: 100%
Monitor Source: sndio-sink.monitor
Latency: 0 usec, configured 0 usec
Flags: HW_VOLUME_CTRL LATENCY
Properties:
device.string = "default"
device.api = "sndio"
device.description = "default"
device.access_mode = "serial"
device.icon_name = "audio-card"
Formats:
pcm

Описания module-sndio.so на сайте pulseaudio нет. (форума у них, кстати, тоже нет...)
Попробовал по аналогии с модулем alsa:
pactl load-module module-sndio.so device="/dev/uaudio0"
А вот те буй, сказал пульс:
pulseaudio[21073]: [(null)] module-sndio.c: Cannot open sndio device.

Прочитал наискосок про sndio. родилась комманда:
pactl load-module module-sndio.so device="rsnd/1"
В ответ:

pulseaudio[21073]: [(null)] module-sndio.c: rate changed: 44100 -> 48000
pulseaudio[21073]: [(null)] sink.c: Default and alternate sample rates are the same.
pulseaudio[21073]: [sndio] module-sndio.c: POLLHUP!

Звуковушка не появляется...
.
Ага! в Опёнке видимо карты на горячую не подхватыватся:

sudo nano /etc/pulse/system.pa

++load-module module-sndio.so record="false" device="rsnd/1" sink_name=out0
++load-module module-sndio.so record="false" device="rsnd/0" sink_name=out1
^O
^X
sudo pulseaudio -D --system

И вторая запела!
Попробуем теперь склеить их: module-combine на выход!

Аватар пользователя Tohin

PulseAudio "склеивание" 2 звуковух

Я тут еще немного сам с собой пообщаюсь, вы не против?
Итак метод в лоб:
pactl load-module module-combine-sink sink_name=combined slaves=out1,out0

Убил сервис нафик:
[(null)] sink.c: Default and alternate sample rates are the same.
[sndio] rtpoll.c: Assertion '(i->pollfd[0].revents & ~0x0001) == 0' failed at pulsecore/rtpoll.c:603, function asyncmsgq_write_after(). Aborting.

Пойду посплю. Если есть мысли буду рад.

Аватар пользователя FancaR

мы даже за.

Мы не против, мы даже за.

Аватар пользователя Tohin

[sndio] rtpoll.c: Assertion... Aborting.

Пока никаких идей не родилось.
Гугл выдал похожую траблу на NetBSD, но решений в теме нет.
Есть спецы по программированию? я в С-ях ноль полный...

Аватар пользователя Tohin

шар на нашей стороне?

Поднял пульс на роутере и недобуке с убунтой. С убунты все работает. Есть предположение , что падение вызывается модулем sndio. сам такую проблему не решу, есть желающие помочь?