View previous topic :: View next topic |
Author |
Message |
Lynix48 n00b
Joined: 14 Jun 2020 Posts: 38
|
Posted: Fri Sep 29, 2023 7:32 pm Post subject: [SOLVED] JACK protocol mismatch (8 vs 9) |
|
|
Hello,
I've installed jack2 version 1.9.22 via portage.
After that, I manually compiled wineasio (https://github.com/wineasio/wineasio) into a 32bit lib.
Once I started the jackd using qjackctl, I tried to use the wine application that uses wineasio.
Unfortunately, the jack server seems to reject any communication and throws the error:
JACK protocol mismatch (8 vs 9) where the 8 is referring to the clients jack protocol version and the 9 to the servers.
Jacks protocol version was bumped from 8 to 9 when version 1.9.19 was released (https://jackaudio.org/news/2021/07/16/jack2-v1919-release.html)
I thought that this meant that the library used to compile jackd and the one that wineasio uses must be different versions.
Code: |
ldd wineasio.dll.so:
linux-gate.so.1 (0xf7f75000)
libjack.so.0 => /usr/lib/libjack.so.0 (0xf7ecb000)
libm.so.6 => /lib/libm.so.6 (0xf7dfd000)
libc.so.6 => /lib/libc.so.6 (0xf7a00000)
libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/13/32/libstdc++.so.6 (0xf7600000)
libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/13/32/libgcc_s.so.1 (0xf7dd4000)
/lib/ld-linux.so.2 (0xf7f77000) |
Code: |
ldd /usr/bin/jackd:
linux-vdso.so.1 (0x00007fff281f1000)
libjackserver.so.0 => /usr/lib64/libjackserver.so.0 (0x00007fa8d1d39000)
libdbus-1.so.3 => /usr/lib64/libdbus-1.so.3 (0x00007fa8d1cec000)
libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/13/libstdc++.so.6 (0x00007fa8d1a00000)
libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/13/libgcc_s.so.1 (0x00007fa8d1cc8000)
libc.so.6 => /lib64/libc.so.6 (0x00007fa8d182e000)
libm.so.6 => /lib64/libm.so.6 (0x00007fa8d1756000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa8d1e11000)
|
Inside `/usr/lib/` there is only one libjack.so and one libjackserver.so. The same is true for `/usr/lib64/`.
I can check the ownership of the so files using qfile:
Code: |
qfile /usr/lib/libjack.so.0:
media-sound/jack2-1.9.22: /usr/lib/libjack.so.0 -> libjack.so.0.1.0
|
Code: |
qfile -v /usr/lib64/libjackserver.so.0:
media-sound/jack2-1.9.22: /usr/lib64/libjackserver.so.0 -> libjackserver.so.0.1.0
|
As you can see, the librarys that are getting used are both provided by jack2-1.9.22 which should use jack protocol version 9.
I uninstalled jack2 to see if the makefile of wineasio was finding any other jacklib's, but this was not the case. When jack2 is uninstalled the compilation fails. (The makefile is using pkg-config --libs jack)
It appears to be using the correct libraries. The only difference is that the client is using the 32bit jack lib and the server the 64bit jack lib but this shouldn't change the jack protocol version.
I appreciate any ideas on what I could be doing wrong.
Last edited by Lynix48 on Mon Oct 09, 2023 10:38 am; edited 1 time in total |
|
Back to top |
|
|
audiodef Watchman
Joined: 06 Jul 2005 Posts: 6656 Location: The soundosphere
|
|
Back to top |
|
|
Lynix48 n00b
Joined: 14 Jun 2020 Posts: 38
|
Posted: Mon Oct 02, 2023 1:36 pm Post subject: |
|
|
audiodef wrote: | As far as I know, JACK can't be used with WINE. I know this was a flat rule years ago, but since I have never followed up on that, maybe things are changing.
Stop by #jack on Libera to ask this question, you might get a better answer there... oh, I see you've done just that. I'm curious about this, so I'll be waiting to see if someone there has an answer. |
It's working when i compile an old jack2 version (and use jackd), that still uses protocol version 8, myself.
I'm not very satisfied with this approach since this means that i can't use portage to install software like qjackctl, guitarix or any other programm that depends on jack2 since the jack2 build page states:
Quote: |
However, it is vitally important that you NEVER EVER have two versions of JACK installed on a machine at the same time. If you have an existing installation of JACK (for example, from a Linux distribution) then you must either
* remove it (this may not be possible)
* install the source version “on top” of the existing one Failure to do this will more or less guarantee that JACK will no longer work on your machine.
|
I guess i could try to install it "on top" of the existing one but i'd prefer to have the newest jack version anyways.
Unfortunately my irc client closed a few hours after asking my question. Is there any way to view the #jack history so that i can see if someone responed at a different time?
There are a few more things that i will try today, which might give more information on whats wrong. |
|
Back to top |
|
|
Lynix48 n00b
Joined: 14 Jun 2020 Posts: 38
|
Posted: Mon Oct 09, 2023 10:37 am Post subject: |
|
|
Alright so i got the issues resolved now.
It turns out that the steam runtime (which was used to run the wine application that used wineasio) overrides the system libraries.
The jacklib provided by the steam runtime was compiled for an older jack version than the one on my system.
This can be solved by either running the application outside of the steam runtime environment and setting WINEDLLOVERRIDES="wineasio=n,b;"
or by replacing the libraries in the steam runtime path (not without risk). |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|