I would like to have omnia acting as bluetooth audio sink - to play audio from smartphone to usb-audio.
I have successfully configured pulseaudio and usb dac and i can play audio from my pc.
Now i need to install what other distributions call pulseaudio-module-bluetooth, but there is not such package.
I have tried to build it by buildroot starting at this site https://www.turris.cz/doc/cs/howto/turris_os_build
but i was unsuccessful - i did not understand how to configure it to build it with this support.
To have bluetooth support you have to recompile pulseaudio. Update feeds ./scripts/feeds update, copy directory feeds/packages/sound/pulseaudio to SDK packages directory, remove --disable-bluez flag in Makefile and ensure that files in bluetooth/* are installed in package. Also bump PKG_RELEASE to ensure that you are creating never version than you have in you router.
Also you might want to try creating new packages from bluetooth/*, for example pulseaudio-bluetooth and push it to mainstream (we probably wonât accept patches for software that we donât manage).
This is route to point where i have been, i only didnât the PKG_RELEASE bump.
But the build_dir/target-arm_cortex-a9+vfpv3_musl-1.1.15_eabi/pulseaudio-8.0/ipkg-mvebu/pulseaudio-daemon/usr/lib/pulse-8.0/modules does not contain the needed bluetooth modules.
I guess that the bluetooth support was removed by configure script because some dependency is not fulfilled.
I have built the bluez package, but whatâs next?
I have too few information what have to be done before.
Yes, it might be disabled because of some missing dependency, or because of some other configuration option (there is really lot of disable ones). I would suggest running openwrt make with -j1 V=99 to see configuration process output.
From my fast look in to it it seems like bluez support also depends on dbus.
I just copied pulseaudio directory. Bumped release number and removed lines disabling dbus and bluetooth. And that was it. Compilation went trough and I got new package contains bluetooth SO files.
Are you sure that you have all dependencies necessary on host machine? Does pulseaudio compiled without that change? One sneaky dependency required on host machine is ccache for example.
I donât know exactly what is needed, but i have ccache installed, at least.
This is the problem i see:
Package pulseaudio-daemon is missing dependencies for the following libraries:
libdbus-1.so.3
Makefile:191: recipe for target â/home/ladmanj/DataDisk/omnia/OpenWrt-SDK-mvebu_gcc-4.8-linaro_musl-1.1.15_eabi.Linux-x86_64/bin/mvebu-musl/packages/base/pulseaudio-daemon_8.0-111_mvebu.ipkâ failed
ladmanj@ladmanj-ThinkPad-T420:~/DataDisk/omnia$ sh build_repo.sh
-e \e[1;34mGetting current SDK for omnia\e[0m
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 422M 100 422M 0 0 5326k 0 0:01:21 0:01:21 --:â:-- 4535k
-e \e[1;34mCopy packages\e[0m
-e \e[1;34mBuilding omnia\e[0m Config-build.in:22289 ignoring type redefinition of âPACKAGE_getbranch-deployâ from âtristateâ to âbooleanâ
configuration written to .config
make[1] world
make[2] package/compile
make[3] -C package/dbus compile
make[3] -C package/bluez compile
make[3] -C package/pulseaudio compile
make -r world: build failed. Please re-run make with -j1 V=s to see whatâs going on
/home/ladmanj/DataDisk/omnia/.omnia-sdk/include/toplevel.mk:174: nĂĄvod pro cĂl âworldâ selhal
make: *** [world] Chyba 1
ladmanj@ladmanj-ThinkPad-T420:~/DataDisk/omnia$
Well I compiled only pulseaudio, not dbus or bluez. They are already compiled in SDK, so no need of recompiling them if nothing changes. But your problem is probably because of ldd dependencies checking. So Probably solution would be to have in package pulseaudio-daemon definition makefile line such as this:
You have basically two options how to get it in to the router. One is to just use generated package bin/mvebu-musl/packages/base/*.ipk. In such case you have to edit Package command in /etc/updater/auto.lua after installation. You should set it to be something like this:
That should ensure that it wonât be replaced by updated version from repository. But in this case updating you have to do whole process again.
Other option is to create your own repository. You have to generate signing key using usign -G -p key.pub -s key.sec (usign is in SDK). How to set repository up then can be seen in git I linked you before. This takes more work, but automates future updates (updater handles it for you if you update repository).
But in both cases donât forget to update you version as we release new one. I hope this helps.
Because i am lazy and hate useless work, i started with scp-ing packages to omnia and installing by opkg install blahblah.ipk
And it was good idea, because the built packages does not work - may be only config is wrong, but it worth not creating repository or so, before i know that the packages can even work.
Problem 1) pulseudio doesnât start if the bluetooth modules are in the listed modules to load inj config file.
Problem 2) canât pair bluetooth device. I am reading messages similar to âno agent foundâ.
I am tired (also because of it), so i stopped trying. But maybe tomorrow i will continue.