Solvedpulseaudio modules bt PPA Ubuntu 19.10

Ubuntu 19.10 is out. Will it be supported via PPA?

55 Answers

✔️Accepted Answer

So more Docker hacking and I have the emulated bluetooth device functioning which results in a working systemd controlled bluez service inside of a Docker container. I'm kind of surprised this actually works.

/tmp/bluez/emulator# ./btvirt -l 1 &
[1] 16400
/tmp/bluez/emulator# hciconfig -a
hci0:   Type: Primary  Bus: Virtual
        BD Address: 00:AA:01:00:00:23  ACL MTU: 192:1  SCO MTU: 0:0
        RX bytes:0 acl:0 sco:0 events:35 errors:0
        TX bytes:431 acl:0 sco:0 commands:35 errors:0
        Features: 0xa4 0x08 0x08 0xc0 0x58 0x1e 0x7b 0x83
        Packet type: DM1 DH1 HV1 
        Link policy: RSWITCH SNIFF 
        Link mode: SLAVE ACCEPT 
/tmp/bluez/emulator# systemctl start bluetooth
/tmp/bluez/emulator# systemctl status bluetooth
* bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-12-26 09:22:56 UTC; 9s ago
     Docs: man:bluetoothd(8)
 Main PID: 16411 (bluetoothd)
   Status: "Running"
    Tasks: 1 (limit: 4915)
   Memory: 1.5M
   CGroup: /system.slice/containerd.service/system.slice/bluetooth.service
           -16411 /usr/lib/bluetooth/bluetoothd

Dec 26 09:22:56 systemd[1]: Starting Bluetooth service...
Dec 26 09:22:56 bluetoothd[16411]: Bluetooth daemon 5.50
Dec 26 09:22:56 systemd[1]: Started Bluetooth service.
Dec 26 09:22:56 bluetoothd[16411]: Starting SDP server
Dec 26 09:22:56 bluetoothd[16411]: Bluetooth management interface 1.14 initialized
/tmp/bluez/emulator# bluetoothctl
Agent registered
[bluetooth]# power on
Changing power on succeeded

I can now move on to building pulseaudio-modules-bt with the instructions above 🙌

Other Answers:

Please save me from myself, Eoan support will be very welcome.

@non5ense, here, hold my 🍺

Could you please post the exact command set for this?

I read the main readme and ended up with these. It's possible you may need to troubleshoot other packages/modules you don't have available that I had already installed. This will probably fail in the cmake or make stages.

Note: Steps 1 and 2 may be superfluous if you already had it installed previously.

  1. Add existing repo to install some of the required libraries
sudo add-apt-repository ppa:eh5/pulseaudio-a2dp
  1. Change eoan to disco to install old packages
