Hi,

I’ve bought a M-wave SK7 midi-bluetooth device to use with my drumset and my rock band 3 keytar to play with YARG. I’ve a usb-midi adapter and it works, but my drumset is far from my computer and I need to move it to be able to play.

I can use the SK7 with the usb cable but not over bluetooth. It is connected and detected, but from what I’ve understood, since bluez is not compiled with midi support in Fedora, the device does not appear in alsa. Is there a way to activate midi in bluez? Do I have to compile it from sources? I’ve found a package in COPR but it is outdated.

I’ve seen posts about it in this forum:

I assume it is the same problem.

What is the best way to solve it? Building from sources or modifying the .src.rpm? I assume it is the later, which I haven’t done. I’ve found the .src.rpm package. I’m going to look what I can do with it, but a little help would be welcome.

Thanks.

Following various tutorials, I’ve compiled bluez with midi support, installed and rebooted my computer. But it still does not work. How can I check if midi is indead activated or not?

Edit:

I’ve checked this:

$ ldd /usr/libexec/bluetooth/bluetoothd
	linux-vdso.so.1 (0x00007fd13354c000)
	libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007fd133266000)
	libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007fd133211000)
	libasound.so.2 => /lib64/libasound.so.2 (0x00007fd1330fd000)
	libudev.so.1 => /lib64/libudev.so.1 (0x00007fd1330b6000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fd132ec2000)
	libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fd132e17000)
	libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007fd132cf6000)
	libm.so.6 => /lib64/libm.so.6 (0x00007fd132c08000)
	libcap.so.2 => /lib64/libcap.so.2 (0x00007fd132bfc000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fd132bd0000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fd13354e000)

Since there is libasound, it seems to have midi-support. But it is still not working…

not sure, but you might want to check with bluetoothctl.

I think my device appears in bluetoothctl. It is connected to my PC. The problem is that it does not appear as an alsa device.

In this picture, the device appears as Midi Transceiver. Wa can also see the connection between the midi through and YARG (the connection in purple). If I try to connect the out of the midi transceiver to any input of the midi-bridge, it crashes bluetooth that restarts, but the connection does not hold. I think that it should appears as an alsa device so I can use it.

When it crashes, I get this errors in the journal:

I’ve looked a little mode (not just the summary of the journal), and I’ve got this:

There are also another message that seems related: Falide to set privacy: Rejected (0x0b).

I don’t find anything about this on the internet…

Ok, I got it to work. I disable selinux and it worked. How can I allow bluetoothd to access the alsa.conf file without disabling selinux?

1 Like

Do you really need to enable midi support in bluetoothd?
It looks like pipewire has its own BLE MIDI support.

see also this issue

Out of interest, could you pls post the output of bluetoothctl info for the midi adapter as preformatted text?

You may be right since from the beginning the device appeared in pipewire and the crash problem, which I also had from the start was solved by disabling selinux. I’ll try installing the “normal” bluez rpms and try once again watch what happens with selinux.

And when I tried with my solution, I had lots of missed signal (keys pressed or released) but I tried with my iphone and it works way better than what I got in Fedora. So mybe I’ve used a very complicate route when a more straightforward solution could have worked better.

And for the info on the device:

$ bluetoothctl info D1:F0:0E:04:EB:5D
Device D1:F0:0E:04:EB:5D (public)
	Name: Midi Transceiver
	Alias: Midi Transceiver
	Appearance: 0x0080 (128)
	Icon: computer
	Paired: yes
	Bonded: yes
	Trusted: yes
	Blocked: no
	Connected: yes
	LegacyPairing: no
	CablePairing: no
	UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
	UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
	UUID: Device Information        (0000180a-0000-1000-8000-00805f9b34fb)
	UUID: Battery Service           (0000180f-0000-1000-8000-00805f9b34fb)
	UUID: Unknown                   (0000ae00-0000-1000-8000-00805f9b34fb)
	UUID: Unknown                   (0000ae40-0000-1000-8000-00805f9b34fb)
	UUID: Vendor specific           (03b80e5a-ede8-4b33-a751-6ce34ec4c700)
	Battery Percentage: 0x5f (95)

Edit: I’ve tried and I can connect the device to VMPK using the PW midi-bridge, which resulted in a crash yesterday. So I assume that what I did with selinux solved the problem. But I’ve still got the “sticking” keys where it looks like that the released signal is not received. And my midi device is just next to my computer.

Edit2: I’ve install the original bluez rpm, rebooted and when I tried to use the pw midi-bridge, it crashed my bluetooth. I disabled selinux and it worked. It works way better than with my other solution. But I don’t find what I need to change in selinux. I’ll look into the links you posted.

Thanks for your help, I was already looking into another solution (very long usb cable), but now bluetooth-midi seems to be the perfect solution for me.

Edit3: Is there an easy way to look at selinux errors. I think I can see them in the journal GUI, but it is hard to know if I see everything or not. And with journalctl, I don’t seem to see the selinux errors… Moreover I need to see errors from my previous boot…

1 Like

https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/using_selinux/troubleshooting-problems-related-to-selinux

Thanks. I think I found the problem with this:

$ ausearch --start today -m avc -i
----
type=AVC msg=audit(21/09/2025 09:32:38.014:203) : avc:  denied  { name_bind } for  pid=3653 comm=rpcbind src=62494 scontext=system_u:system_r:rpcbind_t:s0 tcontext=system_u:object_r:unreserved_port_t:s0 tclass=udp_socket permissive=0 
----
type=AVC msg=audit(21/09/2025 09:42:28.911:211) : avc:  denied  { getattr } for  pid=1248 comm=bluetoothd path=/usr/share/alsa/alsa.conf dev="sdc4" ino=1443624 scontext=system_u:system_r:bluetooth_t:s0 tcontext=system_u:object_r:alsa_etc_rw_t:s0 tclass=file permissive=1 
----
type=AVC msg=audit(21/09/2025 09:42:28.911:212) : avc:  denied  { read } for  pid=1248 comm=bluetoothd name=alsa.conf dev="sdc4" ino=1443624 scontext=system_u:system_r:bluetooth_t:s0 tcontext=system_u:object_r:alsa_etc_rw_t:s0 tclass=file permissive=1 
----
type=AVC msg=audit(21/09/2025 09:42:28.911:213) : avc:  denied  { open } for  pid=1248 comm=bluetoothd path=/usr/share/alsa/alsa.conf dev="sdc4" ino=1443624 scontext=system_u:system_r:bluetooth_t:s0 tcontext=system_u:object_r:alsa_etc_rw_t:s0 tclass=file permissive=1 

I installed bt-midi-selinux and it seems to work.

Thanks for your help.

could you share a screenshot of qpwgraph showing the current setup?

This is the graph for VMPK:

And for YARG:

I can also link directly the Midi Transceiver to RtMidi and disconnect the alsa part, but since this last connection is made by default, I think I’ll keep it. And if I use a midi-usb cable, I think it will be easier.

I haven’t noticed any difference between direct Transceiver→RtMidi connection and a Transceiver→ Midi Through (PW) + Midi Through (Alsa) → RtMidi (Alsa) connections, so I’ll may stick with that.

Could you please tell me more on how to install “bt-midi-selinux“? I can’t find this package in dnf nor anywhere on the web :slight_smile:

I can use my ble-midi keyboard when I set selinux to permissive, but I would like to not use this workaround if possible.

Thanks!

Most likely this package.