Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

Can't get wineasio to work anymore

Help
2012-06-06
2013-01-27
  • After a system upgrade, wineasio stopped working. I've rebuilt it (no errors there).

    I'm on 64-bit Linux (Gentoo). I'm using JACK 1.9.8 (a mixed 32bit/64bit build) and Wine 1.5.5 (also tried the previously working version, 1.5.4.) I have the exact same wine and jackd configuration as before. When starting Reaper (4.22, also tried the most recent 4.23 alpha) I get this:

    ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave
    trace:asio:DllMain hInstDLL: 0xf6ee0000, fdwReason: 1 lpvReserved: (nil))
    trace:asio:DllGetClassObject rclsid: {48d0c522-bfcc-45cc-8b84-17f25f33e6e8}, riid: {00000001-0000-0000-c000-000000000046}, ppv: 0x32ced4)
    trace:asio:CF_AddRef iface: 0xf6ef1550, ref has been set to 2
    trace:asio:CF_CreateInstance iface: 0xf6ef1550, pOuter: (nil), riid: {48d0c522-bfcc-45cc-8b84-17f25f33e6e8}, ppobj: 0x899978)
    trace:asio:CF_CreateInstance Creating the WineASIO object
    trace:asio:WineASIOCreateInstance riid: {48d0c522-bfcc-45cc-8b84-17f25f33e6e8}, ppobj: 0x899978
    trace:asio:WineASIOCreateInstance pobj = 0x149180
    trace:asio:WineASIOCreateInstance return 0x149180
    trace:asio:CF_Release iface 0xf6ef1550, ref has been set to 1
    trace:asio:SetSampleRate iface: 0x149180, Sample rate 44100.000000 requested
    trace:asio:Init iface: 0x149180, sysRef: 0x100ce
    Cannot create thread res = 11
    Cannot create thread res = 11
    Cannot start Jack client listener
    Cannot start channel
    warn:asio:Init Unable to open a JACK client as: reaper
    trace:asio:GetErrorMessage iface: 0x149180, string: 0x899c68)
    trace:asio:Release iface: 0x149180, ref count is 0
    trace:asio:Release WineASIO terminated
    

    And Reaper says "Error initializing ASIO driver". I'm now left with a horrible latency when using Reaper with dsound or WASAPI :-( Can someone help?

    Many packages were update in the system upgrade. One of them was glibc (from 2.14.1 to 2.15), in case it matters. Downgrade of glibc is not possible (breaks the system it's built entirely against 2.15).

     
  • Hmm, don't think i've ever seen that before..  The msgs starting with trace:asio are from wineasio and look ok, until the Cannot msgs.  Those come from Jack2 itself, and i guess they indicate some problem in your jack2 installation.  Not sure what to suggest, maybe try it with jack1.  FWIW it's working here on a 64bit linux, (archlinux) with wine 1.5.5 and i tried jack2 1.9.8 a few weeks ago with no problem.  I also have glibc 2.15 installed.

    One thought that occurs is that there appears to be some optimization bug in recent versions of gcc, that affects jack2 (in other ways), maybe try to build jack2 with -O0…

     
  • Can you send me your wineasio.dll.so so I can make sure it's not a problem with wineasio on my end?

    Also, do you use JACK from Arch, or do you build it manually?

     
  • I can practically guarantee you (from the msg log) that the problem is in jack2, but here you are:
    http://dl.dropbox.com/u/879835/wineasio.dll.so  Did you try building jack2 with -O0 or try jack1 ?

     
  • Your file also doesn't work :-/ I've now tried JACK2 and JACK1, both with and without optimizations. No results. I also tried wineasio without optimizations. Also no results.

    Where do I find the binary of JACK2 that Arch ships? I'll try that one next.

     
  • I've found binaries here:

    http://www.archlinux.org/packages/multilib/x86_64/jack2-multilib/

    I downloaded and unpacked them in a custom path. I've run it (with a bit of LD_LIBRARY_PATH magic) and it works correctly, but ONLY with the wineasio.dll.so you sent. If I build my own, it still won't work (same error message as in first post.)

    I'm using GCC 4.6.3. This is how it's being built. Gentoo's JACK is uninstalled, so there are no conflicts there. The Arch binary was unpacked into /var/tmp/portage/jack-arch.

    gcc -c -I. -I/var/tmp/portage/jack-arch/usr/include -I/usr/include -I/usr/include -I/usr/include/wine -I/usr/include/wine/windows    -m32 -g -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -o asio.o asio.c
    gcc -c -I. -I/var/tmp/portage/jack-arch/usr/include -I/usr/include -I/usr/include -I/usr/include/wine -I/usr/include/wine/windows    -m32 -g -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -o main.o main.c
    gcc -c -I. -I/var/tmp/portage/jack-arch/usr/include -I/usr/include -I/usr/include -I/usr/include/wine -I/usr/include/wine/windows    -m32 -g -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -o regsvr.o regsvr.c
    winegcc -shared -m32 -L/var/tmp/portage/jack-arch/usr/lib32 -Wl,-rpath,/var/tmp/portage/jack-arch/usr/lib32 wineasio.dll.spec -mnocygwin -L/usr/lib32/wine -L/usr/lib32 -o wineasio.dll.so asio.o main.o regsvr.o     -ljack  -lodbc32 -lole32 -lwinmm -luuid
    
     
  • I'm sorry, I really don't know how to help you with this.

     
  • Jan Boysen
    Jan Boysen
    2012-08-22

    Hi,

    I just stubled over a different Gentoo related issue. Wineasio was not able to connect to jackD at all, it did not even try.
    It started after a system update on x86_64 for me too.

    I remembered to have had this before.
    Its caused by a file collision of the package app-emulation/emul-linux-x86-soundlibs which brings a 32Bit Jack1 library and jackd2 from the ProSound overlay.
    The emul package creates links to the Jackd1 libraries and its not working when having jackd2 running due to version conflickts.
    The strange issue here is that no error is shown somewhere it does simply not work.

    These are my working 32 Bit libraries in Gentoo:

    /usr/lib32/libjack.so -> libjack.so.0.1.0
    /usr/lib32/libjack.so.0 -> libjack.so.0.1.0
    /usr/lib32/libjack.so.0.0.28 ( from the Emul package )
    /usr/lib32/libjack.so.0.1.0 (from 32bit enabled jackd2)

    hope this might help you too..

     
  • I solved that one long ago. So it's not the issue.

    You solve this without modifying any ebuilds by creating a file:

        /etc/portage/env/app-emulation/emul-linux-x86-soundlibs

    and putting this in it:

    post_src_prepare()
    {
            rm -rf "${S}"/usr/lib32/jack || die
            rm -f $(find "${S}" -name 'libjack*') || die
    }
    

    And then simply emerge emul-linux-x86-soundlibs as usual.

     
  • I'm still battling with this. I had previously managed to reinstall my system and keep glibc locked to 2.14. But now, that version is not supported anymore in Gentoo and it's impossible to keep it. So now I'm really out of options. With glibc 2.16, I get a backtrace that looks like this:

    Backtrace:
    =>0 0xf7529287 __strcasestr_sse42_nonascii+0x47(s1="reaper.exe", s2=".exe") [/var/tmp/portage/sys-libs/glibc-2.16.0/work/glibc-2.16.0/string/../sysdeps/x86_64/multiarch/strcasestr-nonascii.c:42] in libc.so.6 (0xf65f9ccd)
      1 0xf65f5501 __wrapped_IWineASIOImpl_init+0x1a0(iface=0x188db0, sysHandle=0x100ce) [/var/tmp/portage/wineasio/asio.c:506] in wineasio (0xf65f9ccd)
    0xf7529287 __strcasestr_sse42_nonascii+0x47 [/var/tmp/portage/sys-libs/glibc-2.16.0/work/glibc-2.16.0/string/../sysdeps/x86_64/multiarch/strcasestr-nonascii.c:42] in libc.so.6: ldsl   %ecx,%edi