sudo vi /etc/apt/source.list.d/eh5-ubuntu-pulseaudio-a2dp-eoan.list # change eoan to disco
sudo apt update
sudo apt install pulseaudio libavcodec58 libldac pulseaudio-modules-bt
  1. Install build dependencies (these are the ones I needed that I didn't already have):
sudo apt install pulseaudio libavcodec58 libldac pulseaudio-modules-bt libbluetooth-dev libsbc-dev libpulse-dev git virtualenv build-essential python3-dev libdbus-glib-1-dev libgirepository1.0
sudo apt install pulseaudio libavcodec58 libldac pulseaudio-modules-bt libbluetooth-dev libsbc-dev libpulse-dev git virtualenv build-essential python3-dev libdbus-glib-1-dev libgirepository1.0-dev pkg-config libtool sbc-tools libtool cmake-dev pkg-config libtool sbc-tools libtool cmake
  1. Backup existing bluez/bluetooth modules:
sudo find /usr/lib -regex ".*\(bluez5\|bluetooth\).*\.so.bak" 
  1. Checkout repo into a location you like building in and cd into that folder
git clone
cd pulseaudio-modules-bt/
  1. The pa folder is a link to the official pulse audio repository. Update the pulseaudio submodule to point to the v13.0 tag of the pulse audio repo:
git submodule update --init
cd pa/
git stash (if you there is anything uncommited)
git fetch
git fetch --tags
git checkout v13.0
  1. Build the bluetooth modules
cd ..
mkdir build
cd build/
cmake ..
  1. Install the modules & restart pulseaudio
sudo make install
pulseaudio -k
pulseaudio --start
  1. I had to restart bluetooth service cause it was being silly and repair my headphones
sudo systemctl restart bluetooth

Enjoy the AptX/LDAC goodness, until it breaks again or the eoan repo support is added by our developer overlords. 😈

Built & packaged deb in case anyone needs it. contains pulseaudio-modules-bt_1.3-0~eoan0_amd64.deb

sudo add-apt-repository ppa:eh5/pulseaudio-a2dp
sudo vim /etc/apt/source.list.d/eh5-ubuntu-pulseaudio-a2dp-eoan.list # change eoan to disco
sudo apt update
sudo apt install pulseaudio libavcodec58 libldac pulseaudio-modules-bt
sudo dpkg -i pulseaudio-modules-bt_1.3-0~eoan0_amd64.deb

OK, some news. I was hacking around this afternoon and in the Bluez repo I found this directory:

After building this with the --enable-testing configuration flag, and running btvirt, I managed to get a virtual bluetooth adaptor in my machine:

$ sudo hciconfig -a
[sudo] password for [me]: 
hci1:   Type: Primary  Bus: Virtual
        BD Address: 00:AA:01:00:00:23  ACL MTU: 192:1  SCO MTU: 0:0
        UP RUNNING 
        RX bytes:0 acl:0 sco:0 events:61 errors:0
        TX bytes:4935 acl:0 sco:0 commands:61 errors:0
        Features: 0xa4 0x08 0x08 0xc0 0x58 0x1e 0x7b 0x83
        Packet type: DM1 DH1 HV1 
        Link policy: RSWITCH SNIFF 
        Link mode: SLAVE ACCEPT 
        Name: 'bxps #2'
        Class: 0x1c010c
        Service Classes: Rendering, Capturing, Object Transfer
        Device Class: Computer, Laptop
        HCI Version: 5.0 (0x9)  Revision: 0x0
        LMP Version: 5.0 (0x9)  Subversion: 0x0
        Manufacturer: Bluetooth SIG, Inc. (63)

bluetoothctl also shows this device as being present:

Controller 00:AA:01:00:00:23 mymachine #2 [default]  < this is the virtual adaptor
Controller 9C:B6:D0:FF:5E:3C mymachine 

Anyway, what this means is I will be able to run this binary to emulate bluetooth on my hosted server that doesn't have a bluetooth adaptor and automate the build using a privileged docker container that also has systemd installed. I should be able to generate binaries for each supported LTS and the current rolling release with specific containers for each.

So my next step is to create a repo to house the build scripts in and do some testing with the virtual BT adaptor with Docker. I should be able to satisfy the build tests @EHfive presented above all in Docker 🤔

After generating the debs for installation, I'll need to setup a PPA on launchpad, which I haven't done before and then create some post-deb build steps to publish the files directly to the PPA. Hopefully it will end up being a one click build and publish with the only intermission being dependency and build error debugging.

Anyway, thanks for all the work above, this is a great template for me to generate the debs for eoan and avoid some of the errors I made with my manual install (on my work machine 😂) that you folks ironed out. 🙏

Note: Another consideration, I'll probably only be able to test on x86_64 at this time. I'm guessing other archs like ARM will be difficult to test on an x86_64 machine :|

Related Issues:

pulseaudio modules bt Building DEB package
PPA source here I've managed to get a wor...
pulseaudio modules bt PPA Ubuntu 19.10
So more Docker hacking and I have the emulated bluetooth device functioning which results in a worki...
react player Error parsing header X-XSS-Protection: 1; When playing youtube videos
It's a known bug in current Google Chrome and Chromium:
tenacity Transparency and trust
Hi I can understand your concerns; maybe explaining the background behind the decision AudioBakery w...
allegro5 Android build fails due to deprecated 'android' command
I have searched and found no replacement for the android update project command ...
mumble macOS Mojave: passing the null port to CGEventTapEnable() segfaults
This is because the accessibility access for Mumble gets disabled on upgrade Trying to run Mumble-1....
mpv Better scaletempo (on high speed x1.5-x3)
@TiGR @wiiaboo I've fine tuned the settings a bit and this is what I got I've been watching some tal...
AudioKit AKMicrophone fails to initialize
Sounds good For anyone else who may be experiencing this issue with this version (4.5.2) ...
eqMac Bug: Driver failed to activate with new version 0.3.2 (beta): still problems
As a workaround I quit eqMac executed this from the Terminal reopend eqMac and allowed it to reinsta...
mpv [Feature request?] Play multiple videos sides by sides
Awesome! “Probably slow” is no issue for me it’s 1000×800@5fps streams that I have ;) Thanks both of...
speech_recognition Install/compilation of PyAudio failed
Tried those apt commands ( I left our libportaudio2 as apt informed me it was already installed) $ s...
tenacity Detach from audacity's repository
I think we should detach Is your feature request related to a problem? Please describe This fork as ...
使用flv.js 播放flv时,出现跨域问题。 在srs_app_http_stream.cpp#485后添加w->header()->set(Access-Control-Allow-Origin ...
srs Disable -Werror for http parser.
You should change the source code: the file http_parser.c in 3rdparty/ change to ...
eqMac Beta eqMac2 v2.3 - possible fix for static/sync loss and Catalina install issue
@andrewmorner Had exact same problem Looks like more of the liscio ring buffer code needed to be cop...
sonic pi Mac OS 11.0.1 Big Sur (not loading)
Hi @duncangeere! I traced back the behaviour the week before last in my Big Sur test VM to a specifi...
mpv [Request] Hotkey to copy currently displayed subtitles text to clipboard
Linux: (needs xclip to be installed) add the following to ~/.config/mpv/input.conf Ctrl+c run /bin/b...
aeneas /usr/bin/ld: cannot find -lespeak
Thanks for the tip frish1 This installation solved my install failure Installing espeak wasn't enoug...
audioplayers E/MediaPlayerNative( 6767): error (1, -2147483648)
Currently having the same issue pub upgrade not working for me I am using AudioCache to play every 1...
qTox Choosing camera in settings causing qTox to crashing
Hey guys I was pointed to issues with your project in the MSDN forum thread linked above and I decid...
MPD io_uring throws and exception
Works fine after ulimit -l 65535 which sets the limit to 64 MiB (oh just saw your message) Yeah it's...
snapcast [Question] JSON RPC API
curl didn't work for me Hi I don't really understand how to remotely get or set the status or volume...
snapcast Snapclient with multiple audio hardware
@gerroon I am sorry that it does not work for you! Let me summarize what I did to make it work Maybe...
audioplayers update path_provider dependency version
A quirky and potentially hazardous fix until it is solved: Need to update the version of path_provid...
mpv DTS/AC3 passthrough via coax S/PDIF
I would like to add that you can force the output of the lavcac3enc filter to be passthrough to the ...
johnny five Browserify / Webpack support
I just ran into this issue At a high level the goal here would be to make requiring johnny-five in p...
GalaxyBudsClient Linux port?
The port is mostly finished Some stuff such as the tray bar integration is still missing but this sh...
atom Sometimes opening a file, Atom does not open in a new tab
This feature is called Pending Pane Items (formerly known as Preview Tabs) – this allows you to quic...
psutil psutil fails to install on python3.6 and Ubuntu16.04
I was just about to comment the same after I read the install file:
steam for linux symbol lookup error: /usr/lib/i386-linux-gnu/ undefined symbol: xcb_send_request_with_fds
Hello @milankragujevic this issue is already being tracked at #4816 Your system information Steam cl...
atom MacOS Mojave: The text in the editor is dimmed / hard to read.
Hey folks could you try running this command and then restart Atom: Hat tip to @alexanderyakusik in ...
node Error: Cannot find module 'internal/fs' when npm install on mac
If you run rm -rf /usr/local/lib/node_modules/npm and then re-install Node.js does it work? ...
node Missing stack traces from async functions after the first await
Thanks! And to put a point on the real problem Version: v7.7.3 Platform: Windows 7x64 The purpose of...
atom Add config option for MRU tabs
So a temporary fix for this issue is to insert this into the keymap correct? Prerequisites Can you r...
ddev In WSL2 ddev start fails at docker-credential-desktop.exe, "error listing credentials"
I had to set credsStore: in my ~/.docker/config.json .. it was previously set to credentials.exe ...
node Fatal error in ../deps/v8/src/, line 1051
i got it fixed Ran following commands Thanks node version 7.3.0 (even tried with 7.4.0 ...
dash to dock Dash to dock shows on lockscreen
Ok resolved the issue by removing default The dash to dock isnt disabled whe...
cncjs npm v5.0.3 installation integrity checksum failure
@pluggee @nomykk Have you tried npm install --update-binary --no-shrinkwrap? I had luck with that co...
node "ReferenceError: v8debug is not defined" when doing remote debug
bnoordhuis is right just add --expose_debug_as=v8debug to the Node parameters text field until JetBr...
atom "Multi Cursor on Click" seems to always be disabled in Atom 1.48.0
@HugoMcPhee posted and deleted a comment linking to #20804 which does indeed seem to offer a fix for...
nodegit Can't install via NPM
Latest Xcode just straight up broke things all across the world Try running sudo xcode-select --inst...
steam for linux Steam fails to start on new account because of outdated libxcb
LD_PRELOAD='/usr/$LIB/ /usr/$LIB/ /usr/$LIB/ /usr/$LIB/libgpg-...
termux packages npm install: Unhandled rejection Error: EACCES: permission denied
Give ownership to npm like this: uname -a: Linux localhost 3.18.14-11422779 #1 SMP PREEMPT Thu Jun 1...
electron builder Can not build the windows installer on macOS Catalina version 10.15
electron-builder 22.2.0 now includes a targeted workaround extracting the NSIS uninstaller without t...
node HTTP/HTTPS client requests throwing EPROTO
It sounds like you are trying to use port 80 for https? Reproduced via: My code is littered with bot...
electron builder Built application displays nothing but a white screen
If any of you guys use React Router one of the thing that might break your Electron build is Browser...
alacritty Tmux austostart?
It should be like this: Which operating system does the issue occur on? MacOS Catalina I understood ...
node Debugging v8.5 - always pauses in async_hooks.js on promise rejection
This also reproes in Node 8.6 Is anyone looking into this? Seems to be affecting quite a few people ...
atom Uncaught Error: Setting active pane that is not present in pane container
Alright so as an update [Enter steps to reproduce:] @ungb's repro steps from below: Open Atom with a...
atom Font Rendering issue with freetype 2.8.1
Workaround: Prerequisites [X ] Put an X between the brackets on this line Description The fonts are ...